Interstitial-Anzeigen (alt)

Interstitial-Anzeigen sind Vollbildanzeigen, die die Benutzeroberfläche ihrer Host-App überlagern. Sie werden normalerweise an natürlichen Übergangspunkten innerhalb einer App eingeblendet, z. B. während der Pause zwischen den Levels eines Spiels. Wenn in einer App eine Interstitial-Anzeige eingeblendet wird, kann der Nutzer entweder auf die Anzeige tippen und zum Ziel wechseln oder sie schließen und zur App zurückkehren. Fallstudie

In diesem Leitfaden wird erläutert, wie Sie Interstitial-Anzeigen in eine Unity-App einbinden.

Voraussetzungen

Interstitial-Anzeige erstellen

Um eine Interstitial-Anzeige auszuliefern, müssen Sie zuerst ein InterstitialAd-Objekt in einem Skript erstellen, das an ein GameObject-Element angehängt ist.

using GoogleMobileAds.Api;
...

private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
}

Der Konstruktor für InterstitialAd hat den folgenden Parameter:

  • adUnitId: Die ID des AdMob-Anzeigenblocks, aus dem die InterstitialAd Anzeigen laden soll.

Es ist wichtig zu beachten, wie je nach Plattform unterschiedliche Anzeigenblöcke verwendet werden. Für Anzeigenanfragen unter iOS muss ein iOS-Anzeigenblock und für Anfragen unter Android ein Android-Anzeigenblock verwendet werden.

Immer mit Testanzeigen testen

Der Beispielcode oben enthält eine Anzeigenblock-ID und Sie können damit Anzeigen anfordern. Er wurde speziell so konfiguriert, dass bei jeder Anfrage Testanzeigen statt Produktionsanzeigen zurückgegeben werden. Die Verwendung ist daher sicher.

Wenn Sie jedoch eine App in der AdMob-Benutzeroberfläche registrieren und eigene Anzeigenblock-IDs zur Verwendung in Ihrer App erstellen, müssen Sie während der Entwicklung Ihr Gerät explizit als Testgerät konfigurieren. Das ist extrem wichtig. Tests mit echten Anzeigen (selbst wenn Sie nie darauf tippen) verstoßen gegen die AdMob-Richtlinien und können dazu führen, dass Ihr Konto gesperrt wird. Unter Testanzeigen finden Sie Informationen dazu, wie Sie dafür sorgen, dass Sie während der Entwicklung immer Testanzeigen erhalten.

Anzeige laden

Sobald InterstitialAd instanziiert wurde, muss im nächsten Schritt eine Anzeige geladen werden. Dazu verwenden Sie die Methode loadAd() in der Klasse InterstitialAd. Es wird ein AdRequest-Argument verwendet, das Laufzeitinformationen (z. B. Targeting-Informationen) zu einer einzelnen Anzeigenanfrage enthält.

Das folgende Beispiel zeigt, wie eine Anzeige geladen wird:

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

Anzeige einblenden

Interstitial-Anzeigen sollten während natürlicher Pausen im App-Ablauf eingeblendet werden. Ein gutes Beispiel dafür sind zwischen den Levels eines Spiels oder nachdem der Nutzer eine Aufgabe abgeschlossen hat. Wenn Sie ein Interstitial einblenden möchten, prüfen Sie mithilfe der Methode isLoaded(), ob das Laden abgeschlossen ist, und rufen Sie dann show() auf.

Die Interstitial-Anzeige aus dem vorherigen Codebeispiel kann wie unten gezeigt am Ende eines Spiels eingeblendet werden.

private void GameOver()
{
  if (this.interstitial.IsLoaded()) {
    this.interstitial.Show();
  }
}

Anzeigenereignisse

Um das Verhalten der Anzeige weiter anzupassen, können Sie verschiedene Ereignisse im Lebenszyklus der Anzeige einbeziehen: Laden, Öffnen, Schließen usw. Sie können auf diese Ereignisse warten, indem Sie wie unten gezeigt einen Delegaten für die entsprechende EventHandler registrieren.

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

     // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);

    // Called when an ad request has successfully loaded.
    this.interstitial.OnAdLoaded += HandleOnAdLoaded;
    // Called when an ad request failed to load.
    this.interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad;
    // Called when an ad is shown.
    this.interstitial.OnAdOpening += HandleOnAdOpening;
    // Called when the ad is closed.
    this.interstitial.OnAdClosed += HandleOnAdClosed;

    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

public void HandleOnAdLoaded(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdLoaded event received");
}

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    MonoBehaviour.print("HandleFailedToReceiveAd event received with message: "
                        + args.Message);
}

public void HandleOnAdOpening(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdOpening event received");
}

public void HandleOnAdClosed(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdClosed event received");
}

Das Ereignis OnAdFailedToLoad enthält Argumente für Sonderereignisse. Sie übergibt eine Instanz von HandleAdFailedToLoadEventArgs mit einem Message, der den Fehler beschreibt:

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    print("Interstitial failed to load: " + args.Message);
    // Handle the ad failed to load event.
}
AnzeigenereignisBeschreibung
OnAdLoaded Das Ereignis OnAdLoaded wird ausgeführt, wenn das Laden einer Anzeige abgeschlossen ist.
OnAdFailedToLoad Das Ereignis OnAdFailedToLoad wird aufgerufen, wenn eine Anzeige nicht geladen werden kann. Der Parameter Message beschreibt die Art des aufgetretenen Fehlers.
OnAdOpening Diese Methode wird aufgerufen, wenn die Anzeige eingeblendet wird und den Bildschirm des Geräts abdeckt.
OnAdClosed Diese Methode wird aufgerufen, wenn die Interstitial-Anzeige geschlossen wird, weil der Nutzer auf das Symbol zum Schließen oder die Schaltfläche „Zurück“ tippt. Wenn deine App die Audioausgabe oder Spielschleife pausiert hat, kannst du sie hier fortsetzen.

Interstitial-Anzeigen bereinigen

Wenn Sie mit einem InterstitialAd fertig sind, rufen Sie die Methode Destroy() auf, bevor Sie den Verweis darauf löschen:

interstitial.Destroy();

Dadurch wird das Plug-in darüber informiert, dass das Objekt nicht mehr verwendet wird und der von ihm belegte Arbeitsspeicher freigegeben werden kann. Wenn diese Methode nicht aufgerufen wird, treten Speicherlecks auf.

Einige Best Practices

Überlegen Sie, ob Interstitial-Anzeigen der richtige Typ für Ihre App sind.
Interstitial-Anzeigen funktionieren am besten in Apps mit natürlichen Übergangspunkten. Der Abschluss einer Aufgabe innerhalb einer App, z. B. das Teilen eines Bildes oder der Abschluss eines Levels in einem Spiel, schafft einen solchen Punkt. Da der Nutzer eine Unterbrechung der Aktion erwartet, kann eine Interstitial-Anzeige präsentiert werden, ohne die Nutzererfahrung zu beeinträchtigen. Sie sollten sich überlegen, an welchen Punkten im Workflow Ihrer App Interstitial-Anzeigen ausgeliefert werden und wie der Nutzer wahrscheinlich darauf reagieren wird.
Denken Sie daran, die Aktion beim Ausliefern einer Interstitial-Anzeige zu pausieren.
Es gibt verschiedene Arten von Interstitial-Anzeigen: Text-, Bild- und Videoanzeigen. Wenn in Ihrer App Interstitial-Anzeigen eingeblendet werden, dürfen auch einige Ressourcen nicht mehr genutzt werden, damit diese von der Anzeige genutzt werden können. Wenn Sie beispielsweise eine Interstitial-Anzeige einblenden, pausieren Sie die gesamte Audioausgabe Ihrer App. Sie können die Wiedergabe von Audioinhalten im Event-Handler onAdClosed() fortsetzen. Dieser wird aufgerufen, wenn der Nutzer die Interaktion mit der Anzeige beendet hat. Außerdem können Sie intensive Rechenaufgaben (z. B. eine Spielschleife) vorübergehend anhalten, während die Anzeige zu sehen ist. So wird sichergestellt, dass keine langsamen oder nicht reagierenden Grafiken oder stotternden Videos für den Nutzer zu sehen sind.
Warten Sie ausreichend lange.
Interstitial-Anzeigen sollten zum richtigen Zeitpunkt eingeblendet werden und Nutzer müssen nicht warten, bis sie geladen sind. Wenn Sie die Anzeige im Voraus laden, indem Sie loadAd() und dann show() aufrufen, ist sichergestellt, dass in Ihrer App zum Zeitpunkt der Auslieferung eine vollständig geladene Interstitial-Anzeige verfügbar ist.
Überfluten Sie den Nutzer nicht mit Werbung.
Das Erhöhen der Häufigkeit von Interstitial-Anzeigen in Ihrer App scheint eine gute Möglichkeit zur Umsatzsteigerung zu sein. Es kann aber auch die Nutzererfahrung beeinträchtigen und die Klickrate senken. Achte darauf, dass Nutzer nicht so häufig unterbrochen werden, dass sie die Nutzung deiner App nicht mehr nutzen können.

Zusätzliche Ressourcen

Samples

Erfolgsgeschichten