バナー広告

バナー広告は、アプリのレイアウトの一部を占める長方形の広告です。。 ユーザーがアプリを操作している間、画面に表示され続けます。 ユーザーがスクロールすると、画面の上部または下部に重ねて表示したり、コンテンツにインラインで移動したりできます。バナー 一定期間の経過後に広告を自動更新するバナー広告の概要をご覧ください。 をご覧ください。

このガイドでは、アンカー広告 アダプティブ バナー広告 「新規顧客の獲得」目標を使ってデバイスごとに 広告サイズを最適化することで 広告の幅を指定します。

アンカー アダプティブ バナー広告は、通常の広告ではなく固定アスペクト比の広告で 固定サイズの広告。アスペクト比は業界標準である 320x50 と同様です。1 回 利用可能な全幅を指定すると、最適な幅の広告が 指定します。最適な高さは、リクエスト間で変更されず、 広告が表示されている間、周囲のビューを動かす必要はない 更新されます

前提条件

必ずテスト広告でテストする

アプリを作成、テストする際は、テスト広告ではなく、 配信します。実際の広告を使用すると、アカウントが停止される可能性があります。

テスト広告を読み込むには、専用のテスト広告ユニット ID を使用すると、 Android のバナー:

/6499/example/adaptive-banner

すべてのリクエストに対してテスト広告を返すように特別に構成されており、 独自のアプリでコーディング、テスト、デバッグの際に使用できます。必ず これを実際の広告ユニット ID に置き換えてから、アプリを公開してください。

Mobile Ads SDK のテスト広告の仕組みについて詳しくは、テスト広告の仕組みに関するページ 広告

AdView をレイアウトに追加する

バナーを表示するための最初のステップは、AdManagerAdView を配置することです。 表示させたい Activity または Fragment のレイアウト 説明します。

Java

private AdSize getAdSize() {
  // Determine the screen width (less decorations) to use for the ad width.
  Display display = getWindowManager().getDefaultDisplay();
  DisplayMetrics outMetrics = new DisplayMetrics();
  display.getMetrics(outMetrics);

  float density = outMetrics.density;

  float adWidthPixels = adContainerView.getWidth();

  // If the ad hasn't been laid out, default to the full screen width.
  if (adWidthPixels == 0) {
    adWidthPixels = outMetrics.widthPixels;
  }

  int adWidth = (int) (adWidthPixels / density);
  return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
}

private void loadBanner() {
  
  // Create a new ad view.
  AdManagerAdView adView = new AdManagerAdView(this);
  adView.setAdSizes(getAdSize());
  adView.setAdUnitId("/6499/example/adaptive-banner");

  // Replace ad container with new ad view.
  adContainerView.removeAllViews();
  adContainerView.addView(adView);

  // Start loading the ad in the background.
  AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder().build();
  adView.loadAd(adRequest);
}

Kotlin


// Determine the screen width (less decorations) to use for the ad width.
// If the ad hasn't been laid out, default to the full screen width.
private val adSize: AdSize
  get() {
    val display = windowManager.defaultDisplay
    val outMetrics = DisplayMetrics()
    display.getMetrics(outMetrics)

    val density = outMetrics.density

    var adWidthPixels = binding.adViewContainer.width.toFloat()
    if (adWidthPixels == 0f) {
      adWidthPixels = outMetrics.widthPixels.toFloat()
    }

    val adWidth = (adWidthPixels / density).toInt()
    return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
  }

private fun loadBanner() {
  
  // Create a new ad view.
  val adView = AdManagerAdView(this)
  adView.adSizes = adSize
  adView.adUnitId = "/6499/example/adaptive-banner"

  // Create an ad request.
  val adRequest = AdManagerAdRequest.Builder().build()

  // Start loading the ad in the background.
  adView.loadAd(adRequest)
}

広告を読み込む

アド マネージャー広告ビューを配置したら、次は 広告を読み込むこれは loadAd() で行うことができます。 メソッド(AdManagerAdView クラスの)AdManagerAdRequest を受け取ります。 パラメータ: このパラメータは、ターゲティング情報、 1 つの広告リクエストに対して

次の例は、onCreate() Activity:

Java

private void loadBanner() {
  // Create a new ad view.
  adView = new AdManagerAdView(this);
  adView.setAdUnitId(AD_UNIT);
  adView.setAdSize(getAdSize());
  
  // Replace ad container with new ad view.
  adContainerView.removeAllViews();
  adContainerView.addView(adView);

  // Start loading the ad in the background.
  AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder().build();
  adView.loadAd(adRequest);
}

Kotlin

private fun loadBanner() {
  // This is an ad unit ID for a test ad. Replace with your own banner ad unit ID.
  adView.adUnitId = "/6499/example/banner"
  adView.setAdSize(adSize)
  
  // Create an ad request.
  val adRequest = AdManagerAdRequest.Builder().build()

  // Start loading the ad in the background.
  adView.loadAd(adRequest)
}

広告の読み込みに失敗した場合でも、 広告ユニットの更新を設定していればGoogle Mobile Ads SDK は アド マネージャーで指定した更新頻度が適用されます。 ウェブ インターフェースで実行します。更新を有効にしていない場合は、新しい リクエストできます。

これで、これで、アプリにバナー広告を表示できるようになりました。

広告イベント

広告のライフサイクルでは、読み込み、 広告インプレッションとクリック、広告の開始イベントと終了イベント。おすすめの方法 バナーを読み込む前にコールバックを設定します。

Java

AdManagerAdView.setAdListener(new AdListener() {
    @Override
    public void onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    @Override
    public void onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    @Override
    public void onAdFailedToLoad(LoadAdError adError) {
      // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    @Override
    public void onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    @Override
    public void onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
});

Kotlin

AdManagerAdView.adListener = object: AdListener() {
    override fun onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    override fun onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    override fun onAdFailedToLoad(adError : LoadAdError) {
      // Code to be executed when an ad request fails.
    }

    override fun onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    override fun onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    override fun onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
}

オーバーライド可能な各メソッドは、 AdListener 広告のライフサイクルで発生するイベントに対応します。

オーバーライド可能なメソッド
onAdClicked() onAdClicked() メソッドは広告のクリックが記録されると呼び出されます。
onAdClosed() onAdClosed() メソッドは、ユーザーが広告を見た後にアプリに戻ったときに呼び出されます。 指定します。一時停止されたアクティビティを再開したり、 やり取りに備えるために必要なその他の作業を行う
onAdFailedToLoad() onAdFailedToLoad() メソッドはパラメータを含む唯一のメソッドです。タイプの error パラメータ LoadAdError は、発生したエラーを表します。詳しくは 詳しくは、広告読み込みエラーのデバッグ ドキュメントをご覧ください
onAdImpression() onAdImpression() メソッドは広告のインプレッションが記録されたときに呼び出されます。
onAdLoaded() onAdLoaded() メソッドは広告の読み込みが完了すると実行されます。会議を遅らせる場合は AdManagerAdView を追加する アクティビティまたはフラグメントにコードを渡して、広告が読み込まれることが できます。
onAdOpened() onAdOpened() メソッドは、画面を覆うオーバーレイを広告で開いたときに呼び出されます。

動画広告のハードウェア アクセラレーション

バナー広告に動画広告が適切に表示されるようにするには、ハードウェアが Accelerationは 有効にする必要があります。

ハードウェア アクセラレーションはデフォルトで有効になっていますが、アプリによっては無効にすることもできます できます。お客様のアプリに該当する場合は、ハードウェア アクセラレーションを有効にすることをおすすめします。 広告を使用する Activity クラス。

ハードウェア アクセラレーションを有効にする

ハードウェア アクセラレーションをオンにしてアプリが正しく動作しない場合 個々のアクティビティに対しても制御できます。Google Cloud コンソールで ハードウェア アクセラレーションを無効にする場合は、android:hardwareAccelerated 属性の <application> および <activity> AndroidManifest.xml 内の要素。次の例では、ハードウェア サービス 1 つのアクティビティでは無効にします。

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
    <!-- For activities that don't use ads, hardwareAcceleration can be false. -->
    <activity android:hardwareAccelerated="false" />
</application>

ハードウェア アクセラレーションに関するページ ガイド ハードウェア アクセラレーションを制御するオプションについて説明します。注: アクティビティが原因で、個々の広告ビューをハードウェア アクセラレーションで有効にすることはできません。 無効になっているため、アクティビティ自体でハードウェア アクセラレーションを有効にする必要があります。

インプレッションの手動カウント

インプレッションの手動カウントは、直接販売と自社のみに対応しています。 クリエイティブを使用するキャンペーンでアド マネージャーで直接 入稿することもできます気にしないで 第三者ネットワークの広告に使用されます詳しくは、カウント方法 インプレッション数とクリック数です

アド マネージャーへのインプレッションの ping は手動で送信できます。 インプレッションを記録する条件を指定しますそのためには、 AdManagerAdRequest: 広告を読み込む前の手動インプレッションの場合:

Java

AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder()
    .setManualImpressionsEnabled(true)
    .build();

Kotlin

val adRequest = AdManagerAdRequest.Builder()
    .setManualImpressionsEnabled(true)
    .build()

広告が正常に返され、画面に表示されていると判断したら、 インプレッションを手動で記録できます

Java

{ ad_view }.recordManualImpression();

Kotlin

AdManagerAdView.recordManualImpression()

アプリ内イベント

アプリイベントを使用すると、アプリコードにメッセージを送信できる広告を作成できます。アプリ はこれらのメッセージに基づいてアクションを実行できます。

アド マネージャー固有のアプリイベントをリッスンするには、AppEventListener を使用します。 これらのイベントは、広告のライフサイクル中に、 onAdLoaded() が呼び出されます。

Java

public interface AppEventListener {
  void onAppEvent(String name, String info);
}

Kotlin

interface AppEventListener {
    fun onAppEvent(name: String, info: String)
}

void onAppEvent(String name, String info) は、アプリイベントが発生すると呼び出されます 。このインターフェースは、アクティビティまたは他の任意の関数によって実装できます。 オブジェクト:

Java

import com.google.android.gms.ads.admanager.*;

public class BannerExample extends Activity implements AppEventListener {
}

Kotlin

import com.google.android.gms.ads.admanager.*

class BannerExample : Activity(), AppEventListener {
}

次に AdManagerAdView に渡されます。

Java

AdManagerAdView.setAppEventListener(this);

Kotlin

AdManagerAdView.appEventListener = this

アプリの背景色を変更する方法の例 色の名前で表示されます:

Java

@Override
public void onAppEvent(String name, String info) {
  if ("color".equals(name)) {
    if ("green".equals(info)) {
      // Set background color to green.
    } else if ("blue".equals(info)) {
      // Set background color to blue.
    } else {
      // Set background color to black.
    }
  }
}

Kotlin

override fun onAppEvent(name: String?, info: String?) {
    if (name == "color") {
        when (info) {
            "green" -> {
                // Set background color to green.
            }
            "blue" -> {
                // Set background color to blue.
            }
            else -> {
                // Set background color to black.
            }
        }
    }
}

対応するクリエイティブは次のとおりです。色アプリのイベント メッセージを リスナー:

<html>
<head>
  <script src="//www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
  <script>
    document.addEventListener("DOMContentLoaded", function() {
      // Send a color=green event when ad loads.
      admob.events.dispatchAppEvent("color", "green");

      document.getElementById("ad").addEventListener("click", function() {
        // Send a color=blue event when ad is clicked.
        admob.events.dispatchAppEvent("color", "blue");
      });
    });
  </script>
  <style>
    #ad {
      width: 320px;
      height: 50px;
      top: 0px;
      left: 0px;
      font-size: 24pt;
      font-weight: bold;
      position: absolute;
      background: black;
      color: white;
      text-align: center;
    }
  </style>
</head>
<body>
  <div id="ad">Carpe diem!</div>
</body>
</html>

アプリイベントの実装方法については、アド マネージャーのアプリイベントのサンプルをご覧ください。 API デモアプリ。

Java Kotlin

参考情報

GitHub の例

  • アンカー アダプティブ バナー広告の例: Java | Kotlin

次のステップ

折りたたみ可能バナー

折りたたみ可能バナー広告は、最初は大きなサイズのバナー広告として表示される 広告を小さなサイズに折りたたむボタンがある オーバーレイ使用をご検討ください パフォーマンスをさらに最適化できます詳しくは、折りたたみ可能バナー広告をご覧ください。

インライン アダプティブ バナー

インライン アダプティブ バナーは、アンカー アダプティブ バナーより大きく縦長のバナーとなります。 。高さは可変で、デバイスの画面と同じ高さにできます。 インライン アダプティブ バナーは、アンカー アダプティブ バナー広告よりも推奨されます。 スクロール可能なコンテンツにバナー広告を配置するアプリインライン アダプティブ バナーをご覧ください。 バナー 表示されます。

他のトピックを見る