Banneranzeigen nehmen eine Position im Layout einer App ein, entweder oben oder unten auf dem Bildschirm des Geräts. Sie 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 mobilen Anzeigen geschaltet haben, sind sie ein guter Ausgangspunkt. Fallstudie
Vorbereitung
- Führen Sie die Schritte unter Jetzt starten aus.
- (Nur Android) Erfahrung mit JNI-
jobject
-Referenzen (siehe Tipps zu JNI für Android).
Verwenden Sie immer Testanzeigen
Verwenden Sie beim Erstellen und Testen Ihrer Apps Testanzeigen anstelle von aktiven Produktionsanzeigen. Andernfalls kann Ihr Konto gesperrt werden.
Am einfachsten laden Sie Testanzeigen mit der speziellen Test-Anzeigenblock-ID für Banner, die je nach Geräteplattform variiert:
- Android:
ca-app-pub-3940256099942544/6300978111
- iOS:
ca-app-pub-3940256099942544/2934735716
Diese Anzeigenblock-IDs wurden speziell so konfiguriert, dass bei jeder Anfrage Testanzeigen zurückgegeben werden. Sie können sie in Ihren eigenen Apps verwenden, während Sie Code schreiben, testen und Fehler beheben. Ersetzen Sie sie vor der Veröffentlichung Ihrer App durch Ihre eigene Anzeigenblock-ID.
Weitere Informationen zur Funktionsweise von Testanzeigen im Mobile Ads SDK finden Sie unter Testanzeigen.
Implementierung
AdView
konfigurieren
Banneranzeigen werden in AdView
-Objekten ausgeliefert. Der erste Schritt zur Einbindung von Banneranzeigen besteht also darin, ein AdView
zu erstellen und zu platzieren.
Fügen Sie dem C++-Code Ihrer App die folgende Kopfzeile hinzu:
#include "firebase/gma/ad_view.h"
Deklarieren und instanziieren Sie ein
AdView
-Objekt:firebase::gma::AdView* ad_view; ad_view = new firebase::gma::AdView();
Erstellen Sie eine
AdSize
und initialisieren Sie die Anzeigenansicht mit der übergeordnetenAdParent
-Ansicht. Die übergeordnete Ansicht ist eine JNI-jobject
-Referenz auf eine Android-Activity
oder ein Verweis auf eine iOS-UIView
, die in einenAdParent
-Typ umgewandelt wird:// my_ad_parent is a jobject reference // to an Android Activity or a pointer to an iOS UIView. firebase::gma::AdParent ad_parent = static_cast<firebase::gma::AdParent>(my_ad_parent); firebase::Future
result = ad_view->Initialize(ad_parent, kBannerAdUnit, firebase::gma::AdSize::kBanner); Anstatt die Future-Funktion als Variable zu speichern, können Sie den Status des Initialisierungsvorgangs auch regelmäßig prüfen, indem Sie
InitializeLastResult()
auf dasAdView
-Objekt anwenden. Das kann hilfreich sein, um den Initialisierungsprozess in Ihrer globalen Game-Schleife im Blick zu behalten.// Monitor the status of the future in your game loop: firebase::Future<void> result = ad_view->InitializeLastResult(); if (result.status() == firebase::kFutureStatusComplete) { // Initialization completed. if(future.error() == firebase::gma::kAdErrorCodeNone) { // Initialization successful. } else { // An error has occurred. } } else { // Initialization on-going. }
Weitere Informationen zur Arbeit mit
firebase::Future
finden Sie unter Mit Futures den Abschlussstatus von Methodenaufrufen überwachen.
Position der Anzeige festlegen
Sie können die Position der AdView
jederzeit nach der Initialisierung festlegen:
firebase::Future<void> result = ad_view->SetPosition(firebase::gma::AdView::kPositionTop);
Anzeige laden
Sobald die AdView
initialisiert wurde, kannst du eine Anzeige laden:
firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result = ad_view->LoadAd(my_ad_request);
AdRequest
-Objekte stellen eine einzelne Anzeigenanfrage dar und enthalten Eigenschaften für Informationen wie das Targeting.
Anzeige präsentieren
Zeigen Sie die Anzeige auf dem Bildschirm an, indem Sie Show()
aufrufen. Diese Methode kann jederzeit nach der Initialisierung der Anzeige aufgerufen werden:
firebase::Future<void> result = ad_view->Show();
Anzeigenereignisse
Das Google Mobile Ads C++ SDK bietet eine AdListener
-Klasse, die Sie erweitern und an AdView::SetListener()
übergeben können, um über Änderungen am Status der Anzeigenansicht benachrichtigt zu werden.
Das Erweitern von Methoden in AdListener
ist optional. Sie müssen also nur die gewünschten Methoden implementieren. Unten finden Sie ein Beispiel für die Implementierung einer Klasse, die alle Methoden der Klasse AdListener
erweitert:
class ExampleAdListener : public firebase::gma::AdListener { public: ExampleAdListener() {} void OnAdClicked() override { // This method is invoked when the user clicks the ad. } void OnAdClosed() override { // This method is invoked when the user closes the ad. } void OnAdImpression() override { // This method is invoked when an impression is recorded for an ad. } void OnAdOpened() override { // This method is invoked when an ad opens an overlay that covers the screen. } }; ExampleAdListener* ad_listener = new ExampleAdListener(); ad_view->SetAdListener(ad_listener);
Bannergrößen
In der folgenden Tabelle sind die Standardbannergrößen aufgeführt.
Größe in Punkten (BxH) | Beschreibung | Verfügbarkeit | Konstante „firebase::gma::AdSize“ |
---|---|---|---|
320 x 50 | Banner | Smartphones und Tablets | kBanner |
320 × 100 | Großes Banner | Smartphones und Tablets | kLargeBanner |
300 x 250 | IAB Medium Rectangle | Smartphones und Tablets | kMediumRectangle |
468 x 60 | IAB-Full-Size-Banner | Tablets | kFullBanner |
728 x 90 | IAB-Bestenliste | Tablets | kLeaderboard |
Angegebene Breite × Adaptive Höhe | Adaptives Banner | Smartphones und Tablets | – |
Benutzerdefinierte Anzeigengrößen
Wenn Sie eine benutzerdefinierte Bannergröße definieren möchten, legen Sie die gewünschten Abmessungen mit dem Konstruktor firebase::gma::AdSize
mit den Parametern „width“ und „height“ fest, wie hier gezeigt:
firebase::gma::AdSize ad_size(/*width=*/320, /*height=*/50);
Zusätzliche Ressourcen
Beispiel in GitHub
- Den Quellcode unserer Beispiel-App für die Kurzanleitung finden Sie auf GitHub.