Gli annunci interstitial sono annunci a schermo intero che coprono l'interfaccia di un'app fino alla chiusura dall'utente. In genere sono mostrati nei punti di transizione naturali nel flusso di un'app, ad esempio tra le attività o durante la pausa tra i livelli di un gioco. Quando un'app mostra un annuncio interstitial, l'utente ha la possibilità di toccare l'annuncio e continuare con la destinazione oppure di chiuderla e tornare all'app. Case study.
Questa guida illustra come integrare gli annunci interstitial nelle app per Android e iOS utilizzando l'SDK C++ di Google Mobile Ads.
Prerequisiti
- Completa la guida introduttiva.
- (Solo Android) Familiarità con i riferimenti a JNI
jobject
(consulta i suggerimenti di JNI per Android).
Esegui sempre il test con gli annunci di prova
Quando crei e testi le tue app, assicurati di utilizzare gli annunci di prova anziché gli annunci di produzione. In caso contrario, il tuo account potrebbe essere sospeso.
Il modo più semplice per caricare gli annunci di prova è utilizzare l'ID dell'unità pubblicitaria di prova dedicata per gli annunci interstitial, che varia a seconda della piattaforma per dispositivo:
- Android:
ca-app-pub-3940256099942544/1033173712
- iOS:
ca-app-pub-3940256099942544/4411468910
Sono stati appositamente configurati per restituire annunci di test per ogni richiesta e possono essere utilizzati nelle tue app durante la programmazione, il test e il debug. Assicurati di sostituirla con il tuo ID unità pubblicitaria prima di pubblicare l'app.
Per ulteriori informazioni su come funzionano gli annunci di prova dell'SDK Mobile Ads, consulta Annunci di prova.
Implementazione
Ecco i passaggi principali per l'integrazione degli annunci interstitial:
- Caricare un annuncio.
- Registrati per richiamare.
- Mostrare l'annuncio e gestire i relativi eventi del ciclo di vita.
Configura una InterstitialAd
Gli annunci interstitial vengono visualizzati negli oggetti InterstitialAd
, pertanto il primo passo verso l'integrazione degli annunci interstitial nella tua app è la creazione e l'inizializzazione di un oggetto InterstitialAd
.
Aggiungi la seguente intestazione al codice C++ della tua app:
#include "firebase/gma/interstial_ad.h"
Dichiara e crea un'istanza
InterstitialAd
per un oggetto:firebase::gma::InterstitialAd* interstitial_ad; interstitial_ad = new firebase::gma::InterstitialAd();
Inizializza l'istanza
InterstitialAd
utilizzando la trasmissione padre in un tipoAdParent
. La vista principale è un riferimento JNIjobject
a unActivity
Android o un puntatoreUIView
a iOS.// my_ad_parent is a jobject reference to an Android Activity or // a pointer to an iOS UIView. firebase::gma::AdParent ad_parent = static_cast<firebase::gma::AdParent>(my_ad_parent); firebase::Future<void> result = interstitial_ad->Initialize(ad_parent);
Invece di conservare il futuro come variabile, puoi controllare periodicamente lo stato dell'operazione di inizializzazione richiamando
InitializeLastResult()
sull'oggettoInterstitialAd
. Ciò può essere utile per tenere traccia del processo di inizializzazione nel ciclo di gioco globale.// Monitor the status of the future in your game loop: firebase::Future<void> result = interstitial_ad->InitializeLastResult(); if (result.status() == firebase::kFutureStatusComplete) { // Initialization completed. if(future.error() == firebase::gma::kAdErrorCodeNone) { // Initialization successful. } else { // An error has occurred. } } else { // Initialization on-going. }
Per ulteriori informazioni sull'utilizzo di firebase::Future
, consulta
Utilizzare la funzionalità Future per monitorare lo stato di completamento delle chiamate di metodo.
Carica un annuncio
Il caricamento di un annuncio viene eseguito utilizzando il metodo LoadAd()
nell'oggetto InterstitialAd
. Il metodo di caricamento richiede di aver inizializzato l'oggetto InterstitialAd
e di avere l'ID dell'unità pubblicitaria e un oggetto AdRequest
. Viene restituito firebase::Future
, che puoi utilizzare per monitorare lo stato e il risultato dell'operazione di caricamento.
Il codice seguente mostra come caricare un annuncio dopo che InterstitialAd
è stato inizializzato:
firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result;
load_ad_result = interstitial_ad->LoadAd(interstitial_ad_unit_id, ad_request);
Registrati per i callback
Devi estendere la classe FullScreenContentListener
per ricevere le notifiche degli eventi interstitial di presentazione degli annunci e del ciclo di vita. La sottoclasse personalizzata di FullScreenContentListener
può essere registrata tramite il metodo InterstitialAd::SetFullScreenContentListener()
e riceverà richiami quando l'annuncio viene presentato correttamente o meno, nonché quando viene ignorato.
Il codice seguente mostra come estendere la classe e assegnarla all'annuncio:
class ExampleFullScreenContentListener : public firebase::gma::FullScreenContentListener { public: ExampleFullScreenContentListener() {} void OnAdClicked() override { // This method is invoked when the user clicks the ad. } void OnAdDismissedFullScreenContent() override { // This method is invoked when the ad dismisses full screen content. } void OnAdFailedToShowFullScreenContent(const AdError& error) override { // This method is invoked when the ad failed to show full screen content. // Details about the error are contained within the AdError parameter. } void OnAdImpression() override { // This method is invoked when an impression is recorded for an ad. } void OnAdShowedFullScreenContent() override { // This method is invoked when the ad showed its full screen content. } }; ExampleFullScreenContentListener* full_screen_content_listener = new ExampleFullScreenContentListener(); interstitial_ad->SetFullScreenContentListener(full_screen_content_listener);
InterstitialAd
è un oggetto utilizzabile una sola volta. Ciò significa che, una volta mostrato, un annuncio interstitial non può essere mostrato di nuovo. Una best practice consiste nel caricare un altro annuncio interstitial nel metodo OnAdDismissedFullScreenContent()
dell'annuncio FullScreenContentListener
in modo che il successivo annuncio interstitial inizi a caricarsi appena possibile come quello precedente.
Visualizza l'annuncio
Gli interstitial devono essere visualizzati durante le pause naturali del flusso di un'app.
Tra i livelli di un gioco è un buon esempio o dopo che l'utente completa un'attività.
FullScreenContentListener
può essere utilizzato per determinare quando i contenuti di un annuncio sono stati visualizzati a schermo intero, ma il futuro restituito da Show()
indicherà anche quando l'annuncio è stato mostrato correttamente.
firebase::Future<void> result = interstitial_ad->Show();
Best practice
- Valuta se gli annunci interstitial sono il tipo di annuncio giusto per la tua app.
- Gli annunci interstitial funzionano meglio nelle app con punti di transizione naturali. La confusione di un'attività all'interno di un'app, come la condivisione di un'immagine o il completamento di un livello di gioco, crea un punto simile. Poiché l'utente si aspetta un'interruzione dell'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 devi 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. È importante assicurarsi che quando la propria app visualizza un annuncio interstitial, sospende anche l'utilizzo di alcune risorse per consentirne l'utilizzo. Ad esempio, quando effettui una chiamata per visualizzare un annuncio interstitial, assicurati di mettere in pausa l'output audio prodotto dalla tua app. Puoi riprendere la riproduzione dei suoni nel metodo
OnAdDismissedFullScreenContent
dellaFullScreenContentListener
installata, che verrà richiamata al termine dell'interazione dell'utente con l'annuncio. Inoltre, prendi in considerazione l'interruzione temporanea di attività di calcolo molto intense (ad esempio un ciclo di gioco) durante la visualizzazione dell'annuncio. In questo modo, l'utente non riscontrerà immagini crude o non rispondenti o video soggetti a stuttering. - I tempi di caricamento sono corretti.
- Così come è importante assicurarsi di mostrare gli annunci interstitial nel momento opportuno, è altrettanto importante assicurarsi che l'utente non debba attendere il caricamento. Caricare l'annuncio in anticipo prima della pubblicazione ti consente di garantire che la tua app disponga di un annuncio interstitial completamente caricato quando è il momento di mostrarlo.
- Non inondare l'utente degli annunci.
- L'aumento della frequenza degli annunci interstitial nella tua app potrebbe sembrare un ottimo modo per incrementare le entrate, ma può anche ridurre l'esperienza utente e ridurre le percentuali di clic. Assicurati che gli utenti non vengano interrotti così spesso che non possano più usare la tua app.
- Non usare il completamento caricamento in futuro per mostrare l'annuncio interstitial.
- Ciò può compromettere l'esperienza utente. Precarica l'annuncio prima di mostrarlo.
Risorse aggiuntive
Esempio in GitHub
- Visualizza il codice sorgente della nostra app di avvio di esempio in GitHub.
Tutorial video di Mobile Ads Training
Casi di successo
Passaggi successivi
- Se non l'hai già fatto, crea la tua unità pubblicitaria interstitial nella UI di AdMob.
- Ulteriori informazioni sul targeting degli annunci e sulle linee guida per gli annunci interstitial.