Jetzt starten

Dieser Leitfaden richtet sich an Publisher, die eine C++-App mit AdMob monetarisieren und Firebase nicht verwenden möchten. Wenn Sie Firebase in Ihre App aufnehmen möchten oder es in Betracht ziehen, lesen Sie stattdessen die Version AdMob mit Firebase.

Die Einbindung des Google Mobile Ads C++ SDK in eine App ist der erste Schritt, um Anzeigen präsentieren und Einnahmen erzielen zu können. Nachdem Sie das SDK eingebunden haben, können Sie ein Anzeigenformat (z. B. Interstitial oder Prämie) auswählen und der Implementierung folgen.

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

Wenn Sie diesen Leitfaden zum ersten Mal durchgehen, empfehlen wir Ihnen, die App für den C++-Test für Google Mobile Anzeigen herunterzuladen und zu verfolgen.

Voraussetzungen

Android

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

iOS

  • Xcode 13 oder höher verwenden
  • 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 AdMob an oder registrieren Sie sich für eins.

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

Google Mobile Ads C++ SDK installieren

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

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

Android

  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. Dieser enthält die 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 App, damit alle Abhängigkeiten die erforderlichen Versionen haben.

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

iOS

In diesem Abschnitt wird erläutert, wie Sie das C++ SDK von Google Mobile Ads zu Ihrem iOS-Projekt hinzufügen.

  1. Führen Sie den folgenden Befehl aus, um CocoaPods Version 1 oder höher abzurufen:

    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 Sie noch keine haben:

      cd your-app-directory
      pod init
      
    2. Fügen Sie den Pod für das Google Mobile Ads C++ SDK in Ihre Podfile-Datei ein:

        pod 'Google-Mobile-Ads-SDK'
      
    3. Installieren Sie den Pod und öffnen Sie dann die Datei .xcworkspace in Xcode.

      pod install
      open your-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 C++ SDK von Google Mobile Ads ohne andere Firebase-Dienste verwendet wird.

AdMob-App-ID der App konfigurieren

Android

Führen Sie Schritt 3 unter App konfigurieren wie im Android-Leitfaden zum Mobile Ads SDK beschrieben aus und kehren Sie dann zu dieser C++-Einführungsseite zurück.

iOS

Folgen Sie der Anleitung im Schritt Mobile Ads SDK iOS im Abschnitt Info.plist aktualisieren und kehren Sie dann zu dieser C++-Erste Seite zurück.

Google Mobile Ads SDK initialisieren

Bevor die Anzeigen geladen werden, bitten Sie Ihre App, das Google Mobile Ads C++ SDK zu initialisieren. Dazu wird firebase::gma::Initialize() aufgerufen, um das SDK zu initialisieren und nach Abschluss der Initialisierung (oder nach einem 30-sekündigen Zeitlimit) einen firebase::Future-Vorgang abzuschließen. Dies ist nur einmal erforderlich, idealerweise beim Start der App.

Anzeigen können beim Aufrufen von Initialize() durch das Google Mobile Ads C++ SDK oder die Vermittlungspartner-SDKs vorab geladen werden. Wenn Sie die Einwilligung von Nutzern im Europäischen Wirtschaftsraum (EWR),tag_for_child_directed_treatmenttag_for_under_age_of_consentfirebase::gma::SetRequestConfiguration() Weitere Informationen finden Sie in unserem Leitfaden zur Ausrichtung.

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

Mit Future den Abschlussstatus eines Methodenaufrufs beobachten

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

Wenn Ihre App beispielsweise firebase::gma::Initialize() aufruft, wird ein neues firebase::Future erstellt und zurückgegeben. Die App kann dann die status() der Future abfragen, um festzustellen, wann die Initialisierung abgeschlossen ist. Anschließend kann Ihre App result() aufrufen, um das Ergebnis AdapterInitializationStatus abzurufen.

Methoden, die Future zurückgeben, haben eine entsprechende "letztes Ergebnis"-Methode, mit der Apps die aktuelle Future für eine bestimmte Aktion abrufen können. Beispielsweise hat firebase::gma::Initialize() eine entsprechende Methode mit dem Namen firebase::gma::InitializeLastResult(), die eine Future zurückgibt, mit der Ihre App den Status des letzten Aufrufs von firebase::gma::Initialize() prüfen kann.

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

Sie können auch Callbacks registrieren, die nach Abschluss eines Future aufgerufen werden. In einigen Fällen wird der Callback in einem anderen Thread ausgeführt. Achten Sie daher darauf, dass der Code threadsicher 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 wird importiert. Sie können jetzt eine Anzeige implementieren. AdMob bietet verschiedene Anzeigenformate. Wählen Sie einfach das Format aus, das am besten zu Ihrer App passt.

Rechteckige Anzeigen, die oben oder unten auf dem Bildschirm des Geräts 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 nicht mit mobilen Anzeigen vertraut sind, ist das jetzt der erste Schritt.

Banneranzeigen implementieren

Interstitial

Vollbildanzeigen, die die Benutzeroberfläche einer App abdecken, 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 Leveln eines Spiels oder kurz nach dem Abschluss einer Aufgabe.

Interstitial-Anzeigen implementieren

Verfügbar

Anzeigen, in denen Nutzer für das Ansehen von kurzen Videos und die Interaktion mit spielbaren Anzeigen und Umfragen belohnt werden Werden zur Monetarisierung kostenloser Spiele verwendet

Anzeigen mit Prämie implementieren