Annunci interstitial (legacy)

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 la pausa tra i livelli di un gioco. Quando un'app mostra un annuncio interstitial, l'utente può scegliere se toccarlo e passare alla destinazione oppure chiuderlo e tornare all'app. Case study.

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

Prerequisiti

Creare un annuncio interstitial

Il primo passaggio per visualizzare un annuncio interstitial consiste nel creare un oggetto InterstitialAd in uno script associato a un GameObject.

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

Il costruttore di InterstitialAd ha il seguente parametro:

  • adUnitId: l'ID dell'unità pubblicitaria AdMob da cui InterstitialAd deve caricare gli annunci.

È importante notare come vengono utilizzate le diverse unità pubblicitarie a seconda della piattaforma. Devi utilizzare un'unità pubblicitaria iOS per effettuare richieste di annunci su iOS e un'unità pubblicitaria Android per effettuare richieste su Android.

Effettua sempre test con annunci di prova

Il codice campione riportato sopra contiene un ID unità pubblicitaria e puoi utilizzarlo per richiedere annunci. È stato appositamente configurato per restituire annunci di prova anziché annunci di produzione per ogni richiesta, il che lo rende sicuro da utilizzare.

Tuttavia, dopo aver registrato un'app nell'interfaccia utente di AdMob e creato gli ID delle unità pubblicitarie da utilizzare nell'app, devi configurare il dispositivo come dispositivo di test in modo esplicito durante la fase di sviluppo. Questo è estremamente importante. Eseguire test con annunci reali (anche se non li tocchi mai) è in contrasto con le norme di AdMob e può causare la sospensione dell'account. Consulta Annunci di prova per informazioni su come assicurarti di ricevere sempre annunci di prova in fase di sviluppo.

Carica un annuncio

Dopo aver creato l'istanza di InterstitialAd, il passaggio successivo consiste nel caricare un annuncio. Puoi farlo con il metodo loadAd() nella classe InterstitialAd. Occorre un argomento AdRequest, che contiene informazioni sul runtime (ad esempio informazioni sul targeting) su una singola richiesta di annuncio.

Ecco un esempio che mostra come caricare un annuncio:

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

Mostra l'annuncio

Gli annunci interstitial dovrebbero essere visualizzati durante le pause naturali nel flusso di un'app. Tra i livelli di un gioco è un buon esempio o dopo che l'utente ha completato un'attività. Per mostrare un annuncio interstitial, utilizza il metodo isLoaded() per verificare che il caricamento sia stato completato, quindi chiama show().

L'annuncio interstitial dell'esempio di codice precedente potrebbe essere mostrato alla fine di un gioco, come mostrato di seguito.

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

Eventi annuncio

Per personalizzare ulteriormente il comportamento dell'annuncio, puoi collegarti a una serie di eventi nel ciclo di vita dell'annuncio: caricamento, apertura, chiusura e così via. Ascolta questi eventi registrando un delegato per il EventHandler appropriato, come mostrato di seguito.

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

L'evento OnAdFailedToLoad contiene argomenti di evento speciale. Passa un'istanza HandleAdFailedToLoadEventArgs con un valore Message che descrive l'errore:

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    print("Interstitial failed to load: " + args.Message);
    // Handle the ad failed to load event.
}
Evento annuncioDescrizione
OnAdLoaded L'evento OnAdLoaded viene eseguito al termine del caricamento dell'annuncio.
OnAdFailedToLoad L'evento OnAdFailedToLoad viene richiamato quando un annuncio non viene caricato. Il parametro Message descrive il tipo di errore che si è verificato.
OnAdOpening Questo metodo viene richiamato quando l'annuncio viene mostrato, coprendo lo schermo del dispositivo.
OnAdClosed Questo metodo viene richiamato quando l'annuncio interstitial viene chiuso perché l'utente tocca l'icona di chiusura o utilizza il pulsante Indietro. Se la tua app ha messo in pausa l'output audio o il ciclo di gioco, questo è un ottimo modo per ripristinarla.

Elimina annunci interstitial

Quando hai finito con un InterstitialAd, assicurati di chiamare il metodo Destroy() prima di rimuovere il riferimento:

interstitial.Destroy();

In questo modo viene comunicato al plug-in che l'oggetto non viene più utilizzato e che è possibile recuperare la memoria che occupa. La mancata chiamata di questo metodo determina perdite di memoria.

Alcune best practice

Valuta se gli annunci interstitial sono il tipo di annuncio 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 di un livello di gioco, crea questo punto. Poiché l'utente si aspetta un'interruzione nell'azione, è facile presentare un annuncio interstitial senza interrompere la sua esperienza. Assicurati di considerare i punti del flusso di lavoro della tua app in cui mostrare gli annunci interstitial e la probabilità che l'utente risponda.
Ricorda di mettere in pausa l'azione quando visualizzi un annuncio interstitial.
Esistono diversi tipi di annunci interstitial: di testo, illustrati, video e altri ancora. È importante assicurarsi che, quando l'app mostra un annuncio interstitial, sospenderà anche l'utilizzo di alcune risorse per consentirne l'utilizzo. Ad esempio, quando effettui la chiamata per visualizzare un annuncio interstitial, assicurati di mettere in pausa l'output audio prodotto dall'app. Puoi riprendere la riproduzione dei suoni nel gestore di eventi onAdClosed(), che verrà richiamato al termine dell'interazione dell'utente con l'annuncio. Inoltre, valuta la possibilità di interrompere temporaneamente le attività di calcolo più intense (ad esempio un ciclo di gioco) durante la visualizzazione dell'annuncio. In questo modo, l'utente non avrà immagini lente o che non rispondono, né video stuttering.
Attendi un tempo di caricamento adeguato.
Così come è importante assicurarsi di mostrare gli annunci interstitial al momento giusto, è altrettanto importante assicurarsi che l'utente non debba attendere che vengano caricati. Se carichi l'annuncio in anticipo chiamando il numero loadAd() prima che tu voglia chiamare il numero show(), puoi assicurarti che la tua app abbia un annuncio interstitial completamente caricato al momento giusto per mostrarne uno.
Non inondare l'utente di annunci.
Sebbene l'aumento della frequenza degli annunci interstitial nella tua app possa sembrare un ottimo modo per aumentare le entrate, può anche peggiorare l'esperienza utente e ridurre le percentuali di clic. Assicurati che gli utenti non vengano interrotti di frequente da non poter più usufruire dell'utilizzo della tua app.

Risorse aggiuntive

Campioni

Casi di successo