Interstitial-Anzeigen

Plattform auswählen:Android iOS Unity Flutter

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

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

Vorbereitung

Immer Testanzeigen verwenden

Der folgende Beispielcode enthält eine Anzeigenblock-ID, mit der Sie Testanzeigen anfordern können. Sie wurde speziell dafür konfiguriert, für jede Anfrage Testanzeigen anstelle von Produktionsanzeigen zurückzugeben.

Nachdem Sie eine App in der AdMob-Weboberfläche registriert und eigene Anzeigenblock-IDs für die Verwendung in Ihrer App erstellt haben, sollten Sie Ihr Gerät während der Entwicklung jedoch explizit als Testgerät konfigurieren.

Android

ca-app-pub-3940256099942544/1033173712

iOS

ca-app-pub-3940256099942544/4411468910

Mobile Ads SDK initialisieren

Bevor Anzeigen geladen werden, muss Ihre App das Mobile Ads SDK initialisieren. Rufen Sie dazu MobileAds.Initialize() auf. Dies muss nur einmal erfolgen, idealerweise beim Starten der App.

using GoogleMobileAds;
using GoogleMobileAds.Api;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize((InitializationStatus initStatus) =>
        {
            // This callback is called once the MobileAds SDK is initialized.
        });
    }
}

Wenn Sie die Vermittlung verwenden, warten Sie, bis der Callback erfolgt ist, bevor Sie Anzeigen laden. So wird sichergestellt, dass alle Vermittlungsadapter initialisiert werden.

Implementierung

Die wichtigsten Schritte zum Einbinden von Interstitial-Anzeigen sind:

  1. Interstitial-Anzeige laden
  2. Interstitial-Anzeige einblenden
  3. Auf Interstitial-Anzeigenereignisse warten
  4. Interstitial-Anzeige bereinigen
  5. Nächste Interstitial-Anzeige vorab laden

Interstitial-Anzeige laden

Eine Interstitial-Anzeige wird mit der statischen Methode Load() der Klasse InterstitialAd geladen. Für die Methode „load“ sind eine Anzeigenblock-ID, ein AdRequest-Objekt und ein Completion-Handler erforderlich, der aufgerufen wird, wenn das Laden der Anzeige erfolgreich ist oder fehlschlägt. Das geladene InterstitialAd-Objekt wird als Parameter im Abschluss-Handler bereitgestellt. Das folgende Beispiel zeigt, wie Sie eine InterstitialAd laden.


  // These ad units are configured to always serve test ads.
  #if UNITY_ANDROID
  private string _adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
  private string _adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
  private string _adUnitId = "unused";
    #endif

  private InterstitialAd _interstitialAd;

  /// <summary>
  /// Loads the interstitial ad.
  /// </summary>
  public void LoadInterstitialAd()
  {
      // Clean up the old ad before loading a new one.
      if (_interstitialAd != null)
      {
            _interstitialAd.Destroy();
            _interstitialAd = null;
      }

      Debug.Log("Loading the interstitial ad.");

      // create our request used to load the ad.
      var adRequest = new AdRequest();

      // send the request to load the ad.
      InterstitialAd.Load(_adUnitId, adRequest,
          (InterstitialAd ad, LoadAdError error) =>
          {
              // if error is not null, the load request failed.
              if (error != null || ad == null)
              {
                  Debug.LogError("interstitial ad failed to load an ad " +
                                 "with error : " + error);
                  return;
              }

              Debug.Log("Interstitial ad loaded with response : "
                        + ad.GetResponseInfo());

              _interstitialAd = ad;
          });
  }

Interstitial-Anzeige einblenden

Rufen Sie die Methode Show() für die InterstitialAd-Instanz auf, um eine geladene Interstitial-Anzeige zu präsentieren. Anzeigen werden möglicherweise einmal pro Seitenaufruf ausgeliefert. Verwenden Sie die Methode CanShowAd(), um zu prüfen, ob die Anzeige ausgeliefert werden kann.

/// <summary>
/// Shows the interstitial ad.
/// </summary>
public void ShowInterstitialAd()
{
    if (_interstitialAd != null && _interstitialAd.CanShowAd())
    {
        Debug.Log("Showing interstitial ad.");
        _interstitialAd.Show();
    }
    else
    {
        Debug.LogError("Interstitial ad is not ready yet.");
    }
}

Auf Interstitial-Anzeigenereignisse warten

Um das Verhalten Ihrer Anzeige weiter anzupassen, können Sie eine Reihe von Ereignissen im Lebenszyklus der Anzeige nutzen. Registrieren Sie einen Delegaten, um diese Ereignisse zu erfassen, wie unten gezeigt.

private void RegisterEventHandlers(InterstitialAd interstitialAd)
{
    // Raised when the ad is estimated to have earned money.
    interstitialAd.OnAdPaid += (AdValue adValue) =>
    {
        Debug.Log(String.Format("Interstitial ad paid {0} {1}.",
            adValue.Value,
            adValue.CurrencyCode));
    };
    // Raised when an impression is recorded for an ad.
    interstitialAd.OnAdImpressionRecorded += () =>
    {
        Debug.Log("Interstitial ad recorded an impression.");
    };
    // Raised when a click is recorded for an ad.
    interstitialAd.OnAdClicked += () =>
    {
        Debug.Log("Interstitial ad was clicked.");
    };
    // Raised when an ad opened full screen content.
    interstitialAd.OnAdFullScreenContentOpened += () =>
    {
        Debug.Log("Interstitial ad full screen content opened.");
    };
    // Raised when the ad closed full screen content.
    interstitialAd.OnAdFullScreenContentClosed += () =>
    {
        Debug.Log("Interstitial ad full screen content closed.");
    };
    // Raised when the ad failed to open full screen content.
    interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
    {
        Debug.LogError("Interstitial ad failed to open full screen content " +
                       "with error : " + error);
    };
}

Interstitial-Anzeige bereinigen

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

_interstitialAd.Destroy();

Dadurch wird dem Plug-in mitgeteilt, dass das Objekt nicht mehr verwendet wird und der von ihm belegte Speicherplatz freigegeben werden kann. Wenn diese Methode nicht aufgerufen wird, kommt es zu Speicherlecks.

Nächste Interstitial-Anzeige vorab laden

Interstitial-Anzeigen sind Objekte zur einmaligen Verwendung. Das bedeutet, dass das Objekt nach der Auslieferung einer Interstitial-Anzeige nicht mehr verwendet werden kann. Wenn Sie eine weitere Interstitial-Anzeige anfordern möchten, erstellen Sie ein neues InterstitialAd-Objekt.

Um eine Interstitial-Anzeige für die nächste Impression vorzubereiten, laden Sie sie vorab, sobald das Anzeigenereignis OnAdFullScreenContentClosed oder OnAdFullScreenContentFailed ausgelöst wird.

private void RegisterReloadHandler(InterstitialAd interstitialAd)
{
    // Raised when the ad closed full screen content.
    interstitialAd.OnAdFullScreenContentClosed += ()
    {
        Debug.Log("Interstitial Ad full screen content closed.");

        // Reload the ad so that we can show another as soon as possible.
        LoadInterstitialAd();
    };
    // Raised when the ad failed to open full screen content.
    interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
    {
        Debug.LogError("Interstitial ad failed to open full screen content " +
                       "with error : " + error);

        // Reload the ad so that we can show another as soon as possible.
        LoadInterstitialAd();
    };
}

Best Practices

Entscheiden 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 beispielsweise durch den Abschluss einer Aufgabe in einer App geschaffen, etwa durch das Teilen eines Bildes oder das Abschließen eines Levels in einem Spiel. Überlegen Sie, an welchen Stellen im Ablauf Ihrer App sich Interstitial-Anzeigen am besten präsentieren lassen und wie der Nutzer wahrscheinlich reagieren wird.
Die Aktion wird pausiert, wenn eine Interstitial-Anzeige eingeblendet wird.
Es gibt verschiedene Arten von Interstitial-Anzeigen, z. B. Text-, Bild- oder Videoanzeigen. Wenn in Ihrer App eine Interstitial-Anzeige ausgeliefert wird, muss die App die Verwendung bestimmter Ressourcen unterbrechen, damit die Anzeige diese nutzen kann. Wenn Sie beispielsweise einen Aufruf zum Anzeigen einer Interstitial-Anzeige ausführen, müssen Sie die gesamte Audioausgabe Ihrer App pausieren. Sie können die Wiedergabe von Sounds im OnAdFullScreenContentClosed()-Ereignis fortsetzen, das aufgerufen werden kann, wenn der Nutzer die Interaktion mit der Anzeige beendet hat. Außerdem sollten Sie während der Anzeigenauslieferung alle rechenintensiven Aufgaben wie eine Spielschleife vorübergehend anhalten. So wird sichergestellt, dass der Nutzer keine langsamen oder nicht reagierenden Grafiken oder ruckelnden Videos sieht.
Überhäufen Sie den Nutzer nicht mit Anzeigen.
Eine höhere Häufigkeit von Interstitial-Anzeigen in Ihrer App kann zwar zu höheren Einnahmen führen, 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 nutzen können.

Zusätzliche Ressourcen

* Beispiel für Anwendungsfall