Dieser Leitfaden richtet sich an Publisher, die eine C++-App mit AdMob monetarisieren und nicht Firebase verwenden möchten. Wenn Sie Firebase in Ihre App einbinden möchten oder dies in Erwägung ziehen, lesen Sie stattdessen die Anleitung 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 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 einem AdMob-Konto an oder registrieren Sie sich dafür.
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
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 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 }
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, 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.
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 noch keine vorhanden ist:
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 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 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 wurde importiert und Sie können jetzt eine Anzeige implementieren. AdMob bietet verschiedene Anzeigenformate. So können Sie das Format auswählen, das am besten zu Ihrer App passt.
Banner
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 sie ein guter Ausgangspunkt.
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 im Ablauf einer App, etwa 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.