アダプティブ バナーでは、指定した広告の幅に応じて、デバイスごとに最適な広告サイズが決定されます。アンカー アダプティブ バナーとは異なり、インライン アダプティブ バナーは大きく、高さがあり、高さが固定されていません。インライン アダプティブ バナーは、高さが変動します。これらのバナーは、画面全体に表示したり、指定した最大の高さで表示したりすることができます。
このガイドでは、インライン アダプティブ バナーを作成してバナーのサイズを設定する方法について説明します。
次の画像は、スクロール可能なコンテンツに表示されるインライン アダプティブ バナーを示しています。
始める前に
続行する前に、バナー広告を設定していることを確認してください。
インライン アダプティブ バナーの完全な例を確認するには、次のサンプルアプリをダウンロードしてください。
インライン アダプティブ バナーを実装する
インライン アダプティブ バナーを実装するには、広告サイズを設定し、広告リクエストを作成して、広告を読み込みます。
インライン アダプティブ バナーのサイズを設定するには、広告の幅を決定します。一般的なアプローチは次のとおりです。
- 全画面幅を使用する。
- 広告を含む親レイアウトの幅を使用する。
- デバイスのセーフエリアを考慮して幅を調整する。
広告サイズ オブジェクトを作成する際は、この計算された幅を使用します。
手順は次のとおりです。
デバイスの幅を取得するか、幅を設定します。
Kotlin
private val adWidth: Int get() { val displayMetrics = resources.displayMetrics val adWidthPixels = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { val windowMetrics: WindowMetrics = this.windowManager.currentWindowMetrics windowMetrics.bounds.width() } else { displayMetrics.widthPixels } val density = displayMetrics.density return (adWidthPixels / density).toInt() }Java
public int getAdWidth() { DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); int adWidthPixels = displayMetrics.widthPixels; if (VERSION.SDK_INT >= VERSION_CODES.R) { WindowMetrics windowMetrics = this.getWindowManager().getCurrentWindowMetrics(); adWidthPixels = windowMetrics.getBounds().width(); } float density = displayMetrics.density; return (int) (adWidthPixels / density); }インライン アダプティブ広告サイズ オブジェクトを取得するには、広告サイズクラスの静的メソッドを使用します。
Kotlin
val adView = AdView(this@MainActivity) adView.setAdSize(AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, adWidth))Java
final AdView adView = new AdView(MainActivity.this); adView.setAdSize(AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, getAdWidth()));
インライン アダプティブ バナーのレイアウトを設定する
特定のレイアウトでインライン アダプティブ バナー広告をプリロードするには、次のメソッドを使用します。
AdSize.getPortraitInlineAdaptiveBannerAdSize(Context context, int width)AdSize.getLandscapeInlineAdaptiveBannerAdSize(Context context, int width)
アプリが縦向きと横向きの両方の画面表示に対応しており、現在のレイアウトでアダプティブ バナー広告をプリロードするには、AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(Context context, int width) メソッドを使用します。このメソッドは、現在のレイアウトに広告を読み込みます。
インライン アダプティブ バナーの高さを制限する
デフォルトでは、maxHeight 値を指定せずに作成されたインライン アダプティブ バナーの最大高さはデバイスの高さと同じになります。インライン アダプティブ バナーの高さを制限するには、AdSize.getInlineAdaptiveBannerAdSize(int width, int maxHeight) メソッドを使用します。