ネイティブ広告には多くの高度な機能があり、 最大限の広告エクスペリエンスを実現できます。このガイドでは、 ネイティブ広告の高度な機能の使い方
前提条件
- ネイティブ広告フォーマットを組み込みます。
アセット管理
優先するメディア アスペクト比のコントロール
メディアのアスペクト比の設定を使用すると、広告クリエイティブのアスペクト比の設定を指定できます。
NativeAdOptions.MediaAspectRatio
値を指定して NativeAdOptions.Builder.setMediaAspectRatio()
を呼び出します。
未設定の場合、返される広告のメディアのアスペクト比は任意です。
設定すると、好みのアスペクト比のタイプを指定してユーザー エクスペリエンスを改善できます。
次の例では、リターンされた画像や動画を優先するよう SDK に指示しています。 表示することもできます。
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(nativeAdOptions)
.build();
画像のダウンロードの管理
画像のダウンロード制御を使用すると、SDK から返される画像アセットと URI のどちらかを指定できます。
NativeAdOptions.Builder.setReturnUrlsForImageAssets()
を呼び出す
(boolean
値)。
画像のダウンロード制御はデフォルトで無効になっています。
無効にすると、Google Mobile Ads SDK が画像と URI の両方を入力します。
有効にすると、SDK が代わりに URI のみを入力するため、Android Studio を使用して 実際の画像は自由に変更できます。
次の例では、URI のみを返すように SDK に指示しています。
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setReturnUrlsForImageAssets(true)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(nativeAdOptions)
.forNativeAd(nativeAd -> {
List<Uri> imageUris = new ArrayList<>();
for (Image image : nativeAd.getImages()) {
imageUris.add(image.getUri());
}
})
.build();
画像ペイロードのコントロール
広告によっては、1 つではなく複数の画像が使用されることがあります。この機能を使用すると、アプリがすべての画像を表示できるか、1 つの画像のみを表示できるかを指定できます。
boolean
値を指定して NativeAdOptions.Builder.setRequestMultipleImages()
を呼び出します。画像ペイロードの制御はデフォルトで無効になっています。
無効にすると、アプリは SDK に対して、 一連の画像を含むアセットの最初の画像
有効にすると、アプリはすべての画像を表示する準備ができたことを示します 必ず指定してください
次の例では、複数の画像アセットを返すように SDK に指示しています。
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setRequestMultipleImages(true)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(nativeAdOptions)
.build();
AdChoices プレースメント
AdChoices の位置の制御
AdChoices の位置コントロールでは、広告をレンダリングする隅を AdChoices アイコン。
NativeAdOption.AdChoicesPlacement
値を指定して NativeAdOptions.Builder.setAdChoicesPlacement()
を呼び出します。
未設定の場合、AdChoices アイコンの位置は右上に設定されます。
設定すると、AdChoices はリクエストに応じてカスタムの位置に配置されます。
次の例は、AdChoices のカスタム画像位置を設定する方法を示しています。
NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
.setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(nativeAdOptions)
.build();
AdChoices カスタムビュー
AdChoices カスタムビュー機能を使用すると、AdChoices アイコンを できます。これは、AdChoices の位置コントロールとは異なります。 では、4 つの角のうち 1 つを指定できます。
AdChoicesView
値を指定して NativeAdView.setAdChoicesView()
を呼び出します。
次の例は、カスタム AdChoices ビューを設定する方法を示しています。
AdChoicesView
内に表示された AdChoices アイコン。
public void onNativeAdLoaded(NativeAd ad) {
NativeAdView nativeAdView = new NativeAdView(getApplicationContext());
AdChoicesView adChoicesView = new AdChoicesView(this);
nativeAdView.setAdChoicesView(adChoicesView);
}
動画をコントロールする
ミュート動作を開始する
ミュートの開始動作を使用すると、動画の開始音声を無効または有効にできます。
boolean
値を指定して VideoOptions.Builder.setStartMuted()
を呼び出します。ミュートの開始動作はデフォルトで有効になっています。
無効にすると、アプリは動画を音声で開始するようリクエストします。
有効にすると、アプリは音声をミュートした状態で動画の再生を開始するようにリクエストします。
次の例は、ミュートされていない音声で動画を開始する方法を示しています。
VideoOptions videoOptions = new VideoOptions.Builder()
.setStartMuted(false)
.build();
NativeAdOptions adOptions = new NativeAdOptions.Builder()
.setVideoOptions(videoOptions)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(adOptions).build();
カスタム再生コントロール
これにより、動画の再生、一時停止、ミュートを行うためのカスタム動画入力コントロールをリクエストできます。
VideoOptions.Builder.setCustomControlsRequested()
を呼び出す
(boolean
値)。
カスタム再生コントロールはデフォルトで無効になっています。
無効にすると、SDK でレンダリングされた入力コントロールが動画に表示されます。
- 広告に動画コンテンツがあり、カスタム コントロールが有効になっている場合は、広告自体にコントロールが表示されないため、広告とともにカスタム コントロールを表示する必要があります。コントロールは、
VideoController
で関連するメソッドを呼び出すことができます。
次の例は、カスタムの再生コントロールを含む動画をリクエストする方法を示しています。
VideoOptions videoOptions = new VideoOptions.Builder()
.setCustomControlsRequested(true)
.build();
NativeAdOptions adOptions = new NativeAdOptions.Builder()
.setVideoOptions(videoOptions)
.build();
AdLoader loader = new AdLoader.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(adOptions).build();
カスタム コントロールが有効になっているかどうかを確認する
返された広告で広告が許可されるかどうかをリクエスト時に不明なため 設定するには、カスタム コントロールが有効になっているかどうかを確認する必要があります。
Java
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
MediaContent mediaContent = nativeAd.getMediaContent();
if (mediaContent != null) {
VideoController videoController = mediaContent.getVideoController();
boolean canShowCustomControls = videoController.isCustomControlsEnabled();
}
}
Kotlin
NativeAd.OnNativeAdLoadedListener { ad ->
val mediaContent = ad.mediaContent
if (mediaContent != null) {
val videoController = mediaContent.videoController
val canShowCustomControls = videoController.isCustomControlsEnabled
}
}
カスタムの動画コントロールをレンダリングする
カスタム動画コントロールは、次のベスト プラクティスに沿ってレンダリングします。
- カスタム コントロール ビューをネイティブ広告ビューの子としてレンダリングします。このアプローチにより、Open Measurement の視認性計算でカスタム コントロールが好ましくない障害物として考慮されるようになります。
- メディアビュー全体に見えないオーバーレイをレンダリングしないようにします。オーバーレイはメディアビューのクリックをブロックするため、ネイティブ広告のパフォーマンスに悪影響を及ぼします。代わりに、コントロールが収まるだけの小さなオーバーレイを作成します。
カスタム クリック操作
カスタム クリック操作は、広告ビューでスワイプを広告クリックとして登録できるネイティブ広告機能です。コンテンツのナビゲーションにスワイプ ジェスチャーを使用するアプリで動作するように設計されています。このガイドでは、ネイティブ広告でカスタム クリック ジェスチャーを有効にする方法について説明します。
タップをクリックとして許可するかどうかを示す NativeAdOptions.SwipeGestureDirection
と boolean
を指定して NativeAdOptions.Builder.enableCustomClickGestureDirection()
を呼び出します。
カスタム クリック操作はデフォルトで無効になっています。
無効にすると、アプリは通常のクリック動作をサポートします。
有効にすると、アプリでカスタム スワイプ ジェスチャーがサポートされます。
次の例では、右と左へのカスタム スワイプ操作を実装し、 通常のタブの動作を維持します。
NativeAdOptions adOptions = new NativeAdOptions
.Builder()
.enableCustomClickGestureDirection(NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT,
/* tapsAllowed= */ true)
.build();
// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
AdLoader.Builder builder = new AdLoader
.Builder(this, 'ca-app-pub-3940256099942544/2247696110')
.withNativeAdOptions(adOptions);
スワイプ ジェスチャー イベントをリッスンする
スワイプ ジェスチャーのクリックが記録されると、Google Mobile Ads SDK は既存の onAdClicked()
メソッドに加えて、AdListener
で onAdSwipeGestureClicked()
メソッドを呼び出します。
AdLoader adLoader = builder
.withAdListener(
new AdListener() {
// Called when a swipe gesture click is recorded.
@Override
public void onAdSwipeGestureClicked() {
Log.d(TAG, "A swipe gesture click has occurred.")
}
// Called when a swipe gesture click or a tap click is recorded, as
// configured in NativeAdOptions.
@Override
public void onAdClicked() {
Log.d(TAG, "A swipe gesture click or a tap click has occurred.")
}
})
.build();
メディエーション
カスタム クリック ジェスチャーは、Google Mobile Ads SDK がレンダリングするネイティブ広告でのみ機能します。レンダリングにサードパーティの SDK を必要とする広告ソースは、カスタム クリック ディレクトの設定に応答しません。