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
- Importar el SDK de anuncios de Google para móviles, ya sea de forma independiente o como parte de Firebase.
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étodoonUnifiedNativeAdLoaded()
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.