Interstitial-Anzeigen

Interstitial-Anzeigen sind Vollbildanzeigen, die die Benutzeroberfläche ihrer Host-App überlagern. Sie werden in der Regel an natürlichen Übergangspunkten im User Flow einer App eingeblendet, zum Beispiel während der Pause zwischen den Leveln eines Spiels. Wenn in einer App ein Interstitial-Anzeige kann der Nutzer entweder auf die Anzeige tippen und oder schließen Sie sie und kehren zur App zurück.

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

Vorbereitung

Immer mit Testanzeigen testen

Der folgende Beispielcode enthält eine Anzeigenblock-ID, mit der Sie zu testen. Es wurde speziell so konfiguriert, dass Testanzeigen zurückgegeben werden, Produktionsanzeigen für jede Anfrage erstellen, damit sie sicher verwendet werden können.

Nachdem Sie jedoch eine App in der Ad Manager-Weboberfläche und Erstellung eines eigenen Anzeigenblocks IDs zur Verwendung in Ihrer App – konfigurieren Sie Ihr Gerät explizit als Test. Gerät während Entwicklung.

/6499/example/interstitial

Mobile Ads SDK initialisieren

Bitten Sie Ihre App, das Mobile Ads SDK zu initialisieren, bevor Anzeigen geladen werden. Rufen Sie dazu MobileAds.Initialize() Dieser Vorgang muss nur einmal durchgeführt werden, idealerweise 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, bevor Sie Anzeigen als Dadurch werden alle Vermittlungsadapter initialisiert.

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 Load()-Methode auf der Klasse InterstitialAd. Für die Lademethode ist eine Anzeigenblock-ID, eine AdManagerAdRequest-Objekt und einem Abschluss-Handler, der wird aufgerufen, wenn das Laden der Anzeige erfolgreich ist oder fehlschlägt. Das geladene Das Objekt AdManagerInterstitialAd wird als Parameter in den Abschluss-Handler. Im folgenden Beispiel sehen Sie, wie ein AdManagerInterstitialAd


  // This ad unit is configured to always serve test ads.
  private string _adUnitId = "/6499/example/interstitial";

  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 AdManagerAdRequest();

      // send the request to load the ad.
      AdManagerInterstitialAd.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 AdManagerInterstitialAd-Instanz. Anzeigen können einmal pro laden. 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 Ereignisse im Lebenszyklus der Anzeige. Auf diese Ereignisse warten, indem Sie einen Bevollmächtigten registrieren wie unten dargestellt.

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 AdManagerInterstitialAd fertig sind, Rufen Sie 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 den Arbeitsspeicher belegt, können zurückgefordert werden. Wenn diese Methode nicht aufgerufen wird, treten Speicherlecks auf.

Nächste Interstitial-Anzeige vorab laden

Interstitial-Anzeigen sind ein Objekt zur einmaligen Verwendung. Wenn also eine Interstitial-Anzeige angezeigt wird, kann das Objekt nicht erneut verwendet werden. Um eine weitere Interstitial-Anzeige anzufordern, Erstellen Sie ein neues AdManagerInterstitialAd-Objekt.

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

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();
    };
}

App-Ereignisse

Mit App-Ereignissen können Sie Anzeigen erstellen, über die Nachrichten an den App-Code gesendet werden. Die App können auf Grundlage dieser Nachrichten Aktionen ausführen.

Mit AppEvent können Sie Ad Manager-spezifische App-Ereignisse überwachen. Diese Ereignisse während des Lebenszyklus der Anzeige jederzeit auftreten können, sogar vor Aufruf des Ladevorgangs.

namespace GoogleMobileAds.Api.AdManager;

/// The App event message sent from the ad.
public class AppEvent
{
    // Name of the app event.
    string Name;
    // Argument passed from the app event.
    string Value;
}

OnAppEventReceived wird ausgelöst, wenn ein App-Ereignis in einer Anzeige auftritt. Hier ist eine Beispiel für die Verarbeitung dieses Ereignisses in Ihrem Code:

_interstitialAd.OnAppEventReceived += (AppEvent args) =>
{
    Debug.Log($"Received app event from the ad: {args.Name}, {args.Value}.");
};

Hier ist ein Beispiel, das zeigt, wie Sie die Hintergrundfarbe Ihrer App ändern können. abhängig von einem App-Ereignis mit einem Farbnamen:

_interstitialAd.OnAppEventReceived += (AppEvent args) =>
{
  if (args.Name == "color")
  {
    Color color;
    if (ColorUtility.TryParseColor(arg.Value, out color))
    {
      gameObject.GetComponent<Renderer>().material.color = color;
    }
  }
};

Und hier ist das entsprechende Creative, von dem das App-Ereignis „Farbe“ gesendet wird:

<html>
<head>
  <script src="//www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
  <script>
    document.addEventListener("DOMContentLoaded", function() {
      // Send a color=green event when ad loads.
      admob.events.dispatchAppEvent("color", "green");

      document.getElementById("ad").addEventListener("click", function() {
        // Send a color=blue event when ad is clicked.
        admob.events.dispatchAppEvent("color", "blue");
      });
    });
  </script>
  <style>
    #ad {
      width: 320px;
      height: 50px;
      top: 0px;
      left: 0px;
      font-size: 24pt;
      font-weight: bold;
      position: absolute;
      background: black;
      color: white;
      text-align: center;
    }
  </style>
</head>
<body>
  <div id="ad">Carpe diem!</div>
</body>
</html>

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 in einer App, z. B. das Teilen eines Bildes oder das Ausführen eines ein solches Level schaffen. Überlegen Sie genau, an welchen Punkten App-Flow am besten zu Display-Interstitial-Anzeigen führt 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, ein Bild oder ein Video. Wenn in Ihrer App ein Interstitial-Anzeige aktiviert, setzt sie auch die Nutzung einiger Ressourcen aus, damit die Anzeige und sie für sich zu nutzen. Wenn Sie beispielsweise die Anzeige eines Interstitial-Anzeige verwenden, unterbrechen Sie die Audioausgabe in Ihrer App. Du kannst die Tonwiedergabe für das Ereignis OnAdFullScreenContentClosed() fortsetzen, Er kann aufgerufen werden, wenn der Nutzer die Interaktion mit der Anzeige beendet hat. In Darüber hinaus können Sie intensive Rechenaufgaben anhalten, z. B. in einer Spielschleife, während die Anzeige eingeblendet wird. So wird sichergestellt, dass oder langsame oder nicht reagierende Grafik oder Ruckeln bei der Videowiedergabe auftreten.
Überschwemmen Sie Nutzer nicht mit Anzeigen.
Es mag auf den ersten Blick scheinen, die Häufigkeit von Interstitial-Anzeigen in Ihrer App zu erhöhen. eine gute Möglichkeit, den Umsatz zu steigern, kann auch die Nutzererfahrung beeinträchtigen. und niedrigere Klickraten. Achten Sie darauf, dass Nutzende nicht so häufig wurde unterbrochen, dass sie deine App nicht mehr nutzen können.

Zusätzliche Ressourcen