Danos tu opinión sobre el SDK de anuncios de Google para móviles. Rellena la encuesta anual.

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 los muestra (es decir, el SDK no se encarga de esta segunda acción).

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 se indica cómo 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 su creación. Al añadir listeners a AdLoader mientras lo creas, la aplicación especifica el tipo de anuncios nativos que puede recibir. De esta forma, AdLoader solo solicita anuncios de estos tipos.

Crear un AdLoader

En el siguiente 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 listener.

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 AdLoader anterior, la función withAdListener asigna un AdListener.

Se trata de un paso opcional. El método utiliza un 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 AdLoader tiene sus propios listeners específicos de formato (es decir, UnifiedNativeAd.OnUnifiedNativeAdLoadedListener), que se usan cuando el anuncio se ha cargado, no se llama al método onAdLoaded() de AdListener cuando un anuncio nativo se carga correctamente.

Cargar anuncios

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

El método loadAd() envía una solicitud para un solo anuncio:

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

Java

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

Kotlin

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

El método loadAds() envía una solicitud para 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 anuncios de banner e intersticiales. Puedes emplear los métodos de la clase AdRequest para añadir información sobre la segmentación, tal como harías con otros formatos de anuncio.

loadAds() utiliza un parámetro más: el número de anuncios que debe intentar cargar el SDK para la solicitud. 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 única retrollamada a los métodos del listener 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 se muestra un ejemplo de cómo comprobar isLoading() en la retrollamada 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 de producción activos. 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 en la programación, las pruebas y la depuración de tus aplicaciones. Solo tienes que sustituirlo por el ID de uno de tus bloques de anuncios antes de publicar la aplicación.

Si quieres obtener más información acerca del funcionamiento de los anuncios de prueba del SDK de anuncios para móviles, consulta Anuncios de prueba.

Cuándo solicitar anuncios

Las aplicaciones que muestran anuncios nativos pueden solicitarlos con antelación al momento en que se quieran mostrar. 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, ya que 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 el formato nativo avanzado.