Annunci interstitial (legacy)

Gli annunci interstitial sono annunci a schermo intero che coprono l'interfaccia dell'app host. In genere vengono visualizzati 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 di toccarlo e continuare alla destinazione o chiuderlo e tornare all'app. Caso di studio.

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

Prerequisiti

Creare un annuncio interstitial

Il primo passaggio per visualizzare un 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 unità pubblicitaria AdMob da cui InterstitialAd deve caricare gli annunci.

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

Esegui sempre test con annunci di prova

Il codice di esempio riportato sopra contiene un ID unità pubblicitaria e puoi richiedere annunci con questo codice. È stato configurato appositamente per restituire annunci di test anziché annunci di produzione per ogni richiesta, il che lo rende sicuro da usare.

Tuttavia, dopo aver registrato un'app nell'interfaccia utente di AdMob e aver creato i tuoi ID unità pubblicitarie da utilizzare nell'app, dovrai configurare esplicitamente il dispositivo come dispositivo di test durante lo sviluppo. Questo è estremamente importante. I test con annunci reali (anche se non li tocchi mai) sono vietati dalle norme di AdMob e possono comportare la sospensione del tuo account. Consulta la sezione Annunci di prova per informazioni su come assicurarti di ricevere sempre annunci di prova durante lo sviluppo.

Carica un annuncio

Una volta creato l'oggetto InterstitialAd, il passaggio successivo consiste nel caricare un annuncio. Questa operazione viene eseguita con il metodo loadAd() nella classe InterstitialAd. Richiede un argomento AdRequest, che contiene informazioni di runtime (ad es. 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);
}

Mostrare l'annuncio

Gli annunci interstitial devono essere visualizzati durante le pause naturali nel flusso di un'app. Un buon esempio è la pausa tra i livelli di un gioco o dopo che l'utente ha completato un'attività. Per mostrare un annuncio in primo piano, utilizza il metodo isLoaded() per verificare che sia terminato il caricamento, 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 dell'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. Per ascoltare questi eventi, registra un delegato per l'EventHandler appropriato, come показано показано 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 eventi speciali. Passa un'istanza di HandleAdFailedToLoadEventArgs con un 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 di un annuncio.
OnAdFailedToLoad L'evento OnAdFailedToLoad viene invocato quando non riesce a caricare un annuncio. Il parametro Message descrive il tipo di errore che si è verificato.
OnAdOpening Questo metodo viene invocato quando l'annuncio viene visualizzato e copre lo schermo del dispositivo.
OnAdClosed Questo metodo viene invocato 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 loop di gioco, questo è un ottimo punto per riprenderla.

Eliminare gli annunci interstitial

Al termine di un InterstitialAd, assicurati di chiamare il metodo Destroy() prima di eliminarne il riferimento:

interstitial.Destroy();

In questo modo, il plug-in viene informato che l'oggetto non viene più utilizzato e che la memoria occupata può essere recuperata. La mancata chiamata di questo metodo comporta 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 un gioco, crea un punto di questo tipo. Poiché l'utente si aspetta un'interruzione dell'azione, è facile presentare un annuncio interstitial senza interrompere la sua esperienza. Assicurati di considerare in quali punti del flusso di lavoro della tua app mostrerai gli annunci interstitial e come è probabile che l'utente risponda.
Ricordati di mettere in pausa l'azione quando viene visualizzato 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, sospenda anche l'utilizzo di alcune risorse per consentire all'annuncio di 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 nel gestore eventi onAdClosed(), che verrà invocato quando l'utente avrà terminato di interagire con l'annuncio. Inoltre, valuta la possibilità di interrompere temporaneamente eventuali attività di calcolo intenso (ad esempio un loop di gioco) durante la visualizzazione dell'annuncio. In questo modo, l'utente non vedrà elementi grafici lenti o non responsivi o video con balbuzie.
Assicurati che il tempo di caricamento sia adeguato.
Proprio come è importante assicurarsi di mostrare gli annunci interstitial al momento opportuno, è importante anche assicurarsi che l'utente non debba attendere il loro caricamento. Se carichi l'annuncio in anticipo chiamando loadAd() prima di chiamare show(), puoi assicurarti che la tua app abbia un annuncio interstitial completamente caricato pronto per essere visualizzato quando sarà il momento.
Non inondare l'utente di annunci.
Anche se aumentare la frequenza degli annunci interstitial nella tua app può sembrare un ottimo modo per aumentare le entrate, può anche peggiorare l'esperienza utente e ridurre le percentuali di clic. Assicurati che le interruzioni non siano così frequenti da impedire agli utenti di utilizzare la tua app.

Risorse aggiuntive

Esempi

Casi di successo