Rozpocznij


Ten przewodnik jest przeznaczony dla wydawców, którzy chcą zarabiać na aplikacji w C++ za pomocą AdMob bez korzystania z Firebase. Jeśli planujesz uwzględnić Firebase w swojej aplikacji lub rozważasz taką możliwość, zapoznaj się z wersją tego przewodnika AdMob z Firebase.

Integracja pakietu SDK do reklam mobilnych Google w języku C++ z aplikacją to pierwszy krok do wyświetlania reklam i uzyskiwania przychodów. Gdy to zrobisz, możesz wybrać format reklamy, np. pełnoekranowej lub z nagrodą, i postępować zgodnie z instrukcjami, aby go zaimplementować.

Pakiet SDK do reklam mobilnych Google w C++ obejmuje pakiety SDK do reklam mobilnych Google na iOS i Androida i jest dostępny tylko na tych platformach. Pakiet SDK do reklam mobilnych Google w C++ korzysta z konstrukcji Firebase w C++ do obsługi operacji asynchronicznych, dlatego znajduje się w przestrzeni nazw firebase::gma.

Jeśli po raz pierwszy korzystasz z tego przewodnika, zalecamy pobranie i wykorzystanie aplikacji testowej Google Mobile Ads C++.

Wymagania wstępne

Android

  • Android Studio w wersji 3.2 lub nowszej,
  • Sprawdź, czy w pliku kompilacji Twojej aplikacji znajdują się te wartości:
    • wartość minSdkVersion wynosząca co najmniej 16.
    • wartość compileSdkVersion wynosząca co najmniej 28.

iOS

  • Używaj Xcode 13 lub nowszego
  • kierować reklamy na urządzenia z systemem iOS 10.0 lub nowszym,

Konfigurowanie aplikacji na koncie AdMob

Aby zarejestrować aplikację jako aplikację AdMob:

  1. Zaloguj się lub zarejestruj na koncie AdMob.

  2. Zarejestruj aplikację w AdMob. W tym kroku utworzysz aplikację AdMob z unikalnym identyfikatorem aplikacji AdMob, który będzie potrzebny w dalszej części tego przewodnika.

Instalowanie pakietu SDK do reklam mobilnych Google w C++

Pakiet SDK do reklam mobilnych Google w C++ znajduje się w przestrzeni nazw firebase::gma. Pobierz pakiet SDK Firebase w C++, a następnie rozpakuj go do wybranego katalogu.

Pakiet Firebase C++ SDK nie jest przeznaczony dla konkretnej platformy, ale wymaga konfiguracji bibliotek specyficznych dla platformy.

Android

Zalecamy używanie CMake, ale instrukcje dotyczące ndk-build znajdziesz w naszym ogólnym przewodniku po pakiecie SDK Firebase C++, który pomoże Ci połączyć libfirebase_app.alibfirebase_gma.a z aplikacją.

  1. W pliku gradle.properties projektu określ lokalizację rozpakowanego pakietu SDK:

    systemProp.firebase_cpp_sdk.dir=FULL_PATH_TO_SDK
    
  2. Dodaj do pliku settings.gradle projektu te wiersze:

    def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir')
    
    gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir"
    includeBuild "$firebase_cpp_sdk_dir"
    
  3. Do pliku Gradle na poziomie modułu (aplikacji) – zwykle app/build.gradle – dodaj te wiersze, które zawierają zależność biblioteki pakietu SDK do reklam mobilnych Google w C++.

    android.defaultConfig.externalNativeBuild.cmake {
      arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
    }
    
    # Add the dependency for the Google Mobile Ads C++ SDK
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      gma
    }
    
  4. Dodaj do pliku CMakeLists.txt projektu te wiersze:

    # Add Firebase libraries to the target using the function from the SDK.
    add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL)
    
    # Add the Google Mobile Ads C++ SDK.
    
    # The Firebase C++ library `firebase_app` is required,
    # and it must always be listed last.
    
    set(firebase_libs
      firebase_gma
      firebase_app
    )
    
    target_link_libraries(${target_name} "${firebase_libs}")
    
  5. Zsynchronizuj aplikację, aby wszystkie zależności na pewno miały odpowiednie wersje.

iOS

Czynności opisane w tej sekcji pokazują, jak dodać do projektu na iOS pakiet SDK do reklam mobilnych Google w C++.

  1. Pobierz CocoaPods w wersji 1 lub nowszej, wpisując:

    sudo gem install cocoapods --pre
  2. Dodaj pod Google Mobile Ads z rozpakowanego pakietu SDK.

    1. Utwórz plik Podfile, jeśli go nie masz:

      cd APP_DIRECTORY
      pod init
    2. Do pliku Podfile dodaj pody pakietu Google Mobile Ads C++ SDK, pakietu SDK platformy do personalizowania wiadomości wyświetlanych użytkownikom i minimalnego pakietu SDK Firebase Core (wymaganego przez pakiet GMA C++ SDK):

      pod 'Firebase/CoreOnly'
      pod 'Google-Mobile-Ads-SDK'
      pod 'GoogleUserMessagingPlatform'
      
    3. Zainstaluj pody, a następnie otwórz plik .xcworkspace w Xcode.

      pod install
      open APP.xcworkspace
    4. Dodaj do projektu te platformy z pakietu Firebase C++ SDK:

      • xcframeworks/firebase.xcframework
      • xcframeworks/firebase_gma.xcframework

Wszystko gotowe Aplikacja w C++ jest skonfigurowana do korzystania z pakietu Google Mobile Ads C++ SDK bez żadnych innych usług Firebase.

Konfigurowanie identyfikatora aplikacji AdMob

Android

Wykonaj krok 3 z sekcji Konfigurowanie aplikacji zgodnie z opisem w przewodniku po pakiecie SDK do reklam mobilnych na Androida, a potem wróć na tę stronę.

iOS

Wykonaj krok Aktualizowanie pliku Info.plist zgodnie z opisem w przewodniku po pakiecie SDK do reklam mobilnych na iOS, a potem wróć na tę stronę.

Inicjowanie pakietu SDK do reklam mobilnych Google

Zanim aplikacja wczyta reklamy, musi zainicjować pakiet SDK do reklam mobilnych Google w C++ przez wywołanie funkcji firebase::gma::Initialize(), która inicjuje pakiet SDK i wykonuje funkcję firebase::Future po zakończeniu inicjowania (lub po 30 sekundach bezczynności). Należy to zrobić tylko raz, najlepiej przy uruchomieniu aplikacji.

Reklamy mogą być wstępnie wczytywane przez pakiet SDK do reklam mobilnych Google w C++ lub pakiety SDK partnerów zapośredniczenia po wywołaniu Initialize(). Jeśli musisz uzyskać zgodę użytkowników z Europejskiego Obszaru Gospodarczego (EOG), ustawić flagi dotyczące konkretnego żądania (np. tag_for_child_directed_treatment lub tag_for_under_age_of_consent) albo podjąć inne działania przed wczytaniem reklam, zrób to, wywołując funkcję firebase::gma::SetRequestConfiguration() przed zainicjowaniem pakietu SDK do reklam mobilnych Google w C++. Więcej informacji znajdziesz w naszym przewodniku po kierowaniu.

Oto przykład wywołania funkcji Initialize():

Android

// Initialize the Google Mobile Ads library
firebase::InitResult result;
Future<AdapterInitializationStatus> future =
  firebase::gma::Initialize(jni_env, j_activity, &result);

if (result != kInitResultSuccess) {
  // Initialization immediately failed, most likely due to a missing
  // dependency. Check the device logs for more information.
  return;
}

// Monitor the status of the future.
// See "Use a Future to monitor the completion status of a method call" below.
if (future.status() == firebase::kFutureStatusComplete &&
    future.error() == firebase::gma::kAdErrorCodeNone) {
  // Initialization completed.
} else {
  // Initialization on-going, or an error has occurred.
}

iOS

// Initialize the Google Mobile Ads library.
firebase::InitResult result;
Future<AdapterInitializationStatus> future =
  firebase::gma::Initialize(&result);

if (result != kInitResultSuccess) {
  // Initialization immediately failed, most likely due to a missing
  // dependency. Check the device logs for more information.
  return;
}

// Monitor the status of the future.
// See "Use a Future to monitor the completion status of a method call" below.
if (future.status() == firebase::kFutureStatusComplete &&
    future.error() == firebase::gma::kAdErrorCodeNone) {
  // Initialization completed.
} else {
  // Initialization on-going, or an error has occurred.
}

Użyj Future, aby monitorować stan zakończenia wywołania metody

Future umożliwia określenie stanu zakończenia wywołań metod asynchronicznych.

Na przykład gdy aplikacja wywołuje firebase::gma::Initialize(), tworzony jest nowy obiekt firebase::Future i zwracany jest jego identyfikator. Aplikacja może następnie wysyłać zapytania do status()Future, aby określić, kiedy inicjowanie zostało zakończone. Po zakończeniu tego procesu aplikacja może wywołać funkcję result(), aby uzyskać wynikowy AdapterInitializationStatus.

Metody, które zwracają wartość Future, mają odpowiednią metodę „ostatni wynik”, której aplikacje mogą używać do pobierania najnowszej wartości Future dla danego działania. Na przykład klasa firebase::gma::Initialize() ma odpowiednią metodę o nazwie firebase::gma::InitializeLastResult(), która zwraca obiekt Future, za pomocą którego aplikacja może sprawdzić stan ostatniego wywołania funkcji firebase::gma::Initialize().

Jeśli stan Future to „complete”, a kod błędu to firebase::gma::kAdErrorCodeNone, oznacza to, że operacja została zakończona.

Możesz też zarejestrować wywołania zwrotne, które będą wywoływane po zakończeniu Future. W niektórych przypadkach wywołanie zwrotne będzie wykonywane w innym wątku, więc upewnij się, że Twój kod jest bezpieczny dla wątków. Ten fragment kodu używa wskaźnika funkcji do wywołania zwrotnego:

// Registers the OnCompletion callback. user_data is a pointer that is passed verbatim
// to the callback as a void*. This allows you to pass any custom data to the callback
// handler. In this case, the app has no data, so you must pass nullptr.
firebase::gma::InitializeLastResult().OnCompletion(OnCompletionCallback,
  /*user_data=*/nullptr);

// The OnCompletion callback function.
static void OnCompletionCallback(
  const firebase::Future<AdapterInitializationStatus>& future, void* user_data) {
  // Called when the Future is completed for the last call to firebase::gma::Initialize().
  // If the error code is firebase::gma::kAdErrorCodeNone,
  // then the SDK has been successfully initialized.
  if (future.error() == firebase::gma::kAdErrorCodeNone) {
    // success!
  } else {
    // failure.
  }
}

Wybierz format reklamy

Pakiet SDK do reklam mobilnych Google w C++ został zaimportowany i możesz teraz wdrożyć reklamę. AdMob oferuje wiele różnych formatów reklam, dzięki czemu możesz wybrać ten, który najlepiej pasuje do wrażeń użytkowników Twojej aplikacji.

Prostokątne reklamy wyświetlane u góry lub u dołu ekranu urządzenia. Banery reklamowe pozostają na ekranie, gdy użytkownicy wchodzą w interakcję z aplikacją, i mogą być automatycznie odświeżane po upływie określonego czasu. Jeśli dopiero zaczynasz przygodę z reklamami mobilnymi, to świetny sposób na rozpoczęcie.

Wdrażanie banerów reklamowych

Pełnoekranowa

Reklamy pełnoekranowe, które zakrywają interfejs aplikacji, dopóki użytkownik ich nie zamknie. Najlepiej używać ich w naturalnych przerwach w działaniu aplikacji, np. między poziomami gry lub tuż po ukończeniu zadania.

Wdrażanie reklam pełnoekranowych

Z nagrodą

Reklamy, które nagradzają użytkowników za oglądanie krótkich filmów i wchodzenie w interakcje z reklamami demonstracyjnymi gier oraz ankietami. Służy do zarabiania na bezpłatnych aplikacjach.

Wdrażanie reklam z nagrodą