Anuncios nativos

Los anuncios nativos son elementos del anuncio que se presentan a los usuarios mediante componentes de la IU son nativas de la plataforma. Se muestran con los mismos tipos de vistas en el que ya estás creando tus diseños y puedes darles formato para que coincidan con tus el diseño visual de la aplicación.

Cuando se carga un anuncio nativo, tu app recibe un objeto de anuncio que contiene sus recursos y la aplicación, en lugar del SDK de anuncios de Google para dispositivos móviles, se responsables de mostrarlos.

En términos generales, existen dos pasos para implementar anuncios nativos correctamente: Cargar un anuncio mediante el SDK y, luego, mostrar su contenido en la aplicación

En esta página, se muestra cómo usar el SDK para cargar anuncios nativos. Sugerencia: Obtén más información sobre los anuncios nativos en nuestra Guía de anuncios nativos.

También puedes ver algunas historias de éxito de clientes: caso de éxito 1, caso de éxito 2.

Requisitos previos

Probar siempre con anuncios de prueba

Cuando compiles y pruebes tus apps, asegúrate de usar anuncios de prueba en lugar de anuncios activos y en producción.

La forma más sencilla de cargar anuncios de prueba es usar nuestro ID exclusivo de unidad de anuncios de prueba para anuncios nativos en Android:

ca-app-pub-3940256099942544/2247696110

Se configuró de forma especial para mostrar anuncios de prueba para cada solicitud. utilízalos en tus propias apps mientras programas, pruebas y depuras. Solo asegúrate de reemplázala con tu propio ID de unidad de anuncios antes de publicar tu app.

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

Cargar anuncios

Los anuncios nativos se cargan con el clase AdLoader, que tiene su propio Builder para personalizarla durante la creación. Agregando objetos de escucha a AdLoader cuando la compila, una aplicación especifica los tipos de anuncios nativos para los que está lista que reciben. Luego, el AdLoader solicita solo esos tipos.

Cómo crear un AdLoader

En el siguiente código, se muestra cómo compilar un AdLoader que pueda cargar elementos nativos. anuncios:

Java

AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
        @Override
        public void onNativeAdLoaded(NativeAd nativeAd) {
            // Show the ad.
        }
    })
    .withAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(LoadAdError adError) {
            // 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}")
    .forNativeAd { ad : NativeAd ->
        // Show the ad.
    }
    .withAdListener(object : AdListener() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
            // Handle the failure.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

El forNativeAd() es responsable de preparar el AdLoader para el formato NativeAd. Cuando un anuncio se carga correctamente, el objeto onNativeAdLoaded() del objeto de escucha método.

Configura un AdListener con AdLoader (opcional)

Cuando creas el AdLoader, el withAdListener la función establece un AdListener para loader. El método toma un elemento AdListener como su único parámetro, que recibe Devoluciones de llamada de AdLoader cuando tienen lugar eventos de ciclo de vida de anuncios:

Java

.withAdListener(new AdListener() {
    // AdListener callbacks can be overridden here.
})

Kotlin

.withAdListener(object : AdListener() {
    // AdListener callbacks can be overridden here.
})

Solicitar anuncios

Una vez que termines de crear un AdLoader, es momento de usarlo para solicitar anuncios. Hay dos métodos disponibles para hacerlo: loadAd() y loadAds().

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())

loadAds()

Este método envía una solicitud para varios anuncios (hasta cinco):

Java

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

Kotlin

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

Ambos métodos toman un AdRequest como primer parámetro. Esto es igual La clase AdRequest que usan los anuncios intersticiales y banners, También puedes usar métodos de la clase AdRequest para agregar información de segmentación, al igual que como lo harías con otros formatos de anuncios.

Cómo cargar varios anuncios (opcional)

El método loadAds() incluye un parámetro adicional: la cantidad de anuncios del SDK. debería intentar cargarse para la solicitud. Este número tiene un límite de cinco no garantiza que el SDK devuelva la cantidad exacta de anuncios solicitados.

Los anuncios de Google mostrados serán diferentes entre sí, aunque los anuncios de no se garantiza que los compradores externos o el inventario reservado sean únicos.

No uses el método loadAds() si usas la mediación, como solicitudes de por el momento, varios anuncios nativos no funcionan para los ID de bloques de anuncios configurados para la mediación.

Devoluciones de llamada

Después de una llamada a loadAd(), se realiza una sola devolución de llamada al elemento definido previamente. métodos de escucha para publicar el objeto de anuncio nativo o informar un error.

Después de una llamada a loadAds(), se realizan varias devoluciones de llamada de ese tipo (al menos una, y no más que la cantidad de anuncios solicitados). Apps que solicitan varios anuncios debería llamar a AdLoader.isLoading() en sus implementaciones de devolución de llamada para determinar si finalizó el proceso de carga.

A continuación, se incluye un ejemplo en el que se muestra cómo verificar isLoading() en el Devolución de llamada de onNativeAdLoaded():

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        ...
        // 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")
    .forNativeAd {
        ...
        // 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)

Liberar recursos

Asegúrate de usar el método destroy() en los anuncios nativos cargados. Este lanzamiento recursos usados y evita fugas de memoria.

Asegúrate de que todas las referencias a NativeAd se destruyan en el archivo de configuración onDestroy().

En tu devolución de llamada a onNativeAdLoaded, asegúrate de destruir todos los existentes. anuncios nativos que se anularán.

Otra verificación de clave es si se destruye la actividad y, de ser así, llama a destroy() en el anuncio que se muestra y se muestra inmediatamente:

Java

final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed()` is a method on Activity.
        if (isDestroyed()) {
            nativeAd.destroy();
            return;
        }
        ...
    }
}).build();

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
    .forNativeAd { nativeAd ->
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed` is a method on Activity.
        if (isDestroyed) {
            nativeAd.destroy()
            return@forNativeAd
        }
        ...
    }.build()

Prácticas recomendadas

Sigue estas reglas cuando cargues anuncios.

  • Las apps que usan anuncios nativos en una lista deben almacenar previamente la lista de anuncios en caché.

  • Cuando almacenes anuncios previamente en caché, borra la caché y vuelve a cargarla después de una hora.

  • No llames a loadAd() ni loadAds() en un AdLoader hasta la primera se termine de cargar la solicitud.

Aceleración de hardware para anuncios de video

Para que los anuncios de video se muestren correctamente en las vistas de sus anuncios nativos, hardware aceleración debe habilitarse.

La aceleración de hardware está habilitada de forma predeterminada, pero algunas apps podrían optar por inhabilitarla. Si esto se aplica a tu app, te recomendamos que habilites el hardware aceleración para las clases de actividad que usan anuncios.

Cómo habilitar la aceleración de hardware

Si la aceleración de hardware no se comporta correctamente tu app globalmente, también puedes controlarlo para actividades individuales. Para habilitar inhabilita la aceleración de hardware, usa el atributo android:hardwareAccelerated para el <application> y <activity> elementos en tu AndroidManifest.xml. El siguiente ejemplo habilita el hardware aceleración para toda la app, pero la 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 Aceleración de hardware guía para más información sobre las opciones para controlar la aceleración de hardware. Nota que las vistas de anuncios individuales no se podrán habilitar para la aceleración de hardware si el La actividad está inhabilitada, por lo que la actividad en sí debe tener aceleración de hardware. habilitado.

Muestra tu anuncio

Una vez que hayas cargado un anuncio, solo falta mostrarlo a los usuarios. Visita la página de anuncios nativos avanzados para descubrir cómo hacerlo.