Los anuncios nativos son recursos del anuncio que se presentan a los usuarios a través de componentes de IU que son nativos de la plataforma. Se muestran con los mismos tipos de vistas que ya utilizas para crear tus diseños y se pueden adaptar con un formato que coincida con el diseño visual de tu app.
Cuando se carga un anuncio nativo, tu app recibe un objeto de anuncio que contiene sus recursos, y la responsabilidad de mostrarlos recae en la app (no en el SDK de anuncios de Google para dispositivos móviles).
En términos generales, la implementación correcta de los anuncios nativos se divide en dos partes: cargar un anuncio con el SDK y, luego, mostrar el contenido del anuncio en tu app.
En esta página, se explica cómo usar el SDK para cargar anuncios nativos.
Requisitos previos
- Completa la guía de introducción.
Siempre haz pruebas con anuncios de prueba
Al compilar y verificar tus apps, asegúrate de usar anuncios de prueba en vez de anuncios activos en fase de producción.
La forma más sencilla de cargar anuncios de prueba es usar nuestro ID de unidad de anuncios de prueba exclusivo para los anuncios nativos en Android:
/21775744923/example/native
Está configurado especialmente para devolver anuncios de prueba en cada solicitud, y puedes usarlo en tus propias apps durante las tareas de programación, prueba y depuración. Solo asegúrate de reemplazarlo por tu propio ID de unidad de anuncios antes de publicar la app.
Consulta la página Habilita los anuncios de prueba para obtener más información sobre cómo funcionan esos anuncios del SDK de anuncios de Google para dispositivos móviles.
Carga anuncios
Los anuncios nativos se cargan con la clase AdLoader
, que tiene su propia clase Builder
para personalizarla durante su creación. Cuando se agregan objetos de escucha a AdLoader
durante la compilación, la app especifica qué tipos de anuncios nativos está lista para recibir. De esta manera, AdLoader
solo solicita esos tipos de anuncios.
Compila un AdLoader
El siguiente código muestra cómo compilar una clase AdLoader
que pueda cargar anuncios nativos:
Java
Kotlin
Reemplaza AD_UNIT_ID por tu ID de dispositivo de prueba.
El método forNativeAd()
se encarga de preparar la clase AdLoader
para el formato NativeAd
.
Cuando un anuncio se carga correctamente, se llama al método onNativeAdLoaded()
del objeto de escucha.
Configura una clase AdListener con la clase AdLoader (opcional)
Cuando se crea la clase AdLoader
, la función withAdListener
establece una clase AdListener
para el cargador. El método toma una clase AdListener
como su único parámetro, que recibe devoluciones de llamada de la clase AdLoader
cuando se producen eventos de ciclo de vida del anuncio:
Java
adLoaderBuilder.withAdListener(
// Override AdListener callbacks here.
new AdListener() {});
Kotlin
adLoaderBuilder.withAdListener(
// Override AdListener callbacks here.
object : AdListener() {}
)
Solicitar anuncios
Una vez que hayas terminado de compilar una clase AdLoader
, será el momento de usarla para solicitar anuncios.
Para ello, tienes dos métodos disponibles: loadAd()
y loadAds()
.
loadAd()
Este método envía una solicitud para un solo anuncio.
Java
adLoader.loadAd(new AdManagerAdRequest.Builder().build());
Kotlin
adLoader.loadAd(AdManagerAdRequest.Builder().build())
loadAds()
Este método envía una solicitud para varios anuncios (hasta cinco):
Java
// Load three native ads.
adLoader.loadAds(new AdManagerAdRequest.Builder().build(), 3);
Kotlin
// Load three native ads.
adLoader.loadAds(AdManagerAdRequest.Builder().build(), 3)
Ambos métodos toman un objeto AdManagerAdRequest
como su primer parámetro. Esta es la misma clase AdManagerAdRequest
que usan los banners y los anuncios intersticiales, y puedes usar métodos de la clase AdManagerAdRequest
para agregar la información de segmentación, tal como lo harías con otros formatos de anuncios.
Carga varios anuncios (opcional)
El método loadAds()
toma un parámetro adicional: la cantidad de anuncios que el SDK debería intentar cargar para la solicitud. Esa cantidad tiene un límite de cinco, y no se garantiza que el SDK devuelva la cantidad exacta de anuncios solicitados.
Todos los anuncios de Google que se devuelvan serán diferentes entre sí, aunque no se garantiza que los anuncios procedentes del inventario reservado o de compradores externos sean únicos.
No uses el método loadAds()
si utilizas la mediación, ya que las solicitudes de varios anuncios nativos no funcionan para los IDs de unidades de anuncios que se configuraron para la mediación.
Devoluciones de llamada
Después de una llamada a loadAd()
, se realiza una sola devolución de llamada a los métodos del objeto de escucha definidos anteriormente para publicar el objeto de anuncio nativo o informar un error.
Libera recursos
Asegúrate de usar el método destroy()
para los anuncios nativos cargados. Esto libera los recursos utilizados y evita las fugas de memoria.
Verifica que todas las referencias de NativeAd
se destruyan en el método onDestroy()
de tu actividad.
En tu devolución de llamada onNativeAdLoaded
, asegúrate de destruir los anuncios nativos existentes que se vayan a desreferenciar.
Otra verificación clave es confirmar si se destruyó la actividad y, de ser así, llamar a destroy()
para el anuncio devuelto y salir inmediatamente:
Java
nativeAd.destroy();
Kotlin
nativeAd.destroy()
Prácticas recomendadas
Sigue estas reglas cuando cargues anuncios.
Las apps que usan anuncios nativos en una lista deberían almacenar previamente en caché la lista de anuncios.
Cuando realices el almacenamiento previo en caché de los anuncios, borra la caché y vuelve a cargarla después de una hora.
- No llames a
loadAd()
en unAdLoader
hasta que termine de cargarse la primera solicitud.
Limita el almacenamiento en caché de los anuncios nativos solo a los que sean necesarios. Por ejemplo, cuando se realiza el almacenamiento previo en caché, solo se almacenan los anuncios que están inmediatamente visibles en la pantalla. Los anuncios nativos ocupan mucho espacio en memoria, por lo que almacenarlos en caché sin destruirlos genera un uso de memoria excesivo.
Destruye los anuncios nativos cuando ya no estén en uso.
Aceleración de hardware para los anuncios de video
Para que los anuncios de video se muestren correctamente en las vistas de anuncios nativos, la aceleración de hardware tiene que estar habilitada.
La aceleración de hardware está habilitada de forma predeterminada, pero es posible que algunas apps opten por inhabilitarla. Si esto se aplica a tu app, te recomendamos que habilites la aceleración de hardware para las clases Activity que utilizan anuncios.
Cómo habilitar la aceleración de hardware
Si tu app no funciona de manera adecuada con la aceleración de hardware activada a nivel global, también puedes controlarla para actividades individuales. Para habilitar o inhabilitar la aceleración de hardware, usa el atributo android:hardwareAccelerated
para los elementos <application>
y <activity>
en tu archivo AndroidManifest.xml
. En el siguiente ejemplo, se habilita la aceleración de hardware para la app en su totalidad, pero se inhabilita para una actividad:
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
Consulta la guía de aceleración de HW para obtener más información sobre las opciones que permiten controlar la aceleración de hardware. Ten en cuenta que las vistas de anuncios individuales no se pueden habilitar para la aceleración de hardware si la clase Activity está inhabilitada; por lo tanto, esa clase en sí debe tener habilitada la aceleración de hardware.
Muestra tu anuncio
Una vez que hayas cargado un anuncio, solo tendrás que mostrarlo a los usuarios. Consulta nuestra guía de anuncios nativos avanzados para ver cómo hacerlo.