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
- Ein
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:
Melden Sie sich in AdMob an oder registrieren Sie sich für eins.
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
Geben Sie in der Datei
gradle.properties
Ihres Projekts den Speicherort des entpackten SDK an:systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
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"
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 }
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}")
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.
Führen Sie den folgenden Befehl aus, um CocoaPods Version 1 oder höher abzurufen:
sudo gem install cocoapods --pre
Fügen Sie den Google Mobile Ads-Pod aus dem entpackten SDK hinzu.
Erstellen Sie eine Podfile-Datei, falls Sie noch keine haben:
cd your-app-directory
pod init
Fügen Sie den Pod für das Google Mobile Ads C++ SDK in Ihre Podfile-Datei ein:
pod 'Google-Mobile-Ads-SDK'
Installieren Sie den Pod und öffnen Sie dann die Datei
.xcworkspace
in Xcode.pod install
open your-app.xcworkspace
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_treatment
tag_for_under_age_of_consent
firebase::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.
Banner
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.
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