Dieser Leitfaden richtet sich an Publisher, die eine C++-App mit AdMob monetarisieren möchten, ohne Firebase zu verwenden. Wenn Sie Firebase in Ihre App einbinden oder sehen Sie sich die AdMob- und Firebase-Version davon Anleitung.
Die Integration des Google Mobile Ads C++ SDK in eine App ist der erste Schritt zur Anzeigen schalten und Einnahmen erzielen. Nach der Integration des SDK können Sie wählen Sie ein Anzeigenformat aus, z. B. „Interstitial“ oder „Mit Prämie“, und folgen Sie der Anleitung, um sie zu implementieren.
Das Google Mobile Ads C++ SDK umschließt die Google Mobile Ads SDKs für iOS und Android und ist nur auf diesen Plattformen verfügbar. Mit dem Google Mobile Ads C++ SDK
Verwendung von Firebase C++ Konstrukten zur Unterstützung asynchroner Vorgänge, sodass sie
im Namespace firebase::gma
.
Wenn Sie diesen Leitfaden zum ersten Mal durchgehen, sollten Sie Laden Sie den C++ Test für Google Mobile Anzeigen App.
Vorbereitung
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 compileSdkVersion
von 28 oder höher
- Ein
iOS
- Verwenden Sie Xcode 13 oder höher.
- Ausrichtung auf iOS 10.0 oder höher
App in Ihrem AdMob-Konto einrichten
So registrieren Sie Ihre App als AdMob-App:
Anmelden in oder registrieren für ein AdMob-Konto.
Registrieren Sie Ihre App bei AdMob. In diesem Schritt wird eine App mit einer eindeutigen AdMob-App-ID die wir später in diesem Leitfaden 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 in ein beliebiges Verzeichnis.
Das Firebase C++ SDK ist nicht plattformspezifisch, erfordert aber plattformspezifischen Bibliothekskonfigurationen zu erstellen.
Android
Wir empfehlen die Verwendung von CMake. Eine Anleitung für ndk-build finden Sie in unserem allgemeinen Leitfaden für den Einstieg in das Firebase C++ SDK. Dort erfahren Sie auch, wie Sie libfirebase_app.a
und libfirebase_gma.a
mit Ihrer App verknüpfen.
Geben Sie in der Datei
gradle.properties
Ihres Projekts den Speicherort des entpackten SDK: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"
In die Gradle-Datei Ihres Moduls (auf App-Ebene), in der Regel
app/build.gradle
: Fügen Sie die folgenden Inhalte hinzu, einschließlich des 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 Anwendung, damit alle Abhängigkeiten die erforderlichen Versionen haben.
iOS
Die Schritte in diesem Abschnitt sind ein Beispiel für das Hinzufügen der C++ SDK zu Ihrem iOS-Projekt hinzu.
Führen Sie 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 APP_DIRECTORY
pod init
Fügen Sie Ihrer Podfile die Pods für das Google Mobile Ads C++ SDK, das Google User Messaging Platform SDK und das minimale Firebase Core SDK hinzu, das vom GMA C++ SDK benötigt wird:
pod 'Firebase/CoreOnly' pod 'Google-Mobile-Ads-SDK' pod 'GoogleUserMessagingPlatform'
Installieren Sie die Pods und öffnen Sie dann die Datei
.xcworkspace
in Xcode.pod install
open 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 für die Verwendung des Google Mobile Ads C++ SDK ohne andere Firebase-Dienste konfiguriert.
AdMob-App-ID der App konfigurieren
Android
Führen Sie Schritt 3 unter App konfigurieren aus (siehe Mobile Ads SDK). Anleitung für Android und kehren dann zu dieser Seite zurück.
iOS
Führen Sie den Schritt Info.plist aktualisieren aus, wie im Leitfaden für das Mobile Ads SDK für iOS beschrieben, und kehren Sie dann zu dieser Seite zurück.
Google Mobile Ads SDK initialisieren
Bevor Anzeigen geladen werden, muss Ihre App das Google Mobile Ads C++ SDK initialisieren, indem Sie
Aufrufen von firebase::gma::Initialize()
, wodurch das SDK initialisiert und ein
firebase::Future
nach Abschluss der Initialisierung (oder nach 30 Sekunden
Zeitüberschreitung). Dies muss nur einmal erfolgen, idealerweise beim Starten der App.
Anzeigen können vom Google Mobile Ads C++ SDK oder von den SDKs von Vermittlungspartnern vorab geladen werden, wenn Initialize()
aufgerufen wird. Wenn Sie die Einwilligung von Nutzern im Europäischen Wirtschaftsraum (EWR) einholen, anfragespezifische Flags wie tag_for_child_directed_treatment
oder tag_for_under_age_of_consent
setzen oder vor dem Laden von Anzeigen andere Maßnahmen ergreifen müssen, müssen Sie dies tun, indem Sie firebase::gma::SetRequestConfiguration()
aufrufen, bevor Sie das Google Mobile Ads C++ SDK initialisieren. Weitere Informationen finden Sie in unserem Leitfaden zum Targeting.
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 überwachen
Mit einem Future
können Sie den Abschlussstatus Ihrer asynchronen Methodenaufrufe ermitteln.
Wenn Ihre App beispielsweise firebase::gma::Initialize()
aufruft, wird eine neue
firebase::Future
wird erstellt und zurückgegeben. Ihre App kann dann den status()
des Future
abfragen, um festzustellen, wann die Initialisierung abgeschlossen ist.
Anschließend kann Ihre App result()
aufrufen, um das resultierende
AdapterInitializationStatus
.
Methoden, die ein Future
zurückgeben, haben ein entsprechendes "letztes Ergebnis" mit der
Apps können verwenden, um die neuesten Future
für eine bestimmte Aktion abzurufen. firebase::gma::Initialize()
hat beispielsweise 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“ und der Fehlercode firebase::gma::kAdErrorCodeNone
ist, wurde der Vorgang erfolgreich abgeschlossen.
Sie können auch Callbacks registrieren, die aufgerufen werden, wenn eine Future
abgeschlossen ist. In
wird der Callback in einem anderen Thread ausgeführt.
ist der Code threadsicher. In diesem Code-Snippet wird ein Funktionszeiger für den Rückruf 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 jetzt importiert und Sie können eine Anzeige implementieren. AdMob bietet eine Reihe verschiedener Anzeigenformate, sodass Sie das Format auswählen können, das am besten zur Nutzerfreundlichkeit Ihrer App passt.
Banner
Rechteckige Anzeigen, die oben oder unten auf dem Bildschirm des Geräts eingeblendet werden. Banneranzeigen bleiben auf dem Bildschirm, während Nutzer mit der App interagieren. nach einer bestimmten Zeit automatisch aktualisiert werden. Wenn Sie noch keine Erfahrung mit mobiler Werbung haben, sind sie ein guter Ausgangspunkt.
Interstitial
Vollbildanzeigen, die die Benutzeroberfläche einer App verdecken, bis sie vom Nutzer geschlossen werden. Sie werden am besten bei natürlichen Pausen während der Ausführung einer App eingesetzt, z. B. zwischen den Leveln eines Spiels oder direkt nach Erledigung einer Aufgabe.
Interstitial-Anzeigen implementieren
Verfügbar
Anzeigenformat, bei dem Nutzer, die sich kurze Videos ansehen oder mit spielbaren Anzeigen oder Umfragen interagieren, mit Prämien belohnt werden. Wird zur Monetarisierung kostenloser Apps verwendet.