Tính năng tùy chỉnh Ẩn quảng cáo này cho quảng cáo gốc

Tính năng "Ẩn quảng cáo này" cho phép người dùng đóng hoặc ngừng xem quảng cáo để cho biết những quảng cáo nào không thu hút họ. Dưới đây là giao diện của phiên bản mặc định, không tùy chỉnh:

phiên bản không tùy chỉnh của tính năng ẩn quảng cáo này

Thông qua GADUnifiedNativeAd, bạn có tùy chọn triển khai giao diện người dùng của riêng mình để cho phép người dùng ẩn quảng cáo gốc. Dưới đây là cách thực hiện:

Yêu cầu tính năng tùy chỉnh Ẩn quảng cáo này

Trước tiên, bạn phải yêu cầu tính năng tùy chỉnh Ẩn quảng cáo này bằng cách sử dụng lớp GADNativeMuteThisAdLoaderOptions.

Swift

adLoader = GADAdLoader(adUnitID: "[AD_UNIT_ID]", rootViewController: self,
                        adTypes: [ .unifiedNative ],
                        options: [GADNativeMuteThisAdLoaderOptions()])
adLoader.delegate = self
adLoader.load(GADRequest())

Objective-C

GADNativeMuteThisAdLoaderOptions *muteOptions = [GADNativeMuteThisAdLoaderOptions new];
self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"[AD_UNIT_ID]"
                                   rootViewController:self
                                              adTypes:@[ kGADAdLoaderAdTypeUnifiedNative ]
                                              options:@[ muteOptions ]];
self.adLoader.delegate = self;
[self.adLoader loadRequest:[GADRequest request]];

Kiểm tra xem liệu bạn có thể sử dụng tính năng tùy chỉnh Ẩn quảng cáo này hay không

Sau khi tải quảng cáo gốc, hãy kiểm tra thuộc tính isCustomMuteThisAdAvailable trên quảng cáo gốc đó. Nếu có, hãy hiển thị nút tùy chỉnh.

Swift

func adLoader(_ adLoader: GADAdLoader, didReceive nativeAd: GADUnifiedNativeAd){
  nativeAdView.nativeAd = nativeAd
  if (nativeAd.isCustomMuteThisAdAvailable) {
    enableCustomMute(nativeAd.muteThisAdReasons)
  } else {
    hideCustomMute()
  }
  ...
}

func enableCustomMute(_ reasons:[GADMMuteThisAdReason]) {
  // TODO: This method should show your custom mute button and provide the list
  // of reasons to the interface that are to be displayed when the user mutes
  // the ad.
}

func hideCustomMute() {
  //TODO: Remove / hide the custom mute button from your user interface.
}

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didReceiveUnifiedNativeAd:
  (GADUnifiedNativeAd *)nativeAd {
  self.nativeAdView.nativeAd = nativeAd;

  if (nativeAd.isCustomMuteThisAdAvailable) {
    [self enableCustomMuteWithReasons:nativeAd.muteThisAdReasons];
  } else {
    [self hideCustomMute];
  }
}

- (void)enableCustomMuteWithReasons:(NSArray<GADMuteThisAdReason *> *)reasons {
  // TODO: This method should show your custom mute button and provide the list
  // of reasons to the interface that are to be displayed when the user mutes the
  // ad.
}

- (void)hideCustomMute {
  // TODO: Remove / hide the custom mute button from your user interface.
}

Việc triển khai giao diện ẩn tùy chỉnh hoàn toàn do bạn quyết định. Bạn có thể đặt một nút đóng nhỏ trên quảng cáo hoặc có thể cung cấp một số giao diện khác để người dùng chọn ẩn quảng cáo.

Hiển thị các lý do cho việc Ẩn quảng cáo này

Nếu bạn đã bật tính năng tùy chỉnh Ẩn quảng cáo này, thì Google sẽ hiển thị một loạt các đối tượng GADMuteThisAdReason trong thuộc tính muteThisAdReason trên quảng cáo gốc. GADMuteThisAdReason có thuộc tính reasonDescription cung cấp một chuỗi có thể hiển thị.

Cách tốt nhất là bạn nên hiển thị các lý do này cho người dùng và cho phép họ chọn lý do ẩn quảng cáo. Khi người dùng nhấp vào một trong các lý do này, bạn nên báo cáo việc ẩn quảng cáo cùng với lý do được chọn.

Bạn cũng có thể chọn không hiển thị các lý do này khi người dùng nhấp vào nút đóng và trực tiếp báo cáo hành động ẩn mà không có lý do.

Ẩn quảng cáo

Việc ẩn quảng cáo sẽ liên quan đến hai hành động:

  1. Báo cáo lý do ẩn quảng cáo gốc
  2. Trên giao diện người dùng, hãy tự ẩn quảng cáo theo cách bạn muốn

Swift

func muteAdDialogDidSelect(reason: GADMuteThisAdReason) {
  // Report the mute action and reason to the ad.
  nativeAdView.nativeAd?.muteThisAd(with: reason)
  muteAd()
}

func muteAd() {
  // TODO: Mute / hide the ad in your preferred manner.
}

Objective-C

- (void)muteAdDialogDidSelectReason:(GADMuteThisAdReason *)reason {
  // Report the mute action and reason to the ad.
  [self.nativeAdView.nativeAd muteThisAdWithReason:reason];
  [self muteAd];
}

- (void)muteAd {
  // TODO: Mute / hide the ad in your preferred manner.
}

Nhận thông báo xác nhận đã ẩn quảng cáo (không bắt buộc)

Nếu muốn nhận thông báo xác nhận đã ẩn quảng cáo thành công, bạn có thể triển khai phương thức GADUnifiedNativeAdDelegate, nativeAdIsMuted:. Phương thức này chỉ được gọi nếu quảng cáo được ẩn thành công.