使ってみる

このガイドでは、メディエーション アダプタを Android アプリに統合する方法について説明します。

前提条件

広告フォーマットにメディエーションを統合するには、その広告フォーマットをあらかじめアプリに組み込んでおく必要があります。

メディエーションを初めてご利用の場合は、メディエーションの概要をご覧ください。

入札の場合: Google Mobile Ads SDK 18.3.0 以降。

Google Mobile Ads SDK を初期化する

クイック スタートガイドでは、Google Mobile Ads SDK を初期化する方法を説明します。この初期化の呼び出し中に、メディエーション アダプタも初期化されます。最初の広告リクエストにすべての広告ネットワークが参加していることを確認するため、広告を読み込むのは初期化が完了するまで待ってからにしてください。

次のサンプルコードは、広告リクエストを行う前に各アダプタの初期化状況を確認する方法を示しています。

Java

public void initialize(Context context) {
  new Thread(
          () ->
              // Initialize the Google Mobile Ads SDK on a background thread.
              MobileAds.initialize(context, this::logAdapterStatus))
      .start();
}

private void logAdapterStatus(InitializationStatus initializationStatus) {
  // Check each adapter's initialization status.
  Map<String, AdapterStatus> statusMap = initializationStatus.getAdapterStatusMap();
  for (Map.Entry<String, AdapterStatus> entry : statusMap.entrySet()) {
    String adapterClass = entry.getKey();
    AdapterStatus status = entry.getValue();
    Log.d(
        TAG,
        String.format(
            "Adapter name: %s, Description: %s, Latency: %d",
            adapterClass, status.getDescription(), status.getLatency()));
  }
}

Kotlin

fun initialize(context: Context) {
  CoroutineScope(Dispatchers.IO).launch {
    // Initialize the Google Mobile Ads SDK on a background thread.
    MobileAds.initialize(context, ::logAdapterStatus)
  }
}

private fun logAdapterStatus(initializationStatus: InitializationStatus) {
  // Check each adapter's initialization status.
  for ((adapterClass, status) in initializationStatus.adapterStatusMap) {
    Log.d(
      TAG,
      "Adapter: $adapterClass, Status: ${status.description}, Latency: ${status.latency}ms",
    )
  }
}

広告を読み込んだ広告ネットワーク アダプタのクラスを確認する

バナー広告の広告ネットワーク クラス名を記録するサンプルコードを次に示します。

Java

ResponseInfo responseInfo = ad.getResponseInfo();
String adapterClassName = null;
if (responseInfo != null) {
  adapterClassName = responseInfo.getMediationAdapterClassName();
}
Log.d(TAG, "Adapter class name: " + adapterClassName);

Kotlin

Log.d(TAG, "Adapter class name:" + ad.responseInfo?.mediationAdapterClassName)

このメソッドの詳細について詳しくは、 ResponseInfo のドキュメントで getMediationAdapterClassName() を確認してください。

Activity インスタンスを使用して広告オブジェクトを初期化する

新しい広告オブジェクト(AdManagerAdView など)のコンストラクタで、Context 型のオブジェクトを渡す必要があります。この Context は、メディエーションを使用する際に他の広告ネットワークに渡されます。広告ネットワークによっては、制限がさらに厳しい ActivityContext が要求され、Activity インスタンスがなければ広告を配信できない場合もあります。そのため、メディエーション広告ネットワークでのエクスペリエンスが一貫したものになるよう、広告オブジェクトの初期化時に Activity インスタンスを渡すことをおすすめします。

メディエーションでバナー広告を使用する

メディエーションで使用するバナー広告ユニットについては、すべての第三者広告ソースの管理画面で更新を無効にしてください。これにより、更新の重複を防ぐことができます。アド マネージャーでもバナー広告ユニットの更新頻度に基づいて更新が行われるためです。

メディエーションでネイティブ広告を使用する

ネイティブ メディエーションを実装する際のおすすめの方法は次のとおりです。

ネイティブ広告プレゼンテーション ポリシー
各広告ネットワークには独自のポリシーがあります。メディエーションを使用する場合は、広告を提供したメディエーション対象ネットワークのポリシーにアプリが準拠している必要があります。
loadAds() ではなく loadAd() を使用する
loadAds() メソッドは Google 広告のみを配信します。メディエーション対象の広告では、代わりに loadAd() をご使用ください。

米国のプライバシー関連州法と GDPR

米国のプライバシー関連州法または 一般データ保護規則(GDPR)を遵守する必要がある場合は、米国の州の規制の設定または GDPR の設定の手順に沿って、アド マネージャーの「プライバシーとメッセージ」の米国の州または GDPR の広告パートナーのリストにメディエーション パートナーを追加してください。追加しない場合、アプリに広告が配信されないことがあります。

Google User Messaging Platform(UMP)SDK を使用して、制限付きデータ処理(RDP)を有効にし、GDPR の同意を取得する方法についてご確認ください。