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 di toccarlo e continuare alla destinazione o chiuderlo e tornare all'app. Caso di studio.
Questa guida spiega come integrare gli annunci interstitial in un'app Unity.
Prerequisiti
- Completa la Guida introduttiva.
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 configurato appositamente per restituire annunci di prova anziché annunci di produzione per ogni richiesta, il che lo rende sicuro da usare.
Tuttavia, dopo aver registrato un'app nell'interfaccia web di AdMob e creato i tuoi ID unità pubblicitaria da utilizzare nell'app, configura esplicitamente il dispositivo come dispositivo di prova durante lo sviluppo.
Android
ca-app-pub-3940256099942544/1033173712
iOS
ca-app-pub-3940256099942544/4411468910
Inizializza l'SDK Mobile Ads
Prima di caricare gli annunci, fai in modo che l'app inizili 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. In questo modo, avrai la certezza che tutti gli adattatori di mediazione siano inizializzati.
Implementazione
I passaggi principali per integrare gli annunci interstitial sono:
- Carica l'annuncio interstitial
- Mostra l'annuncio interstitial
- Ascoltare gli eventi degli annunci interstitial
- Ripulire l'annuncio interstitial
- Precaricare 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 load richiede un ID unità pubblicitaria, un oggetto AdRequest
e un gestore del completamento che viene chiamato quando il caricamento dell'annuncio va a buon fine o non va a buon fine. L'oggetto caricatoInterstitialAd
viene fornito come parametro nel gestore di completamento. L'esempio seguente mostra come caricare un
InterstitialAd
.
// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
private string _adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
private string _adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
private string _adUnitId = "unused";
#endif
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 AdRequest();
// send the request to load the ad.
InterstitialAd.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 InterstitialAd
. Gli annunci possono essere mostrati una volta per caricamento. Utilizza il metodo CanShowAd()
per verificare che l'annuncio sia pronto per essere pubblicato.
/// <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. Per rilevare questi eventi, registra 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);
};
}
Ripulire l'annuncio interstitial
Al termine di un InterstitialAd
, assicurati di chiamare il metodo Destroy()
prima di eliminarne il riferimento:
_interstitialAd.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.
Precaricare l'annuncio interstitial successivo
Gli annunci interstitial sono oggetti monouso. Ciò significa che, una volta visualizzato un annuncio interstitial, l'oggetto non può essere riutilizzato. Per richiedere un altro annuncio interstitial,
crea un nuovo oggetto InterstitialAd
.
Per preparare un annuncio interstitial per la successiva opportunità di impressione, precaricalo quando viene attivato l'evento annuncio OnAdFullScreenContentClosed
o OnAdFullScreenContentFailed
.
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();
};
}
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 di un livello di gioco, crea questo punto. Assicurati di valutare in quali punti del flusso della tua app mostrare al meglio gli annunci in interrompi ed eventualmente come l'utente potrebbe reagire.
- Metti in pausa l'azione quando visualizzi un annuncio interstitial.
- Esistono vari tipi di annunci interstitial come annunci di testo,
illustrati o video. È 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 nell'evento
OnAdFullScreenContentClosed()
, che può essere richiamato quando l'utente ha terminato di interagire con l'annuncio. Inoltre, ti consigliamo di interrompere temporaneamente eventuali attività di calcolo intenso, ad esempio un loop di gioco, durante la visualizzazione dell'annuncio. Ciò garantisce che l'utente non riscontri grafici lenti o che non rispondono, né video stuttering. - 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 le interruzioni non siano così frequenti da impedire agli utenti di utilizzare la tua app.
Risorse aggiuntive
- Esempio HelloWorld: un'implementazione minima di tutti i formati degli annunci.