Erste Schritte

Dieser Leitfaden richtet sich an Publisher, die eine C++-App mit AdMob ohne Firebase monetarisieren möchten. Wenn Sie Firebase in Ihre App einbinden möchten oder haben, lesen Sie stattdessen die Version von AdMob mit Firebase.

Damit Anzeigen ausgeliefert werden und Sie Umsatz erzielen können, müssen Sie zuerst das Google Mobile Ads C++ SDK in eine App einbinden. Nachdem Sie das SDK integriert haben, können Sie ein Anzeigenformat auswählen, z. B. Interstitial oder Anzeigen mit Prämie, und der Anleitung folgen, um es zu implementieren.

Das Google Mobile Ads C++ SDK umschließt die Google Mobile Ads SDKs für iOS und Android und ist nur auf diesen Plattformen verfügbar. Das Google Mobile Ads C++ SDK nutzt Firebase C++-Konstrukte, um asynchrone Vorgänge zu unterstützen. Daher befindet es sich im Namespace firebase::gma.

Wenn Sie diesen Leitfaden zum ersten Mal durcharbeiten, empfehlen wir, die Google Mobile Ads C++-Test-App herunterzuladen und den Schritten entsprechend zu folgen.

Voraussetzungen

Android

  • Android Studio 3.2 oder höher verwenden
  • Achten Sie darauf, dass die Build-Datei Ihrer App die folgenden Werte verwendet:
    • Ein minSdkVersion von 16 oder höher
    • Ein compileSdkVersion von 28 oder höher

iOS

  • Verwenden Sie Xcode 13 oder höher
  • Ausrichtung auf iOS 10.0 oder höher

App in Ihrem AdMob-Konto einrichten

So registrieren Sie Ihre App als AdMob-App:

  1. Melden Sie sich in einem AdMob-Konto an oder registrieren Sie sich für ein Konto.

  2. Registrieren Sie Ihre App bei AdMob. In diesem Schritt wird eine AdMob-App mit einer eindeutigen AdMob-App-ID erstellt, die später in diesem Leitfaden benötigt wird.

Google Mobile Ads C++ SDK installieren

Da sich das Google Mobile Ads C++ SDK im Namespace firebase::gma befindet, laden Sie das Firebase C++ SDK herunter und entpacken Sie es in ein Verzeichnis Ihrer Wahl.

Das Firebase C++ SDK ist nicht plattformspezifisch, erfordert jedoch plattformspezifische Bibliothekskonfigurationen.

Android

Wir empfehlen die Verwendung von CMake. In unserem allgemeinen Startleitfaden für das Firebase C++ SDK finden Sie jedoch eine Anleitung für „ndk-build“, in der Sie libfirebase_app.a und libfirebase_gma.a mit Ihrer App verknüpfen.

  1. Geben Sie in der Datei gradle.properties Ihres Projekts den Speicherort des entpackten SDK an:

    systemProp.firebase_cpp_sdk.dir=FULL_PATH_TO_SDK
    
  2. Fügen Sie der Datei settings.gradle Ihres Projekts den folgenden Inhalt hinzu:

    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. Fügen Sie der Gradle-Datei Ihres Moduls (auf App-Ebene) – in der Regel app/build.gradle – den folgenden Inhalt hinzu, einschließlich der Bibliotheksabhängigkeit für das Google Mobile Ads C++ SDK.

    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. Fügen Sie der Datei CMakeLists.txt Ihres Projekts den folgenden Inhalt hinzu.

    # 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. Synchronisieren Sie Ihre Anwendung, um sicherzustellen, dass alle Abhängigkeiten über die erforderlichen Versionen verfügen.

iOS

Die Schritte in diesem Abschnitt sind ein Beispiel dafür, wie Sie Ihrem iOS-Projekt das Google Mobile Ads C++ SDK hinzufügen.

  1. Laden Sie CocoaPods Version 1 oder höher herunter, indem Sie folgenden Befehl ausführen:

    sudo gem install cocoapods --pre
    
  2. Fügen Sie den Google Mobile Ads-Pod aus dem entpackten SDK hinzu.

    1. Erstellen Sie eine Podfile-Datei, falls noch keine vorhanden ist:

      cd APP_DIRECTORY
      pod init
      
    2. Fügen Sie der Podfile-Datei die Pods für das Google Mobile Ads C++ SDK, das Google User Messaging Platform SDK und das minimale Firebase Core SDK (erforderlich für das GMA C++ SDK) hinzu:

      pod 'Firebase/CoreOnly'
      pod 'Google-Mobile-Ads-SDK'
      pod 'GoogleUserMessagingPlatform'
      
    3. Installieren Sie die Pods und öffnen Sie dann die Datei .xcworkspace in Xcode.

      pod install
      open APP.xcworkspace
      
    4. Fügen Sie dem Projekt die folgenden Frameworks aus dem Firebase C++ SDK hinzu:

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

Fertig! Ihre C++-App ist so konfiguriert, dass das Google Mobile Ads C++ SDK ohne andere Firebase-Dienste verwendet wird.

AdMob-App-ID Ihrer App konfigurieren

Android

Führen Sie Schritt 3 im Artikel App konfigurieren aus, wie im Mobile Ads SDK-Leitfaden für Android beschrieben, und kehren Sie dann zu dieser Seite zurück.

iOS

Folgen Sie dem Schritt Info.plist-Datei aktualisieren, wie im Mobile Ads SDK-Leitfaden für iOS beschrieben, und kehren Sie anschließend zu dieser Seite zurück.

Google Mobile Ads SDK initialisieren

Bevor Sie Anzeigen laden, müssen Sie das Google Mobile Ads C++ SDK in Ihrer App initialisieren. Rufen Sie dazu firebase::gma::Initialize() auf. Dadurch wird das SDK initialisiert und nach Abschluss der Initialisierung (oder nach einer Zeitüberschreitung von 30 Sekunden) wird ein firebase::Future-Vorgang ausgeführt. Dies muss nur einmal erfolgen, idealerweise beim Start der App.

Anzeigen können beim Aufruf von Initialize() durch das Google Mobile Ads C++ SDK oder das SDK der Vermittlungspartner vorab geladen werden. Wenn Sie die Einwilligung von Nutzern im Europäischen Wirtschaftsraum (EWR) einholen müssen, anfragespezifische Flags wie tag_for_child_directed_treatment oder tag_for_under_age_of_consent setzen oder vor dem Laden von Anzeigen Maßnahmen ergreifen, rufen Sie firebase::gma::SetRequestConfiguration() vor der Initialisierung des Google Mobile Ads C++ SDK auf. Weitere Informationen finden Sie im Leitfaden Targeting.

Hier ein Beispiel für den Aufruf von 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.
}

Future verwenden, um den Abschlussstatus eines Methodenaufrufs zu beobachten

Mit Future können Sie den Abschlussstatus Ihrer asynchronen Methodenaufrufe ermitteln.

Wenn Ihre Anwendung beispielsweise firebase::gma::Initialize() aufruft, wird eine neue firebase::Future erstellt und zurückgegeben. Ihre Anwendung kann dann status() von Future abfragen, um festzustellen, wann die Initialisierung abgeschlossen ist. Wenn der Vorgang abgeschlossen ist, kann die Anwendung result() aufrufen, um den resultierenden AdapterInitializationStatus abzurufen.

Methoden, die einen Future zurückgeben, haben eine entsprechende Methode für das letzte Ergebnis, mit der Anwendungen den neuesten Future für eine bestimmte Aktion abrufen können. firebase::gma::Initialize() hat beispielsweise eine entsprechende Methode namens firebase::gma::InitializeLastResult(), die ein Future zurückgibt, mit dem die Anwendung den Status des letzten Aufrufs von firebase::gma::Initialize() prüfen kann.

Wenn der Status von Future abgeschlossen und der Fehlercode firebase::gma::kAdErrorCodeNone ist, wurde der Vorgang erfolgreich abgeschlossen.

Sie können auch Callbacks registrieren, die aufgerufen werden sollen, wenn ein Future abgeschlossen ist. In einigen Fällen wird der Callback in einem anderen Thread ausgeführt. Achten Sie daher darauf, dass der Code Thread-sicher ist. Dieses Code-Snippet verwendet einen Funktionszeiger für den Callback:

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

Anzeigenformat auswählen

Das Google Mobile Ads C++ SDK wurde importiert und Sie können eine Anzeige implementieren. AdMob bietet eine Reihe von verschiedenen Anzeigenformaten, sodass Sie das für die Nutzererfahrung Ihrer App am besten geeignete auswählen können.

Rechteckige Anzeigen, die oben oder unten auf dem Gerätebildschirm erscheinen. Banneranzeigen bleiben auf dem Bildschirm, während Nutzer mit der App interagieren, und können nach einer bestimmten Zeit automatisch aktualisiert werden. Wenn Sie noch keine Erfahrung mit mobiler Werbung haben, sind sie ein guter Ausgangspunkt.

Banneranzeigen implementieren

Interstitial

Vollbildanzeigen, die die Benutzeroberfläche einer App verdecken, bis sie vom Nutzer geschlossen werden. Sie eignen sich am besten für natürliche Pausen während der Ausführung einer App, z. B. zwischen den Levels eines Spiels oder kurz nach Abschluss einer Aufgabe.

Interstitial-Anzeigen implementieren

Verfügbar

Das sind Anzeigen, in denen Nutzer für das Ansehen kurzer Videos und für die Interaktion mit spielbaren Anzeigen und Umfragen belohnt werden. Wird für die Monetarisierung kostenloser Apps verwendet.

Anzeigen mit Prämie implementieren