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

  • Versión 11.0.0 o posterior del SDK de anuncios de Google para dispositivos móviles
  • Completar Primeros pasos.

Cómo cargar el anuncio

Los anuncios nativos con renderización personalizada se cargan con la clase AdLoader, que tiene su propia clase AdLoader.Builder para personalizarla durante la creación. Si se agregan objetos de escucha a la AdLoader mientras la compila, una app especifica qué tipos de formatos de anuncios está lista para recibir. Luego, AdLoader solicita solo esos tipos.

El objeto AdLoader también se puede configurar para realizar solicitudes de anuncios que pueden generar un anuncio de banner o un anuncio nativo. Si agregas un OnAdManagerAdViewLoadedListener a 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 compilar un AdLoader que pueda cargar un anuncio nativo o de banner en una sola solicitud:

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()

El método forAdManagerAdView() anterior prepara los objetos 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 invoca a 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 del 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 a los editores establecer 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().