Interstitial-Anzeigen

Interstitial-Anzeigen sind Vollbildanzeigen, die die Benutzeroberfläche der Host-App verdecken. Sie werden normalerweise an natürlichen Übergangspunkten innerhalb einer App eingeblendet, beispielsweise 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 weiter zu ihrem Ziel gelangen oder sie schließen und zur App zurückkehren. Fallstudie

In diesem Leitfaden erfahren Sie, wie Sie Interstitial-Anzeigen in eine Unity-App integrieren.

Voraussetzungen

Immer mit Testanzeigen testen

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

Nachdem Sie jedoch eine App in derAdMob -Weboberfläche registriert und eigene Anzeigenblock-IDs zur Verwendung in Ihrer App erstellt haben, müssen Sie Ihr Gerät während der Entwicklung explizit als Testgerät konfigurieren.

Android

ca-app-pub-3940256099942544/1033173712

iOS

ca-app-pub-3940256099942544/4411468910

Mobile Ads SDK initialisieren

Bevor die Anzeigen geladen werden, muss Ihre App das Mobile Ads SDK initialisieren. Rufen Sie dazu MobileAds.Initialize() auf. Dieser Schritt muss nur einmal durchgeführt werden, idealerweise direkt beim Start 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 die Anzeigen laden. So wird sichergestellt, dass alle Vermittlungsadapter initialisiert werden.

Implementierung

Die wichtigsten Schritte zur Integration 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

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


  // 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

Wenn Sie eine geladene Interstitial-Anzeige präsentieren möchten, rufen Sie die Methode Show() auf der Instanz InterstitialAd auf. Anzeigen können einmal pro Ladevorgang eingeblendet werden. Prüfen Sie mit der Methode CanShowAd(), 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

Zur weiteren Anpassung des Anzeigenverhaltens können Sie eine Reihe von Ereignissen im Lebenszyklus der Anzeige einbinden. Registrieren Sie wie unten gezeigt einen Bevollmächtigten, um auf diese Ereignisse zu warten.

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 unbedingt die Methode Destroy() auf, bevor Sie den Verweis darauf löschen:

_interstitialAd.Destroy();

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

Nächste Interstitial-Anzeige vorab laden

Interstitial-Anzeigen sind ein Objekt zur einmaligen Verwendung. Sobald eine Interstitial-Anzeige ausgeliefert wurde, kann das Objekt nicht mehr verwendet werden. Wenn Sie eine weitere Interstitial-Anzeige anfordern möchten, müssen Sie ein neues InterstitialAd-Objekt erstellen.

Damit eine Interstitial-Anzeige auf die nächste mögliche Impression vorbereitet werden kann, muss sie vorab geladen werden, 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

Ermitteln 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 innerhalb einer App, z. B. das Teilen eines Bildes oder das Abschließen eines Levels in einem Spiel, schafft einen solchen Punkt. Überlegen Sie gut, an welchen Punkten des App-Ablaufs Sie Interstitial-Anzeigen am besten präsentieren und wie die Nutzer darauf reagieren werden.
Unterbrechen Sie die Aktion, wenn eine Interstitial-Anzeige eingeblendet wird.
Es gibt verschiedene Arten von Interstitial-Anzeigen, z. B. Text, Bild oder Video. 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 ausführen, müssen Sie die Audioausgabe Ihrer App anhalten. Sie können die Wiedergabe von Ton im Ereignis OnAdFullScreenContentClosed() fortsetzen. Dieses Ereignis kann aufgerufen werden, wenn der Nutzer die Interaktion mit der Anzeige beendet hat. Außerdem können Sie intensive Rechenaufgaben wie eine Spielschleife vorübergehend anhalten, während die Anzeige zu sehen ist. So wird verhindert, dass Nutzer eine langsame oder nicht reagierende Grafik oder ein ruckeliges Video erleben.
Überschwemmen Sie Nutzer nicht mit Anzeigen.
Wenn Sie die Häufigkeit von Interstitial-Anzeigen in Ihrer App erhöhen möchten, scheint dies eine gute Möglichkeit zu sein, den Umsatz zu steigern. Es kann aber auch die Nutzerfreundlichkeit beeinträchtigen und die Klickraten senken. Sorge dafür, dass Nutzer nicht so häufig unterbrochen werden, dass sie die Nutzung deiner App nicht mehr genießen können.

Zusätzliche Ressourcen

* Anwendungsbeispiel