Gli annunci 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 le varie attività 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 verso la relativa destinazione o chiuderlo e tornare all'app. Case study.
Questa guida mostra 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à con i riferimenti JNI
jobject(consulta i suggerimenti per JNI Android).
Esegui sempre i test con gli annunci di prova
Durante la creazione e il test delle tue app, assicurati di utilizzare annunci di prova anziché annunci di prodotto. In caso contrario, il tuo account potrebbe essere sospeso.
Il modo più semplice per caricare gli annunci di test è utilizzare il nostro ID unità pubblicitaria di test dedicato per gli annunci interstitial, che varia in base alla piattaforma del dispositivo:
- Android:
ca-app-pub-3940256099942544/1033173712 - iOS:
ca-app-pub-3940256099942544/4411468910
Sono state configurate appositamente per restituire annunci di prova per ogni richiesta e puoi utilizzarle liberamente 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 saperne di più sul funzionamento degli annunci di prova dell'SDK per gli annunci per dispositivi mobili, consulta Annunci di prova.
Implementazione
I passaggi principali per integrare gli annunci interstitial sono:
- Carica un annuncio.
- Registrati per i callback.
- Visualizza l'annuncio e gestisci i relativi eventi del ciclo di vita.
Configura un InterstitialAd
Gli annunci interstitial vengono visualizzati negli oggetti InterstitialAd, pertanto il primo passaggio per integrare gli annunci interstitial nella tua app è creare e inizializzare un oggetto InterstitialAd.
Aggiungi la seguente intestazione al codice C++ della tua app:
#include "firebase/gma/interstial_ad.h"
Dichiara e crea un'istanza di un oggetto
InterstitialAd:firebase::gma::InterstitialAd* interstitial_ad; interstitial_ad = new firebase::gma::InterstitialAd();
Inizializza l'istanza
InterstitialAdutilizzando il cast della vista genitore in un tipoAdParent. La vista principale è un riferimento JNIjobjecta unActivityAndroid o un puntatore a unUIViewiOS.// 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 future come variabile, puoi controllare periodicamente lo stato dell'operazione di inizializzazione richiamando
InitializeLastResult()sull'oggettoInterstitialAd. Questo può essere utile per tenere traccia del processo di inizializzazione nel loop 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 saperne di più sull'utilizzo di firebase::Future, consulta Utilizza i future per monitorare lo stato di completamento delle chiamate ai metodi.
Carica un annuncio
Il caricamento di un annuncio viene eseguito utilizzando il metodo LoadAd() sull'oggetto InterstitialAd. Il metodo di caricamento richiede l'inizializzazione dell'oggetto InterstitialAd, l'ID unità pubblicitaria e un oggetto AdRequest. Viene restituito un 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 che InterstitialAd è stato inizializzato correttamente:
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
notifiche sulla presentazione degli annunci interstitial e sugli eventi del ciclo di vita. La tua 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, 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() di FullScreenContentListener, in modo che l'annuncio interstitial successivo inizi a caricarsi non appena quello precedente viene chiuso.
Visualizza l'annuncio
Gli interstitial devono essere mostrati durante le pause naturali nel flusso di un'app.
Un buon esempio è tra i livelli di un gioco o dopo che l'utente ha completato un'attività.
Sebbene FullScreenContentListener possa essere utilizzato per determinare quando un annuncio ha mostrato i suoi contenuti a schermo intero, 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 conclusione di un'attività all'interno di un'app, come 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 l'utente potrebbe rispondere.
- Ricordati di mettere in pausa l'azione quando mostri un annuncio interstitial.
- Esistono diversi tipi di annunci interstitial: di testo, illustrati, video e altro 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 annuncio interstitial, assicurati di mettere in pausa l'output audio prodotto dalla tua app. Puoi riprendere la riproduzione dei suoni nel metodo
OnAdDismissedFullScreenContentdel tuoFullScreenContentListenerinstallato, che verrà richiamato quando l'utente avrà terminato di interagire con l'annuncio. Inoltre, valuta la possibilità di interrompere temporaneamente qualsiasi attività di calcolo intensa (ad esempio un ciclo di gioco) mentre l'annuncio viene visualizzato. In questo modo, l'utente non riscontrerà problemi di grafica lenta o non reattiva o di video con interruzioni. - Prevedi un tempo di caricamento adeguato.
- Così come è importante assicurarsi di mostrare gli annunci interstitial al momento opportuno, è anche importante assicurarsi che l'utente non debba attendere il loro caricamento. Il caricamento dell'annuncio prima della pubblicazione può garantire che l'app abbia un annuncio interstitial completamente caricato e pronto per essere visualizzato al momento opportuno.
- Non sovraccaricare l'utente con annunci.
- Aumentare la frequenza degli annunci interstitial nella tua app potrebbe sembrare un ottimo modo per incrementare le entrate, ma può anche peggiorare l'esperienza utente e ridurre le percentuali di clic. Assicurati che gli utenti non vengano interrotti così spesso da non riuscire più a utilizzare la tua app.
- Non utilizzare il future di completamento del caricamento per mostrare l'interstitial.
- Questo 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.
Video tutorial di Mobile Ads Garage
Casi di successo
Passaggi successivi
- Se non l'hai ancora 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.