Wypróbuj

Ten przewodnik jest przeznaczony dla wydawców, którzy chcą zarabiać na aplikacji w C++ w AdMob i nie używają Firebase. Jeśli planujesz uwzględnić Firebase w swojej aplikacji (lub rozważasz jej wykorzystanie), przeczytaj zamiast tego wersję AdMob z Firebase.

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

Pakiet SDK do reklam mobilnych Google w C++ obejmuje wszystkie 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++ wykorzystuje konstrukcje Firebase C++ do obsługi operacji asynchronicznych, dlatego znajduje się w przestrzeni nazw firebase::gma.

Jeśli dopiero zaczynasz korzystać z tego przewodnika, zalecamy pobranie i zastosowanie się do aplikacji testowej Google Ads w C++.

Wymagania wstępne

Android

  • Używaj Androida Studio 3.2 lub nowszego
  • Upewnij się, że w kompilacji aplikacji używane są te wartości:
    • Co najmniej minSdkVersion z grupy 16 lub wyższej
    • Minimalna wartość compileSdkVersion to 28

iOS

  • Użyj Xcode 13 lub nowszego
  • Kieruj reklamy na iOS 10.0 lub nowszy

Skonfiguruj aplikację na koncie AdMob

Aby zarejestrować aplikację jako aplikację AdMob:

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

  2. Zarejestruj aplikację w AdMob. W tym kroku zostanie utworzona aplikacja AdMob z unikalnym identyfikatorem aplikacji AdMob, która jest potrzebna 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, dlatego pobierz pakiet SDK C++ Firebase, a następnie wypakuj go do wybranego katalogu.

SDK Firebase C++ nie jest przeznaczony dla konkretnej platformy, ale wymaga konfiguracji biblioteki specyficznej dla 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 projektu 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 modułu (na poziomie aplikacji) (zwykle app/build.gradle) dodaj poniższą treść, która zawiera zależność biblioteki od pakietu SDK Google Ads do reklam mobilnych Google.

      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 projektu dodaj tę treść.

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

Wszystko gotowe Twoja aplikacja C++ została skonfigurowana pod kątem korzystania z pakietu SDK do reklam mobilnych Google w C++ bez żadnych innych usług Firebase.

iOS

Poniżej opisujemy, jak dodać do projektu iOS pakiet SDK do reklam mobilnych Google w C++.

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

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

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

      cd your-app-directory
      pod init
      
    2. Do pliku Podfile dodaj poda pakietu SDK do reklam mobilnych Google w C++:

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

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

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

Wszystko gotowe Twoja aplikacja C++ została skonfigurowana pod kątem korzystania z pakietu SDK do reklam mobilnych Google w C++ bez żadnych innych usług Firebase.

Skonfiguruj identyfikator aplikacji AdMob w swojej aplikacji

Android

Wykonaj krok 3 konfiguracji aplikacji w sposób opisany w przewodniku po pakiecie SDK do reklam mobilnych na Androida i wróć na tę stronę.

iOS

Wykonaj czynności opisane w kroku Zaktualizuj plik Info.plist zgodnie z opisem w przewodniku po pakiecie SDK do reklam mobilnych na iOS, a potem wróć na stronę z wprowadzeniem do C++.

Zainicjuj pakiet SDK do reklam mobilnych Google

Przed wczytaniem reklam poproś aplikację o zainicjowanie pakietu SDK do reklam mobilnych Google w C++, wywołując pakiet firebase::gma::Initialize(), który inicjuje pakiet SDK i kończy działanie firebase::Future po jego zainicjowaniu (lub po 30 sekundach bezczynności). Należy to zrobić tylko raz, najlepiej przy uruchamianiu aplikacji.

Reklamy mogą być wstępnie wczytywane przez pakiet SDK Google Mobile Ads w C++ lub pakiet SDK zapośredniczenia partnera po wywołaniu funkcji Initialize(). Jeśli musisz uzyskać zgodę użytkowników z Europejskiego Obszaru Gospodarczego (EOG), ustaw flagi dotyczące tego żądania (np. tag_for_child_directed_treatment lub tag_for_under_age_of_consent) albo z innego powodu wykonaj czynności przed wczytaniem reklam, wywołaj firebase::gma::SetRequestConfiguration() przed zainicjowaniem pakietu SDK do reklam mobilnych Google w C++. Więcej informacji znajdziesz w naszym przewodniku.

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.
}

Aby monitorować stan ukończenia wywołania metody, użyj Future

Pole Future umożliwia określenie stanu zakończenia wywołań metody asynchronicznego.

Jeśli na przykład aplikacja wywoła polecenie firebase::gma::Initialize(), zostanie utworzony nowy element firebase::Future, który zostanie zwrócony. Aplikacja może następnie przeprowadzić ankietę wśród status() aplikacji Future, aby ustalić, kiedy została ona zainicjowana. Gdy to zrobisz, aplikacja może wywołać metodę result(), by uzyskać wynikowy AdapterInitializationStatus.

Metody zwracające Future mają odpowiadającą im metodę „ostatni wynik”, która umożliwia aplikacjom pobieranie najnowszego Future z danego działania. firebase::gma::Initialize() ma na przykład odpowiednią metodę o nazwie firebase::gma::InitializeLastResult(), która zwraca Future, aby aplikacja mogła sprawdzić stan ostatniego wywołania firebase::gma::Initialize().

Jeśli stan elementu Future został ukończony, a jego kod błędu to firebase::gma::kAdErrorCodeNone, operacja została ukończona.

Możesz też zarejestrować wywołania zwrotne, które mają być wywoływane po zakończeniu wywołania 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 w wątku. Ten fragment kodu używa 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ż wdrożyć reklamę. AdMob oferuje wiele różnych formatów reklam, dzięki czemu 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, a po określonym czasie mogą się automatycznie odświeżać. Jeśli dopiero zaczynasz przygodę z reklamami mobilnymi,

Implementowanie banerów reklamowych

Pełnoekranowa

reklamy pełnoekranowe, które zakrywają interfejs aplikacji do momentu ich zamknięcia przez użytkownika. Najlepiej robić to w naturalnych przerwach w wyświetlaniu aplikacji, np. między poziomami gry lub zaraz po ukończeniu zadania.

Stosowanie reklam pełnoekranowych

Otrzymano

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

Wdrażanie reklam z nagrodą