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

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

non-customized mute this ad

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

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

最初に、広告リクエストの際に setRequestCustomMuteThisAdNativeAdOptions.Builder クラスで使用して、カスタムの「この広告を非表示にする」機能を有効にします。

Java

AdLoader adLoader = new AdLoader.Builder(context, "[AD_UNIT_ID]")
    .forUnifiedNativeAd(new UnifiedNativeAd.OnUnifiedNativeAdLoadedListener() {
        @Override
        public void onUnifiedNativeAdLoaded(UnifiedNativeAd unifiedNativeAd) {
            // Show the ad.
        }
    })
    .withAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(int errorCode) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(new NativeAdOptions.Builder()
                         .setRequestCustomMuteThisAd(true)
                         .build())
    .build();

adLoader.loadAd(new AdRequest.Builder().build());

Kotlin

val adLoader = AdLoader.Builder(context, "[AD_UNIT_ID]")
    .forUnifiedNativeAd { ad ->
            // Show the ad
        }
    .withAdListener(object : AdListener() {
          override fun onAdFailedToLoad(errorCode: Int) {
            // Handle the failure by logging, altering the UI, and so on.
          }
        })
    .withNativeAdOptions(NativeAdOptions.Builder()
                         .setRequestCustomMuteThisAd(true)
                         .build())
    .build()

adLoader.loadAd(AdRequest.Builder().build())

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

ネイティブ広告がロードされたら、UnifiedNativeAd オブジェクトの isCustomMuteThisAdEnabled() メソッドから返された値を確認します。true なら、カスタムのミュートボタンやミュート ジェスチャーを追加して、UnifiedNativeAd オブジェクトの getMuteThisAdReasons() メソッドから利用可能な MuteThisAdReason でカスタムのミュート インターフェースを設定します。

Java

// In OnUnifiedNativeAdLoadedListener
@Override
public void onUnifiedNativeAdLoaded(UnifiedNativeAd unifiedNativeAd) {
  // Show the ad.
  ...
  this.nativeAdView.setNativeAd(unifiedNativeAd);

  if (nativeAd.isCustomMuteThisAdEnabled()) {
    enableCustomMuteWithReasons(nativeAd.getMuteThisAdReasons());
  } else {
    hideCustomMute();
  }
}
...

private void enableCustomMuteWithReasons(List<MuteThisAdReason> 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.
}

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

Kotlin

// When constructing the ad loader.
builder.forUnifiedNativeAd { unifiedNativeAd ->
   // Show the ad.
  ...
  this.nativeAdView.nativeAd = nativeAd

  if (nativeAd.isCustomMuteThisAdEnabled) {
    enableCustomMuteWithReasons(nativeAd.muteThisAdReasons);
  } else {
    hideCustomMute();
  }
}
...
private fun enableCustomMuteWithReasons(reasons: List<MuteThisAdReason>) {
  //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.
}

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

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

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

カスタムの「この広告を非表示にする」機能を利用できる場合は、UnifiedNativeAdmuteThisAdReasons プロパティで利用できる MuteThisAdReason オブジェクトの配列があります。 MuteThisAdReason には、表示可能な文字列を提供する getDescription() メソッドがあります。

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

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

広告を非表示にする

広告を非表示にするときは、次の 2 つのアクションを行います。

  1. UnifiedNativeAdmuteThisAd メソッドを使用して、ネイティブ広告に非表示の理由を報告する

  2. 独自のユーザー インターフェースで、任意の方法で広告をミュートまたは非表示にする

Java

private void muteAdDialogDidSelectReason(MuteThisAdReason reason) {
  // Report the mute action and reason to the ad.
  nativeAd.muteThisAd(reason);
  muteAd();
}

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

Kotlin

private fun muteAdDialogDidSelectReason(reason: MuteThisAdReason) {
    // Report the mute action and reason to the ad.
    nativeAd.muteThisAd(reason)
    muteAd()
}

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

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

広告の非表示が正常にレポートされたときに通知を受け取る場合は、UnifiedNativeAdsetMuteThisAdListener メソッドを使って設定する MuteThisAdListener を実装します。onAdMuted() メソッドは、広告の非表示が正常に行われた場合にのみ呼び出されます。

Java

nativeAd.setMuteThisAdListener(new MuteThisAdListener() {
  @Override
  public void onAdMuted() {
    Toast.makeText(getActivity(), "Ad muted", Toast.LENGTH_SHORT).show();
  }
});

Kotlin

nativeAd.setMuteThisAdListener {
    Toast.makeText(activity, "Ad muted", Toast.LENGTH_SHORT).show()
}

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

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