Formatos de anuncios nativos personalizados y Medición abierta de tipo de anuncio gráfico

Si planeas usar la medición abierta con formatos de anuncios nativos personalizados que no contienen un recurso de video, deberás llamar a las APIs de Open Measurement tú mismo. La medición abierta para los formatos de anuncios nativos personalizados de tipo de visualización solo es compatible con la versión 7.43.0 y posteriores. Si utilizas formatos de anuncios nativos personalizados con un recurso de video, no es necesario que sigas esta guía, ya que el SDK de anuncios de Google para dispositivos móviles hace un seguimiento de la visibilidad del recurso de video por ti.

Requisitos previos

Carga un anuncio

La carga de un anuncio es la misma, independientemente de si utilizas la medición abierta o no. En este caso, usaremos un ViewController simple para demostrar la carga de un GADNativeCustomTemplateAd:

@interface OpenMeasurementNativeCustomTemplateAdViewController ()
    <GADNativeCustomTemplateAdLoaderDelegate> {
  IBOutlet UIView *_parentView;
  GADAdLoader *_adLoader;
  GADNativeCustomTemplateAd *_customTemplateAd;
  MySimpleNativeAdView *_simpleNativeAdView;
}

@end

@implementation OpenMeasurementNativeCustomTemplateAdViewController

- (void) viewDidLoad {
  [super viewDidLoad];

  _adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"your ad unit ID"
                                 rootViewController:self
                                            adTypes:@[ kGADAdLoaderAdTypeNativeCustomTemplate ]
                                            options:nil];
  _adLoader.delegate = self;
  [self loadAd];
}

- (void) loadAd {
  GAMRequest *request = [GAMRequest request];
  [_adLoader loadRequest:request];
}
...
@end

Registra tu vista y comienza a medir

Cuando muestras una GADNativeCustomTemplateAd, debes registrar la vista de anuncio personalizado con el GADNativeTemplateAd usando la propiedad displayAdMeasurement.view.

También debes indicarle explícitamente al SDK que comience a medir tu anuncio. Para ello, llama al método startWithError: en la propiedad displayAdMeasurement de tu GADNativeCustomTemplateAd. Se debe llamar a startWithError: desde el subproceso principal; las llamadas posteriores no tendrán efecto.

@implementation OpenMeasurementNativeCustomTemplateAdViewController
...
#pragma mark - GADNativeCustomTemplateAdLoaderDelegate

- (void) adLoader:(GADAdLoader *) adLoader
    didReceiveNativeCustomTemplateAd:(GADNativeCustomTemplateAd *)nativeCustomTemplateAd {
  NSLog(@"Received custom native ad: %@", nativeCustomTemplateAd);

  _customTemplateAd = nativeCustomTemplateAd;

  // Put the custom native ad on screen.
  _simpleNativeAdView =
    [[NSBundle mainBundle] loadNibNamed:@"SimpleCustomNativeAdView"
                                  owner:nil
                                options:nil]
    .firstObject;
  [_parentView addSubview:_simpleNativeAdView];
  [_simpleNativeAdView populateWithCustomNativeAd:_customTemplateAd];


  // Set the top-level native ad view on the GADNativeCustomTemplateAd so the
  // Google Mobile Ads SDK can track viewability for that view.
  _customTemplateAd.displayAdMeasurement.view = _simpleNativeAdView;
  // Begin measuring your impressions and clicks.
  NSError *error = nil;
  [_customTemplateAd.displayAdMeasurement startWithError:&error];

  if (error) {
    NSLog(@"Failed to start the display measurement.");
  }
}
...
@end

¡Eso es todo! Una vez que lances la app, comenzarás a recibir datos de medición. Sin embargo, estos no se certificarán hasta que completes el proceso de certificación de la IAB.