Annunci interstitial

Gli interstitial sono annunci a schermo intero che coprono l'interfaccia dell'app host. In genere vengono mostrati in punti di transizione naturali nel flusso di un'app ad esempio durante una pausa tra un livello e l'altro di un gioco. Quando un'app mostra un annuncio interstitial, l'utente può scegliere se toccare l'annuncio e continuare la sua destinazione o chiuderlo e tornare all'app.

Questa guida spiega come integrare gli annunci interstitial in un'app Unity.

Prerequisiti

Effettua sempre test con annunci di prova

Il seguente codice di esempio contiene un ID unità pubblicitaria che puoi utilizzare per richiedere annunci di prova. È stato appositamente configurato per restituire annunci di prova anziché annunci di produzione per ogni richiesta, quindi è possibile usarla in sicurezza.

Tuttavia, dopo aver registrato un'app nella nell'interfaccia web di Ad Manager e hai creato la tua unità pubblicitaria ID da utilizzare nella tua app, configura il dispositivo come prova in modo esplicito dispositivo durante sviluppo del prodotto.

/21775744923/example/interstitial

Inizializzare l'SDK Mobile Ads

Prima di caricare gli annunci, chiedi all'app di inizializzare l'SDK Mobile Ads chiamando MobileAds.Initialize(). Questa operazione deve essere eseguita una sola volta, idealmente al momento del lancio dell'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.
        });
    }
}

Se utilizzi la mediazione, attendi che venga eseguito il callback prima di caricare gli annunci Ciò garantirà che tutti gli adattatori di mediazione siano inizializzati.

Implementazione

I passaggi principali per integrare gli annunci interstitial sono:

  1. Carica l'annuncio interstitial
  2. Mostra l'annuncio interstitial
  3. Ascolta gli eventi relativi agli annunci interstitial
  4. Pulisci l'annuncio interstitial
  5. Precarica l'annuncio interstitial successivo

Carica l'annuncio interstitial

Il caricamento di un annuncio interstitial viene eseguito utilizzando il metodo Load() statico della classe InterstitialAd. Il metodo di caricamento richiede un ID unità pubblicitaria, un AdManagerAdRequest e un gestore del completamento che viene chiamato quando il caricamento dell'annuncio ha esito positivo o negativo. L'oggetto caricatoAdManagerInterstitialAd viene fornito come parametro nel gestore di completamento. L'esempio seguente mostra come caricare AdManagerInterstitialAd.


  // This ad unit is configured to always serve test ads.
  private string _adUnitId = "/21775744923/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;
          });
  }

Mostrare l'annuncio interstitial

Per mostrare un annuncio interstitial caricato, chiama il metodo Show() sull'istanza AdManagerInterstitialAd. Gli annunci possono essere mostrati una volta ogni caricamento. Utilizza il metodo CanShowAd() per verificare che l'annuncio sia pronto per la pubblicazione.

/// <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.");
    }
}

Ascolta gli eventi relativi agli annunci interstitial

Per personalizzare ulteriormente il comportamento dell'annuncio, puoi eseguire il collegamento a una serie di eventi nel ciclo di vita dell'annuncio. Ascolta questi eventi registrando un delegato come mostrato di seguito.

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

Pulisci l'annuncio interstitial

Quando hai finito con AdManagerInterstitialAd, effettua assicurati di chiamare il metodo Destroy() prima di rimuovere il tuo riferimento:

_interstitialAd.Destroy();

In questo modo, il plug-in viene informato che l'oggetto non è più utilizzato e la memoria che possono essere rivendicati. La mancata chiamata di questo metodo determina perdite di memoria.

Precarica l'annuncio interstitial successivo

Gli annunci interstitial sono oggetti monouso. Ciò significa che, una volta che un annuncio interstitial non può essere riutilizzato. Per richiedere un altro annuncio interstitial, crea un nuovo oggetto AdManagerInterstitialAd.

Per preparare un annuncio interstitial per l'opportunità di impressione successiva, precarica la classe annuncio interstitial una volta che l'elemento OnAdFullScreenContentClosed o È stato generato OnAdFullScreenContentFailed evento dell'annuncio.

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

Eventi app

Gli eventi app ti consentono di creare annunci che possono inviare messaggi al loro codice dell'app. L'app può quindi eseguire azioni basate su questi messaggi.

Puoi ascoltare eventi dell'app specifici di Ad Manager utilizzando AppEvent. Questi eventi possono verificarsi in qualsiasi momento durante il ciclo di vita dell'annuncio, anche prima che venga chiamato il caricamento.

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

Il valore OnAppEventReceived viene generato quando si verifica un evento app in un annuncio. Ecco un esempio di come gestire questo evento nel codice:

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

Ecco un esempio che mostra come modificare il colore di sfondo dell'app in base a un evento app con un nome di colore:

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

Di seguito è riportata la creatività corrispondente che invia l'evento app colore:

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

Determina se gli annunci interstitial sono il tipo di annunci giusto per la tua app.
Gli annunci interstitial funzionano al meglio nelle app con punti di transizione naturali. La conclusione di un'attività all'interno di un'app, ad esempio la condivisione di un'immagine o il completamento a livello di gioco, crea un punto di questo tipo. Assicurati di considerare in quali momenti del flusso dell'app verso i migliori annunci interstitial display e la probabilità che l'utente risponda.
Metti in pausa l'azione quando viene visualizzato un annuncio interstitial.
Esistono vari tipi di annunci interstitial, come testo, un'immagine o un video. È importante assicurarsi che quando nell'app sia visualizzata un annuncio interstitial, sospende anche l'utilizzo di alcune risorse per consentire sfruttarle. Ad esempio, quando effettui la chiamata per visualizzare un annunci interstitial, assicurati di mettere in pausa l'output audio prodotto dalla tua app. Puoi riprendere la riproduzione dei suoni nell'evento OnAdFullScreenContentClosed(), che può essere richiamato quando l'utente ha terminato di interagire con l'annuncio. Nel Inoltre, valuta la possibilità di interrompere temporaneamente qualsiasi attività di calcolo intensiva, come ciclo di gioco mentre l'annuncio viene visualizzato. Questo assicura che l'utente non riscontrano grafiche lente o che non rispondono oppure video con stuttering.
Non inondare l'utente di annunci.
L'aumento della frequenza degli annunci interstitial nella tua app può sembrare come un ottimo modo per aumentare le entrate, può anche peggiorare l'esperienza utente e percentuali di clic inferiori. Assicurati che gli utenti non siano così di frequente interrotti in modo che non possano più utilizzare la tua app.
.

Risorse aggiuntive