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 einbinden möchten oder dies in Erwägung ziehen, lesen Sie stattdessen die Version von AdMob mit Firebase in dieser Anleitung.

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 integriert haben, können Sie ein Anzeigenformat wie ein Interstitial oder eine Anzeige mit Prämie auswählen und der Anleitung folgen, um es zu implementieren.

Das Google Mobile Ads C++ SDK umschließt das Google Mobile Ads SDK für iOS und Android und ist nur auf diesen Plattformen verfügbar. Das Google Mobile Ads C++ SDK nutzt Konstrukte von Firebase C++ zur Unterstützung asynchroner Vorgänge. Daher befindet es sich im Namespace firebase::gma.

Wenn Sie diesen Leitfaden zum ersten Mal durchgehen, empfehlen wir, die C++-Test-App für Google Mobile Ads herunterzuladen und dort 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

  • 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 einem AdMob-Konto an oder registrieren Sie sich dafür.

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

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 aber plattformspezifische Bibliothekskonfigurationen.

Android

  1. Geben Sie in der Datei gradle.properties Ihres Projekts den Speicherort des entpackten SDKs 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 auf Modulebene (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, um sicherzugehen, dass 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 Google Mobile Ads C++ SDK in Ihr iOS-Projekt einfü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 Ihrer App konfigurieren

Android

Folge Schritt 3 unter App konfigurieren, wie im Android-Leitfaden für das Mobile Ads SDK beschrieben, und kehre dann zu dieser C++-Einstiegsseite zurück.

iOS

Folgen Sie der Anleitung im Leitfaden für das iOS Ads SDK, um den Schritt Info.plist aktualisieren auszuführen, und kehren Sie dann zu dieser C++-Einstiegsseite zurück.

Google Mobile Ads SDK initialisieren

Bevor du Anzeigen lädst, bitte deine App, das Google Mobile Ads C++ SDK zu initialisieren. Rufe dazu firebase::gma::Initialize() auf. Damit wird das SDK initialisiert und firebase::Future abgeschlossen, sobald die Initialisierung abgeschlossen ist (oder nach 30 Sekunden). Dies muss nur einmal geschehen, idealerweise beim Start der App.

Anzeigen werden beim Aufrufen von Initialize() durch das Google Mobile Ads C++ SDK oder die Vermittlungspartner-SDKs vorab geladen. Wenn Sie die Einwilligung von Nutzern im Europäischen Wirtschaftsraum (EWR) einholen, anfragenspezifische Flags (z. B. tag_for_child_directed_treatment oder tag_for_under_age_of_consent) festlegen oder anderweitig vor dem Laden von Anzeigen Maßnahmen ergreifen müssen, müssen Sie hierzu firebase::gma::SetRequestConfiguration() aufrufen, bevor Sie das Google Mobile Ads C++ SDK initialisieren. 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 können Sie den Abschlussstatus eines Methodenaufrufs beobachten

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

Wenn deine App beispielsweise firebase::gma::Initialize() aufruft, wird ein neuer firebase::Future erstellt und zurückgegeben. Ihre App kann dann die status() von Future abfragen, um festzustellen, wann die Initialisierung abgeschlossen ist. Anschließend kann Ihre Anwendung result() aufrufen, um die entsprechende AdapterInitializationStatus abzurufen.

Methoden, die einen Future zurückgeben, haben eine entsprechende „letztes Ergebnis“-Methode, mit der Apps die aktuelle Future für eine bestimmte Aktion abrufen können. Beispiel: firebase::gma::Initialize() hat eine entsprechende Methode namens 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.

Du kannst auch Callbacks registrieren, die nach Abschluss von Future aufgerufen werden. In einigen Fällen wird der Callback in einem anderen Thread ausgeführt. Achten Sie also darauf, dass Ihr Code threadsicher ist. In diesem Code-Snippet wird ein Funktionszeiger für den Callback verwendet:

// 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 ist jetzt importiert und Sie können eine Anzeige implementieren. AdMob bietet verschiedene Anzeigenformate. So können Sie das Format auswählen, das am besten zu Ihrer App passt.

Rechteckige Anzeigen, die oben oder unten auf dem Bildschirm 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, ist das 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 des Ablaufs einer App, z. B. zwischen Levels oder kurz nachdem eine Aufgabe abgeschlossen ist.

Interstitial-Anzeigen implementieren

Verfügbar

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

Anzeigen mit Prämie implementieren