Anúncios nativos

Selecione a plataforma: Android iOS Flutter Unity

Os anúncios nativos são recursos de publicidade mostrados aos usuários por componentes de interface nativos à plataforma. Eles aparecem com base nos mesmos tipos de visualização que você usa para criar seus layouts. Além disso, podem ser formatados para combinar com o design visual do seu app.

Quando um anúncio nativo é carregado, seu app recebe um objeto de anúncio que contém os recursos dele. O aplicativo, e não o SDK dos anúncios para dispositivos móveis do Google, é responsável por mostrar esses recursos.

De modo geral, a implementação dos anúncios nativos é feita em duas etapas: carregar um anúncio usando o SDK e exibir o conteúdo dele no app.

Nesta página, mostramos como usar o SDK para carregar anúncios nativos.

Pré-requisitos

Sempre use anúncios de teste

Ao criar e testar seus apps, use anúncios de teste em vez de anúncios de produção ativos.

A maneira mais fácil de carregar anúncios de teste é usar nosso ID de bloco de anúncios de teste dedicado a anúncios nativos no Android:

/21775744923/example/native

Ele foi configurado especialmente para retornar anúncios de teste em todas as solicitações, e você pode usá-lo nos seus próprios apps durante a programação, os testes e a depuração. Só não se esqueça de substituí-lo pelo seu ID de bloco de anúncios antes de publicar o app.

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

Carregar anúncios

Os anúncios nativos são carregados com a classe AdLoader, que tem a própria classe Builder para personalização durante a criação. Com a adição de listeners ao AdLoader durante a criação dele, um aplicativo especifica quais tipos de anúncio nativo ele poderá receber. O AdLoader solicita apenas esses tipos.

Criar um AdLoader

O código a seguir demonstra como criar um AdLoader que pode carregar anúncios nativos:

Java

// It is recommended to call AdLoader.Builder on a background thread.
new Thread(
        () -> {
          AdLoader adLoader =
              new AdLoader.Builder(context, "AD_UNIT_ID")
                  .forNativeAd(
                      new NativeAd.OnNativeAdLoadedListener() {
                        @Override
                        // The native ad loaded successfully. You can show the ad.
                        public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {}
                      })
                  .withAdListener(
                      new AdListener() {
                        @Override
                        // The native ad load failed. Check the adError message for failure
                        // reasons.
                        public void onAdFailedToLoad(@NonNull LoadAdError adError) {}
                      })
                  // Use the NativeAdOptions.Builder class to specify individual options
                  // settings.
                  .withNativeAdOptions(new NativeAdOptions.Builder().build())
                  .build();
        })
    .start();

Kotlin

// It is recommended to call AdLoader.Builder on a background thread.
CoroutineScope(Dispatchers.IO).launch {
  val adLoader =
    AdLoader.Builder(context, "AD_UNIT_ID")
      .forNativeAd { nativeAd ->
        // The native ad loaded successfully. You can show the ad.
      }
      .withAdListener(
        object : AdListener() {
          override fun onAdFailedToLoad(adError: LoadAdError) {
            // The native ad load failed. Check the adError message for failure reasons.
          }
        }
      )
      // Use the NativeAdOptions.Builder class to specify individual options settings.
      .withNativeAdOptions(NativeAdOptions.Builder().build())
      .build()
}

Substitua AD_UNIT_ID pelo ID do seu dispositivo de teste.

O método forNativeAd() é responsável por preparar o AdLoader para o formato NativeAd. Quando um anúncio é carregado com sucesso, o método onNativeAdLoaded() do objeto listener é chamado.

Configurar um AdListener com o AdLoader (opcional)

Ao criar o AdLoader, a função withAdListener define um AdListener para o carregador. O método usa um AdListener como único parâmetro, que recebe callbacks do AdLoader quando acontecem eventos de ciclo de vida do anúncio:

Java

adLoaderBuilder.withAdListener(
    // Override AdListener callbacks here.
    new AdListener() {});

Kotlin

adLoaderBuilder.withAdListener(
  // Override AdListener callbacks here.
  object : AdListener() {}
)

Solicitar anúncios

Depois de criar um AdLoader, é hora de usá-lo para solicitar anúncios. Há dois métodos disponíveis para isso: loadAd() e loadAds().

loadAd()

Esse método envia uma solicitação de um único anúncio.

Java

adLoader.loadAd(new AdManagerAdRequest.Builder().build());

Kotlin

adLoader.loadAd(AdManagerAdRequest.Builder().build())

loadAds()

Esse método envia uma solicitação de vários anúncios (até cinco):

Java

// Load three native ads.
adLoader.loadAds(new AdManagerAdRequest.Builder().build(), 3);

Kotlin

// Load three native ads.
adLoader.loadAds(AdManagerAdRequest.Builder().build(), 3)

Os dois métodos usam um objeto AdManagerAdRequest como primeiro parâmetro. Essa é a mesma classe AdManagerAdRequest usada por banners e intersticiais. Você pode usar métodos da classe AdManagerAdRequest para adicionar informações de segmentação, assim como faria com outros formatos de anúncio.

Carregar vários anúncios (opcional)

O método loadAds() usa um parâmetro adicional: o número de anúncios que o SDK deve tentar carregar para a solicitação. Esse número é limitado a cinco, e não há garantia de que o SDK vai retornar a quantidade exata de anúncios solicitados.

Todos os anúncios retornados pelo Google serão diferentes uns dos outros, mas não há garantia de que os anúncios de inventário reservado ou de compradores terceirizados sejam únicos.

Não use o método loadAds() se você estiver usando a mediação, porque as solicitações de vários anúncios nativos não funcionam para IDs de bloco de anúncios que foram configurados para mediação.

Callbacks

Depois de chamar loadAd(), um único callback é feito para os métodos de listener definidos anteriormente para entregar o objeto de anúncio nativo ou informar um erro.

Liberar recursos

Use o método destroy() em anúncios nativos carregados. Isso libera recursos utilizados e evita vazamentos de memória.

Verifique se todas as referências de NativeAd são destruídas no método onDestroy() da atividade.

No seu callback onNativeAdLoaded, destrua todos os anúncios nativos existentes que serão removidos.

Outra ação importante é verificar se a atividade foi destruída. Em caso afirmativo, chame destroy() no anúncio retornado e volte imediatamente:

Java

nativeAd.destroy();

Kotlin

nativeAd.destroy()

Práticas recomendadas

Siga estas regras ao carregar anúncios.

  • Os apps que usam anúncios nativos em uma lista precisam pré-armazenar essa lista em cache.

  • Quando você fizer isso, limpe e recarregue o cache depois de uma hora.

  • Não chame loadAd() em um AdLoader até que a primeira solicitação termine de carregar.
  • Limite o cache de anúncios nativos apenas ao que é necessário. Por exemplo, ao usar o pré-cache, armazene apenas os anúncios que estão imediatamente visíveis na tela. Os anúncios nativos consomem muita memória quando ficam armazenados em cache, e por isso precisam ser destruídos.

  • Destrua os anúncios nativos quando eles não estiverem mais em uso.

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

Para veicular os anúncios em vídeo corretamente nas suas visualizações de anúncios nativos, ative a aceleração de hardware.

A aceleração de hardware é ativada por padrão, mas alguns apps podem desativá-la. Se esse for o caso do seu aplicativo, recomendamos ativar a aceleração de hardware para classes de atividade que usam anúncios.

Ativar a aceleração de hardware

Se o app não se comporta da forma correta com a aceleração de hardware ativada globalmente, 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 opções de controle. As visualizações de anúncios individuais não podem ser ativadas para aceleração de hardware com a atividade desativada. Portanto, a atividade em si precisa ter a aceleração de hardware ativada.

Mostrar seu anúncio

Depois de carregar um anúncio, basta mostrá-lo aos usuários. Acesse nosso guia de anúncios nativos avançados para saber como fazer isso.