Gli interstitial sono annunci a schermo intero che coprono l'interfaccia di un'app finché non vengono chiusi dall'utente. In genere vengono mostrati in punti di transizione naturali nel flusso di un'app, ad esempio tra un'attività e l'altra o durante la pausa tra i livelli di un gioco. Quando un'app mostra un annuncio interstitial, l'utente può scegliere se toccare l'annuncio e continuare alla sua destinazione oppure chiuderlo e tornare all'app. Case study.
Questa guida illustra come integrare gli annunci interstitial nelle app per Android e iOS utilizzando l'SDK Google Mobile Ads C++.
Prerequisiti
- Completa la sezione Inizia.
- (Solo Android) Familiarità nell'utilizzo dei riferimenti
jobject
di JNI (vedi i suggerimenti per JNI per Android).
Effettua sempre test con annunci di prova
Quando crei e testi le tue app, assicurati di utilizzare annunci di prova anziché annunci di produzione pubblicati. In caso contrario, l'account verrà sospeso.
Il modo più semplice per caricare annunci di prova è utilizzare il nostro ID unità pubblicitaria di prova dedicato per gli interstitial, che varia in base alla piattaforma del dispositivo:
- Android:
ca-app-pub-3940256099942544/1033173712
- iOS:
ca-app-pub-3940256099942544/4411468910
Sono stati appositamente configurati per restituire annunci di prova per ogni richiesta e puoi utilizzarli nelle tue app durante la programmazione, i test e il debug. Assicurati di sostituirlo con il tuo ID unità pubblicitaria prima di pubblicare l'app.
Per ulteriori informazioni sul funzionamento degli annunci di prova dell'SDK Mobile Ads, consulta Annunci di prova.
Implementazione
I passaggi principali per integrare gli annunci interstitial sono:
- Carica un annuncio.
- Registrati per le richiamate.
- Mostrare l'annuncio e gestirne gli eventi del ciclo di vita.
Configura InterstitialAd
Poiché gli annunci interstitial vengono visualizzati in oggetti InterstitialAd
, il primo passaggio per integrarli nella tua app consiste nella creazione e nell'inizializzazione di un oggetto InterstitialAd
.
Aggiungi la seguente intestazione al codice C++ dell'app:
#include "firebase/gma/interstial_ad.h"
Dichiara e crea un'istanza per un oggetto
InterstitialAd
:firebase::gma::InterstitialAd* interstitial_ad; interstitial_ad = new firebase::gma::InterstitialAd();
Inizializza l'istanza
InterstitialAd
utilizzando la vista padre trasmessa a un tipoAdParent
. La vista genitore è un riferimentojobject
di JNI a unActivity
Android o un puntatore a unUIView
per 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);
In alternativa alla conservazione del futuro come variabile, puoi controllare periodicamente lo stato dell'operazione di inizializzazione richiamando
InitializeLastResult()
sull'oggettoInterstitialAd
. Potrebbe 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 Futures per monitorare lo stato di completamento delle chiamate di metodo.
Carica un annuncio
Il caricamento di un annuncio viene eseguito utilizzando il metodo LoadAd()
sull'oggetto InterstitialAd
. Il metodo di caricamento richiede che tu abbia inizializzato l'oggetto InterstitialAd
e che tu disponga dell'ID unità pubblicitaria e di un oggetto AdRequest
. Viene restituito un valore firebase::Future
, che puoi utilizzare per monitorare lo stato
e il risultato dell'operazione di caricamento.
Il seguente codice mostra come caricare un annuncio dopo l'inizializzazione di InterstitialAd
:
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 le richiamate
Per ricevere notifiche sulla presentazione degli annunci interstitial e sugli eventi del ciclo di vita, devi estendere il corso FullScreenContentListener
. La sottoclasse
FullScreenContentListener
personalizzata può essere registrata tramite il metodo
InterstitialAd::SetFullScreenContentListener()
e riceverà
callback quando l'annuncio viene presentato correttamente o meno, nonché quando
viene ignorato.
Il seguente codice 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 monouso. Ciò significa che un annuncio interstitial
non può essere mostrato di nuovo. Una best practice consiste nel caricare un altro
annuncio interstitial nel metodo OnAdDismissedFullScreenContent()
di
FullScreenContentListener
, in modo che l'annuncio interstitial successivo inizi a essere caricato
presto perché quello precedente viene ignorato.
Visualizza l'annuncio
Gli 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à.
Mentre il FullScreenContentListener
può essere utilizzato per determinare quando un annuncio mostrerà i suoi contenuti a schermo intero, il futuro restituito da Show()
segnalerà anche quando l'annuncio sarà stato pubblicato 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 al meglio nelle app con punti di transizione naturali. La conclusione di un'attività all'interno di un'app, come 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 momenti 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 dalla tua app.
Puoi riprendere la riproduzione dei suoni nel metodo
OnAdDismissedFullScreenContent
diFullScreenContentListener
installato che verrà richiamato quando l'utente ha finito di interagire con l'annuncio. Inoltre, valuta la possibilità di interrompere temporaneamente le attività di calcolo più intense (come un ciclo di gioco) durante la visualizzazione dell'annuncio. In questo modo, l'utente non riscontrerà immagini lente o non reattive oppure 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. Caricare l'annuncio in anticipo prima di pubblicarlo può garantire che la tua app abbia un annuncio interstitial completamente caricato e pronto quando arriva il momento di 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 essere più in grado di utilizzare la tua app.
- Non utilizzare il futuro completamento del caricamento per mostrare l'interstitial.
- Ciò può causare un'esperienza utente scadente. Invece, precarica l'annuncio prima di doverlo mostrare.
Risorse aggiuntive
Esempio in GitHub
- Visualizza il codice sorgente della nostra app di avvio rapido di esempio in GitHub.
Tutorial video di Mobile Ads Garage
Casi di successo
Passaggi successivi
- Se non l'hai già fatto, crea la tua unità pubblicitaria interstitial nell'interfaccia utente di AdMob.
- Scopri di più sul targeting degli annunci e sulle linee guida per gli annunci interstitial.