Combinar solicitações de anúncio nativo e de banner com renderização personalizada

Com algumas alterações no seu código, você pode combinar anúncios nativos e de banner nas suas solicitações de anúncios.

Pré-requisitos

  • Versão 11.0.0 ou mais recente do SDK dos anúncios para dispositivos móveis do Google.
  • Conclua o curso Começar.

Carregar o anúncio

Os anúncios nativos com renderização personalizada são carregados usando a classe AdLoader, que tem a própria classe AdLoader.Builder para personalizá-la durante a criação. Ao adicionar listeners à AdLoader durante a criação, o app especifica quais tipos de formatos de anúncio ele está pronto para receber. Em seguida, o AdLoader solicita apenas esses tipos.

O objeto AdLoader também pode ser configurado para fazer solicitações de anúncios que podem resultar em um anúncio de banner ou nativo. Adicionar um OnAdManagerAdViewLoadedListener ao AdLoader durante a criação especifica que os anúncios de banner precisam competir com os nativos para preencher a solicitação.

O código a seguir demonstra como criar um AdLoader que pode carregar um anúncio nativo ou de banner em uma única solicitação:

Java

AdLoader adLoader = new AdLoader.Builder(context, "/6499/example/nativeandbanner")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
      @Override
      public void onNativeAdLoaded(NativeAd nativeAd) {
        // Show the ad.
      }
    })
    .forAdManagerAdView(new OnAdManagerAdViewLoadedListener() {
      @Override
      public void onAdManagerAdViewLoaded(AdManagerAdView adView) {
        // Show the banner ad.
      }
    }, AdSize.BANNER, AdSize.MEDIUM_RECTANGLE)
    .withAdListener(new AdListener() {
      @Override
      public void onAdFailedToLoad(LoadAdError error) {
        // Handle the failure by logging, altering the UI, and so on.
      }
    })
    .withAdManagerAdViewOptions(new AdManagerAdViewOptions.Builder()
      // Methods in the AdManagerAdViewOptions.Builder class can be
      // used here to specify individual options settings.
      .build())
    .build();

Kotlin

val adLoader = AdLoader.Builder(this, "/6499/example/nativeandbanner")
    .forNativeAd { nativeAd ->
      // Show the ad.
    }
    .forAdManagerAdView({ adView ->
      // Show the banner ad.
    }, AdSize.BANNER, AdSize.MEDIUM_RECTANGLE)
    .withAdListener(object: AdListener() {
      override fun onAdFailedToLoad(adError: LoadAdError) {
        // Handle the failure by logging, altering the UI, and so on.
      }
    })
    .withAdManagerAdViewOptions(AdManagerAdViewOptions.Builder()
      // Methods in the AdManagerAdViewOptions.Builder class can be
      // used here to specify individual options settings.
      .build())
    .build()

O método forAdManagerAdView() acima prepara o AdLoader para receber anúncios de banner. Uma lista de comprimento variável de tamanhos de anúncio válidos precisa ser especificada junto com um OnAdManagerAdViewLoadedListener ao invocar forAdManagerAdView().

Para fazer uma solicitação de anúncio válida, pelo menos um tamanho de anúncio válido precisa ser especificado. Quando um anúncio de banner é carregado, o método onAdManagerAdViewLoaded() do objeto do listener especificado é chamado.

Como definir AdViewOptions

A última função incluída na criação do AdLoader acima é outro método opcional, withAdManagerAdViewOptions():

Java

.withAdManagerAdViewOptions(new AdManagerAdViewOptions.Builder()
    // Methods in the AdManagerAdViewOptions.Builder class can be
    // used here to specify individual banner options settings.
    .build()

Kotlin

.withAdManagerAdViewOptions(AdManagerAdViewOptions.Builder()
    // Methods in the AdManagerAdViewOptions.Builder class can be
    // used here to specify individual banner options settings.
    .build()

O objeto AdManagerAdViewOptions permite que os editores definam opções específicas para banners carregados por AdLoader, como:

setManualImpressionsEnabled()
Ativa a geração de relatórios de impressão manual para reservas do Google Ad Manager. Os apps que usam impressões manuais podem determinar quando uma impressão precisa ser registrada chamando AdManagerAdView.recordManualImpression().