Os anúncios intersticiais são anúncios de tela cheia que cobrem a interface do app. Você veicula esses anúncios em pontos de transição naturais no app, como entre atividades ou durante pausas nos níveis do jogo.
Quando seu app mostra um anúncio intersticial, seus usuários podem tocar no anúncio e continuar, ou fechá-lo e retornar ao app. Leia este estudo de caso.
Neste guia, explicamos como integrar anúncios intersticiais a um app Android.
Antes de começar
Antes de continuar, faça o seguinte:
- Configure o GMA Next-Gen SDK.
- Use o ID do bloco de anúncios
intersticiais de teste
ca-app-pub-3940256099942544/1033173712.- Ao criar e testar seu app, use anúncios de teste em vez de anúncios de produção reais. Se você não usar o ID do bloco de anúncios de teste, o Google poderá suspender sua conta.
- Antes de publicar o app, substitua esse ID pelo do seu bloco de anúncios.
- Para detalhes sobre os anúncios de teste do GMA Next-Gen SDK, consulte Ativar anúncios de teste.
Entender o pré-carregamento de anúncios (Beta)
O pré-carregamento de anúncios no GMA Next-Gen SDK automatiza o carregamento e o armazenamento em cache de anúncios.
O pré-carregamento de anúncios oferece estes benefícios:
- Gerenciamento de referências: mantém as referências até que os anúncios sejam veiculados.
- Recarregamento automático: carrega um novo anúncio quando um é recuperado do cache.
- Tentativas gerenciadas: carrega um novo anúncio quando um falha.
- Tratamento de expiração: atualiza os anúncios antes que eles expirem.
- Otimização de cache: otimiza a ordem do cache para veicular o anúncio de maior prioridade.
Iniciar o pré-carregamento de anúncios
Para começar a pré-carregar anúncios, chame o método start uma vez
ao inicializar o GMA Next-Gen SDK. Depois que você chama o
método start, o GMA Next-Gen SDK pré-carrega automaticamente os anúncios
e tenta fazer de novo as solicitações que falharam para as configurações pré-carregadas.
O exemplo a seguir mostra como iniciar o pré-carregamento de anúncios:
Kotlin
Java
Substitua AD_UNIT_ID pelo seu ID do bloco de anúncios.
O exemplo anterior mostra como usar o ID do bloco de anúncios como o ID de pré-carregamento. Um ID de pré-carregamento é um identificador de string que você cria para identificar uma configuração de pré-carregamento de anúncios. Se o app exigir várias configurações de segmentação para o mesmo ID de bloco de anúncios, transmita um identificador de string personalizado.
O pré-carregamento de anúncios não permite mudar os parâmetros de segmentação nem as solicitações de anúncios. Se você precisar mudar os parâmetros de segmentação entre as solicitações, use o carregamento único.
Receber e veicular o anúncio pré-carregado
Antes de veicular o anúncio, chame o método pollAd.
Não armazene o objeto de anúncio pré-carregado. Quando você chama o
método pollAd, o GMA Next-Gen SDK recupera um anúncio disponível
e pré-carrega automaticamente o próximo em segundo plano. Se nenhum anúncio estiver
disponível, o GMA Next-Gen SDK não vai retornar anúncios.
show para veicular o anúncio.
O exemplo a seguir mostra como recuperar e veicular um anúncio pré-carregado:
Kotlin
Java
Quando o app chegar a uma posição do anúncio e puder chamar o método show, chame o
pollAd. Não chame
pollAd em callbacks de pré-carregamento nem depois de verificar o
método isAdAvailable para reter um anúncio. Se você precisar
inspecionar os metadados do anúncio antes de veiculá-lo,
consulte as informações da resposta sem remover o anúncio do cache.
Detectar eventos de anúncios
Antes de veicular o anúncio, detecte os eventos dele. O exemplo a seguir registra callbacks para eventos de anúncio:
Kotlin
// Listen for ad events. val ad = interstitialAd if (ad == null) { Log.e(TAG, "Interstitial ad is not ready yet.") return } ad.adEventCallback = object : InterstitialAdEventCallback { override fun onAdShowedFullScreenContent() { // Interstitial ad did show. } override fun onAdDismissedFullScreenContent() { // Interstitial ad did dismiss. interstitialAd = null } override fun onAdFailedToShowFullScreenContent( fullScreenContentError: FullScreenContentError ) { // Interstitial ad failed to show. Log.e(TAG, "Interstitial ad failed to show: ${fullScreenContentError.message}") } override fun onAdImpression() { // Interstitial ad did record an impression. } override fun onAdClicked() { // Interstitial ad did record a click. } }
Java
// Listen for ad events. if (interstitialAd == null) { Log.e(TAG, "Interstitial ad is not ready yet."); return; } interstitialAd.setAdEventCallback( new InterstitialAdEventCallback() { @Override public void onAdShowedFullScreenContent() { // Interstitial ad did show. } @Override public void onAdDismissedFullScreenContent() { // Interstitial ad did dismiss. interstitialAd = null; } @Override public void onAdFailedToShowFullScreenContent( @NonNull FullScreenContentError fullScreenContentError) { // Interstitial ad failed to show. Log.e(TAG, "Interstitial ad failed to show: " + fullScreenContentError.getMessage()); } @Override public void onAdImpression() { // Interstitial ad did record an impression. } @Override public void onAdClicked() { // Interstitial ad did record a click. } });
Opcional: detectar eventos de pré-carregamento
Ao começar a pré-carregar anúncios, registre-se para eventos de pré-carregamento e receba notificações quando os anúncios forem pré-carregados, o pré-carregamento apresentar falha ou o cache de anúncios estiver esgotado.
O exemplo a seguir mostra como se registrar para eventos de pré-carregamento de anúncios:
Kotlin
val preloadCallback = // [Important] Don't call ad preloader start() or pollAd() within the PreloadCallback. object : PreloadCallback { override fun onAdFailedToPreload(preloadId: String, adError: LoadAdError) { Log.d( TAG, ("Interstitial preload ad $preloadId failed to load with error: ${adError.message}"), ) } override fun onAdsExhausted(preloadId: String) { Log.i(TAG, "Interstitial preload ad $preloadId is not available") // [Important] Don't call ad preloader start() or pollAd() from onAdsExhausted. } override fun onAdPreloaded(preloadId: String, responseInfo: ResponseInfo) { Log.i(TAG, "Interstitial preload ad $preloadId is available") } } val adRequest = AdRequest.Builder(adUnitId).build() val preloadConfig = PreloadConfiguration(adRequest) InterstitialAdPreloader.start(adUnitId, preloadConfig, preloadCallback)
Java
PreloadCallback preloadCallback = // [Important] Don't call ad preloader start() or pollAd() within the PreloadCallback. new PreloadCallback() { @Override public void onAdFailedToPreload(@NonNull String preloadId, @NonNull LoadAdError adError) { Log.d( TAG, String.format( "Interstitial preload ad %s failed to load with error: %s", preloadId, adError.getMessage())); // [Optional] Get the error response info for additional details. // ResponseInfo responseInfo = adError.getResponseInfo(); } @Override public void onAdsExhausted(@NonNull String preloadId) { Log.i(TAG, "Interstitial preload ad " + preloadId + " is not available"); // [Important] Don't call ad preloader start() or pollAd() from onAdsExhausted. } @Override public void onAdPreloaded(@NonNull String preloadId, @NonNull ResponseInfo responseInfo) { Log.i(TAG, "Interstitial preload ad " + preloadId + " is available"); } }; AdRequest adRequest = new AdRequest.Builder(adUnitId).build(); PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest); InterstitialAdPreloader.start(adUnitId, preloadConfig, preloadCallback);
Quando o carregamento de um anúncio falha, o GMA Next-Gen SDK pré-carrega anúncios automaticamente e tenta fazer de novo
as solicitações que falharam para as configurações pré-carregadas. Não invoque solicitações de carregamento manual
em callbacks de falha. Nos métodos de callback dos eventos de pré-carregamento, não
chame pollAd, destroy nem
start. Chamar esses métodos em callbacks
pode invocar loops de carregamento recursivos.
Opcional: verificar a disponibilidade de anúncios
Se você precisar saber se um anúncio está disponível, verifique a disponibilidade dele. O exemplo a seguir verifica se um anúncio pré-carregado está disponível:
Kotlin
private fun isAdAvailable(adUnitId: String): Boolean { return InterstitialAdPreloader.isAdAvailable(adUnitId) }
Java
private boolean isAdAvailable(String adUnitId) { return InterstitialAdPreloader.isAdAvailable(adUnitId); }
Opcional: 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. É possível definir um tamanho de buffer personalizado para aumentar ou diminuir o número de anúncios mantidos na memória. Recomendamos um tamanho de buffer de dois anúncios pré-carregados. Se a maior parte do tráfego vier de dispositivos com pouca memória, reduza o tamanho do buffer.
O exemplo a seguir mostra como definir um tamanho de buffer:
Kotlin
private fun setBufferSize(adUnitId: String) { val adRequest = AdRequest.Builder(adUnitId).build() // Define a PreloadConfiguration and set the buffer size to 2 preloaded ads. val preloadConfig = PreloadConfiguration(adRequest, bufferSize = 2) InterstitialAdPreloader.start(adUnitId, preloadConfig) }
Java
private void setBufferSize(String adUnitId) { AdRequest adRequest = new AdRequest.Builder(adUnitId).build(); // Define a PreloadConfiguration and set the buffer size to 2 preloaded ads. PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest, 2); InterstitialAdPreloader.start(adUnitId, preloadConfig); }
Limites de cache de pré-carregamento
O GMA Next-Gen SDK 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: o Google mantém no máximo 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 igual a dois para cada ID de pré-carregamento.
Opcional: interromper o pré-carregamento de anúncios
Mantenha o pré-carregamento ativo enquanto o app veicula anúncios. Durante esse período, não use o método
destroy. Se você não precisar mostrar anúncios para um
ID de pré-carregamento específico novamente na sessão, interrompa o pré-carregamento de anúncios. Quando quiser interromper
o carregamento de anúncios para um ID de pré-carregamento específico, chame o método destroy
com um ID de pré-carregamento. Chamar o método destroy
remove do cache todos os anúncios pré-carregados associados ao ID de pré-carregamento.
O exemplo a seguir mostra como interromper o pré-carregamento de anúncios:
Kotlin
private fun stopPreloading(adUnitId: String) { // Stops the preloading and destroy preloaded ads. InterstitialAdPreloader.destroy(adUnitId) }
Java
private void stopPreloading(String adUnitId) { // Stops the preloading and destroy preloaded ads. InterstitialAdPreloader.destroy(adUnitId); }
Opcional: ler as informações da resposta
Leia as informações da resposta do próximo anúncio pré-carregado sem remover o anúncio do
cache. Se você precisar inspecionar os metadados do anúncio antes de veiculá-lo,
leia as informações da resposta em vez de chamar o método
pollAd.
O exemplo a seguir mostra como ler as informações da próxima resposta de anúncio pré-carregada:
Kotlin
val responseInfo = InterstitialAdPreloader.peekAdResponseInfo(preloadId) if (responseInfo == null) { Log.e(TAG, "Failed to peek ad response info.") return } Log.d(TAG, "Peeked ad response ID: ${responseInfo.responseId}")
Java
ResponseInfo responseInfo = InterstitialAdPreloader.peekAdResponseInfo(preloadId); if (responseInfo == null) { Log.e(TAG, "Failed to peek ad response info."); return; } Log.d(TAG, "Peeked ad response ID: " + responseInfo.getResponseId());