Interstitial-Anzeigen sind Vollbildanzeigen, die die Benutzeroberfläche einer App überlagern, bis sie vom Nutzer geschlossen werden. Sie werden in der Regel an natürlichen Übergangspunkten innerhalb einer App eingeblendet, z. B. zwischen Aktivitäten oder Levels. Wenn in einer App eine Interstitial-Anzeige eingeblendet wird, kann der Nutzer entweder auf die Anzeige tippen und zur Zielseite weitergeleitet werden 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 einbinden.
Vorbereitung
- Schließen Sie Jetzt starten ab.
- (Nur Android) Vertrautheit mit JNI-
jobject-Referenzen (siehe Android JNI-Tipps).
Immer mit Testanzeigen testen
Verwenden Sie beim Erstellen und Testen Ihrer Apps Testanzeigen anstelle von Live-Anzeigen. Andernfalls kann es zu einer Sperrung Ihres Kontos kommen.
Testanzeigen lassen sich am einfachsten mit unserer speziellen Test-Anzeigenblock-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 für jede Anfrage Testanzeigen zurückgegeben werden. Sie können sie in Ihren eigenen Apps beim Programmieren, Testen und Debuggen verwenden. Ersetzen Sie sie durch Ihre eigene Anzeigenblock-ID, bevor Sie Ihre App veröffentlichen.
Weitere Informationen zur Funktionsweise der Testanzeigen des Mobile Ads SDK finden Sie unter Testanzeigen.
Implementierung
Die wichtigsten Schritte zum Einbinden von Interstitial-Anzeigen sind:
- Anzeige laden
- Registrieren Sie sich für Rückrufe.
- Anzeige einblenden und die zugehörigen Lifecycle-Events verarbeiten
InterstitialAd konfigurieren
Interstitial-Anzeigen werden in InterstitialAd-Objekten angezeigt. Der erste Schritt zur Einbindung von Interstitial-Anzeigen in Ihre App besteht also darin, ein InterstitialAd-Objekt zu erstellen und zu initialisieren.
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
InterstitialAd-Instanz mit der übergeordneten Ansicht, die in einenAdParent-Typ umgewandelt wurde. Die Elternansicht ist eine JNI-jobject-Referenz auf ein Android-Activityoder ein Zeiger auf ein 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);Alternativ können Sie den Status des Initialisierungsvorgangs regelmäßig prüfen, indem Sie
InitializeLastResult()für dasInterstitialAd-Objekt aufrufen. Dies kann hilfreich sein, um den Initialisierungsprozess in Ihrer globalen Spielschleife im Auge zu behalten.// 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 Arbeit mit firebase::Future finden Sie unter Futures verwenden, um den Abschlussstatus von Methodenaufrufen zu überwachen.
Anzeige laden
Anzeigen werden mit der Methode LoadAd() für das Objekt InterstitialAd geladen. Für die Methode „load“ müssen Sie das Objekt InterstitialAd initialisiert haben und die Anzeigenblock-ID sowie ein AdRequest-Objekt angeben. 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 das 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 Callbacks registrieren
Sie müssen die Klasse FullScreenContentListener erweitern, um Benachrichtigungen zur Präsentation von Interstitial-Anzeigen und zu Lifecycle-Events zu erhalten. Ihre benutzerdefinierte FullScreenContentListener-Unterklasse kann über die Methode InterstitialAd::SetFullScreenContentListener() registriert werden. Sie erhält dann Callbacks, wenn die Anzeige erfolgreich oder nicht erfolgreich präsentiert wird und wenn sie geschlossen wird.
Der folgende Code zeigt, wie Sie die Klasse erweitern und der Anzeige zuweisen:
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 Einmalobjekt. Das bedeutet, dass eine Interstitial-Anzeige nicht noch einmal ausgeliefert werden kann, nachdem sie einmal ausgeliefert wurde. Wir empfehlen, in der Methode OnAdDismissedFullScreenContent() von FullScreenContentListener eine weitere Interstitial-Anzeige zu laden, damit die nächste Interstitial-Anzeige geladen wird, sobald die vorherige geschlossen wird.
Anzeige darstellen
Interstitial-Anzeigen sollten während natürlicher Pausen im Ablauf einer App eingeblendet werden, z. B. zwischen den Levels eines Spiels, oder nachdem der Nutzer eine Aufgabe abgeschlossen hat.
Mit dem FullScreenContentListener lässt sich feststellen, wann eine Anzeige ihren Vollbildinhalt gezeigt hat. Das von Show() zurückgegebene Future signalisiert aber auch, 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. Ein solcher Punkt entsteht, wenn eine Aufgabe in einer App abgeschlossen wird, z. B. wenn ein Bild geteilt oder ein Level in einem Spiel abgeschlossen wird. Da der Nutzer eine Unterbrechung der Aktion erwartet, kann eine Interstitial-Anzeige präsentiert werden, ohne dass die Nutzererfahrung beeinträchtigt wird. Überlege dir, an welchen Stellen im Workflow deiner App du Interstitial-Anzeigen einblenden möchtest und wie der Nutzer wahrscheinlich darauf reagiert.
- Denken Sie daran, die Aktion zu pausieren, wenn eine Interstitial-Anzeige eingeblendet wird.
- Es gibt verschiedene Arten von Interstitial-Anzeigen, darunter Text-, Bild- und Videoanzeigen. Wenn in Ihrer App eine Interstitial-Anzeige eingeblendet wird, sollten Sie die Nutzung einiger Ressourcen aussetzen, damit die Anzeige diese nutzen kann. Wenn Sie beispielsweise eine Interstitial-Anzeige einblenden, sollten Sie die Audioausgabe Ihrer App pausieren. Sie können die Audiowiedergabe in der Methode
OnAdDismissedFullScreenContentdes installiertenFullScreenContentListenerfortsetzen, die aufgerufen wird, wenn der Nutzer die Interaktion mit der Anzeige beendet hat. Außerdem sollten Sie rechenintensive Aufgaben wie eine Spielschleife vorübergehend anhalten, während die Anzeige eingeblendet wird. So wird verhindert, dass die Grafik langsam oder gar nicht reagiert oder das Video ruckelt. - Planen Sie ausreichend Ladezeit ein.
- Genauso wichtig wie die Anzeige von Interstitial-Anzeigen zu einem geeigneten Zeitpunkt ist es, dafür zu sorgen, dass der Nutzer nicht auf das Laden der Anzeigen warten muss. Wenn Sie die Interstitial-Anzeige vorab laden, ist sie vollständig geladen, wenn sie eingeblendet werden soll.
- Überhäufen Sie die Nutzer nicht mit Anzeigen.
- Die Häufigkeit von Interstitial-Anzeigen in Ihrer App zu erhöhen, mag zwar eine gute Möglichkeit sein, den Umsatz zu steigern, kann aber auch die Nutzerfreundlichkeit beeinträchtigen und die Klickraten senken. Achten Sie darauf, dass Nutzer nicht so häufig unterbrochen werden, dass sie Ihre App nicht mehr gern verwenden.
- Verwenden Sie nicht das Future für den Abschluss des Ladevorgangs, um die Interstitial-Anzeige einzublenden.
- Dies kann zu einer schlechten Nutzererfahrung führen. Laden Sie die Anzeige stattdessen vorab, bevor Sie sie präsentieren müssen.
Zusätzliche Ressourcen
Beispiel in GitHub
- Sehen Sie sich den Quellcode unserer Beispiel-App für den Schnelleinstieg auf GitHub an.
Video-Tutorials der Mobile Ads Garage
Erfolgsgeschichten
Nächste Schritte
- Falls noch nicht geschehen, erstellen Sie in der AdMob-Benutzeroberfläche einen eigenen Anzeigenblock für Interstitial-Anzeigen.
- Weitere Informationen zum Anzeigen-Targeting und zu den Richtlinien für Interstitial-Anzeigen