Annunci interstitial


Gli annunci 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 le attività o durante la pausa tra i livelli di un gioco. Quando un'app mostra un annuncio interstitial, l'utente può scegliere di toccare l'annuncio e continuare fino alla sua destinazione oppure chiuderlo e tornare all'app. Caso di studio.

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

Prerequisiti

Esegui sempre test con annunci di prova

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

Il modo più semplice per caricare gli annunci di prova è utilizzare l'ID unità pubblicitaria di test dedicato per gli interstitial, che varia in base alla piattaforma del dispositivo:

  • Android: ca-app-pub-3940256099942544/1033173712
  • iOS: ca-app-pub-3940256099942544/4411468910

Questi ID sono stati configurati appositamente per restituire annunci di prova per ogni richiesta e puoi utilizzarli liberamente nelle tue app durante la codifica, i test e il debug. Assicurati solo di sostituirli con i tuoi ID unità pubblicitarie 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. Visualizza l'annuncio e gestisci gli eventi del suo ciclo di vita.

Configura un InterstitialAd

Gli annunci interstitial vengono visualizzati negli oggetti InterstitialAd, quindi il primo passo per integrarli 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 vista genitore convertita in un tipo AdParent. La vista genitore è un riferimento jobject JNI a un'attività Android Activity o un puntatore a una 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 richiamando InitializeLastResult() sull'oggetto InterstitialAd. Questo 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 futuri per monitorare lo stato di completamento delle chiamate ai metodi calls.

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 firebase::Future che puoi utilizzare per monitorare lo stato e il risultato dell'operazione di caricamento.

Il seguente codice mostra come caricare un annuncio una volta inizializzato correttamente 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 i callback

Devi estendere la classe FullScreenContentListener per ricevere notifiche sulla presentazione e sugli eventi del ciclo di vita degli annunci interstitial. La sottoclasse personalizzata FullScreenContentListener può essere registrata tramite il metodo InterstitialAd::SetFullScreenContentListener() e riceverà i 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 visualizzato, un annuncio interstitial non può essere visualizzato di nuovo. Una best practice consiste nel caricare un altro annuncio interstitial nel metodo OnAdDismissedFullScreenContent() di FullScreenContentListener in modo che il caricamento dell'annuncio interstitial successivo inizi non appena viene ignorato quello precedente.

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 contenuti a schermo intero, il futuro restituito da Show() segnalerà anche quando l'annuncio è stato visualizzato correttamente.

  firebase::Future<void> result = interstitial_ad->