Precarga de anuncios (alfa)

Selecciona la plataforma: Android (beta) Nuevo Android iOS Unity

La precarga de anuncios es una función de carga de anuncios administrada por Google en Google Mobile Ads SDK que administra la carga y el almacenamiento en caché de anuncios en tu nombre. La precarga de anuncios requiere un cambio en la forma en que administras la carga de anuncios. Para optimizar el rendimiento con la precarga de anuncios, inhabilita el almacenamiento en caché personalizado y delega esa responsabilidad a Google Mobile Ads SDK.

La precarga de anuncios ofrece los siguientes beneficios en comparación con la carga manual de anuncios:

  • Administración de referencias: Almacena los anuncios cargados para que no tengas que mantener las referencias hasta que estés listo para mostrarlos.
  • Recarga automática: Carga automáticamente un anuncio nuevo cuando sacas uno de la caché.
  • Reintentos administrados: Vuelve a intentar automáticamente las solicitudes fallidas con la retirada exponencial.
  • Control de vencimiento: Actualiza automáticamente los anuncios antes de que venzan (por lo general, después de una hora).
  • Optimización de la caché: Si usas un tamaño de caché superior a uno, Google Mobile Ads SDK optimiza el orden de la caché para publicar el mejor anuncio.

En esta guía, se explica cómo configurar los anuncios para la precarga, verificar su disponibilidad y mostrar los anuncios precargados.

Requisitos previos

Antes de continuar con el instructivo, tienes que completar las siguientes tareas:

  • Instala Google Mobile Ads SDK versión 24.4.0 o una posterior. Los recursos para desarrolladores de versiones anteriores están disponibles en 23.6.1 a 24.3.0, pero te recomendamos que uses la versión 24.4.0 o una posterior y sigas esta guía en el futuro.
  • Configura Google Mobile Ads SDK.
  • [Opcional] Descarga y ejecuta la app de ejemplo en Java o Kotlin.

Empieza a precargar los anuncios

Para comenzar a precargar anuncios, llama a start(). Llama a este método solo una vez al inicio de la app. Después de llamar a start(), Google Mobile Ads SDK precarga automáticamente los anuncios y vuelve a intentar las solicitudes fallidas para las configuraciones precargadas.

En el siguiente ejemplo, se inicia la precarga de anuncios:

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);

Reemplaza AD_UNIT_ID por tu ID de unidad de anuncios.

Obtén y muestra los anuncios precargados

Cuando se usa la precarga de anuncios, Google Mobile Ads SDK almacena los anuncios en caché. Cuando quieras mostrar un anuncio, llama a pollAd(). Google Mobile Ads SDK recupera el anuncio disponible y precarga automáticamente el siguiente en segundo plano.

Evita llamar a este método hasta que estés listo para mostrar un anuncio. Mantener los anuncios en la caché permite que Google Mobile Ads SDK actualice automáticamente los anuncios vencidos y realice la optimización de la caché.

En el siguiente ejemplo, se recupera y muestra un anuncio precargado:

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);
}

Verifica la disponibilidad de anuncios precargados

Para verificar la disponibilidad de anuncios, elige una de las siguientes opciones:

Obtén la disponibilidad de anuncios precargados

En el siguiente ejemplo, se verifica la disponibilidad de anuncios:

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.
}

Escucha la disponibilidad de anuncios precargados

Regístrate para recibir eventos de precarga y recibir notificaciones cuando los anuncios se precarguen correctamente, no se puedan precargar o se agote la caché de anuncios.

Los eventos de precarga están destinados a fines de estadísticas. Dentro de las devoluciones de llamada de eventos de precarga:

  • No llames a start().
  • Evita llamar a pollAd() a menos que el anuncio se muestre de inmediato.

En el siguiente ejemplo, se registra para recibir eventos de anuncios:

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.
      }
    };

Detén la precarga de los anuncios

Si no necesitas volver a mostrar anuncios para un ID de precarga en la sesión, puedes detener la precarga de anuncios. Para detener la precarga de anuncios para un ID de precarga específico, llama a destroy() con un ID de precarga.

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();

Configura el tamaño del búfer

El tamaño del búfer controla la cantidad de anuncios precargados que se almacenan en la memoria. De forma predeterminada, Google optimiza el tamaño del búfer para equilibrar el consumo de memoria y la latencia de publicación de anuncios. Si tu app muestra anuncios antes de que se cargue el siguiente, puedes establecer un tamaño de búfer personalizado para aumentar la cantidad de anuncios que se almacenan en la memoria. Te recomendamos un tamaño de búfer de cuatro como máximo.

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();