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. Os banners inline podem preencher a tela inteira ou uma altura máxima especificada por você.

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

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

Diagrama mostra 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 esses banners, defina o tamanho deles, crie uma solicitação e carregue o anúncio.

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

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

Siga estas etapas:

  1. Descubra qual é a largura do seu dispositivo ou defina uma:

    Kotlin

    private val adWidth: Int
      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
        return (adWidthPixels / density).toInt()
      }
    

    Java

    public int getAdWidth() {
      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;
      return (int) (adWidthPixels / density);
    }
    
  2. Para receber um objeto de tamanho de anúncio adaptável inline, use um método estático na classe de tamanho do anúncio:

    Kotlin

    val adView = AdView(this@MainActivity)
    adView.setAdSize(AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, adWidth))

    Java

    final AdView adView = new AdView(MainActivity.this);
    adView.setAdSize(AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, getAdWidth()));

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 método Resources.getDisplayMetrics . 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 as 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 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 de retrato e paisagem e quiser pré-carregar um anúncio de banner adaptativo no layout atual, use o método AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(Context context, int width). 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 esse altura, use o método AdSize.getInlineAdaptiveBannerAdSize(int width, int maxHeight).