Anuncios nativos

Los anuncios nativos son recursos de anuncios que se presentan a los usuarios a través de componentes de la IU nativos de la plataforma. Se muestran con las mismas clases que ya usas en tus guiones gráficos y se pueden dar formatos para que coincidan 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 app, en lugar del SDK de anuncios de Google para dispositivos móviles, es responsable de mostrarlos.

En términos generales, hay dos partes para implementar correctamente los anuncios nativos: cargar un anuncio con el SDK y, luego, mostrar el contenido del anuncio en tu app.

En esta página, se muestra cómo usar el SDK para cargar anuncios nativos.

Requisitos previos

Siempre realiza pruebas con anuncios de prueba

Cuando compiles y pruebes tus apps, asegúrate de usar anuncios de prueba en lugar de anuncios publicados 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 anuncios nativos en iOS:

/21775744923/example/native

Se configuró de forma especial para mostrar anuncios de prueba para cada solicitud, y puedes usarlo en tus propias apps mientras codificas, pruebas y depuras. Solo asegúrate de reemplazarlo por tu propio ID de unidad de anuncios antes de publicar la 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.

Carga anuncios

Los anuncios nativos se cargan con la clase GADAdLoader, que envía mensajes a sus delegados según el protocolo GADAdLoaderDelegate.

Además del formato nativo definido por el sistema, también puedes crear tus propios formatos de anuncios nativos personalizados que se pueden usar para los anuncios nativos de venta directa. Los formatos de anuncios nativos personalizados te permiten pasar datos estructurados arbitrarios a tu app. Estos anuncios están representados por la clase GADCustomNativeAd.

Cómo inicializar el cargador de anuncios

Antes de cargar un anuncio, debes inicializar el cargador de anuncios. En el siguiente código, se muestra cómo inicializar un GADAdLoader:

Swift

adLoader = GADAdLoader(adUnitID: "/21775744923/example/native",
    // The UIViewController parameter is optional.
    rootViewController: rootViewController,
    adTypes: [ .native ],
    options: [ ... ad loader options objects ... ])
adLoader.delegate = self

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"/21775744923/example/native"
    // The UIViewController parameter is nullable.
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

Necesitarás un ID de unidad de anuncios (puedes usar el ID de prueba), constantes para pasar en el array adTypes para especificar los formatos nativos que deseas solicitar y cualquier opción que desees configurar en el parámetro options. Puedes encontrar la lista de valores posibles para el parámetro options en la página Configuración de opciones de anuncios nativos.

El array adTypes debe contener una o más de las siguientes constantes:

Implementa el delegado del cargador de anuncios

El delegado de cargador de anuncios debe implementar protocolos específicos para tu tipo de anuncio. En el caso de los anuncios nativos, el protocolo GADNativeAdLoaderDelegate incluye un mensaje que se envía al delegado cuando se carga un anuncio nativo.

Swift

public func adLoader(_ adLoader: GADAdLoader,
            didReceive nativeAd: GADNativeAd)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd;

El protocolo GADCustomNativeAdLoaderDelegate incluye un mensaje que se envía al delegado cuando se carga un anuncio de plantilla personalizada.

Swift

func adLoader(_ adLoader: GADAdLoader,
  Receive customNativeAd: GADCustomNativeAd)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveCustomNativeAd:(GADCustomNativeAd *) customNativeAd;

Solicitar anuncios

Una vez que se inicialice tu GADAdLoader, llama a su método loadRequest: para solicitar un anuncio:

Swift

adLoader.load(GAMRequest())

Objective-C

[self.adLoader loadRequest:[GAMRequest request]];

El método loadRequest: en GADAdLoader acepta los mismos objetos GAMRequest que los banners y los anuncios intersticiales. Puedes usar objetos de solicitud para agregar información de segmentación, tal como lo harías con otros tipos de anuncios.

Determina cuándo terminó la carga

Después de que una app llama a loadRequest:, puede obtener los resultados de la solicitud mediante llamadas a lo siguiente:

Una solicitud de un solo anuncio generará una llamada a uno de esos métodos.

Cómo controlar las solicitudes fallidas

Los protocolos anteriores extienden el protocolo GADAdLoaderDelegate, que define un mensaje enviado cuando no se cargan los anuncios.

Swift

public func adLoader(_ adLoader: GADAdLoader,
    didFailToReceiveAdWithError error: NSError)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didFailToReceiveAdWithError:(NSError *)error;

Cómo recibir notificaciones sobre eventos de anuncios nativos

Para recibir notificaciones sobre eventos relacionados con las interacciones con el anuncio nativo, establece la propiedad de delegado del anuncio nativo:

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

Luego, implementa GADNativeAdDelegate para recibir las siguientes llamadas delegadas:

Swift

func nativeAdDidRecordImpression(_ nativeAd: GADNativeAd) {
  // The native ad was shown.
}

func nativeAdDidRecordClick(_ nativeAd: GADNativeAd) {
  // The native ad was clicked on.
}

func nativeAdWillPresentScreen(_ nativeAd: GADNativeAd) {
  // The native ad will present a full screen view.
}

func nativeAdWillDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad will dismiss a full screen view.
}

func nativeAdDidDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad did dismiss a full screen view.
}

func nativeAdWillLeaveApplication(_ nativeAd: GADNativeAd) {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

Objective-C

- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
  // The native ad was shown.
}

- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
  // The native ad was clicked on.
}

- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
  // The native ad will present a full screen view.
}

- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad will dismiss a full screen view.
}

- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad did dismiss a full screen view.
}

- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
  // The native ad will cause the app to become inactive and
  // open a new app.
}

Prácticas recomendadas

Sigue estas reglas cuando cargues anuncios.

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

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

  • No vuelvas a llamar a loadRequest: en un GADAdLoader hasta que termine de cargarse la solicitud anterior, como lo indica adLoaderDidFinishLoading:.

  • Limita la caché de anuncios nativos solo a lo que sea necesario. Por ejemplo, durante el almacenamiento previo en caché, solo almacena en caché los anuncios que son visibles de inmediato en la pantalla. Los anuncios nativos tienen un gran espacio en la memoria, y almacenar en caché los anuncios nativos sin destruirlos genera un uso excesivo de la memoria.

  • Destruye anuncios nativos cuando ya no los utilices.

Cómo mostrar tu anuncio

Una vez que hayas cargado un anuncio, solo queda mostrarlo a tus usuarios. Consulta la Guía de nativos avanzados para ver cómo hacerlo.