高度なネイティブ機能を設定する

プラットフォームを選択: Android(ベータ版) 新規 Android iOS

ネイティブ広告には、追加のカスタマイズを行い、広告エクスペリエンスを最大限に高めるための高度な機能が多数用意されています。このガイドでは、ネイティブ広告の高度な機能の使用方法について説明します。

前提条件

アセット コントロール

このセクションでは、ネイティブ広告のクリエイティブ アセットをカスタマイズする方法について詳しく説明します。メディア アセットの優先アスペクト比と、画像アセットのダウンロードと表示の方法を指定できます。

優先するメディア アスペクト比のコントロール

メディア アスペクト比のコントロールを使うと、広告クリエイティブに希望するアスペクト比を指定できます。

NativeAdOptions.MediaAspectRatio 値を指定して NativeAdOptions.Builder.setMediaAspectRatio() を呼び出します。

  • 値を設定していない場合、返される広告では任意のメディア アスペクト比が適用されます。

  • 値を設定した場合、アスペクト比の優先タイプを指定してユーザー エクスペリエンスを改善できます。

次の例では、特定のアスペクト比の画像または動画を優先して返すよう SDK に指示しています。

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder()
        .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
        .build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

AD_UNIT_ID は、実際の広告ユニット ID に置き換えられます。

画像ダウンロードのコントロール

画像ダウンロードのコントロールを使うと、SDK から画像アセットを返すか、URI のみを返すかを指定できます。

boolean 値を指定して NativeAdOptions.Builder.setReturnUrlsForImageAssets() を呼び出します。

  • 画像ダウンロードのコントロールは、デフォルトでは無効になっています。

  • 無効になっている場合、Google Mobile Ads SDK により画像と URI の両方に値が入力されます。

  • 有効になっている場合、SDK によって URI だけに値が入力されるため、実際の画像はご自身の判断でダウンロードできます。

次の例では、URI のみを返すよう SDK に指示しています。

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setReturnUrlsForImageAssets(true).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID")
        .withNativeAdOptions(nativeAdOptions)
        .forNativeAd(
            nativeAd -> {
              List<Uri> imageUris = new ArrayList<>();
              for (Image image : nativeAd.getImages()) {
                imageUris.add(image.getUri());
              }
            })
        .build();

Kotlin

val nativeAdOptions = NativeAdOptions.Builder().setReturnUrlsForImageAssets(true).build()

val loader =
  AdLoader.Builder(context, "AD_UNIT_ID")
    .withNativeAdOptions(nativeAdOptions)
    .forNativeAd { nativeAd ->
      val imageUris = nativeAd.images.mapNotNull { it.uri }
    }
    .build()

画像ペイロードのコントロール

広告によっては、画像が 1 つだけでなく複数含まれている場合があります。この機能では、アプリですべての画像を表示するか、1 つの画像のみを表示するかを指定します。

boolean 値を指定して NativeAdOptions.Builder.setRequestMultipleImages() を呼び出します。

  • 画像ペイロードのコントロールはデフォルトでは無効になっています。

  • 無効になっている場合、複数の画像を含むアセットでは、最初の画像だけを返すようにアプリから SDK に指示することになります。

  • 有効になっている場合、複数の画像を含むアセットについて、そのすべての画像を表示できることをアプリで指定します。

次の例では、複数の画像アセットを返すように SDK に指示しています。

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setRequestMultipleImages(true).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions = NativeAdOptions.Builder().setRequestMultipleImages(true).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

AdChoices プレースメント

このセクションでは、AdChoices オーバーレイの配置方法について詳しく説明します。配置を四隅のいずれかに設定するか、カスタムビュー内に表示するかを選択できます。

AdChoices の位置のコントロール

AdChoices の位置のコントロールを使うと、四隅のうちどれに AdChoices アイコンを表示するかを選択できます。

NativeAdOption.AdChoicesPlacement 値を指定して NativeAdOptions.Builder.setAdChoicesPlacement() を呼び出します。

  • 設定されていない場合、AdChoices アイコンは右上に配置されます。

  • 設定されている場合、AdChoices はリクエストされたカスタム位置に配置されます。

次の例は、AdChoices 画像のカスタム位置を設定する方法を示しています。

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder()
        .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
        .build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

AdChoices カスタムビュー

AdChoices カスタムビュー機能を使うと、AdChoices アイコンを選択した場所に配置できます。これは、四隅のいずれか 1 つだけを指定できる AdChoices の位置のコントロールとは異なります。

AdChoicesView 値を指定して NativeAdView.setAdChoicesView() を呼び出します。

次の例は、AdChoices アイコンを AdChoicesView 内にレンダリングするカスタム AdChoices ビューの設定方法を示しています。

Java

NativeAdView nativeAdView = new NativeAdView(context);
AdChoicesView adChoicesView = new AdChoicesView(context);
nativeAdView.setAdChoicesView(adChoicesView);

Kotlin

val nativeAdView = NativeAdView(context)
val adChoicesView = AdChoicesView(context)
nativeAdView.adChoicesView = adChoicesView

動画のコントロール

このセクションでは、動画広告の再生をカスタマイズする方法について詳しく説明します。初期ミュート状態を設定し、カスタム再生コントロールを実装することができます。

ミュート動作の開始

ミュート動作の開始では、動画の開始時の音声を無効または有効にできます。

boolean 値を指定して VideoOptions.Builder.setStartMuted() を呼び出します。

  • 開始時のミュートは、デフォルトで有効になっています。

  • 無効になっている場合、アプリは動画を音声付きで開始するようリクエストします。

  • 有効になっている場合、アプリは動画をミュート状態で開始するようリクエストします。

次の例は、ミュートされていない音声付きで動画を開始する方法を示しています。

Java

VideoOptions videoOptions = new VideoOptions.Builder().setStartMuted(false).build();

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setVideoOptions(videoOptions).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val videoOptions = VideoOptions.Builder().setStartMuted(false).build()

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

カスタム再生コントロール

この機能では、動画の再生、一時停止、ミュートを行うカスタム動画入力のコントロールをリクエストできます。

boolean 値を指定して VideoOptions.Builder.setCustomControlsRequested() を呼び出します。

  • カスタム再生コントロールはデフォルトでは無効になっています。

  • 無効になっている場合、動画に SDK でレンダリングされた入力コントロールが表示されます。

広告に動画コンテンツが含まれていて、カスタム コントロールが有効になっている場合は、広告自体にはコントロールが表示されないため、広告とともにカスタム コントロールを表示する必要があります。その後、コントロールは

VideoController で関連するメソッドを呼び出すことができます。

次の例は、カスタム再生コントロールを使用して動画をリクエストする方法を示しています。

Java

VideoOptions videoOptions = new VideoOptions.Builder().setCustomControlsRequested(true).build();

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setVideoOptions(videoOptions).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val videoOptions = VideoOptions.Builder().setCustomControlsRequested(true).build()

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

カスタム コントロールが有効になっているかどうかを確認する

返される広告でカスタム動画コントロールが許可されるかどうかはリクエスト時にわからないため、カスタム コントロールが有効になっているかどうかを確認する必要があります。

Java

MediaContent mediaContent = nativeAd.getMediaContent();
if (mediaContent != null) {
  VideoController videoController = mediaContent.getVideoController();
  boolean canShowCustomControls = videoController.isCustomControlsEnabled();
}

Kotlin

val mediaContent = nativeAd.mediaContent
if (mediaContent != null) {
  val videoController = mediaContent.videoController
  val canShowCustomControls = videoController.isCustomControlsEnabled
}

カスタム動画コントロールをレンダリングする

次のベスト プラクティスに沿って、カスタム動画コントロールをレンダリングします。

  1. カスタム コントロール ビューをネイティブ広告ビューの子としてレンダリングします。このアプローチにより、Open Measurement の視認性の算出時に、カスタム コントロールが好ましい被覆物として考慮されます。
  2. メディアビュー全体に非表示のオーバーレイをレンダリングしないようにします。オーバーレイはメディアビューのクリックをブロックするため、ネイティブ広告のパフォーマンスに悪影響を与えます。代わりに、コントロールを収めるのに最低限必要な大きさの小さなオーバーレイを作成してください。