Anúncios em banner

Os anúncios de banner são retangulares e ocupam uma parte do layout do app. Eles permanecem na tela enquanto os usuários interagem com o app, fixados na parte de cima ou de baixo da tela ou inline com o conteúdo conforme a rolagem do usuário. Os anúncios de banner podem ser atualizados automaticamente após um determinado período. Consulte a Visão geral dos anúncios de banner para mais informações.

Este guia mostra como começar a usar os anúncios de banner adaptativo fixo, que maximizam a performance otimizando o tamanho do anúncio para cada dispositivo usando uma largura de anúncio especificada.

Os anúncios de banner adaptativo âncora são anúncios de proporção fixa, e não os anúncios de tamanho fixo normais. A proporção é semelhante ao padrão do setor de 320 x 50. Depois de especificar a largura total disponível, o anúncio vai retornar com a altura ideal para essa largura. A altura ideal não muda nas solicitações do mesmo dispositivo, e as visualizações ao redor não precisam se mover quando o anúncio é atualizado.

Pré-requisitos

Sempre teste com anúncios de teste

Ao criar e testar seus apps, use anúncios de teste em vez de publicidade de produção ativa. Sua conta poderá ser suspensa se isso não for feito.

A maneira mais fácil de carregar anúncios de teste é usar nosso ID dedicado de bloco de anúncios de teste para banners do Android:

ca-app-pub-3940256099942544/9214589741

Ele foi configurado especialmente para retornar anúncios de teste para cada solicitação, e você pode usá-lo nos seus próprios apps durante a programação, o teste e a depuração. Basta substituí-lo pelo seu próprio ID de bloco de anúncios antes de publicar o app.

Para mais informações sobre como os anúncios de teste do SDK para dispositivos móveis funcionam, consulte Anúncios de teste.

Adicionar AdView ao layout

Você cria um banner determinando o tamanho do anúncio. Siga estas etapas:

  1. Crie um tamanho de anúncio adaptativo fixado em toda a largura:

    Java

    // Get the ad size with screen width.
    public AdSize getAdSize() {
      DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
      int adWidthPixels = displayMetrics.widthPixels;
    
      if (VERSION.SDK_INT >= VERSION_CODES.R) {
        WindowMetrics windowMetrics = this.getWindowManager().getCurrentWindowMetrics();
        adWidthPixels = windowMetrics.getBounds().width();
      }
    
      float density = displayMetrics.density;
      int adWidth = (int) (adWidthPixels / density);
      return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
    }
    

    Kotlin

    // Get the ad size with screen width.
    private val adSize: AdSize
      get() {
        val displayMetrics = resources.displayMetrics
        val adWidthPixels =
          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
            val windowMetrics: WindowMetrics = this.windowManager.currentWindowMetrics
            windowMetrics.bounds.width()
          } else {
            displayMetrics.widthPixels
          }
        val density = displayMetrics.density
        val adWidth = (adWidthPixels / density).toInt()
        return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
      }
    
    
  2. Crie um AdView usando o tamanho do anúncio e adicione-o ao layout do app:

    Java

    // Create a new ad view.
    adView = new AdView(this);
    adView.setAdUnitId(AD_UNIT_ID);
    adView.setAdSize(getAdSize());
    
    // Replace ad container with new ad view.
    adContainerView.removeAllViews();
    adContainerView.addView(adView);
    

    Kotlin

    // Create a new ad view.
    val adView = AdView(this)
    adView.adUnitId = AD_UNIT_ID
    adView.setAdSize(adSize)
    this.adView = adView
    
    // Replace ad container with new ad view.
    binding.adViewContainer.removeAllViews()
    binding.adViewContainer.addView(adView)
    

Carregar um anúncio

Depois que o AdView estiver em vigor, a próxima etapa será carregar um anúncio. Isso é feito com o método loadAd() na classe AdView. Ele usa um parâmetro AdRequest, que contém informações de execução, como informações de segmentação, sobre uma solicitação de anúncio.

Confira um exemplo que mostra como carregar um anúncio:

Java

// Start loading the ad in the background.
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);

Kotlin

// Start loading the ad in the background.
val adRequest = AdRequest.Builder().build()
adView.loadAd(adRequest)

Se tudo der certo, o app estará pronto para mostrar anúncios de banner.

Atualizar um anúncio

Se você configurou o bloco de anúncios para atualização, não é necessário solicitar outro anúncio quando ele não é carregado. O SDK dos anúncios para dispositivos móveis do Google respeita qualquer taxa de atualização especificada na interface da AdMob. Se você não tiver ativado a atualização, faça uma nova solicitação. Para mais detalhes sobre a atualização de blocos de anúncios, como definir uma taxa de atualização, consulte Usar a atualização automática para anúncios de banner.

Eventos de anúncio

É possível detectar vários eventos no ciclo de vida do anúncio, incluindo carregamento, impressão e clique, além de eventos de abertura e fechamento. É recomendável definir o callback antes de carregar o banner.

Java

adView.setAdListener(new AdListener() {
    @Override
    public void onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    @Override
    public void onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    @Override
    public void onAdFailedToLoad(LoadAdError adError) {
      // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    @Override
    public void onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    @Override
    public void onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
});

Kotlin

adView.adListener = object: AdListener() {
    override fun onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    override fun onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    override fun onAdFailedToLoad(adError : LoadAdError) {
      // Code to be executed when an ad request fails.
    }

    override fun onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    override fun onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    override fun onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
}

Cada um dos métodos substituíveis em AdListener corresponde a um evento no ciclo de vida de um anúncio.

Métodos substituíveis
onAdClicked() O método onAdClicked() é invocado quando um clique é registrado para um anúncio.
onAdClosed() O método onAdClosed() é invocado quando um usuário retorna ao app depois de visualizar o URL de destino de um anúncio. O app pode usá-lo para retomar atividades suspensas ou realizar qualquer outro trabalho necessário para ficar pronto para interação. Consulte o exemplo de AdListener da AdMob para conferir uma implementação dos métodos do AdListener no app de demonstração da API do Android.
onAdFailedToLoad() O método onAdFailedToLoad() é o único que inclui um parâmetro. O parâmetro de erro do tipo LoadAdError descreve o erro que ocorreu. Para mais informações, consulte a documentação de depuração de erros de carregamento de anúncios.
onAdImpression() O método onAdImpression() é invocado quando uma impressão é registrada para um anúncio.
onAdLoaded() O método onAdLoaded() é executado quando um anúncio termina de carregar. Se você quiser adiar a adição da AdView à sua atividade ou fragmento até ter certeza de que um anúncio será carregado, por exemplo, faça isso aqui.
onAdOpened() O método onAdOpened() é invocado quando um anúncio abre uma sobreposição que cobre a tela.

Aceleração de hardware para anúncios em vídeo

Para que os anúncios em vídeo sejam exibidos nas visualizações de anúncios de banner, a aceleração de hardware precisa estar ativada.

A aceleração de hardware é ativada por padrão, mas alguns apps podem desativá-la. Se isso se aplica ao seu app, recomendamos ativar a aceleração de hardware para classes Activity que usam anúncios.

Como ativar a aceleração de hardware

Se o app não se comporta corretamente com a aceleração de hardware globalmente ativada, ela também pode ser controlada para atividades específicas. Para ativar ou desativar a aceleração de hardware, use o atributo android:hardwareAccelerated para os elementos <application> e <activity> no AndroidManifest.xml. O exemplo a seguir ativa a aceleração de hardware para todo o app, mas a desativa para uma atividade:

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
    <!-- For activities that don't use ads, hardwareAcceleration can be false. -->
    <activity android:hardwareAccelerated="false" />
</application>

Consulte o guia de aceleração de hardware para mais informações sobre as opções de controle. As visualizações de anúncios individuais não podem ser ativadas para aceleração de hardware se a atividade estiver desativada. Portanto, a atividade precisa ter a aceleração de hardware ativada.

Outros recursos

Exemplos no GitHub

  • Exemplo de anúncios de banner adaptativo fixo: Java | Kotlin
  • Demonstração de recursos avançados: Java | Kotlin

Próximas etapas

Banners que podem ser recolhidos

Os anúncios de banner recolhível são anúncios de banner que são inicialmente apresentados como uma sobreposição maior, com um botão para recolher o anúncio para um tamanho menor. Use-o para otimizar ainda mais sua performance. Consulte Anúncios de banner recolhíveis para mais detalhes.

Banners adaptativos inline

Os banners adaptativos inline são maiores e mais altos em comparação com os banners adaptativos fixos. Eles têm altura variável e podem ser tão altos quanto a tela do dispositivo. Os banners adaptativos inline são recomendados em vez dos anúncios de banner adaptativo fixo para apps que colocam anúncios de banner em conteúdo rolável. Consulte banners adaptáveis inline para mais detalhes.

Confira outros tópicos