スクロール バナーにインライン アダプティブを使用する

アダプティブ バナーでは、指定した広告の幅に応じて、デバイスごとに最適な広告サイズが決定されます。アンカー アダプティブ バナーとは異なり、インライン アダプティブ バナーは大きく、高さがあり、高さが固定されていません。インライン アダプティブ バナーは、高さが変動します。これらのバナーは、画面全体に表示したり、指定した最大の高さで表示したりすることができます。

このガイドでは、インライン アダプティブ バナーを作成してバナーのサイズを設定する方法について説明します。

次の画像は、スクロール可能なコンテンツに表示されるインライン アダプティブ バナーを示しています。

アダプティブ バナーとインライン アダプティブ バナーの違いを示した図

始める前に

続行する前に、バナー広告を設定していることを確認してください。

インライン アダプティブ バナーの完全な例を確認するには、次のサンプルアプリをダウンロードしてください。

インライン アダプティブ バナーを実装する

インライン アダプティブ バナーを実装するには、広告サイズを設定し、広告リクエストを作成して、広告を読み込みます。

インライン アダプティブ バナーのサイズを設定するには、広告の幅を決定します。一般的なアプローチは次のとおりです。

  • 全画面幅を使用する。
  • 広告を含む親レイアウトの幅を使用する。
  • デバイスのセーフエリアを考慮して幅を調整する。

広告サイズ オブジェクトを作成する際は、この計算された幅を使用します。

手順は次のとおりです。

  1. デバイスの幅を取得するか、幅を設定します。

    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);
    }
    
  2. インライン アダプティブ広告サイズ オブジェクトを取得するには、広告サイズクラスの静的メソッドを使用します。

    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.getCurrentOrientationInlineAdaptiveBannerAdSize(Context context, int width) メソッドを使用します。このメソッドは、現在のレイアウトに広告を読み込みます。

インライン アダプティブ バナーの高さを制限する

デフォルトでは、maxHeight 値を指定せずに作成されたインライン アダプティブ バナーの最大高さはデバイスの高さと同じになります。インライン アダプティブ バナーの高さを制限するには、AdSize.getInlineAdaptiveBannerAdSize(int width, int maxHeight) メソッドを使用します。