Beginnen Sie mit AdMob in Ihrem C++-Projekt

Diese Kurzanleitung richtet sich an Publisher und Entwickler, die AdMob zur Monetarisierung einer mit Firebase erstellten App verwenden möchten. Wenn Sie Firebase nicht in Ihre App integrieren möchten, lesen Sie stattdessen den eigenständigen AdMob-Leitfaden .

Falls Sie es noch nicht getan haben, erfahren Sie mehr über alle Vorteile der gemeinsamen Verwendung von AdMob, Firebase und Google Analytics.

Wenn Sie diesen Leitfaden zum ersten Mal durchgehen, empfehlen wir Ihnen, die Google Mobile Ads C++ SDK-Test-App herunterzuladen und mit ihr weiterzumachen.

Bevor Sie beginnen

  • Wenn Sie noch kein Firebase-Projekt und keine Firebase-App haben, folgen Sie der Firebase-Anleitung „Erste Schritte“: Fügen Sie Firebase zu Ihrem C++-Projekt hinzu .

  • Stellen Sie sicher, dass Google Analytics in Ihrem Firebase-Projekt aktiviert ist:

    • Wenn Sie ein neues Firebase-Projekt erstellen, aktivieren Sie Google Analytics während des Projekterstellungsworkflows.

    • Wenn Sie über ein bestehendes Firebase-Projekt verfügen, in dem Google Analytics nicht aktiviert ist, können Sie Google Analytics über die Registerkarte „Integrationen“ Ihres Projekts aktivieren > Projekteinstellungen .

Schritt 1: Richten Sie Ihre App in Ihrem AdMob-Konto ein

  1. Registrieren Sie jede Plattformvariante Ihrer App als AdMob-App.

    1. Melden Sie sich an oder erstellen Sie ein AdMob-Konto.

    2. Registrieren Sie jede Plattformvariante Ihrer App bei AdMob . In diesem Schritt wird eine AdMob-App mit einer eindeutigen AdMob-App-ID erstellt, die Sie später in diesem Handbuch benötigen.

    Sie werden aufgefordert, das Mobile Ads SDK zu Ihrer App hinzuzufügen. Detaillierte Anweisungen für diese Aufgabe finden Sie weiter unten in diesem Handbuch.

  2. Verknüpfen Sie jede Ihrer AdMob-Apps mit der entsprechenden Firebase-App.

    Dieser Schritt ist optional, wird jedoch dringend empfohlen. Erfahren Sie mehr über die Vorteile der Aktivierung von Nutzermetriken und der Verknüpfung Ihrer AdMob-Apps mit Firebase.

    Führen Sie für jede Plattformvariante die folgenden zwei Schritte im Apps- Dashboard Ihres AdMob-Kontos aus:

    1. Aktivieren Sie Benutzermetriken , damit AdMob kuratierte Analysedaten in Ihrem AdMob-Konto verarbeiten und anzeigen kann. Es handelt sich außerdem um eine erforderliche Einstellung, damit Sie Ihre AdMob-App mit Firebase verknüpfen können.

    2. Verknüpfen Sie Ihre AdMob-App mit Ihrem vorhandenen Firebase-Projekt und der entsprechenden Firebase-App.

      Stellen Sie sicher, dass Sie denselben Paketnamen (Android) oder dieselbe Bundle-ID (iOS) eingeben, die Sie für Ihre Firebase-App eingegeben haben. Den Paketnamen oder die Bundle-ID Ihrer Firebase-App finden Sie auf der Karte „Ihre Apps“ Ihres > Projekteinstellungen .

Schritt 2: Fügen Sie Ihrer App Ihre AdMob-App-ID hinzu

Android

Fügen Sie Ihre AdMob-App-ID zur AndroidManifest.xml Datei Ihrer App hinzu, indem Sie das Tag <meta-data> wie unten gezeigt hinzufügen.

<manifest>
    <application>
        <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ADMOB_APP_ID"/>
    </application>
</manifest>

iOS

Fügen Sie in der Info.plist Datei Ihrer App einen GADApplicationIdentifier Schlüssel mit einem Zeichenfolgenwert Ihrer AdMob-App-ID hinzu.

Sie können diese Änderung programmgesteuert vornehmen:

<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 -->
<key>GADApplicationIdentifier</key>
<string>ADMOB_APP_ID</string>

Oder bearbeiten Sie es im Eigenschaftenlisten-Editor:

Eigenschaftslisten-Editor

Schritt 3: Fügen Sie das Google Mobile Ads SDK hinzu

Da sich das Google Mobile Ads C++ SDK im firebase::gma Namespace befindet, laden Sie das Firebase C++ SDK herunter und entpacken Sie es dann 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 Ihrer Modul-Gradle-Datei (auf App-Ebene) (normalerweise app/build.gradle ) den folgenden Inhalt hinzu, der die Bibliotheksabhängigkeit für das Google Mobile Ads C++ SDK enthält.

    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 sicherzustellen, dass alle Abhängigkeiten über die erforderlichen Versionen verfügen.

Sie sind bereit! Ihre C++-App ist für die Verwendung des Google Mobile Ads C++ SDK konfiguriert.

iOS

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

  1. Holen Sie sich CocoaPods Version 1 oder höher, indem Sie Folgendes 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 Poddatei, falls Sie noch keine haben:

      cd YOUR_APP_DIRECTORY
      pod init
    2. Fügen Sie Ihrer Poddatei den Pod für das Google Mobile Ads C++ SDK hinzu:

      pod 'Google-Mobile-Ads-SDK'
    3. Installieren Sie den Pod und öffnen Sie dann die .xcworkspace Datei 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

Sie sind bereit! Ihre C++-App ist für die Verwendung des Google Mobile Ads C++ SDK konfiguriert.

Schritt 4: Initialisieren Sie das Google Mobile Ads SDK

Initialisieren Sie vor dem Laden von Anzeigen das Mobile Ads SDK, indem Sie firebase::gma::Initialize() aufrufen.

Dieser Aufruf gibt einen firebase::Future zurück, der abgeschlossen wird, sobald die Initialisierung abgeschlossen ist (oder nach einem 30-Sekunden-Timeout). Rufen Sie diese Methode nur einmal und so früh wie möglich auf, idealerweise beim App-Start.

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

Verwenden Sie einen Future , um den Abschlussstatus eines Methodenaufrufs zu überwachen

Ein Future bietet Ihnen die Möglichkeit, den Abschlussstatus Ihrer asynchronen Methodenaufrufe zu bestimmen.

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

Methoden, die einen Future zurückgeben, verfügen über eine entsprechende Methode „Letztes Ergebnis“, mit der Apps den neuesten Future für eine bestimmte Aktion abrufen können. Beispielsweise verfügt firebase::gma::Initialize() über eine entsprechende Methode namens firebase::gma::InitializeLastResult() , die einen Future zurückgibt, den Ihre App verwenden kann, um den Status des letzten Aufrufs von firebase::gma::Initialize() .

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

Sie können auch Rückrufe registrieren, die aufgerufen werden, wenn ein Future abgeschlossen ist. In einigen Fällen wird der Rückruf in einem anderen Thread ausgeführt. Stellen Sie daher sicher, dass Ihr Code threadsicher ist. Dieses Codefragment verwendet einen Funktionszeiger für den Rückruf:

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

Schritt 5: Wählen Sie ein Anzeigenformat zur Implementierung in Ihrer App

AdMob bietet eine Reihe verschiedener Anzeigenformate, sodass Sie das Format auswählen können, das am besten zum Nutzererlebnis Ihrer App passt. Klicken Sie auf eine Schaltfläche für ein Anzeigenformat, um detaillierte Implementierungsanweisungen in der AdMob-Dokumentation anzuzeigen.

Rechteckige Anzeigen, die oben oder unten auf dem Gerätebildschirm erscheinen

Banneranzeigen bleiben auf dem Bildschirm, während Benutzer mit der App interagieren, und können nach einer bestimmten Zeitspanne automatisch aktualisiert werden. Wenn Sie neu in der mobilen Werbung sind, sind sie ein guter Ausgangspunkt.

Implementieren Sie Bannerwerbung

Interstitial

Vollbildanzeigen, die die Benutzeroberfläche einer App abdecken, bis sie vom Nutzer geschlossen wird

Interstitial-Anzeigen werden am besten in natürlichen Pausen im Ausführungsfluss einer App eingesetzt, z. B. zwischen Levels eines Spiels oder direkt nach Abschluss einer Aufgabe.

Implementieren Sie Interstitial-Anzeigen

Belohnt

Anzeigen, die Benutzer dafür belohnen, dass sie sich kurze Videos ansehen und mit abspielbaren Anzeigen und Umfragen interagieren

Belohnte (oder „belohnungsbasierte“) Anzeigen können dazu beitragen, Free-to-Play-Nutzer zu monetarisieren.

Implementieren Sie belohnte Anzeigen

Weitere interessante Themen

Sehen Sie sich Benutzermetriken und Analysedaten an

Nach der Initialisierung beginnt das Mobile Ads SDK automatisch mit der Protokollierung von Analyseereignissen und Benutzereigenschaften Ihrer App. Sie können diese Daten anzeigen, ohne Ihrer App zusätzlichen Code hinzuzufügen oder Anzeigen zu implementieren. Hier können Sie diese Analysedaten sehen:

Beachten Sie, dass Sie zur besseren Darstellung von ARPU- und ARPPU- Metriken möglicherweise Daten aus einem benutzerdefinierten Analyseereignis namens ecommerce_purchase in die Umsatzberechnung für diese Metriken einbeziehen möchten ( erfahren Sie, wie das geht ).

(Optional) Nutzen Sie weitere Funktionen von Google Analytics und Firebase

Nutzen Sie weitere Möglichkeiten und Funktionen, um die App-Monetarisierung und das Benutzerengagement zu verbessern:

  • Fügen Sie das Firebase SDK für Google Analytics hinzu und verwenden Sie es

    Weitere Informationen finden Sie im Leitfaden zur Verwendung von Google Analytics und Firebase mit AdMob-Apps .

  • Verwenden Sie andere Firebase-Produkte in Ihrer App

    Nachdem Sie das Firebase SDK für Google Analytics hinzugefügt haben, können Sie andere Firebase-Produkte verwenden, um Anzeigen in Ihrer App zu optimieren.

    • Mit Remote Config können Sie das Verhalten und Erscheinungsbild Ihrer App ändern, ohne ein App-Update zu veröffentlichen, und zwar kostenlos und für unbegrenzte täglich aktive Benutzer.

    • Mit A/B-Tests können Sie Änderungen an der Benutzeroberfläche, den Funktionen oder Engagement-Kampagnen Ihrer App testen, um herauszufinden, ob sie sich auf Ihre wichtigsten Kennzahlen (wie Umsatz und Kundenbindung) auswirken, bevor Sie die Änderungen umfassend einführen.