Wypróbuj

Ten przewodnik jest przeznaczony dla wydawców, którzy chcą zarabiać na aplikacji C++ w AdMob i używać Firebase. Jeśli planujesz umieścić w swojej aplikacji Firebase (lub rozważasz to wykorzystanie), zapoznaj się z przewodnikiem po wersji AdMob z Firebase.

Integracja pakietu SDK do reklam mobilnych Google w C++ to pierwszy krok do wyświetlania reklam i zarabiania na nich. Po zintegrowaniu pakietu SDK możesz wybrać format reklamy (np. reklamę pełnoekranową lub reklamę z nagrodą) i postępować zgodnie z instrukcjami implementacji.

Pakiet SDK do reklam mobilnych Google w wersji C++ zawiera pakiet SDK do reklam mobilnych Google na iOS i Androida. Jest on dostępny tylko na tych platformach. Pakiet SDK do reklam mobilnych Google w wersji C++ wykorzystuje konstrukcje Firebase C++ do obsługi operacji asynchronicznych, dlatego jest umieszczony w przestrzeni nazw firebase::gma.

Jeśli jeszcze nie korzystasz z tego przewodnika, zalecamy pobranie go i zastosowanie się do aplikacji testowej reklam mobilnych Google w C++.

Wymagania wstępne

Android

  • Android 3.2 lub nowsza wersja
  • Upewnij się, że plik kompilacji aplikacji korzysta z tych wartości:
    • minSdkVersion w wieku 16 lat lub wyższym
    • compileSdkVersion – co najmniej 28 znaków

iOS

  • Korzystanie z Xcode 13 lub nowszego
  • Kierowanie na iOS 10.0 lub nowsze

Skonfiguruj aplikację na koncie AdMob

Aby zarejestrować aplikację jako aplikację AdMob, wykonaj te czynności:

  1. Zaloguj się na konto AdMob lub zarejestruj się na nie.

  2. Zarejestruj aplikację w AdMob Spowoduje to utworzenie aplikacji AdMob z unikalnym identyfikatorem aplikacji AdMob, który będzie potrzebny później w tym przewodniku.

Instalowanie pakietu SDK do reklam mobilnych Google w C++

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

Pakiet SDK Firebase C++ nie jest przeznaczony dla konkretnej platformy, ale wymaga konfiguracji biblioteki zależnej od platformy.

Android

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

      systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
    
  2. Do pliku settings.gradle w projekcie dodaj te treści:

      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 aplikacji) (zazwyczaj app/build.gradle) dodaj poniższą treść, która zawiera zależność biblioteki dla 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. Do pliku CMakeLists.txt w projekcie dodaj te treści.

      # 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 upewnić się, że wszystkie zależności mają niezbędne wersje.

Wszystko gotowe Aplikacja C++ jest skonfigurowana tak, aby używać pakietu SDK do reklam mobilnych Google w C++ bez żadnych innych usług Firebase.

iOS

Poniżej znajdziesz przykład dodawania pakietu SDK do reklam mobilnych Google w pakiecie C++ do projektu na iOS.

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

    sudo gem install cocoapods --pre
    
  2. Dodaj blok reklamowy Google na komórki z rozpakowanego pakietu SDK.

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

      cd your-app-directory
      pod init
      
    2. W pliku podfile dodaj blok Google Ads SDK C++ Google Ads:

        pod 'Google-Mobile-Ads-SDK'
      
    3. Zainstaluj blok reklamowy, a następnie otwórz plik .xcworkspace w Xcode.

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

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

Wszystko gotowe Aplikacja C++ jest skonfigurowana tak, aby używać pakietu SDK do reklam mobilnych Google w C++ bez żadnych innych usług Firebase.

Skonfiguruj identyfikator aplikacji AdMob

Android

Wykonaj krok 3 sekcji Konfigurowanie aplikacji zgodnie z opisem w przewodniku po pakietach SDK do reklam mobilnych na Androida, a potem wróć na stronę Pierwsze kroki z C++.

iOS

Wykonaj czynności opisane w sekcji Aktualizowanie pliku Info.plist zgodnie z opisem w przewodniku po pakiecie SDK do reklam mobilnych na iOS i wróć na tę stronę dla początkujących C++.

Zainicjuj pakiet SDK do reklam mobilnych Google

Zanim zaczniesz ładować reklamy, aktywuj aplikację za pomocą pakietu SDK do reklam mobilnych Google w języku C++. Wywołaj w ten sposób element firebase::gma::Initialize(), który inicjuje pakiet SDK i kończy działanie interfejsu firebase::Future po jego zakończeniu (lub gdy upłynie 30 sekund). Wystarczy to zrobić raz, najlepiej przy uruchamianiu aplikacji.

Reklamy mogą być wstępnie wczytywane przez pakiet SDK Google Ads na urządzenia mobilne C++ lub pakiety SDK zapośredniczenia po wywołaniu strony Initialize(). Jeśli musisz uzyskać zgodę użytkowników z Europejskiego Obszaru Gospodarczego, ustaw wszelkie flagi dla żądań (np. tag_for_child_directed_treatment lub tag_for_under_age_of_consent) lub w inny sposób podejmij działanie przed wczytaniem reklam, wywołując tag firebase::gma::SetRequestConfiguration() przed zainicjowaniem pakietu SDK do reklam mobilnych Google. Więcej informacji znajdziesz w przewodniku po kierowaniu.

Oto przykład wywołania 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 metody Future, aby monitorować stan zakończenia wywołania metody

Future pozwala określić stan zakończenia wywołań metody synchronicznej.

Na przykład gdy Twoja aplikacja wywołuje metodę firebase::gma::Initialize(), tworzony i zwracany jest nowy element firebase::Future. Aplikacja może następnie przeprowadzić ankietę status() modułu Future, aby ustalić, kiedy inicjowanie się zakończy. Gdy to zrobisz, aplikacja może wywołać metodę result(), by uzyskać wynik w postaci AdapterInitializationStatus.

Metody, które zwracają Future, mają odpowiednią metodę &ostatniego wyniku, która pozwala aplikacjom pobierać najnowsze Future z określonych działań. Na przykład firebase::gma::Initialize() ma odpowiednią metodę o nazwie firebase::gma::InitializeLastResult(), która zwraca Future, aby Twoja aplikacja mogła sprawdzić stan ostatniego wywołania firebase::gma::Initialize().

Jeśli stan Future został zakończony, a kod błędu to firebase::gma::kAdErrorCodeNone, operacja została wykonana.

Możesz też zarejestrować wywołania zwrotne, które zostaną wykonane po zakończeniu wywołania Future. W niektórych przypadkach wywołanie zwrotne działa w innym wątku, więc upewnij się, że kod jest bezpieczny w wątkach. Ten fragment kodu korzysta ze wskaźnika funkcji dla 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

Zaimportowano pakiet SDK do reklam mobilnych Google w C++. Możesz już zaimplementować reklamę. AdMob oferuje wiele różnych formatów reklam, więc możesz wybrać ten, który najlepiej pasuje do Twojej aplikacji.

Prostokątne reklamy wyświetlane u góry lub u dołu ekranu urządzenia. Banery reklamowe pozostają widoczne na ekranie, gdy użytkownicy korzystają z aplikacji, i po pewnym czasie mogą się automatycznie odświeżać. Jeśli dopiero zaczynasz korzystać z reklam mobilnych, warto zacząć od tego.

Wdrażanie banerów reklamowych

Reklama pełnoekranowa

Reklamy pełnoekranowe, które zasłaniają interfejs aplikacji do momentu zamknięcia przez użytkownika. Najlepiej sprawdzają się w naturalnych przerwach w procesie uruchamiania aplikacji, np. między poziomami gry lub po zakończeniu zadania.

Stosowanie reklam pełnoekranowych

Otrzymano

Reklamy, które zachęcają użytkowników do oglądania krótkich filmów i korzystania z reklam demonstracyjnych gier oraz ankiet. Dane służą do zarabiania na bezpłatnych aplikacjach.

Wdrażanie reklam z nagrodą