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 las mismas clases que ya usas. en tus guiones gráficos y a la que se le puede dar formato para que coincida con el diseño visual de tu 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.

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 iOS:

ca-app-pub-3940256099942544/3986624511

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 GADAdLoader que envían mensajes a sus delegados según el GADAdLoaderDelegate protocolo.

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",
    // The UIViewController parameter is optional.
    rootViewController: rootViewController,
    adTypes: [ .native ],
    options: [ ... ad loader options objects ... ])
adLoader.delegate = self

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    // 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 el Un array adTypes para especificar qué formatos nativos quieres solicitar y cualquier opciones que deseas configurar en el parámetro options. La lista de posibles puedes consultar los valores del parámetro options en Cómo configurar un anuncio nativo Página de opciones

El array adTypes debe contener esta constante :

Cómo implementar 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;

Solicitar anuncios

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 loadRequest: método en GADAdLoader acepta el mismo GADRequest como banners y anuncios intersticiales. Puedes usar objetos de solicitud para agregar información de segmentación, así como con otros tipos de anuncios.

Cómo cargar varios anuncios (opcional)

Para cargar varios anuncios en una sola solicitud, configure la GADMultipleAdsAdLoaderOptions cuando se inicializa un GADAdLoader.

Swift

let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    // The UIViewController parameter is optional.
    rootViewController: self,
    adTypes: [ .native ],
    options: [ multipleAdOptions ])

Objective-C

GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
    [[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    // The UIViewController parameter is nullable.
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ multipleAdsOptions ]];

La cantidad de anuncios por solicitud se limita a cinco y no se garantiza que el SDK devolverá 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 la clase GADMultipleAdsAdLoaderOptions si usas mediación. ya que, actualmente, las solicitudes de varios anuncios nativos no funcionan para los IDs de unidades de anuncios que se configuraron para la mediación.

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:

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

La solicitud de varios anuncios generará, al menos, una devolución de llamada a la respuesta anterior. métodos, pero no más que la cantidad máxima de anuncios solicitados.

Además, GADAdLoaderDelegate ofrece la adLoaderDidFinishLoading devolución de llamada. Este método delegado indica que finalizó la carga de un cargador de anuncios anuncios y no se informarán otros anuncios ni errores para la solicitud. Este es un ejemplo de cómo usarlo para cargar varios anuncios nativos a la vez:

Swift

class ViewController: UIViewController, GADNativeAdLoaderDelegate {

  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()

    let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
    multipleAdOptions.numberOfAds = 5;
    adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
        // The UIViewController parameter is optional.
        rootViewController: rootViewController,
        adTypes: [ .native ],
        options: [ multipleAdOptions ])

    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:@"ca-app-pub-3940256099942544/3986624511"
      // The UIViewController parameter is nullable.
      rootViewController:rootViewController
                 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

Maneja las solicitudes con errores

Los protocolos anteriores extienden el protocolo GADAdLoaderDelegate, que define un que se envía cuando no se cargan los anuncios.

Swift

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

Objective-C

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

Reciba notificaciones de eventos de anuncios nativos

Para recibir notificaciones sobre eventos relacionados con las interacciones con anuncios nativos, configura el delegado 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 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 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 volver a llamar a loadRequest: en un GADAdLoader hasta la solicitud anterior termine de cargarse, como lo indica adLoaderDidFinishLoading:.

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.