カスタムの「この広告を非表示にする」機能(ネイティブ広告)

ユーザーは「この広告を非表示にする」機能(ミュートする機能)を使って、広告を閉じたり表示を停止したりして、広告に興味がないことを示すことができます。カスタムではないデフォルトのバージョンは次のように表示されます。

カスタマイズしていない「この広告を非表示にする」機能

GADUnifiedNativeAd を使用すると、ネイティブ広告を非表示にする機能を独自の UI でユーザーに提供できます。詳しい手順は次のとおりです。

カスタムの「この広告を非表示にする」をリクエストする

まず、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]];

カスタムの「この広告を非表示にする」機能が利用可能かどうかを確認する

ネイティブ広告が読み込まれたら、ネイティブ広告の isCustomMuteThisAdAvailable プロパティを確認します。利用可能な場合は、カスタムボタンを表示します。

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.
}

カスタムのミュート機能のインターフェースは、ご自由にカスタマイズできます。小さな閉じるボタンを広告に配置することも、他のインターフェースを提供することもできます。

この広告を非表示にする理由を表示する

カスタムの「この広告を非表示にする」機能を利用できる場合は、ネイティブ広告の GADMuteThisAdReason プロパティで利用できる muteThisAdReason オブジェクトの配列があります。GADMuteThisAdReason には、表示可能な文字列を提供する reasonDescription プロパティがあります。

これらの理由をユーザーに表示して、ユーザーが広告を非表示にする理由を選択できるようにするとよいでしょう。ユーザーが理由のひとつをクリックすると、選択した理由とともに広告のミュートをレポートできます。

また、ユーザーが閉じるボタンをクリックした際にこれらの理由を表示しないようにして、理由なしで直接ミュート アクションをレポートすることもできます。

広告を非表示にする

広告のミュートには、次の 2 つの操作が関係しています。

  1. ミュートの理由をネイティブ広告に報告する
  2. 独自のユーザー インターフェースで、独自の方法を使って広告をミュートまたは非表示にする

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.
}

広告を非表示にした確認を受け取る(省略可)

広告ミュートのレポートが正常に行われたことが通知されるようにする場合は、GADUnifiedNativeAdDelegate メソッドの nativeAdIsMuted: を実装します。このメソッドは、広告ミュートが正常に行われ場合にのみ呼び出されます。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。