メディエーション


AdMob メディエーションは、AdMob ネットワーク、第三者広告ネットワーク、AdMob キャンペーンなど、複数の配信元の広告をアプリに配信できる機能です。広告配信に最適なネットワークが見つかるように AdMob メディエーションが複数のネットワークに広告リクエストを送信し、広告掲載率の最大化と収益の拡大を支援します。事例紹介はこちらをご覧ください。

前提条件

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

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

Mobile Ads SDK を初期化する

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

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

// Initialize the Google Mobile Ads library
firebase::gma::Initialize(*app);

// In a game loop, monitor the initialization status
auto initialize_future = firebase::gma::InitializeLastResult();

if (initialize_future.status() == firebase::kFutureStatusComplete &&
    initialize_future.error() == firebase::gma::kAdErrorCodeNone) {
  // Initialization completed successfully, log the adapter status:
  std::map<std::string, firebase::gma::AdapterStatus> adapter_status_map =
      firebase::gma::GetInitializationStatus().GetAdapterStatusMap();

  for (auto it = adapter_status_map.begin(); it != adapter_status_map.end(); ++it) {
    std::string adapter_class_name = it->first;
    firebase::gma::AdapterStatus adapter_status = it->second;
    printf(adapter: %s \t description: %s \t is_initialized: %d latency: %d\n,
       adapter_class_name.c_str(),
       adapter_status.description().c_str(),
       adapter_status.is_initialized(),
       adpater_status.latency());
  }
} else {
  // Handle initialization error.
}

Future の操作の詳細については、Future を使用して、メソッド呼び出しの完了ステータスをモニタリングするをご覧ください。

adNetworkClassName の値を確認します。

各広告結果には、現在の広告を取得した広告ネットワークのクラス名に関する情報が含まれています。

AdView から返された AdResult の広告ネットワーク クラス名をログに記録するサンプルコードを次に示します。インタースティシャル広告とリワード広告にも同様のコードを適用できます。

firebase::Future<AdResult> load_ad_future = banner_view.loadAd(ad_request);

// In a game loop, monitor the ad load status
if (load_ad_future.status() == firebase::kFutureStatusComplete &&
    load_ad_future.error() == firebase::gma::kAdErrorCodeNone) {
  const AdResult* ad_result = load_ad_future.result();
  printf(Loaded ad with adapter class name: %s\n,
    ad_result->adapter_class_name().c_str());
} else {
  // Handle the load ad error.
}

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

次のステップ

Google Mobile Ads C++ SDK は、メディエーション用に Android SDK と iOS SDK の実装をラップします。したがって、メディエーション アダプターのインストールなど、追加の構成は Android プラットフォームと iOS プラットフォームに固有です。詳しくは、Google Mobile Ads Android SDK のネットワークの選択に関するガイドGoogle Mobile Ads iOS SDK のネットワークの選択に関するガイドをご覧ください。