Precaricamento degli annunci (alpha)

Seleziona la piattaforma: Android (beta) Nuovo Android iOS Unity

Il precaricamento degli annunci è una funzionalità di caricamento degli annunci gestita da Google in Google Mobile Ads SDK che gestisce il caricamento e la memorizzazione nella cache degli annunci per tuo conto. Il precaricamento degli annunci richiede una modifica della modalità di gestione del caricamento degli annunci. Per ottimizzare il rendimento utilizzando il precaricamento degli annunci, disattiva la memorizzazione nella cache personalizzata e delega questa responsabilità a Google Mobile Ads SDK.

Il precaricamento degli annunci offre i seguenti vantaggi rispetto al caricamento manuale degli annunci:

  • Gestione dei riferimenti:conserva gli annunci caricati in modo che tu non debba mantenere i riferimenti finché non è tutto pronto per mostrarli.
  • Ricaricamento automatico:carica automaticamente un nuovo annuncio quando ne estrai uno dalla cache.
  • Ritentativi gestiti:ritenta automaticamente le richieste non riuscite utilizzando il backoff esponenziale.
  • Gestione della scadenza:aggiorna automaticamente gli annunci prima della scadenza (in genere dopo un'ora).
  • Ottimizzazione della cache: se utilizzi una dimensione della cache maggiore di uno, Google Mobile Ads SDK ottimizza l'ordine della cache per pubblicare l'annuncio migliore.

Questa guida illustra come configurare gli annunci di precaricamento, controllare la disponibilità degli annunci di precaricamento e mostrare l'annuncio di precaricamento.

Prerequisiti

Prima di procedere con il tutorial, devi completare i seguenti passaggi:

  • Installa Google Mobile Ads SDK versione 24.4.0 o successive. Le risorse per sviluppatori per le versioni precedenti sono disponibili nelle versioni 23.6.1 - 24.3.0, ma ti consigliamo di utilizzare la versione 24.4.0 o successive e di seguire questa guida.
  • Configura Google Mobile Ads SDK.
  • (Facoltativo) Scarica ed esegui l'app di esempio in Java o Kotlin.

Inizia il precaricamento degli annunci

Per iniziare il precaricamento degli annunci, chiama start(). Chiama questo metodo una sola volta all'avvio dell'app. Dopo aver chiamato start(), Google Mobile Ads SDK precarica automaticamente gli annunci e ritenta le richieste non riuscite per le configurazioni di precaricamento.

L'esempio seguente avvia il precaricamento degli annunci:

Kotlin

// Define a PreloadConfiguration.
val configuration = PreloadConfiguration.Builder("AD_UNIT_ID").build()
// Start the preloading with a given preload ID, preload configuration.
InterstitialAdPreloader.start("AD_UNIT_ID", configuration)

Java

// Define a PreloadConfiguration.
PreloadConfiguration configuration = new PreloadConfiguration.Builder("AD_UNIT_ID").build();
// Start the preloading with a given preload ID, preload configuration.
InterstitialAdPreloader.start("AD_UNIT_ID", configuration);

Sostituisci AD_UNIT_ID con l'ID unità pubblicitaria.

Recupera e mostra l'annuncio di precaricamento

Quando utilizzi il precaricamento degli annunci, Google Mobile Ads SDK conserva gli annunci memorizzati nella cache. Quando vuoi mostrare un annuncio, chiama pollAd(). Google Mobile Ads SDK recupera l'annuncio disponibile e precarica automaticamente l'annuncio successivo in background.

Evita di chiamare questo metodo finché non è tutto pronto per mostrare un annuncio. Mantenendo gli annunci nella cache, Google Mobile Ads SDK può aggiornare automaticamente gli annunci scaduti ed eseguire l'ottimizzazione della cache.

L'esempio seguente recupera e mostra un annuncio di precaricamento:

Kotlin

// pollAd() returns the next available ad and loads another ad in the background.
val ad = InterstitialAdPreloader.pollAd("AD_UNIT_ID")

// [Optional] Interact with the ad as needed.
ad?.onPaidEventListener = OnPaidEventListener {
  // [Optional] Send the impression-level ad revenue information to your preferred
  // analytics server directly within this callback.
}

// Show the ad immediately.
ad?.show(activity)

Java

// pollAd() returns the next available ad and loads another ad in the background.
InterstitialAd ad = InterstitialAdPreloader.pollAd("AD_UNIT_ID");

if (ad != null) {
  // [Optional] Interact with the ad object as needed.
  ad.setOnPaidEventListener(
      adValue -> {
        // [Optional] Send the impression-level ad revenue information to your preferred
        // analytics server directly within this callback.
      });

  // Show the ad immediately.
  ad.show(activity);
}

Controlla la disponibilità degli annunci di precaricamento

Per verificare la disponibilità degli annunci, scegli una delle seguenti opzioni:

Recupera la disponibilità degli annunci di precaricamento

L'esempio seguente verifica la disponibilità degli annunci:

Kotlin

// Verify that a preloaded ad is available.
if (!InterstitialAdPreloader.isAdAvailable("AD_UNIT_ID")) {
  // No ads are available to show.
}

Java

// Verify that a preloaded ad is available.
if (!InterstitialAdPreloader.isAdAvailable("AD_UNIT_ID")) {
  // No ads are available to show.
}

Ascolta la disponibilità degli annunci di precaricamento

Registra gli eventi di precaricamento per ricevere una notifica quando gli annunci vengono precaricati correttamente, non vengono precaricati o la cache degli annunci è esaurita.

Gli eventi di precaricamento sono destinati a scopi di analisi. All'interno dei callback degli eventi di precaricamento:

  • Non chiamare start().
  • Evita di chiamare pollAd() a meno che l'annuncio non venga mostrato immediatamente.

L'esempio seguente registra gli eventi degli annunci:

Kotlin

// Define a callback to receive preload events.
val callback =
  object : PreloadCallbackV2() {
    override fun onAdPreloaded(preloadId: String, responseInfo: ResponseInfo?) {
      // Called when preloaded ads are available.
    }

    override fun onAdsExhausted(preloadId: String) {
      // Called when no preloaded ads are available.
    }

    override fun onAdFailedToPreload(preloadId: String, adError: AdError) {
      // Called when preloaded ads failed to load.
    }
  }

Java

// Define a callback to receive preload events.
PreloadCallbackV2 callback =
    new PreloadCallbackV2() {
      @Override
      public void onAdPreloaded(
          @NonNull String preloadId, @Nullable ResponseInfo responseInfo) {
        // Called when preloaded ads are available.
      }

      @Override
      public void onAdsExhausted(@NonNull String preloadId) {
        // Called when no preloaded ads are available.
      }

      @Override
      public void onAdFailedToPreload(@NonNull String preloadId, @NonNull AdError adError) {
        // Called when preloaded ads failed to load.
      }
    };

Interrompi il precaricamento degli annunci

Se non devi mostrare di nuovo gli annunci per un ID di precaricamento nella sessione, puoi interrompere il precaricamento degli annunci. Per interrompere il precaricamento degli annunci per un ID di precaricamento specifico, chiama destroy() con un ID di precaricamento.

Kotlin

// Stops the preloading and destroy preloaded ads.
InterstitialAdPreloader.destroy("AD_UNIT_ID")
// Stops the preloading and destroy all ads.
InterstitialAdPreloader.destroyAll()

Java

// Stops the preloading and destroy preloaded ads.
InterstitialAdPreloader.destroy("AD_UNIT_ID");
// Stops the preloading and destroy all ads.
InterstitialAdPreloader.destroyAll();

Imposta la dimensione del buffer

La dimensione del buffer controlla il numero di annunci di precaricamento mantenuti in memoria. Per impostazione predefinita, Google ottimizza la dimensione del buffer per bilanciare il consumo di memoria e la latenza della pubblicazione degli annunci. Se la tua app mostra gli annunci prima che venga caricato l'annuncio successivo, puoi impostare una dimensione del buffer personalizzata per aumentare il numero di annunci mantenuti in memoria. Ti consigliamo di impostare una dimensione del buffer di massimo quattro.

Kotlin

// Define a PreloadConfiguration and buffer up to 5 preloaded ads.
val configuration = PreloadConfiguration.Builder("AD_UNIT_ID").setBufferSize(5).build()

Java

// Define a PreloadConfiguration and buffer up to 5 preloaded ads.
PreloadConfiguration configuration =
    new PreloadConfiguration.Builder("AD_UNIT_ID").setBufferSize(5).build();