Usar banners adaptativos inline para aqueles com rolagem

Selecione a plataforma: Android iOS Flutter Android (legada)

Com os banners adaptativos, é possível especificar a largura de um anúncio para determinar o tamanho ideal dele em cada dispositivo. Ao contrário dos banners adaptativos fixos, os adaptativos inline são maiores, mais altos e não usam alturas fixas. Os banners adaptativos inline têm altura variável. Esses banners podem preencher a tela inteira ou ter uma altura máxima especificada.

Este guia aborda como criar banners adaptativos inline e definir o tamanho deles.

A imagem abaixo mostra banners adaptativos inline em conteúdo com rolagem:

Diagrama mostrando as diferenças entre banners adaptativos e adaptativos inline

Antes de começar

Antes de continuar, configure os anúncios de banner.

Para conferir um exemplo completo de banner adaptativo inline, faça o download do seguinte app de exemplo:

Implementar banners adaptativos inline

Para implementar banners adaptativos inline, defina o tamanho do anúncio, crie uma solicitação de anúncio e carregue o anúncio.

Para dimensionar um banner adaptativo inline, determine a largura do anúncio. As abordagens comuns incluem o seguinte:

  • Usar a largura da tela cheia.
  • Usar a largura do layout pai que contém o anúncio.
  • Ajustar a largura para considerar as áreas seguras do dispositivo.

Ao criar o objeto de tamanho do anúncio, use essa largura calculada.

O exemplo a seguir define o tamanho do anúncio, cria uma solicitação de anúncio e carrega o anúncio:

Kotlin

private fun loadAd() {
  // Create an inline adaptive ad size. 320 is a placeholder value.
  // Replace 320 with your banner container width.
  val adSize = AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, 320)

  // Step 1 - Create a BannerAdRequest object with ad unit ID and size.
  val adRequest = BannerAdRequest.Builder("AD_UNIT_ID", adSize).build()

  // Step 2 - Load the ad.
  BannerAd.load(
    adRequest,
    object : AdLoadCallback<BannerAd> {
      override fun onAdLoaded(ad: BannerAd) {
        // Assign the loaded ad to the BannerAd object.
        bannerAd = ad
        // Step 3 - Call BannerAd.getView() to get the View and add it
        // to view hierarchy on the UI thread.
        activity?.runOnUiThread {
          binding.bannerViewContainer.addView(ad.getView(requireActivity()))
        }
      }

      override fun onAdFailedToLoad(loadAdError: LoadAdError) {
        bannerAd = null
      }
    }
  )
}

Java

private void loadAd() {
  // Create an inline adaptive ad size. 320 is a placeholder value.
  // Replace 320 with your banner container width.
  AdSize adSize = AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, 320);

  // Step 1 - Create a BannerAdRequest object with ad unit ID and size.
  BannerAdRequest adRequest = new BannerAdRequest.Builder("AD_UNIT_ID",
      adSize).build();

  // Step 2 - Load the ad.
  BannerAd.load(
      adRequest,
      new AdLoadCallback<BannerAd>() {
        @Override
        public void onAdLoaded(@NonNull BannerAd ad) {
          // Assign the loaded ad to the BannerAd object.
          bannerAd = ad;
          // Step 3 - Call BannerAd.getView() to get the View and add it
          // to view hierarchy on the UI thread.
          if (getActivity() != null) {
            getActivity()
                .runOnUiThread(() ->
                    binding.bannerViewContainer.addView(ad.getView(getActivity())));
          }
        }

        @Override
        public void onAdFailedToLoad(@NonNull LoadAdError adError) {
          bannerAd = null;
        }
      });
}

Defina um tamanho de anúncio menor ou igual ao tamanho da tela do dispositivo. Para determinar o tamanho máximo da tela, use o Resources.getDisplayMetrics método. As dimensões do objeto AdSize usam pixels independentes de densidade (dp). Ao comparar, converta o tamanho da tela de pixels para dp. Para mais detalhes sobre restrições de tamanho, consulte Resolver problemas de impressões não preenchidas no Ad Manager.

Se precisar atualizar ou criar itens de linha para usar banners adaptativos, consulte Configurar itens de linha para banners adaptativos.

Definir o layout do banner adaptativo inline

Para pré-carregar um anúncio de banner adaptativo inline em um layout específico, use estes métodos:

Se o app aceita as visualizações em modo retrato e paisagem e você quer pré-carregar um anúncio de banner adaptativo no layout atual, use o AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(Context context, int width) método. Ele carrega um anúncio no layout atual.

Limitar a altura do banner adaptativo inline

Por padrão, os banners adaptativos inline criados sem um valor de maxHeight têm uma altura máxima igual à do dispositivo. Para limitar a altura do banner adaptativo inline, use o AdSize.getInlineAdaptiveBannerAdSize(int width, int maxHeight)método.