ネイティブ広告には、追加のカスタマイズを行い、広告エクスペリエンスを最大限に高めるための高度な機能が多数用意されています。このガイドでは、ネイティブ広告の高度な機能の使用方法について説明します。
前提条件
- ネイティブ広告フォーマットを統合していること
アセット コントロール
ネイティブ広告アセットのコントロールを設定します。
優先するメディア アスペクト比のコントロール
メディア アスペクト比のコントロールを使うと、優先する広告クリエイティブのアスペクト比を指定できます。
GADMediaAspectRatio
を使用して GADNativeAdMediaAdLoaderOptions mediaAspectRatio
を設定します。
値を設定しない場合、任意のメディア アスペクト比の広告が返されます。
値を設定した場合、優先するアスペクト比のタイプを指定してユーザー エクスペリエンスを改善できます。
次の例では、特定のアスペクト比の画像または動画を優先して返すよう SDK に指示しています。
GADNativeAdMediaAdLoaderOptions *nativeOption = [[GADNativeAdMediaAdLoaderOptions alloc] init];
nativeOption.mediaAspectRatio = GADMediaAspectRatioAny;
GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
rootViewController:self
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ nativeOption ]];
画像ダウンロードのコントロール
画像ダウンロードのコントロールを使うと、SDK から画像アセットを返すか、URI のみを返すかを指定できます。
BOOL
値を使用して GADNativeAdImageAdLoaderOptions disableImageLoading
を設定します。
画像ダウンロードのコントロールは、デフォルトでは無効になっています。
無効になっている場合、Google Mobile Ads SDK により画像と URI の両方が返されます。
有効になっている場合、SDK によって URI のみ返されるため、実際の画像はアプリ側でダウンロードできます。
次の例では、URI のみを返すよう SDK に指示しています。
GADNativeAdImageAdLoaderOptions *nativeOption = [[GADNativeAdImageAdLoaderOptions alloc] init];
nativeOption.disableImageLoading = YES;
GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
rootViewController:self
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ nativeOption ]];
画像ペイロード コントロールはデフォルトで無効になっています。
無効になっている場合、複数の画像を含むアセットでは、最初の画像だけを返すようにアプリから SDK に指示することになります。
有効になっている場合、複数の画像を含むアセットについて、そのすべての画像をアプリで表示できると示すことになります。
次の例では、複数の画像アセットを返すように SDK に指示しています。
GADNativeAdImageAdLoaderOptions *nativeOption = [[GADNativeAdImageAdLoaderOptions alloc] init];
nativeOption.shouldRequestMultipleImages = YES;
GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
rootViewController:self
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ nativeOption ]];
AdChoices プレースメント
AdChoices アイコンの表示をカスタマイズします。
AdChoices の位置のコントロール
AdChoices の位置のコントロールを使うと、四隅のどこに AdChoices アイコンを表示するかを選択できます。
GADAdChoicesPosition
値を使用して GADNativeAdViewAdOptions preferredAdChoicesPosition
を設定します。
設定されていない場合は、AdChoices アイコンは右上に配置されます。
設定されている場合は、AdChoices はリクエストされたカスタム位置に配置されます。
次の例は、AdChoices 画像のカスタム位置を設定する方法を示しています。
GADNativeAdViewAdOptions *nativeOptions = [[GADNativeAdViewAdOptions alloc] init];
nativeOptions.preferredAdChoicesPosition = GADAdChoicesPositionTopLeftCorner;
GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
rootViewController:self
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ nativeOptions ]];
AdChoices カスタムビュー
AdChoices カスタムビュー機能を使うと、AdChoices アイコンを選択した場所に配置できます。これは、四隅のいずれかを指定できる AdChoices の位置のコントロールとは異なります。
レンダリング前に GADAdChoicesView
を使用して GADNativeAd.adChoicesView
プロパティを設定すると、AdChoices コンテンツが GADAdChoicesView
内でレンダリングされます。
次の例は、カスタム AdChoices ビューを設定する方法を示しています。AdChoices アイコンは GADAdChoicesView
内でレンダリングされます。
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader didReceiveNativeAd:(GADNativeAd *)nativeAd {
...
GADAdChoicesView *customAdChoicesView =
[[GADAdChoicesView alloc] initWithFrame: CGRectMake(..., ..., ..., ...)];
[nativeAdView addSubview:customAdChoicesView];
nativeAdView.adChoicesView = customAdChoicesView;
// Associate the native ad view with the native ad object. This is
// required to make the ad clickable.
// Note: this should always be done after populating the ad views.
nativeAdView.nativeAd = nativeAd;
}
Swift
func adLoader(_ adLoader: AdLoader, didReceive nativeAd: NativeAd) {
refreshAdButton.isEnabled = true
...
// Define a custom position for the AdChoices icon.
let customRect = CGRect(x: 100, y: 100, width: 15, height: 15)
let customAdChoicesView = AdChoicesView(frame: customRect)
nativeAdView.addSubview(customAdChoicesView)
nativeAdView.adChoicesView = customAdChoicesView
// Associate the native ad view with the native ad object. This is
// required to make the ad clickable.
// Note: this should always be done after populating the ad views.
nativeAdView.nativeAd = nativeAd;
}
動画のコントロール
動画アセットの動作を設定します。
開始時のミュート動作
開始時のミュート動作では、動画の開始時の音声を無効または有効にできます。
BOOL
値を使用して GADVideoOptions startMuted
を設定します。
開始時のミュート動作は、デフォルトで有効になっています。
無効になっている場合、アプリは動画を音声付きで開始するようリクエストします。
有効になっている場合、アプリは音声をミュートして動画を開始するようリクエストします。
次の例は、音声をミュートせずに動画を開始する方法を示しています。
GADVideoOptions *nativeOptions = [[GADVideoOptions alloc] init];
nativeOptions.startMuted = NO;
GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
rootViewController:self
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ nativeOptions ]];
カスタム再生コントロール
この機能では、動画の再生、一時停止、ミュートを行うカスタム動画入力のコントロールをリクエストできます。
BOOL
値を使用して GADVideoOptions customControlsRequested
を設定します。
カスタム再生コントロールはデフォルトでは無効になっています。
無効になっている場合、動画に SDK でレンダリングされた入力コントロールが表示されます。
- 有効にすると、
GADVideoController play
、GADVideoController pause
、GADVideoController setMute
を使用して動画広告をコントロールできます。
広告に動画コンテンツが含まれていて、カスタム コントロールが有効になっている場合は、広告自体にはコントロールが表示されないため、広告とともにカスタム コントロールを表示する必要があります。こうすることで、コントロールは
GADVideoController
で関連するメソッドを呼び出すことができます。
次の例は、カスタム再生コントロールを使用して動画をリクエストする方法を示しています。
GADVideoOptions *nativeOptions = [[GADVideoOptions alloc] init];
nativeOptions.customControlsRequested = YES;
GADAdLoader* adLoader = [[GADAdLoader alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
rootViewController:self
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ nativeOptions ]];
カスタム コントロールが有効になっているかどうかを確認する
返される広告でカスタム動画コントロールが許可されるかどうかはリクエスト時にわからないため、カスタム コントロールが有効になっているかどうかを確認する必要があります。
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd*)nativeAd {
GADVideoController *videoController = nativeAd.mediaContent.videoController;
BOOL canShowCustomControls = videoController.customControlsEnabled;
}
Swift
func adLoader(_ adLoader: AdLoader, didReceive nativeAd: NativeAd) {
let videoController = nativeAd.mediaContent.videoController
let canShowCustomControls = videoController?.customControlsEnabled() == true
}
カスタム動画コントロールをレンダリングする
次のベスト プラクティスに沿って、カスタム動画コントロールをレンダリングします。
- カスタム コントロール ビューをネイティブ広告ビューの子としてレンダリングします。このアプローチにより、Open Measurement の視認性の算出時に、カスタム コントロールが好ましいものとして考慮されます。
- メディアビュー全体に非表示のオーバーレイをレンダリングしないようにします。オーバーレイはメディアビューのクリックをブロックするため、ネイティブ広告のパフォーマンスに悪影響を与えます。代わりに、コントロールを収めるのに最低限必要なサイズの小さなオーバーレイを作成してください。
カスタム クリック操作
カスタム クリック操作は、広告ビューでのスワイプを広告クリックとして登録できるようにするネイティブ広告の機能で、コンテンツのナビゲーションにスワイプ操作を使用するアプリで動作するように設計されています。このガイドでは、ネイティブ広告でカスタム クリック操作を有効にする方法について説明します。
選択したスワイプ方向で GADNativeAdCustomClickGestureOptions
インスタンスを初期化します。また、タップ操作をクリックとして許可するかどうかを指定する必要があります。
カスタム クリック操作はデフォルトでは無効になっています。
無効になっている場合は、タップ操作のみがクリックとしてカウントされます。
有効にすると、スワイプ操作がクリックとしてカウントされ、タップ操作もクリックとしてカウントするかどうかを指定できます。
次の例は、右へのカスタム スワイプ操作を実装し、通常のタップ動作を維持する方法を示しています。
GADNativeAdCustomClickGestureOptions *swipeGestureOptions = [[GADNativeAdCustomClickGestureOptions alloc]
initWithSwipeGestureDirection:UISwipeGestureRecognizerDirectionRight
tapsAllowed:YES];
// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
rootViewController:self
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ swipeGestureOptions ]];
スワイプ操作イベントをリッスンする
スワイプ操作によるクリックが記録されると、Google Mobile Ads SDK は既存の nativeAdDidRecordClick:
デリゲート メソッドに加えて、GADNativeAdDelegate
の nativeAdDidRecordSwipeGestureClick:
デリゲート メソッドも呼び出します。
#pragma mark - GADNativeAdDelegate implementation
// Called when a swipe gesture click is recorded.
- (void)nativeAdDidRecordSwipeGestureClick:(GADNativeAd *)nativeAd {
NSLog(@"A swipe gesture click has occurred.");
}
// Called when a swipe gesture click or a tap click is recorded, as configured in
// GADNativeAdCustomClickGestureOptions.
- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
NSLog(@"A swipe gesture click or tap click has occurred.");
}
メディエーション
カスタム クリック操作は、Google Mobile Ads SDK がレンダリングするネイティブ広告でのみ機能します。レンダリングに第三者 SDK を必要とする広告ソースでは、カスタム クリックの方向の設定は無視されます。