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. Die offene Analyse für benutzerdefinierte native Anzeigenformate vom Displaytyp wird erst ab Version 7.43.0 unterstützt. Wenn Sie benutzerdefinierte native Anzeigenformate mit einem Video-Asset verwenden, müssen Sie diesen Leitfaden nicht befolgen. Das Google Mobile Ads SDK erfasst die Sichtbarkeit des Video-Assets für Sie.

Vorbereitung

Anzeige laden

Das Laden einer Anzeige ist unabhängig davon, ob Sie die offene Analyse verwenden oder nicht. In diesem Fall verwenden wir ein einfaches ViewController, um das Laden eines GADNativeCustomFormatAd zu veranschaulichen:

@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

Datenansicht registrieren und Messungen starten

Wenn Sie ein GADNativeCustomFormatAd einblenden, müssen Sie Ihre benutzerdefinierte Anzeigenansicht mit der GADNativeTemplateAd über die Eigenschaft displayAdMeasurement.view registrieren.

Außerdem müssen Sie dem SDK explizit mitteilen, dass die Messung Ihrer Anzeige beginnen soll. Rufen Sie dazu die Methode startWithError: für die displayAdMeasurement-Eigenschaft Ihrer GADNativeCustomFormatAd auf. startWithError: muss aus dem Hauptthread aufgerufen werden. Anschließende Aufrufe haben keine Auswirkungen.

@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

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