Interstitial-Anzeigen

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

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:

  1. Laden Sie eine Anzeige.
  2. Registrieren Sie sich für Rückrufe.
  3. 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.

  1. Fügen Sie dem C++-Code Ihrer App den folgenden Header hinzu:

     #include "firebase/gma/interstial_ad.h"
    

  2. Deklarieren und instanziieren Sie ein InterstitialAd-Objekt:

     firebase::gma::InterstitialAd* interstitial_ad;
     interstitial_ad = new firebase::gma::InterstitialAd();
    

  3. Initialisieren Sie die Instanz InterstitialAd mit Ihrer übergeordneten Ansicht, die in einen AdParent-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);
    
  4. Anstatt das Future als Variable beizubehalten, können Sie den Status des Initialisierungsvorgangs regelmäßig prüfen. Rufen Sie dazu InitializeLastResult() für das InterstitialAd-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 installierten FullScreenContentListener 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

Videoanleitungen der Google Zukunftswerkstatt für mobile Anzeigen

Erfolgsgeschichten

Nächste Schritte