Benutzerdefinierte native Anzeigenformate für Displayanzeigen und Open Measurement

Wenn Sie Open Measurement mit benutzerdefinierten nativen Anzeigenformaten verwenden möchten, die kein Video-Asset enthalten, müssen Sie die Open Measurement APIs selbst aufrufen. Open Measurement für benutzerdefinierte native Displayanzeigenformate wird erst ab Version 7.43.0 unterstützt. Wenn Sie benutzerdefinierte native Anzeigenformate mit einem Video-Asset verwenden, können Sie dieser Anleitung nicht folgen. Das Google Mobile Ads SDK erfasst die Sichtbarkeit des Video-Assets für Sie.

Voraussetzungen

Anzeige laden

Anzeigen werden immer geladen, unabhängig davon, ob Sie Open Measurement verwenden oder nicht. In diesem Fall zeigen wir mit einem einfachen ViewController, wie ein GADNativeCustomTemplateAd geladen wird:

@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

Ansicht registrieren und Messung starten

Wenn Sie eine GADNativeCustomTemplateAd ausliefern lassen, müssen Sie Ihre benutzerdefinierte Anzeigenansicht mit der Property displayAdMeasurement.view bei der GADNativeTemplateAd registrieren.

Außerdem müssen Sie das SDK explizit dazu auffordern, mit der Analyse Ihrer Anzeige zu beginnen. Rufen Sie dazu die Methode startWithError: für das Attribut displayAdMeasurement von GADNativeCustomTemplateAd auf. startWithError: muss aus dem Hauptthread aufgerufen werden. Nachfolgende Aufrufe haben keine Auswirkungen.

@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

Das war schon alles. Sobald Sie Ihre Anwendung veröffentlichen, erhalten Sie Messdaten. Ihre Daten werden jedoch erst zertifiziert, wenn Sie den IAB-Zertifizierungsprozess durchlaufen haben.