Interstitial-Anzeigen

Interstitial-Anzeigen sind Vollbildanzeigen, die die Benutzeroberfläche ihrer Host-App überlagern. Sie werden in der Regel an natürlichen Übergangspunkten im Ablauf einer App eingeblendet, wie etwa zwischen Aktivitäten oder in 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 ihre Zielseite öffnen oder die Anzeige schließen und zur App zurückkehren. Die Kombination aus direktem Call-to-Action und der gesteigerten Größe machen Interstitials zu einer besonders effektiven Form mobiler Werbung.

Aufgrund ihrer Größe benötigen Interstitial-Anzeigen durchschnittlich mehr Bandbreite als herkömmliche Banner. Apps müssen daher solche Anzeigen asynchron laden, bevor sie ausgeliefert werden. Dadurch wird sichergestellt, dass eine Anzeige rechtzeitig bereitsteht.

In diesem Leitfaden erfahren Sie, wie Interstitial-Anzeigen mithilfe des Google Mobile Ads SDK in Ihre Android-Apps integriert werden. Es wird eine einfache Aktivitätsklasse vorgestellt, die mit SDK-Methoden eine Interstitial-Testanzeige vorab lädt und dann ausliefert.

Weitere Informationen

If you haven't already completed it, consider running through the Android Quick Start for Mobile Ads.

Voraussetzungen

Der Beispielcode in diesem Leitfaden stammt aus einem Projekt, das bereits im Google Mobile Ads SDK enthalten ist. Damit Sie das SDK in Ihrer eigenen App verwenden können, müssen Sie in Android Studio Folgendes tun:

Interstitial-Anzeigen einer Aktivität hinzufügen

Es wird empfohlen, eine Interstitial-Anzeige im Voraus zu laden und erst auszuliefern, wenn es eine natürliche Unterbrechung im Ablauf Ihrer App gibt. Im Beispiel unten geht es um ein einfaches Spiel, das eine Weile läuft und dem Nutzer am Schluss eine Schaltfläche präsentiert, um von vorne zu beginnen. Dieses Code-Snippet zeigt, wie eine Interstitial-Anzeige im Voraus geladen und ausgeliefert wird, bevor der Nutzer ein neues Spiel beginnt:

...
public class MainActivity extends ActionBarActivity {

    PublisherInterstitialAd mPublisherInterstitialAd;
    Button mNewGameButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mNewGameButton = (Button) findViewById(R.id.newgame_button);

        mPublisherInterstitialAd = new PublisherInterstitialAd(this);
        mPublisherInterstitialAd.setAdUnitId("AD_UNIT_ID");

        mPublisherInterstitialAd.setAdListener(new AdListener() {
            @Override
            public void onAdClosed() {
                requestNewInterstitial();
                beginPlayingGame();
            }
        });

        requestNewInterstitial();

        mNewGameButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mPublisherInterstitialAd.isLoaded()) {
                    mPublisherInterstitialAd.show();
                } else {
                    beginPlayingGame();
                }
            }
        });

        beginPlayingGame();
    }

    private void requestNewInterstitial() {
        PublisherAdRequest adRequest = new PublisherAdRequest.Builder()
                  .addTestDevice("SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID")
                  .build();

        mPublisherInterstitialAd.loadAd(adRequest);
    }

    private void beginPlayingGame() {
        // Play for a while, then display the New Game Button
    }
}
...

Außer der Einführung der neuen Member-Variablen mInterstitial gibt es in der Aktivität vier Stellen, an denen sich der Code geändert hat. Sie werden im Folgenden einzeln behandelt.

InterstitialAd-Objekt instanziieren

...
mPublisherInterstitialAd = new PublisherInterstitialAd(this);
mPublisherInterstitialAd.setAdUnitId("/6499/example/interstitial");
requestNewInterstitial();
...

Hier wird die Member-Variable mPublisherInterstitialAd aufgebaut und ihr eine Anzeigenblock-ID zugewiesen. Während Banneranzeigen in der Regel in einer XML-Layoutdatei definiert werden, trifft dies nicht auf Interstitial-Anzeigen zu. Diese werden im Java-Code einer App erstellt und konfiguriert. Ein einzelnes PublisherInterstitialAd-Objekt kann verwendet werden, um während der Lebensdauer einer Aktivität mehrere Interstitial-Anzeigen anzufordern und auszuliefern. Sie müssen es daher nur einmal erstellen.

Interstitial-Anzeige ausliefern

...
mNewGameButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (mPublisherInterstitialAd.isLoaded()) {
            mPublisherInterstitialAd.show();
        } else {
            beginPlayingGame();
        }
    }
});
...

Der neue Code prüft hier, ob eine Interstitial-Anzeige geladen ist. Ist dies der Fall, wird sie ausgeliefert. Wenn keine Anzeige bereitsteht, macht die App sofort mit dem nächsten Spiel weiter.

Anzeigen-Listener einrichten

...
mPublisherInterstitialAd.setAdListener(new AdListener() {
    @Override
    public void onAdClosed() {
        requestNewInterstitial();
        beginPlayingGame();
    }
});
...

Hier wird ein AdListener eingerichtet. Er enthält einen Handler für das Ereignis onAdClosed. Dieses Ereignis wird beim Schließen einer Interstitial-Anzeige ausgelöst. Der Code von oben ruft die Methode requestNewInterstitial auf, um mit dem Herunterladen einer neuen Anzeige zu beginnen, und startet ein neues Spiel.

requestNewInterstitial

...
private void requestNewInterstitial() {
    PublisherAdRequest adRequest = new PublisherAdRequest.Builder()
              .addTestDevice("YOUR_DEVICE_HASH")
              .build();

    mPublisherInterstitialAd.loadAd(adRequest);
}
...

Hier wird ein PublisherAdRequest.Builder-Objekt verwendet, um eine einfache Anforderung zu erstellen, die der Methode loadAd des PublisherInterstitialAd-Objekts übergeben wird. Damit beginnt der Anforderungsprozess.

Sie sehen, dass hier zum Erstellen der Anforderung die Methode addTestDevice verwendet wird. Sie dürfen beim Entwickeln und Testen Ihrer Apps nur Testanzeigen anfordern. Der Test mit aktiven Produktionsanzeigen verstößt gegen unsere Richtlinie und kann zur Sperrung Ihres Kontos führen. Weitere Informationen zur Verwendung von Testanzeigen finden Sie in unserem Leitfaden zur Anzeigenausrichtung.

Das Ergebnis

So sieht die App aus, wenn eine Interstitial-Anzeige ausgeliefert wird:

Die Interstitial-Anzeige überdeckt die App. Der Nutzer hat die Möglichkeit, die Anzeige durch Tippen auf das X links oben zu schließen oder auf eine beliebige Stelle zu tippen, um zur Ziel-URL der Anzeige zu gelangen.

Einige Best Practices

Überlegen Sie, ob Interstitial-Anzeigen der geeignete Anzeigentyp für Ihre App sind.
Interstitial-Anzeigen sind in Apps mit natürlichen Übergangspunkten am sinnvollsten. Beispielsweise empfiehlt es sich, sie nach Beendigung einer Aktion bereitzustellen, also etwa, nachdem der Nutzer ein Bild geteilt oder ein Level in einem Spiel abgeschlossen hat. Da der Nutzer an solchen Stellen eine Unterbrechung erwartet, kann eine Interstitial-Anzeige präsentiert werden, ohne die Nutzererfahrung zu beeinträchtigen. Berücksichtigen Sie daher, an welchen Stellen im Ablauf Ihrer App Interstitial-Anzeigen am besten platziert werden und wie Nutzer vermutlich darauf reagieren werden.
Pausieren Sie die Aktion, während eine Interstitial-Anzeige zu sehen ist.
Es gibt viele verschiedene Typen von Interstitial-Anzeigen: Text, Bild, Video usw. Wenn Ihre App eine Interstitial-Anzeige präsentiert, muss auch die Nutzung bestimmter Ressourcen pausiert werden, damit die Anzeige davon profitieren kann. Wenn Sie beispielsweise den Aufruf zur Auslieferung einer Interstitial-Anzeige machen, muss jegliche Audioausgabe durch Ihre App pausiert werden. Sie können die Wiedergabe von Sounds im Ereignishandler onAdClosed fortsetzen, wenn der Nutzer die Interaktion mit der Anzeige beendet hat. Weiterhin ist es empfehlenswert, intensive Rechenaufgaben (wie etwa eine Game Loop) anzuhalten, während die Anzeige zu sehen ist. So wird vermieden, dass Nutzer minderwertige Grafiken oder stockende Videos zu sehen bekommen.
Lassen Sie genügend Zeit zum Laden.
Außer für die Auslieferung von Interstitial-Anzeigen zum geeigneten Zeitpunkt müssen Sie dafür sorgen, dass Nutzer nicht warten müssen, bis sie geladen sind. Wenn Sie dem asynchronen Lademuster folgen und loadAd) rechtzeitig vor show() aufrufen, steht in Ihrer App zum gewünschten Auslieferungszeitpunkt eine vollständig geladene Interstitial-Anzeige bereit.
Überschwemmen Sie Nutzer nicht mit Anzeigen.
Auf den ersten Blick scheint die Steigerung der Häufigkeit von Interstitial-Anzeigen in Ihrer App eine tolle Möglichkeit zu sein, um den Umsatz zu steigern, doch kann sich dadurch auch die Nutzererfahrung verschlechtern und Klickraten sinken eventuell. Nutzer dürfen also nicht so häufig unterbrochen werden, dass sie die Lust verlieren, Ihre App zu verwenden.

Beispiel herunterladen

Sie können unsere Beispiel-App herunterladen und Interstitial-Anzeigen in Aktion sehen:

Beispiel von GitHub herunterladen

Häufig gestellte Fragen

Wenn ich eine zweite Interstitial-Anzeige lade, ist in meinen Protokollen der Eintrag "An interstitial is already loading. Aborting" (Es wird bereits eine Interstitial-Anzeige geladen. Vorgang wird abgebrochen) enthalten. Was ist passiert?
Diese Warnung tritt auf, wenn eine App versucht, eine neue Interstitial-Anzeige zu laden, bevor die vorherige vollständig ausgeliefert ist. loadAd muss an der richtigen Stelle aufgerufen werden. Wir empfehlen dafür die Methode onAdClosed eines AdListener.
Wenn ich loadAd() für ein InterstitialAd-Objekt aufrufe, erhalte ich die Meldung "Cannot present interstitial. It is not ready." (Interstitial-Anzeige kann nicht ausgeliefert werden. Sie ist nicht bereit.) Woran liegt das?
Dieser Fehler bedeutet, dass die Interstitial-Anzeige nicht erfolgreich abgerufen wurde. Verwenden Sie die Methode isLoaded, um zu prüfen, ob die Interstitial-Anzeige bereit zur Auslieferung ist, um diesen Fehler zu verhindern.
Es werden keine Anzeigen ausgeliefert und in meinem Protokoll steht "Request Error: No ads to show" (Anfragefehler: Es gibt keine auszuliefernden Anzeigen).
Sie müssen beim Erstellen eines Anzeigenblocks als Anzeigentyp "Interstitial" angeben. Von PublisherInterstitialAd-Objekten werden nur Anzeigenblöcke akzeptiert, die für die Auslieferung von Interstitial-Anzeigen konfiguriert sind.

Feedback geben zu...

SDK for DFP Users on Android