Cómo combinar solicitudes de anuncios nativos con renderización personalizada y en forma de banner

Con algunos cambios en tu código, puedes combinar anuncios nativos y de banner en tus solicitudes de anuncios.

Requisitos previos

  • La versión 11.0.0 o una posterior del SDK de anuncios de Google para dispositivos móviles
  • Completa Comenzar.

Cómo cargar el anuncio

Los anuncios nativos renderizados de forma personalizada se cargan con la clase AdLoader, que tiene su propia clase AdLoader.Builder para personalizarla durante la creación. Cuando se agregan objetos de escucha al AdLoader durante su compilación, una app especifica los tipos de formatos de anuncios que puede recibir. Luego, AdLoader solo solicita esos tipos.

El objeto AdLoader también se puede configurar para realizar solicitudes de anuncios que pueden generar un anuncio de banner o uno nativo. Si agregas un OnAdManagerAdViewLoadedListener al AdLoader mientras lo compilas, se especifica que los anuncios de banner deben competir con los anuncios nativos para completar la solicitud.

En el siguiente código, se muestra cómo crear un AdLoader que pueda cargar un anuncio nativo o de banner en una sola solicitud:

Java

AdLoader adLoader = new AdLoader.Builder(context, "/21775744923/example/native-and-banner")
    .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, "/21775744923/example/native-and-banner")
    .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()

El método forAdManagerAdView() anterior prepara el AdLoader para recibir anuncios de banner. Se debe especificar una lista de longitud variable de tamaños de anuncios válidos junto con un OnAdManagerAdViewLoadedListener cuando se invoque forAdManagerAdView().

Para realizar una solicitud de anuncio válida, se debe especificar al menos un tamaño de anuncio válido. Cuando un anuncio de banner se carga correctamente, se llama al método onAdManagerAdViewLoaded() del objeto de escucha especificado.

Cómo configurar AdViewOptions

La última función incluida en la creación de AdLoader anterior es otro 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()

El objeto AdManagerAdViewOptions permite que los publicadores establezcan opciones específicas para los banners que carga AdLoader, como las siguientes:

setManualImpressionsEnabled()
Habilita los informes de impresiones manuales para las reservas de Google Ad Manager. Las apps que usan impresiones manuales pueden determinar por sí mismas cuándo se debe registrar una impresión y pueden hacerlo llamando a AdManagerAdView.recordManualImpression().