Cómo combinar solicitudes de anuncios nativos y 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

Carga un 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 a AdLoader durante la compilación, la app especifica qué tipos de formatos de anuncios está lista para recibir. De esta manera, AdLoader solo solicita esos tipos de anuncios.

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 objeto OnAdManagerAdViewLoadedListener al objeto AdLoader durante la compilación, se especifica que los anuncios de banner deben competir con los anuncios nativos para completar la solicitud.

El siguiente código muestra cómo compilar un objeto AdLoader que puede 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, etc.
      }
    })
    .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, etc.
      }
    })
    .withAdManagerAdViewOptions(AdManagerAdViewOptions.Builder()
      // Methods in the AdManagerAdViewOptions.Builder class can be
      // used here to specify individual options settings.
      .build())
    .build()

El método forAdManagerAdView() prepara el AdLoader para recibir anuncios banner. Se debe especificar una lista de longitud variable de tamaños de anuncios válidos junto con un OnAdManagerAdViewLoadedListener cuando se invoca 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.

Configura el objeto AdViewOptions

La última función incluida en la creación de AdLoader 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 cargados por el objeto 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().