メディエーション

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

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

前提条件

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

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

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

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

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

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

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

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

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

また、Google の bintray リポジトリには、第三者広告ネットワーク SDK の特定のバージョンを念頭に置いて構築された、バージョン対応のアダプタビルドがあります。また、アプリの Podfile を 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 を設定する方法について詳しくは、当該ネットワークのガイドをクリックしてください。

カスタム イベント

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

adNetworkClassName の値をチェックする

各広告フォーマット クラスには、adNetworkClassName プロパティが GADResponseInfo オブジェクトにあります。これにより現在の広告を取得した広告ネットワークのクラス名が返されます。広告が正常に読み込まれるときにのみ、このプロパティに値が設定されます。

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

Swift

func adViewDidReceiveAd(_ bannerView: GADBannerView) {
  print("Banner adapter class name: \(bannerView.responseInfo.adNetworkClassName)")
}

Objective-C

- (void)adViewDidReceiveAd:(GADBannerView *)bannerView {
  NSLog(@"Banner adapter class name: %@", bannerView.responseInfo.adNetworkClassName);
}

インタースティシャル

Swift

func interstitialDidReceiveAd(_ interstitial: GADInterstitial) {
  print("Interstitial adapter class name: \(interstitial.responseInfo.adNetworkClassName)")
}

Objective-C

- (void)interstitialDidReceiveAd:(GADInterstitial *)interstitial {
  NSLog(@"Interstitial adapter class name: %@", interstitial.responseInfo.adNetworkClassName);
}

動画リワード

Swift

func rewardBasedVideoAdDidReceive(_ rewardBasedVideoAd: GADRewardBasedVideoAd) {
  print("Rewarded video adapter class name: \(rewardBasedVideoAd.adNetworkClassName)")
}

Objective-C

-(void)rewardBasedVideoAdDidReceiveAd:(GADRewardBasedVideoAd *)rewardBasedVideoAd {
  NSLog(@"Rewarded video adapter class name: %@", rewardBasedVideoAd.adNetworkClassName);
}

ネイティブ

Swift

func adLoader(_ adLoader: GADAdLoader,
              didReceive nativeAd: GADUnifiedNativeAd) {
  print("Native adapter class name: \(nativeAd.responseInfo.adNetworkClassName)")
}

Objective-C

-(void)adLoader:(GADAdLoader *)adLoader
    didReceiveUnifiedNativeAd:(GADUnifiedNativeAd *)nativeAd {
  NSLog(@"Native adapter class name: %@", nativeAd.responseInfo.adNetworkClassName);
}

詳しくは、広告レスポンスに関する情報の取得をご覧ください。

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

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

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

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

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

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

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

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

ネイティブ広告プレゼンテーション ポリシー

各広告ネットワークには独自のポリシーがあります。メディエーションを使用する場合は、広告を提供したメディエーション対象ネットワークのポリシーにアプリが準拠している必要があります。