Pré-carregamento de anúncios (Beta)

Selecionar plataforma: Android iOS Unity Android (Legacy)

O pré-carregamento de anúncios é um recurso de carregamento de anúncios gerenciado pelo Google em Google Mobile Ads SDK (Legacy) que gerencia o carregamento e o armazenamento em cache de anúncios em seu nome. O pré-carregamento de anúncios exige uma mudança na forma como você gerencia o carregamento de anúncios. Para otimizar a performance usando o pré-carregamento de anúncios, desative o armazenamento em cache personalizado e delegue essa responsabilidade a Google Mobile Ads SDK (Legacy).

O pré-carregamento de anúncios oferece os seguintes benefícios em relação ao carregamento manual de anúncios:

  • Gerenciamento de referências:mantém os anúncios carregados para que você não precise manter referências até estar pronto para mostrá-los.
  • Recarregamento automático:carrega automaticamente um novo anúncio quando você retira um do cache.
  • Novas tentativas gerenciadas:repete automaticamente as solicitações com falha usando a retirada exponencial.
  • Processamento de expiração:atualiza automaticamente os anúncios antes que eles expirem (normalmente após uma hora).
  • Otimização do cache: se você usar um tamanho de cache maior que um, Google Mobile Ads SDK (Legacy) otimizará a ordem do cache para veicular o melhor anúncio.

Este guia aborda a configuração de anúncios de pré-carregamento, a verificação da disponibilidade de anúncios de pré-carregamento e a exibição do anúncio pré-carregado.

Pré-requisitos

Antes de continuar com este tutorial, você deve configurar Google Mobile Ads SDK (Legacy).

Começar a pré-carregar anúncios

Quando o app for iniciado, chame o método start uma vez. Depois de chamar o método start, Google Mobile Ads SDK (Legacy) pré-carrega anúncios automaticamente e repete as solicitações com falha para configurações pré-carregadas.

O exemplo a seguir começa a pré-carregar anúncios:

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

Substitua AD_UNIT_ID pelo ID do seu bloco de anúncios.

Receber e mostrar o anúncio pré-carregado

Ao usar o pré-carregamento de anúncios, Google Mobile Ads SDK (Legacy) mantém os anúncios armazenados em cache. Quando quiser mostrar um anúncio, chame o método pollAd. Google Mobile Ads SDK (Legacy) recupera um anúncio disponível e pré-carrega automaticamente o próximo anúncio em segundo plano.

Evite chamar o método pollAd até estar pronto para mostrar um anúncio. Manter anúncios no cache permite que Google Mobile Ads SDK (Legacy) atualize automaticamente anúncios expirados e execute a otimização do cache.

O exemplo a seguir recupera e mostra um anúncio pré-carregado:

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

Verificar a disponibilidade de anúncios de pré-carregamento

Para verificar a disponibilidade de anúncios, escolha uma das seguintes opções:

Verificar a disponibilidade de anúncios pré-carregados

O exemplo a seguir verifica a disponibilidade de anúncios:

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

Detectar a disponibilidade de anúncios pré-carregados

Registre-se para eventos de pré-carregamento para receber notificações quando os anúncios forem pré-carregados com sucesso, falharem ao pré-carregar ou o cache de anúncios estiver esgotado.

Os eventos de pré-carregamento são destinados a fins de análise. Nas funções de callback de eventos de pré-carregamento:

  • Não chame start.
  • Evite chamar pollAd, a menos que o anúncio seja mostrado imediatamente.

O exemplo a seguir registra eventos de anúncios:

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

Parar de pré-carregar anúncios

Se você não precisar mostrar anúncios para um ID de pré-carregamento novamente na sessão, poderá parar de pré-carregar anúncios. Para parar de pré-carregar anúncios para um ID de pré-carregamento específico, chame destroy com um ID de pré-carregamento. Para parar de pré-carregar todos os pré-carregadores, chame destroyAll.

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

Definir o tamanho do buffer

O tamanho do buffer controla o número de anúncios pré-carregados mantidos na memória. Por padrão, o Google otimiza o tamanho do buffer para equilibrar o consumo de memória e a latência de veiculação de anúncios. Se o app mostrar anúncios antes que o próximo anúncio seja carregado, você poderá definir um tamanho de buffer personalizado para aumentar o número de anúncios mantidos na memória.

Kotlin

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

Java

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

Limites de cache de pré-carregamento

Google Mobile Ads SDK (Legacy) aplica um limite em todo o app para o número total de anúncios pré-carregados em todos os blocos de anúncios e IDs de pré-carregamento:

  • Limite padrão: Google Mobile Ads SDK (Legacy) mantém um máximo de seis anúncios pré-carregados na memória. Esse limite é compartilhado entre todos os formatos e IDs de pré-carregamento.
  • Recomendamos manter um tamanho de buffer de 2 ou 3 por ID de pré-carregamento.