Anuncios nativos

Los anuncios nativos son recursos publicitarios que se presentan a los usuarios a través de componentes de la interfaz que son nativos de la plataforma. 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 implica que, cuando se carga un anuncio nativo, tu aplicación recibe un objeto NativeAd que contiene sus recursos y es la propia aplicación (no el SDK de anuncios de Google para móviles) la que los muestra.

A grandes rasgos, debes hacer dos cosas para implementar anuncios nativos correctamente: cargarlos mediante el SDK y, a continuación, mostrar su contenido en tu aplicación. En esta página aprenderás a utilizar el SDK para cargar anuncios nativos.

Requisitos previos

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 los tipos de anuncios nativos que 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 que puede cargar 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 un anuncio que maximiza el rendimiento del editor.

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. Como el 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, tal 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 más arriba 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)

Comprobar siempre las aplicaciones con anuncios de prueba

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 propias aplicaciones. Solo tienes que sustituirlo por el ID de uno de tus bloques de anuncios antes de 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, si la aplicación muestra una lista de elementos entre los que también hay anuncios nativos, se pueden cargar los de toda la lista, pero algunos solo se mostrarán cuando el usuario desplace 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. Para aprender a hacerlo, consulta nuestra guía sobre los anuncios nativos avanzados.