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
- Completa la Guida introduttiva.
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 cuiInterstitialAd
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 annuncio | Descrizione |
---|---|
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 chiamareshow()
, 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
- Esempio HelloWorld un'implementazione minima di tutti i formati degli annunci