Annunci interstitial

Gli annunci interstitial sono annunci a schermo intero che coprono l'interfaccia di un'app finché non vengono chiusi dall'utente. Solitamente sono mostrati in 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 o di chiuderlo per tornare all'app. Case study

Questa guida mostra come integrare gli annunci interstitial nelle app per Android e iOS utilizzando l'SDK C++ di Google Mobile Ads.

Prerequisiti

Esegui sempre il test con gli annunci di prova

Quando crei e testi le tue app, assicurati di utilizzare annunci di prova anziché annunci attivi di produzione. In caso contrario, l'account potrebbe essere sospeso.

Il modo più semplice per caricare gli annunci di prova è utilizzare il nostro ID unità pubblicitaria di prova 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 stati appositamente progettati per restituire annunci di prova per ogni richiesta e possono essere utilizzati nelle proprie app durante la programmazione, il test e il debug. Assicurati di sostituirlo 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 la pagina Annunci di prova.

Implementazione

Ecco i passaggi principali per integrare gli annunci interstitial:

  1. Caricare un annuncio.
  2. Registrati per richiamare.
  3. Mostra l'annuncio e gestisci i relativi eventi del ciclo di vita.

Configura un InterstitialAd

Poiché gli annunci interstitial vengono visualizzati in oggetti InterstitialAd, il primo passo per integrare gli annunci interstitial nella tua app consiste nel creare e inizializzare un oggetto InterstitialAd.

  1. Aggiungi la seguente intestazione al codice C++ della tua app:

     #include "firebase/gma/interstial_ad.h"
    

  2. Dichiarare e creare un'istanza di un oggetto InterstitialAd:

     firebase::gma::InterstitialAd* interstitial_ad;
     interstitial_ad = new firebase::gma::InterstitialAd();
    

  3. Inizializza l'istanza InterstitialAd utilizzando la trasmissione principale in un tipo AdParent. La vista genitore è un riferimento JNI jobject a un Activity Android o un puntatore a UIView di 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);
    
  4. In alternativa al mantenimento del futuro come variabile, puoi controllare periodicamente lo stato dell'operazione di inizializzazione richiamando InitializeLastResult() sull'oggetto InterstitialAd. 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 la pagina Utilizzare il futuro per monitorare lo stato di completamento delle chiamate ai metodi.

Caricare 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 e la presenza dell'ID unità pubblicitaria e di 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 ai callback

Devi estendere la classe FullScreenContentListener per ricevere notifiche di presentazioni di annunci interstitial e di eventi del ciclo di vita. La sottocategoria FullScreenContentListener personalizzata può essere registrata tramite il metodo InterstitialAd::SetFullScreenContentListener(), inoltre riceverà i callback quando l'annuncio viene presentato correttamente o meno e 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 monouso. Ciò significa che, una volta che un annuncio interstitial viene mostrato, non può più essere mostrato. Ti consigliamo di caricare un altro annuncio interstitial nel metodo OnAdDismissedFullScreenContent() del tuo FullScreenContentListener in modo che l'annuncio interstitial successivo inizi a essere caricato man mano che il precedente viene ignorato.

Visualizza l'annuncio

Gli interstitial devono essere visualizzati durante le pause naturali del flusso di un'app. Tra un livello e l'altro di un gioco è un buon esempio oppure dopo che l'utente completa un'attività. FullScreenContentListener può essere utilizzato per determinare quando un annuncio è stato mostrato sui contenuti a schermo intero. Inoltre, il futuro restituito da Show() indicherà 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 al meglio nelle app con punti di transizione naturali. La confondenza 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 di questo tipo. Poiché l'utente si aspetta un'interruzione nell'azione, è facile presentare un annuncio interstitial senza interrompere la sua esperienza. Pensate a quali momenti del flusso di lavoro della vostra app mostrerete gli annunci interstitial e come è probabile 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 altro ancora. È importante assicurarsi che quando la tua app mostra un annuncio interstitial, sospende anche l'utilizzo di alcune risorse per consentire all'annuncio di sfruttare tali annunci. Ad esempio, quando effettui la chiamata per mostrare un annuncio interstitial, assicurati di mettere in pausa l'output audio prodotto dalla tua app. Puoi riprendere la riproduzione dei suoni nel metodo OnAdDismissedFullScreenContent della FullScreenContentListener installata, che verrà richiamata al termine dell'interazione dell'utente con l'annuncio. Inoltre, potresti interrompere temporaneamente le attività di calcolo più intense (come il ciclo di gioco) durante la visualizzazione dell'annuncio. In questo modo l'utente non riscontra elementi con immagini lente o che non rispondono o video con interruzioni.
Tempi di caricamento adeguati.
Così come è importante assicurarsi di mostrare gli annunci interstitial al momento giusto, è altrettanto importante assicurarsi che l'utente non debba attendere il caricamento. Il caricamento anticipato dell'annuncio prima della tua pubblicazione può garantire che l'annuncio interstitial sia completamente carico per la tua app nel momento in cui vuoi mostrarne uno.
Non inondare l'utente con annunci.
Sebbene l'aumento della frequenza degli annunci interstitial nella tua app possa sembrare un ottimo modo per aumentare le entrate, può anche ridurre l'esperienza utente e ridurre le percentuali di clic. Assicurati che gli utenti non siano spesso disturbati da non poter più utilizzare l'app.
Non utilizzare il completamento del caricamento in futuro per mostrare la pagina interstitial.
Ciò può compromettere l'esperienza utente. Precarica l'annuncio prima che sia necessario mostrarlo.

Risorse aggiuntive

Esempio in GitHub

Tutorial video di Mobile Ads Garage

Casi di successo

Passaggi successivi