Formati di annunci nativi personalizzati di tipo display e Open Measurement

Se prevedi di utilizzare Open Measurement con formati di annunci nativi personalizzati che non contengono un asset video, sarai responsabile della chiamata dell'API Open Measurement. La funzionalità Open Measurement per i formati di 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 devi seguire questa guida, in quanto 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 Open Measurement o meno. In questo caso, utilizzeremo un ViewController semplice per dimostrare il caricamento di 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 la visualizzazione e inizia la misurazione

Quando mostri un GADNativeCustomTemplateAd, devi registrare la visualizzazione dell'annuncio personalizzata con GADNativeTemplateAd utilizzando la proprietà displayAdMeasurement.view.

Devi anche indicare esplicitamente all'SDK di iniziare a misurare l'annuncio. A questo scopo, chiama il metodo startWithError: nella proprietà displayAdMeasurement di GADNativeCustomTemplateAd. startWithError: deve essere chiamato dal thread principale e le chiamate successive non hanno alcun effetto.

@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

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