Định dạng quảng cáo gốc tuỳ chỉnh loại Mạng Hiển thị và tiêu chí Đo lường mở

Nếu dự định sử dụng tính năng đo lường mở với các định dạng quảng cáo gốc tuỳ chỉnh không chứa thành phần video, bạn sẽ tự chịu trách nhiệm gọi các API Đo lường mở. Tính năng đo lường mở cho định dạng quảng cáo gốc tuỳ chỉnh loại hiển thị chỉ được hỗ trợ trên phiên bản 7.43.0 trở lên. Nếu đang sử dụng các định dạng quảng cáo gốc tuỳ chỉnh cùng với thành phần video, thì bạn không cần làm theo hướng dẫn này — SDK quảng cáo trên thiết bị di động của Google sẽ thay mặt bạn theo dõi khả năng xem của thành phần video.

Điều kiện tiên quyết

Tải quảng cáo

Cách tải quảng cáo không thay đổi dù bạn có sử dụng tính năng đo lường mở hay không. Trong trường hợp này, chúng ta sẽ sử dụng một ViewController đơn giản để minh hoạ cách tải 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

Đăng ký lượt xem của bạn và bắt đầu đo lường

Khi hiển thị GADNativeCustomFormatAd, bạn cần đăng ký thành phần hiển thị quảng cáo tuỳ chỉnh với GADNativeTemplateAd bằng cách sử dụng thuộc tính displayAdMeasurement.view.

Bạn cũng cần thông báo rõ ràng cho SDK biết để bắt đầu đo lường quảng cáo của bạn. Để thực hiện việc này, hãy gọi phương thức startWithError: trên thuộc tính displayAdMeasurement của GADNativeCustomFormatAd. Bạn phải gọi startWithError: từ luồng chính và các lệnh gọi tiếp theo sẽ không có hiệu lực.

@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

Chỉ vậy thôi. Sau khi phát hành ứng dụng, bạn sẽ bắt đầu nhận được dữ liệu đo lường. Tuy nhiên, dữ liệu của bạn sẽ không được chứng nhận cho đến khi bạn hoàn tất quy trình chứng nhận của IAB.