Annunci interstitial


Gli interstitial sono annunci a schermo intero che coprono l'interfaccia di un'app finché non vengono chiusi dall'utente. In genere vengono visualizzati 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

Effettua sempre test con annunci di prova

Quando crei e testi le tue app, assicurati di utilizzare annunci di prova anziché annunci pubblicati in produzione. In caso contrario, il tuo 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 configurati appositamente per restituire annunci di prova per ogni richiesta e puoi utilizzarli 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 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:

  1. Carica un annuncio.
  2. Registrati per i callback.
  3. Mostrare l'annuncio e gestire i relativi eventi del ciclo di vita.

Configurare un InterstitialAd

Gli annunci interstitial vengono visualizzati in oggetti InterstitialAd, quindi il primo passo per integrare gli annunci interstitial nella tua app è creare e inizializzare un oggetto InterstitialAd.

  1. Aggiungi la seguente intestazione al codice C++ dell'app:

     #include "firebase/gma/interstial_ad.h"

  2. Dichiara e crea un'istanza di un oggetto InterstitialAd:

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

  3. Inizializza l'istanza InterstitialAd utilizzando la visualizzazione principale trasmessa a un tipo AdParent. La visualizzazione principale è un riferimento jobject JNI a un Activity Android o un puntatore a un UIView 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 a conservare il futuro come variabile, puoi controllare periodicamente lo stato dell'operazione di inizializzazione chiamando InitializeLastResult() sull'oggetto InterstitialAd. Questa operazione 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 i futures 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 load richiede che tu abbia inizializzato l'oggetto InterstitialAd e che tu abbia 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 relative alla presentazione degli annunci in primo piano e agli eventi del ciclo di vita. La sottoclasse personalizzataFullScreenContentListener può essere registrata tramite il metodoInterstitialAd::SetFullScreenContentListener() e riceverà callback quando l'annuncio viene visualizzato correttamente o non correttamente, 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 dopo la prima visualizzazione. 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 annunci interstitial devono essere visualizzati 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 valore 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 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 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 i punti 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 di FullScreenContentListener 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à elementi grafici lenti o non responsivi o video con balbuzie.
Assicurati che il tempo di caricamento sia adeguato.
Proprio come è importante assicurarsi di mostrare gli annunci interstitial al momento opportuno, è importante anche assicurarsi che l'utente non debba attendere il loro caricamento. Se carichi l'annuncio in anticipo prima di volerlo mostrare, puoi assicurarti che la tua app abbia un annuncio interstitial completamente caricato e pronto quando è il momento di mostrarlo.
Non inondare l'utente di annunci.
Anche se aumentare la frequenza degli annunci interstitial nella tua app può 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.
Non utilizzare l'espressione futura di completamento del caricamento per mostrare l'interstitial.
Questo può causare una scarsa esperienza utente. Carica in anticipo l'annuncio prima di doverlo mostrare.

Risorse aggiuntive

Esempio in GitHub

Tutorial video di Garage per annunci mobile

Casi di successo

Passaggi successivi