Interstitial-Anzeigen sind Vollbildanzeigen, die die Benutzeroberfläche einer App verdecken, bis sie vom Nutzer geschlossen werden. Sie werden normalerweise an natürlichen Übergangspunkten im Ablauf einer App eingeblendet, z. B. zwischen Aktivitäten oder während der Pause zwischen Leveln in einem Spiel. Wenn in einer App eine Interstitial-Anzeige eingeblendet wird, kann der Nutzer entweder auf die Anzeige tippen und weiter zum Ziel gelangen oder sie schließen und zur App zurückkehren. Fallstudie
In diesem Leitfaden erfahren Sie, wie Sie Interstitial-Anzeigen mithilfe des Google Mobile Ads C++ SDK in Android- und iOS-Apps integrieren.
Voraussetzungen
- Schließen Sie Jetzt starten ab.
- (Nur Android) Erfahrung beim Arbeiten mit JNI
jobject
-Referenzen (siehe Android JNI-Tipps).
Immer mit Testanzeigen testen
Verwenden Sie beim Entwickeln und Testen Ihrer Apps Testanzeigen und keine Produktionsanzeigen. Andernfalls kann Ihr Konto gesperrt werden.
Am einfachsten lassen sich Testanzeigen mit unserer dedizierten Testanzeigenblock-ID für Interstitials laden, die je nach Geräteplattform variiert:
- Android:
ca-app-pub-3940256099942544/1033173712
- iOS:
ca-app-pub-3940256099942544/4411468910
Sie wurden speziell so konfiguriert, dass bei jeder Anfrage Testanzeigen zurückgegeben werden. Sie können sie beim Programmieren, Testen und Debuggen in Ihren eigenen Apps verwenden. Ersetzen Sie sie lediglich durch Ihre Anzeigenblock-ID, bevor Sie Ihre App veröffentlichen.
Weitere Informationen zur Funktionsweise von Testanzeigen des Mobile Ads SDK finden Sie unter Testanzeigen.
Implementierung
Die wichtigsten Schritte zur Integration von Interstitial-Anzeigen sind:
- Laden Sie eine Anzeige.
- Registrieren Sie sich für Rückrufe.
- Die Anzeige einblenden und ihre Lebenszyklus-Ereignisse verarbeiten
InterstitialAd
konfigurieren
Interstitial-Anzeigen werden in InterstitialAd
-Objekten ausgeliefert. Zur Einbindung von Interstitial-Anzeigen in Ihre App muss also zuerst ein InterstitialAd
-Objekt erstellt und initialisiert werden.
Fügen Sie dem C++-Code Ihrer App den folgenden Header hinzu:
#include "firebase/gma/interstial_ad.h"
Deklarieren und instanziieren Sie ein
InterstitialAd
-Objekt:firebase::gma::InterstitialAd* interstitial_ad; interstitial_ad = new firebase::gma::InterstitialAd();
Initialisieren Sie die Instanz
InterstitialAd
mit Ihrer übergeordneten Ansicht, die in einenAdParent
-Typ umgewandelt wird. Die übergeordnete Ansicht ist eine JNI-jobject
-Referenz auf ein Android-Activity
oder ein Verweis auf eine iOS-UIView
.// 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<void> result = interstitial_ad->Initialize(ad_parent);
Anstatt das Future als Variable beizubehalten, können Sie den Status des Initialisierungsvorgangs regelmäßig prüfen. Rufen Sie dazu
InitializeLastResult()
für dasInterstitialAd
-Objekt auf. Dies kann hilfreich sein, um den Initialisierungsprozess in Ihrer globalen Spielschleife nachzuverfolgen.// Monitor the status of the future in your game loop: firebase::Future<void> result = interstitial_ad->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 Verwendung von firebase::Future
finden Sie unter Futures zum Überwachen des Abschlussstatus von Methodenaufrufen verwenden.
Anzeige laden
Eine Anzeige wird mit der Methode LoadAd()
im InterstitialAd
-Objekt geladen. Für die Lademethode ist es erforderlich, dass Sie das InterstitialAd
-Objekt initialisiert haben. Außerdem benötigen Sie Ihre Anzeigenblock-ID und ein AdRequest
-Objekt. Es wird ein firebase::Future
zurückgegeben, mit dem Sie den Status und das Ergebnis des Ladevorgangs überwachen können.
Der folgende Code zeigt, wie eine Anzeige geladen wird, nachdem InterstitialAd
erfolgreich initialisiert wurde:
firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result;
load_ad_result = interstitial_ad->LoadAd(interstitial_ad_unit_id, ad_request);
Für Rückrufe registrieren
Sie müssen die FullScreenContentListener
-Klasse erweitern, um Benachrichtigungen über die Präsentation von Interstitial-Anzeigen und Lebenszyklusereignisse zu erhalten. Ihre benutzerdefinierte FullScreenContentListener
-Unterklasse kann über die Methode InterstitialAd::SetFullScreenContentListener()
registriert werden. Sie erhält Callbacks, wenn die Anzeige erfolgreich oder nicht erfolgreich präsentiert oder geschlossen wird.
Der folgende Code zeigt, wie die Klasse erweitert und der Anzeige zugewiesen wird:
class ExampleFullScreenContentListener : public firebase::gma::FullScreenContentListener { public: ExampleFullScreenContentListener() {} void OnAdClicked() override { // This method is invoked when the user clicks the ad. } void OnAdDismissedFullScreenContent() override { // This method is invoked when the ad dismisses full screen content. } void OnAdFailedToShowFullScreenContent(const AdError& error) override { // This method is invoked when the ad failed to show full screen content. // Details about the error are contained within the AdError parameter. } void OnAdImpression() override { // This method is invoked when an impression is recorded for an ad. } void OnAdShowedFullScreenContent() override { // This method is invoked when the ad showed its full screen content. } }; ExampleFullScreenContentListener* full_screen_content_listener = new ExampleFullScreenContentListener(); interstitial_ad->SetFullScreenContentListener(full_screen_content_listener);
InterstitialAd
ist ein Objekt zur einmaligen Verwendung. Sobald eine Interstitial-Anzeige ausgeliefert wurde, kann sie nicht mehr ausgeliefert werden. Als Best Practice wird empfohlen, eine weitere Interstitial-Anzeige in der OnAdDismissedFullScreenContent()
-Methode Ihrer FullScreenContentListener
zu laden, damit die nächste Interstitial-Anzeige so schnell wie die vorherige geschlossen wird.
Anzeige einblenden
Interstitials sollten bei natürlichen Pausen im Nutzerfluss eingeblendet werden.
Zwischen Levels eines Spiels sind gute Beispiele dafür oder nachdem der Nutzer eine Aufgabe abgeschlossen hat.
Mit FullScreenContentListener
lässt sich zwar ermitteln, wann eine Anzeige im Vollbildmodus eingeblendet wurde, aber das von Show()
zurückgegebene Future-Objekt gibt auch an, wann die Anzeige erfolgreich ausgeliefert wurde.
firebase::Future<void> result = interstitial_ad->Show();
Best Practices
- Überlegen Sie, ob Interstitial-Anzeigen der richtige Anzeigentyp für Ihre App sind.
- Interstitial-Anzeigen funktionieren am besten in Apps mit natürlichen Übergangspunkten. Der Abschluss einer Aufgabe in einer App, z. B. das Teilen eines Bildes oder das Abschließen eines Levels in einem Spiel, erzeugt einen solchen Punkt. Da der Nutzer eine Unterbrechung der Aktion erwartet, kann eine Interstitial-Anzeige präsentiert werden, ohne die Nutzererfahrung zu beeinträchtigen. Überlege dir gut, an welchen Stellen im Workflow deiner App Interstitial-Anzeigen ausgeliefert werden sollen und wie die Nutzer wahrscheinlich darauf reagieren werden.
- Pausieren Sie die Aktion, wenn eine Interstitial-Anzeige ausgeliefert wird.
- Es gibt verschiedene Arten von Interstitial-Anzeigen: Text-, Bild- und Videoanzeigen. Wenn in Ihrer App eine Interstitial-Anzeige ausgeliefert wird, muss auch die Nutzung einiger Ressourcen unterbrochen werden, damit diese von der Anzeige genutzt werden können. Wenn Sie beispielsweise den Aufruf zum Ausliefern einer Interstitial-Anzeige starten, muss die Audioausgabe Ihrer App angehalten werden. Sie können die Wiedergabe von Ton in der
OnAdDismissedFullScreenContent
-Methode des installiertenFullScreenContentListener
fortsetzen, das aufgerufen wird, wenn der Nutzer mit der Anzeige interagiert hat. Außerdem sollten Sie intensive Rechenaufgaben (z. B. eine Spielschleife) vorübergehend anhalten, während die Anzeige zu sehen ist. So wird verhindert, dass der Nutzer eine langsame oder nicht reagierende Grafik oder ein ruckeliges Video sieht. - Achten Sie auf eine ausreichende Ladezeit.
- Interstitial-Anzeigen sollten nicht nur zum richtigen Zeitpunkt ausgeliefert werden, sondern auch, dass der Nutzer nicht warten muss, bis sie geladen sind. Wenn Sie die Anzeige im Voraus laden, bevor sie ausgeliefert werden soll, können Sie dafür sorgen, dass in Ihrer App zum Zeitpunkt der Auslieferung eine vollständig geladene Interstitial-Anzeige verfügbar ist.
- Überschwemmen Sie Nutzer nicht mit Anzeigen.
- Die Häufigkeit von Interstitial-Anzeigen in Ihrer App scheint eine gute Möglichkeit zu sein, den Umsatz zu steigern. Sie kann aber auch die Nutzerfreundlichkeit beeinträchtigen und die Klickraten senken. Achte darauf, dass Nutzer nicht so häufig unterbrochen werden, dass sie die Nutzung deiner App nicht mehr genießen können.
- Verwenden Sie zum Einblenden der Interstitial-Anzeige nicht die Funktion für den Abschluss des Ladevorgangs.
- Dies kann zu einer schlechten Nutzererfahrung führen. Stattdessen sollten Sie die Anzeige im Voraus laden, bevor Sie sie schalten müssen.
Zusätzliche Ressourcen
Beispiel in GitHub
- Sehen Sie sich den Quellcode unserer Schnellstart-App in GitHub an.
Videoanleitungen der Google Zukunftswerkstatt für mobile Anzeigen
Erfolgsgeschichten
Nächste Schritte
- Falls noch nicht geschehen, erstellen Sie auf der AdMob-Benutzeroberfläche einen eigenen Interstitial-Anzeigenblock.
- Weitere Informationen zur Anzeigenausrichtung und zu den Richtlinien für Interstitial-Anzeigen