Formati di annunci nativi personalizzati di tipo display e Open Measurement

Se prevedi di utilizzare la misurazione aperta con formati degli annunci nativi personalizzati che non contengono un asset video, dovrai chiamare autonomamente le API Open Measurement. La misurazione aperta per i formati degli annunci nativi personalizzati di tipo display è supportata solo dalla versione 7.43.0 e successive. Se utilizzi formati di annunci nativi personalizzati con un asset video, non è necessario seguire questa guida: l'SDK Google Mobile Ads monitora la visibilità dell'asset video per tuo conto.

Prerequisiti

Carica un annuncio

Il caricamento di un annuncio è lo stesso indipendentemente dal fatto che tu stia utilizzando o meno la misurazione aperta. In questo caso utilizzeremo un semplice ViewController per dimostrare il caricamento di 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 la visualizzazione e inizia la misurazione

Quando mostri un GADNativeCustomFormatAd, devi registrare la tua vista annunci personalizzata con il GADNativeTemplateAd utilizzando la proprietà displayAdMeasurement.view.

Devi anche indicare esplicitamente all'SDK di iniziare a misurare l'annuncio. Per farlo, chiama il metodo startWithError: sulla proprietà displayAdMeasurement del tuo GADNativeCustomFormatAd. startWithError: deve essere chiamato dal thread principale e le chiamate successive non hanno alcun effetto.

@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

E con questo è tutto. Una volta rilasciata l'app, inizierai a ricevere i dati di misurazione, ma questi non verranno certificati finché non avrai completato la procedura di certificazione IAB.