Niestandardowe formaty reklam natywnych typu displayowego oraz Open Measurement

Jeśli planujesz stosować pomiar otwarty z niestandardowymi formatami reklam natywnych, które nie zawierają zasobu wideo, musisz samodzielnie wywoływać interfejsy Open Measurement API. Pomiar otwarty dla niestandardowych formatów reklam natywnych typu displayowego jest obsługiwany tylko w wersji 7.43.0 i nowszych. Jeśli używasz niestandardowych formatów reklam natywnych z komponentem wideo, nie musisz korzystać z tego przewodnika – pakiet SDK do reklam mobilnych Google śledzi w Twoim imieniu widoczność komponentu wideo.

Wymagania wstępne

Wczytywanie reklamy

Wczytywanie reklamy wygląda tak samo niezależnie od tego, czy korzystasz z pomiaru otwartego, czy nie. W tym przypadku użyjemy prostego elementu ViewController, aby zademonstrować wczytywanie elementu 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

Zarejestruj widok i rozpocznij pomiary

Jeśli wyświetlasz GADNativeCustomTemplateAd, musisz zarejestrować niestandardowy widok reklamy za pomocą GADNativeTemplateAd, używając właściwości displayAdMeasurement.view.

Musisz też wyraźnie wskazać pakietowi SDK rozpoczęcie pomiaru skuteczności reklamy. Aby to zrobić, wywołaj metodę startWithError: we właściwości displayAdMeasurement GADNativeCustomTemplateAd. startWithError: musi zostać wywołana z wątku głównego i kolejne wywołania nie będą miały żadnego efektu.

@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

To wszystko. Po opublikowaniu aplikacji zaczniesz otrzymywać dane pomiarowe, jednak certyfikaty będą dostępne dopiero po przejściu procesu certyfikacji IAB.