Anuncios nativos

Los anuncios nativos son recursos publicitarios nativos de la plataforma, que se presentan a los usuarios mediante componentes de la interfaz. Se muestran con los mismos tipos de vistas con los que creas tus diseños, y puedes darles el formato que quieras para que se adapten al diseño visual de la experiencia de usuario de la que forman parte. En términos de programación, esto significa que, cuando se carga un anuncio nativo, tu aplicación recibe un objeto NativeAd que contiene sus recursos y es la propia aplicación (y no el SDK de anuncios de Google para móviles) la que los muestra.

Esencialmente, para implementar un anuncio nativo correctamente deben seguirse dos pasos: cargarlo mediante el SDK y, después, mostrar su contenido en la aplicación. En esta página aprenderás a utilizar el SDK para cargar anuncios nativos.

Requisitos

Cargar anuncios

Los anuncios nativos se cargan mediante la clase AdLoader, que tiene su propia clase Builder para personalizarla durante la creación. Al añadir procesadores a la clase AdLoader mientras esta se crea, la aplicación especifica qué tipos de anuncios nativos puede recibir. De esta forma, AdLoader solo solicitará esos anuncios.

Crear un AdLoader

En el siguiente fragmento de código, puedes ver cómo crear un AdLoader para que cargue anuncios nativos unificados:

Java

    AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
        .forUnifiedNativeAd(new UnifiedNativeAd.OnUnifiedNativeAdLoadedListener() {
            @Override
            public void onUnifiedNativeAdLoaded(UnifiedNativeAd unifiedNativeAd) {
                // Show the ad.
            }
        })
        .withAdListener(new AdListener() {
            @Override
            public void onAdFailedToLoad(int errorCode) {
                // Handle the failure by logging, altering the UI, and so on.
            }
        })
        .withNativeAdOptions(new NativeAdOptions.Builder()
                // Methods in the NativeAdOptions.Builder class can be
                // used here to specify individual options settings.
                .build())
        .build();
    

Kotlin

    val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forUnifiedNativeAd { ad : UnifiedNativeAd ->
            // Show the ad.
        }
        .withAdListener(object : AdListener() {
            override fun onAdFailedToLoad(errorCode: Int) {
                // Handle the failure by logging, altering the UI, and so on.
            }
        })
        .withNativeAdOptions(NativeAdOptions.Builder()
                // Methods in the NativeAdOptions.Builder class can be
                // used here to specify individual options settings.
                .build())
        .build()
    

Preparar lo necesario para el formato UnifiedNativeAd

El primer método que hemos visto sirve para preparar el AdLoader para el formato UnifiedNativeAd:

forUnifiedNativeAd()
Al llamar a este método, se configura el AdLoader para solicitar anuncios nativos unificados. Cuando un anuncio se carga correctamente, se llama al método onUnifiedNativeAdLoaded() del objeto procesador.

Cuando el AdLoader solicita un anuncio, Google selecciona y muestra uno que ofrezca el máximo rendimiento a los editores.

Usar AdListener con un AdLoader

Durante la creación del objeto AdLoader anterior, la función withAdListener asigna un AdListener.

Este paso es opcional. El método utiliza un objeto AdListener como único parámetro, que recibe retrollamadas desde el AdLoader cuando se producen eventos del ciclo de vida del anuncio.

Java

    .withAdListener(new AdListener() {
        // AdListener callbacks like OnAdFailedToLoad, OnAdOpened, OnAdClicked and
        // so on, can be overridden here.
    })
    

Kotlin

    .withAdListener(object : AdListener() {
        // AdListener callbacks like OnAdFailedToLoad, OnAdOpened, OnAdClicked and
        // so on, can be overridden here.
    })
    

Hay una diferencia importante entre el funcionamiento de los objetos AdListener con anuncios nativos y su funcionamiento con banners e intersticiales. Puesto que el objeto AdLoader tiene sus propios procesadores específicos según el formato (como UnifiedNativeAd.OnUnifiedNativeAdLoadedListener), que se usan cuando un anuncio se ha cargado, no se llama al método onAdLoaded() desde AdListener cuando un anuncio nativo se carga correctamente.

Cargar anuncios

Cuando termines de crear un objeto AdLoader, podrás usarlo para cargar anuncios. Hay dos métodos disponibles: loadAd() y loadAds().

El método loadAd() envía una solicitud de un solo anuncio.

loadAd()
Este método envía una solicitud de un solo anuncio.

Java

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

Kotlin

    adLoader.loadAd(AdRequest.Builder().build())
    

El método loadAds() envía una solicitud de varios anuncios (hasta 5):

Java

    adLoader.loadAds(new AdRequest.Builder().build(), 3);
    

Kotlin

    adLoader.loadAds(AdRequest.Builder().build(), 3)
    

Ambos métodos utilizan un objeto AdRequest como primer parámetro. Esta es la misma clase AdRequest que usan los banners y los intersticiales, y puedes utilizar métodos de la clase AdRequest para añadir información sobre la segmentación, como harías con otros formatos de anuncio.

El método loadAds() utiliza un parámetro más: el número de anuncios que debe intentar cargar el SDK para responder a las solicitudes. Este número está limitado a un máximo de cinco, aunque no se garantiza que el SDK devuelva el número exacto de anuncios solicitados. Si una llamada a loadAds() devuelve varios anuncios, serán diferentes entre sí.

Después de llamar a loadAd(), se hará una sola retrollamada a los métodos del procesador descritos anteriormente para proporcionar el objeto de anuncio nativo o informar de un error.

Después de llamar a loadAds(), se harán varias retrollamadas (como mínimo una y sin superar el número de anuncios solicitados). Las aplicaciones que solicitan varios anuncios deben llamar a AdLoader.isLoading() al implementar las retrollamadas para determinar si ha finalizado el proceso de carga.

A continuación, te mostramos un ejemplo de cómo llamar al método isLoading() en la retrollamada a onUnifiedNativeAdLoaded():

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
            .forUnifiedNativeAd(new UnifiedNativeAd.OnUnifiedNativeAdLoadedListener() {
        @Override
        public void onUnifiedNativeAdLoaded(UnifiedNativeAd ad) {
            ...
            // some code that displays the ad.
            ...
            if (adLoader.isLoading()) {
                // The AdLoader is still loading ads.
                // Expect more adLoaded or onAdFailedToLoad callbacks.
            } else {
                // The AdLoader has finished loading ads.
            }
        }
    }).build();
    adLoader.loadAds(new AdRequest.Builder().build(), 3);

Kotlin

    lateinit var adLoader: AdLoader
    ...
    adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forUnifiedNativeAd {
            ...
            // some code that displays the ad.
            ...
            if (adLoader.isLoading) {
                // The AdLoader is still loading ads.
                // Expect more adLoaded or onAdFailedToLoad callbacks.
            } else {
                // The AdLoader has finished loading ads.
            }
        }.build()
    adLoader.loadAds(AdRequest.Builder().build(), 3)

Usar siempre anuncios de prueba para probar las aplicaciones

Cuando crees y pruebes tus aplicaciones, utiliza siempre anuncios de prueba en lugar de anuncios reales que se estén publicando. De lo contrario, podríamos suspender tu cuenta.

La forma más sencilla de hacerlo es usar nuestro ID de bloque de anuncios de prueba para anuncios nativos avanzados en Android:

ca-app-pub-3940256099942544/2247696110

Lo hemos configurado especialmente para devolver anuncios de prueba a cada solicitud, y puedes usarlo para programar, probar y depurar tus aplicaciones. Recuerda sustituirlo por el ID de uno de tus bloques de anuncios cuando vayas a publicar la aplicación.

Para obtener más información sobre cómo funcionan los anuncios de prueba del SDK de anuncios para móviles, consulta la guía Anuncios de prueba.

Cuándo solicitar anuncios

Las aplicaciones que muestran anuncios nativos pueden solicitarlos con antelación a la publicación en sí. En muchos casos, es la práctica recomendada. Por ejemplo, imagina que una aplicación muestra una lista de elementos entre los que también hay anuncios nativos. Aunque puedan cargarse todos los elementos de la lista, algunos solo se mostrarán cuando el usuario se desplace por la vista y otros ni siquiera llegarán a aparecer.

Mostrar anuncios nativos unificados

Después de cargar el anuncio, solo queda mostrárselo a los usuarios. Consulta nuestra guía sobre los anuncios nativos avanzados para saber cómo.