了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

Beginnen Sie mit AdMob in Ihrem C++-Projekt

Diese Kurzanleitung richtet sich an Publisher und Entwickler, die mit AdMob eine mit Firebase erstellte App monetarisieren möchten. Wenn Sie nicht vorhaben, Firebase in Ihre App einzubinden, besuchen Sie stattdessen den eigenständigen AdMob-Leitfaden .

Informieren Sie sich über alle Vorteile der gemeinsamen Verwendung von AdMob, Firebase und Google Analytics, falls Sie dies noch nicht getan haben.

Wenn Sie dieses Handbuch zum ersten Mal lesen, empfehlen wir Ihnen, die C++ SDK-Test-App für Google Mobile Ads herunterzuladen und zu verwenden.

Bevor Sie beginnen

  • Wenn Sie noch kein Firebase-Projekt und keine Firebase-App haben, befolgen Sie die Anleitung für die ersten Schritte mit Firebase: Firebase zu Ihrem C++-Projekt hinzufügen .

  • 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 Workflows zur Projekterstellung.

    • Wenn Sie ein bestehendes Firebase-Projekt haben, in dem Google Analytics nicht aktiviert ist, können Sie Google Analytics auf der Registerkarte Integrationen Ihrer > Projekteinstellungen aktivieren.

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 registrieren Sie sich für ein AdMob-Konto.

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

    Sie werden aufgefordert, das Mobile Ads SDK zu Ihrer App hinzuzufügen. Ausführliche Anweisungen für diese Aufgabe finden Sie später 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 Nutzermesswerten 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 Nutzermesswerte , damit AdMob kuratierte Analysedaten in Ihrem AdMob-Konto verarbeiten und anzeigen kann. Es ist auch eine erforderliche Einstellung, damit Sie Ihre AdMob-App mit Firebase verknüpfen können.

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

      Stellen Sie sicher, dass Sie denselben Paketnamen (Android) oder dieselbe Bundle-ID (iOS) wie für Ihre Firebase-App eingeben. Suchen Sie den Paketnamen oder die Bundle-ID Ihrer Firebase-App auf der Karte Ihre Apps Ihrer > 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 <meta-data> -Tag 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 Stringwert 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 Eigenschaftslisten-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 settings.gradle Datei 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 CMakeLists.txt Datei 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 die erforderlichen Versionen haben.

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 ein firebase::Future zurück, das 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 Start der App.

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 ein Future , um den Abschlussstatus eines Methodenaufrufs zu überwachen

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

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

Methoden, die eine Future zurückgeben, haben eine entsprechende „letzte Ergebnis“-Methode, die Apps verwenden können, um die neueste Future für eine bestimmte Aktion abzurufen. Beispielsweise hat firebase::gma::Initialize() eine entsprechende Methode namens firebase::gma::InitializeLastResult() , die ein Future zurückgibt, mit dem Ihre App den Status des letzten Aufrufs von firebase::gma::Initialize() .

Wenn der Status von Future abgeschlossen ist und sein 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 also sicher, dass Ihr Code Thread-sicher ist. Dieses Code-Snippet 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 aus, das in Ihrer App implementiert werden soll

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

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

Bannerwerbung bleibt auf dem Bildschirm, während Benutzer mit der App interagieren, und kann nach einer bestimmten Zeit automatisch aktualisiert werden. Wenn Sie neu in der mobilen Werbung sind, sind sie ein großartiger Ausgangspunkt.

Werbebanner implementieren

Zwischenraum

Vollbildanzeigen, die die Benutzeroberfläche einer App abdecken, bis sie vom Benutzer geschlossen werden

Interstitial-Anzeigen werden am besten an natürlichen Pausen im Ablauf einer App-Ausführung eingesetzt, z. B. zwischen Levels eines Spiels oder kurz nach Abschluss einer Aufgabe.

Implementieren Sie Interstitial-Anzeigen

Belohnt

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

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

Implementieren Sie Anzeigen mit Prämie

Weitere interessante Themen

Zeigen Sie Benutzermetriken und Analysedaten an

Nach seiner Initialisierung beginnt das Mobile Ads SDK automatisch mit der Protokollierung von Analyseereignissen und Benutzereigenschaften aus 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 ).

(Optional) Verwenden 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.

    • Remote Config ermöglicht es Ihnen, das Verhalten und Erscheinungsbild Ihrer App zu ändern, ohne ein App-Update kostenlos zu veröffentlichen, für eine unbegrenzte Anzahl täglich aktiver Benutzer.

    • A/B-Tests geben Ihnen die Möglichkeit, Änderungen an der Benutzeroberfläche, den Funktionen oder Interaktionskampagnen Ihrer App zu testen, um zu erfahren, ob sie sich auf Ihre Schlüsselkennzahlen (wie Umsatz und Kundenbindung) auswirken, bevor Sie die Änderungen umfassend einführen.