メディエーション

AdMob メディエーションは、AdMob ネットワーク、第三者広告ネットワーク、AdMob キャンペーンなど、複数の配信元の広告をアプリに配信できる機能です。AdMob メディエーションが複数のネットワークに広告リクエストを送信し、広告配信に最適なネットワークを特定するため、広告掲載率を最大限に高めて収益の向上を図ることができます。事例紹介

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

前提条件

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

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

メディエーション ネットワークを選択する

Google のメディエーションでは、30 を超える第三者広告ネットワークがサポートされています。メディエーションの統合の際は、以下の変更が必要となります。

  1. 第三者広告ネットワークの UI - 第三者広告ネットワークに登録し、そのフロントエンドにプレースメントを作成します。
  2. AdMob の UI - 広告ユニットのメディエーション設定を更新して、広告ネットワークを含めます。その広告ネットワークに対応する広告ネットワーク最適化を設定することもおすすめします。
  3. アプリコード - 第三者広告ネットワークの SDK と、Google と第三者広告ネットワークとの通信によって広告のリクエストと配信を行うアダプタ ライブラリを追加するよう、アプリを更新します。

以下の広告ネットワークを選択して、変更を行ってください。

広告ネットワーク バナー インタースティシャル 動画リワード 動画リワード
(新しい API)
ネイティブ アドバンス ANO のサポート 自動データ
収集サポート
オープンソースおよびバージョン対応
AdColony 国別
AppLovin 国別
Chartboost 国別
Facebook 国別
Fyber Marketplace 国別
i-mobile 国別
InMobi 国別
ironSource 国別
maio 共通
MoPub 国別
myTarget 国別
nend 共通
Tapjoy 国別
Unity Ads 国別
Verizon Media 国別
Vungle 国別
オープンソース以外
AdFalcon 国別
Flurry 国別
Leadbolt 国別
LG U+AD なし
MobFox 共通
Tencent GDT なし
Vpon なし
Zucks 国別

オープンソースおよびバージョン対応のアダプタ

上の表で、アダプタに「オープンソースおよびバージョン対応」というラベルが付いている場合は、アダプタのソースコードがオープンソースとして Google の GitHub リポジトリで公開されており、ご希望に応じてご自身で問題を修正できることを示しています。

また、Google の bintray リポジトリには、第三者広告ネットワーク SDK の特定のバージョンを念頭に置いて構築された、バージョン対応のアダプタビルドがあります。アプリの build.gradle ファイルを 1 行変更して、これらのアダプタを統合することもできます。詳しくは、当該広告ネットワークのガイドをクリックしてご覧ください。

アダプタのバージョニング

バージョン対応アダプタで使用するバージョニング スキームは、<third-party SDK version>.<adapter patch version> となります。たとえば、広告ネットワークが新しい SDK バージョン 1.2.3 をリリースした場合は、新しいアダプタのバージョン 1.2.3.0 をその新しい SDK でテストした後に bintray でリリースします。

第三者 SDK のリリースのライフサイクル外でアダプタの更新が必要になった場合は、パッチのバージョンを引き上げます。アダプタのバージョン 1.2.3.0 のバグの修正は、バージョン 1.2.3.1 でリリースします。

ANO サポート

メディエーションで複数の広告ネットワークを設定する際は、それぞれの CPM を設定して、それらのネットワークをリクエストする順序を指定する必要があります。広告ネットワークの掲載結果は随時変動するため、この管理は難しくなる可能性があります。

広告ネットワークの最適化(ANO) は、最大限の収益を得られるようにメディエーション チェーンの順位付けを自動的に行って、そのメディエーション チェーンの広告ネットワークから最も高いインプレッション単価を獲得できるようにするための機能です。

上の表のメディエーション ネットワークには、ANO のサポートに対応して次の値が指定されています。

ANO サポート 意味
Country-specific eCPM の値は、国別の基準で自動的に更新されます。これは、最適化のタイプとして最適です。
Global 1 つの共通の eCPM 値が自動的に更新されます。
None その広告ネットワークの eCPM 値を手動で設定する必要があります。

広告ネットワークで ANO を設定する方法について詳しくは、当該ネットワークのガイドをクリックしてください。

カスタム イベント

目的の広告ネットワークが上記のリストにない場合は、カスタム イベントを使用して広告ネットワークとの独自の統合を記述できます。カスタム イベントの作成方法について詳しくは、カスタム イベントをご覧ください。

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

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

Java

public void onAdLoaded() {
      Log.d("Banner adapter class name: " + ad.getResponseInfo().getMediationAdapterClassName());
    }
    

Kotlin

override fun onAdLoaded() {
      Log.d("Banner adapter class name:" + ad.responseInfo.mediationAdapterClassName)
    }
    

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

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

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

メディエーション ネットワークに位置情報を渡す

Google Mobile Ads SDK では、広告リクエストで明示的に指定しない限り、メディエーション ネットワークに位置情報が転送されることはありません。広告リクエストに位置情報を指定する方法について詳しくは、ターゲティング ガイドをご覧ください。

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

リワード広告のメディエーション

AdMob UI で報酬の値を設定して、すべてのデフォルトの報酬の値を上書きすることをおすすめします。 これを行うには、[メディエーション グループのすべてのネットワークに適用] を選択して、すべてのネットワークで報酬が一致するようにします。一部の広告ネットワークでは報酬の値やタイプがまったく提供されません。報酬値をオーバーライドすると、広告が配信された広告ネットワークに関係なく報酬が一致します。

AdMob 管理画面での報酬値の設定について詳しくは、リワード広告ユニットを作成するをご覧ください。

ネイティブ広告のメディエーション

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

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