Anuncios nativos

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Los anuncios nativos son elementos del anuncio 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 pueden formatearse 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 elementos, y la app (en lugar del SDK) es responsable de mostrarlos. Esto difiere de otros formatos de anuncios, que no te permiten personalizar la apariencia del anuncio.

En esta guía, se mostrará cómo usar el SDK de anuncios de Google para dispositivos móviles a fin de implementar anuncios nativos en una app para iOS, así como algunos aspectos importantes que se deben tener en cuenta durante el proceso.

En términos generales, existen dos partes para implementar anuncios nativos correctamente: cargar un anuncio a través del SDK y mostrar el contenido del anuncio en tu app. En esta página, se analiza la carga de anuncios mediante el SDK.

Si ya cargas anuncios nativos con éxito y solo necesitas saber cómo mostrarlos, no dudes en pasar a nuestras guías de plantillas nativas o nativas avanzadas.

Requisitos previos

Probar siempre con anuncios de prueba

Antes de comenzar, recuerda que cuando compilas y pruebas tus apps, debes asegurarte de usar anuncios de prueba en lugar de anuncios de producción publicados. Realizar pruebas con anuncios de producción podría provocar la suspensión de su cuenta.

La forma más fácil de cargar anuncios de prueba es usar nuestro ID de bloque de anuncios de prueba dedicado para todos los anuncios nativos avanzados en iOS:

ca-app-pub-3940256099942544/3986624511

Se configuró especialmente para mostrar anuncios de prueba en cada solicitud y puedes usarlo en tus propias aplicaciones mientras codificas, pruebas y depuras. Solo asegúrate de reemplazarlo con tu propio ID de bloque 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 móviles, consulta Anuncios de prueba.

Cargando anuncios

Los anuncios nativos se cargan a través de objetos GADAdLoader, que envían mensajes a sus delegados de acuerdo con el protocolo GADAdLoaderDelegate.

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: "ca-app-pub-3940256099942544/3986624511",
    rootViewController: self,
    adTypes: [ .native ],
    options: [ ... ad loader options objects ... ])
adLoader.delegate = self

Objective‑C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

Necesitarás un ID de bloque de anuncios (puedes usar el ID de prueba), constantes para pasar el arreglo adTypes a fin de especificar qué formatos nativos deseas solicitar y cualquier opción que desees configurar en el parámetro options. La lista de valores posibles para el parámetro options se puede encontrar en la página Configuración de opciones de anuncios nativos.

El array adTypes debe contener esta constante:

Implementa el delegado del cargador de anuncios

El delegado del cargador de anuncios debe implementar protocolos específicos para tu tipo de anuncio. Para los anuncios nativos:

  • GADNativeAdLoaderDelegate Este protocolo 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;
    

Solicitar el anuncio

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

Swift

adLoader.load(GADRequest())

Objective‑C

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

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

Cuándo solicitar anuncios

Las aplicaciones que muestran anuncios nativos pueden solicitarlas con anticipación cuando se muestren. En muchos casos, esta es la práctica recomendada. Una app que muestra una lista de elementos con anuncios nativos mezclados, por ejemplo, puede cargar anuncios nativos para toda la lista, con la certeza de que algunos se mostrarán solo después de que el usuario se desplace por la vista y otros no se muestren en absoluto.

Si bien la precarga de anuncios es una técnica excelente, es importante no tener anuncios antiguos sin mostrarlos siempre. Cualquier objeto de anuncio nativo que se haya retenido sin mostrar durante más de una hora debe descartarse y reemplazarse por anuncios nuevos a partir de una solicitud nueva.

Cómo determinar cuándo finalizó 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 dará como resultado una llamada a uno de esos métodos.

Una solicitud de varios anuncios generará, al menos, una devolución de llamada a los métodos anteriores, pero no superará la cantidad máxima de anuncios solicitados.

Además, GADAdLoaderDelegate ofrece la devolución de llamada adLoaderDidFinishLoading. Este método delegado indica que un cargador de anuncios terminó de cargar los anuncios y que no se informará ningún otro anuncio o error para la solicitud. A continuación, se muestra un ejemplo de cómo utilizarla al cargar varios anuncios nativos al mismo tiempo:

Swift

class ViewController: UIViewController, GADNativeAdLoaderDelegate {

  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()

    let multipleAdsOptions = GADMultipleAdsAdLoaderOptions()
    multipleAdsOptions.numberOfAds = 5

    adLoader = GADAdLoader(adUnitID: YOUR_AD_UNIT_ID, rootViewController: self,
        adTypes: [.native],
        options: [multipleAdsOptions])
    adLoader.delegate = self
    adLoader.load(GADRequest())
  }

  func adLoader(_ adLoader: GADAdLoader,
                didReceive nativeAd: GADNativeAd) {
    // A native ad has loaded, and can be displayed.
  }

  func adLoaderDidFinishLoading(_ adLoader: GADAdLoader) {
      // The adLoader has finished loading ads, and a new request can be sent.
  }

}

Objective‑C

@interface ViewController () <GADNativeAdLoaderDelegate, GADVideoControllerDelegate>
@property(nonatomic, strong) GADAdLoader *adLoader;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
      [[GADMultipleAdsAdLoaderOptions alloc] init];
  multipleAdsOptions.numberOfAds = 5;

  self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:YOUR_AD_UNIT_ID
          rootViewController:self
                     adTypes:@[GADAdLoaderAdTypeNative]
                     options:@[multipleAdsOptions]];
  self.adLoader.delegate = self;
  [self.adLoader loadRequest:[GADRequest request]];
}

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd {
   // A native ad has loaded, and can be displayed.
}

- (void)adLoaderDidFinishLoading:(GADAdLoader *) adLoader {
  // The adLoader has finished loading ads, and a new request can be sent.
}

@end

Cómo manejar solicitudes con errores

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

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 anuncios nativos, establece la propiedad delegada del anuncio nativo:

Swift

nativeAd.delegate = self

Objective‑C

nativeAd.delegate = self;

Luego, implementa GADNativeAdDelegate para recibir las siguientes llamadas de delegado:

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 application to become inactive and
  // open a new application.
}

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 application to become inactive and
  // open a new application.
}

Muestre su anuncio

Una vez que carga un anuncio, lo único que queda es mostrarlo a sus usuarios. Consulta nuestra guía de anuncios nativos avanzados para ver cómo hacerlo.