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

Si planeas usar Open Measurement con formatos de anuncios nativos personalizados que no contienen un activo de video, eres responsable de llamar al módulo de medición por tu cuenta. Medición abierta para anuncios nativos personalizados de tipo de visualización solo es compatible con la versión 7.43.0 y posteriores. Si utilizas de anuncios nativos con un recurso de video, no es necesario el SDK de anuncios de Google para dispositivos móviles hace un seguimiento de la visibilidad del recurso de video en por ti.

Requisitos previos

Carga un anuncio

La carga de un anuncio es la misma independientemente de si usas Open Measurement o no. En este En este caso, usaremos un ViewController simple para demostrar la carga de un GADNativeCustomFormatAd:

@interface OpenMeasurementNativeCustomFormatAdViewController ()
    <GADNativeCustomFormatAdLoaderDelegate> {
  IBOutlet UIView *_parentView;
  GADAdLoader *_adLoader;
  GADNativeCustomFormatAd *_customTemplateAd;
  MySimpleNativeAdView *_simpleNativeAdView;
}

@end

@implementation OpenMeasurementNativeCustomFormatAdViewController

- (void) viewDidLoad {
  [super viewDidLoad];

  _adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"your ad unit ID"
                                 rootViewController:self
                                            adTypes:@[ kGADAdLoaderAdTypeNativeCustomFormat ]
                                            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 muestra un GADNativeCustomFormatAd, debe registrar su anuncio personalizado con el GADNativeTemplateAd mediante displayAdMeasurement.view propiedad.

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

@implementation OpenMeasurementNativeCustomFormatAdViewController
...
#pragma mark - GADNativeCustomFormatAdLoaderDelegate

- (void) adLoader:(GADAdLoader *) adLoader
    didReceiveNativeCustomFormatAd:(GADNativeCustomFormatAd *)nativeCustomFormatAd {
  NSLog(@"Received custom native ad: %@", nativeCustomFormatAd);

  _customTemplateAd = nativeCustomFormatAd;

  // 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 GADNativeCustomFormatAd 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! Cuando lances tu app, comenzarás a recibir datos de medición, pero no se certificarán hasta que completes la Certificación IAB .