Interstitial-Anzeigen


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 zum Ziel weitergeleitet werden oder sie schließen und zur App zurückkehren. Fallstudie

In dieser Anleitung erfahren Sie, wie Sie mit dem Google Mobile Ads C++ SDK Interstitial-Anzeigen in Android- und iOS-Apps einbinden.

Vorbereitung

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 Interstitials, 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 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

Die wichtigsten Schritte zur Integration von Interstitial-Anzeigen:

  1. Laden Sie eine Anzeige.
  2. Registrieren Sie sich für Callbacks.
  3. Die Anzeige präsentieren und ihre Lebenszyklusereignisse verarbeiten.

InterstitialAd konfigurieren

Interstitial-Anzeigen werden in InterstitialAd-Objekten präsentiert. Der erste Schritt zur Einbindung von Interstitial-Anzeigen in Ihre App besteht also darin, ein InterstitialAd-Objekt zu erstellen und zu initialisieren.

  1. Fügen Sie dem C++-Code Ihrer App die folgende Kopfzeile 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 InterstitialAd-Instanz mit Ihrer übergeordneten Ansicht, die in einen AdParent-Typ umgewandelt wurde. Die übergeordnete Ansicht ist eine JNI-jobject-Referenz auf eine Android-Activity oder 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);
    
  4. Anstatt die Future-Funktion als Variable zu speichern, können Sie den Status des Initialisierungsvorgangs auch regelmäßig prüfen, indem Sie InitializeLastResult() auf das InterstitialAd-Objekt anwenden. Das kann hilfreich sein, um den Initialisierungsprozess in Ihrer globalen Spielschleife im Blick 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 Mit Futures den Abschlussstatus von Methodenaufrufen überwachen.

Anzeige laden

Anzeigen werden mit der Methode LoadAd() des Objekts InterstitialAd geladen. Für die Methode „load“ müssen Sie das InterstitialAd-Objekt initialisiert haben und die Anzeigenblock-ID und ein AdRequest-Objekt haben. Es wird eine firebase::Future zurückgegeben, mit der Sie den Status und das Ergebnis des Ladevorgangs überwachen können.

Im folgenden Code wird gezeigt, 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 Callbacks registrieren

Sie müssen die FullScreenContentListener-Klasse erweitern, um Benachrichtigungen zur Präsentation von Interstitial-Anzeigen und Lebenszyklusereignissen zu erhalten. Ihre benutzerdefinierte FullScreenContentListener-Unterklasse kann über die Methode InterstitialAd::SetFullScreenContentListener() registriert werden. Sie erhält Rückrufe, wenn die Anzeige erfolgreich oder nicht erfolgreich präsentiert wird und wenn sie geschlossen wird.

Im folgenden Code wird gezeigt, 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 Einmalobjekt. Das bedeutet, dass eine Interstitialanzeige, die einmal ausgeliefert wurde, nicht noch einmal ausgeliefert werden kann. Es empfiehlt sich, in der OnAdDismissedFullScreenContent()-Methode Ihrer FullScreenContentListener eine weitere Interstitial-Anzeige zu laden, damit die nächste Interstitial-Anzeige geladen wird, sobald die vorherige geschlossen wird.

Anzeige präsentieren

Interstitials sollten bei natürlichen Pausen im Ablauf einer App eingeblendet werden. Ein gutes Beispiel ist die Pause zwischen den Levels eines Spiels oder nach Abschluss einer Aufgabe. Mit FullScreenContentListener lässt sich zwar feststellen, wann der Vollbildinhalt einer Anzeige präsentiert wurde, aber auch die von Show() zurückgegebene Zukunft gibt an, wann die Anzeige erfolgreich ausgeliefert wurde.

  firebase::Future<void> result = interstitial_ad->Show();

Best Practices

Überlegen Sie, ob Interstitial-Anzeigen die richtige Art von Anzeigen für Ihre App sind.
Interstitial-Anzeigen funktionieren am besten in Apps mit natürlichen Übergangspunkten. Ein solcher Punkt wird durch den Abschluss einer Aufgabe in einer App wie dem Teilen eines Bildes oder dem Abschließen eines Spiellevels erstellt. Da Nutzer eine Pause in der Aktion erwarten, ist es einfach, eine Interstitial-Anzeige einzublenden, ohne die Nutzererfahrung zu beeinträchtigen. Berücksichtigen Sie, an welchen Stellen im Workflow Ihrer App Sie Interstitial-Anzeigen schalten und wie Nutzer wahrscheinlich reagieren.
Denken Sie daran, die Aktion zu pausieren, wenn eine Interstitial-Anzeige ausgeliefert wird.
Es gibt verschiedene Arten von Interstitial-Anzeigen, z. B. Text-, Bild- und Videoanzeigen. Achten Sie darauf, dass die Verwendung einiger Ressourcen in Ihrer App ausgesetzt wird, wenn eine Interstitialanzeige eingeblendet wird, damit die Anzeige diese Ressourcen nutzen kann. Wenn Sie beispielsweise den Aufruf zum Anzeigen einer Interstitial-Anzeige starten, müssen Sie alle Audioausgaben Ihrer App pausieren. Sie können die Wiedergabe von Tönen mit der OnAdDismissedFullScreenContent-Methode Ihrer installierten FullScreenContentListener fortsetzen, die aufgerufen wird, wenn der Nutzer mit der Anzeige fertig ist. Außerdem sollten Sie alle intensiven Rechenaufgaben (z. B. einen Gameloop) vorübergehend anhalten, während die Anzeige ausgeliefert wird. So wird verhindert, dass die Grafiken langsam oder nicht reaktionsschnell sind oder das Video ruckelt.
Planen Sie ausreichend Zeit für das Laden ein.
Außerdem ist es wichtig, dass Nutzer nicht lange auf das Laden der Interstitial-Anzeigen warten müssen. Wenn Sie die Anzeige im Voraus laden, bevor Sie sie präsentieren möchten, ist sie in Ihrer App vollständig geladen, wenn es an der Zeit ist, sie einzublenden.
Überschütten 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 Klickrate senken. Achten Sie darauf, dass Nutzer nicht so häufig unterbrochen werden, dass sie Ihre App nicht mehr richtig nutzen können.
Verwenden Sie nicht den zukünftigen Zeitpunkt für den Ladevorgang, um das Interstitial anzuzeigen.
Das kann zu einer schlechten Nutzererfahrung führen. Laden Sie die Anzeige stattdessen vorab, bevor Sie sie ausliefern müssen.

Zusätzliche Ressourcen

Beispiel in GitHub

Videoanleitungen der Mobile Ads Garage

Erfolgsgeschichten

Nächste Schritte