AdMob メディエーションは、AdMob ネットワーク、第三者広告ネットワーク、AdMob キャンペーンなど、複数の配信元の広告をアプリに配信できる機能です。AdMob メディエーションが複数のネットワークに広告リクエストを送信し、広告配信に最適なネットワークを特定するため、広告掲載率を最大限に高めて収益の向上を図ることができます。事例紹介。
このガイドでは、AdMob アプリにメディエーションを統合する方法をまとめて説明します。
前提条件
広告フォーマットにメディエーションを統合するには、その広告フォーマットをあらかじめアプリに組み込んでおく必要があります。
メディエーションを初めてご利用の場合、次をご覧ください。
メディエーション ネットワークを選択する
Google のメディエーションでは、30 を超える第三者広告ネットワークがサポートされています。メディエーションの統合の際は、以下の変更が必要となります。
- 第三者広告ネットワークの UI - 第三者広告ネットワークに登録し、そのフロントエンドにプレースメントを作成します。
- AdMob の UI - 広告ユニットのメディエーション設定を更新して、広告ネットワークを含めます。その広告ネットワークに対応する広告ネットワーク最適化を設定することもおすすめします。
- アプリコード - 第三者広告ネットワークの SDK と、Google と第三者広告ネットワークとの通信によって広告のリクエストと配信を行うアダプタ ライブラリを追加するよう、アプリを更新します。
以下の広告ネットワークを選択して、変更を行ってください。
広告ネットワーク | バナー | インタースティシャル | 動画リワード | 動画リワード (新しい API) |
ネイティブ アドバンス | ANO のサポート | 自動データ 収集サポート |
---|---|---|---|---|---|---|---|
オープンソースおよびバージョン対応 | |||||||
AdColony | 国別 | ||||||
AppLovin | 国別 | ||||||
Chartboost | 国別 | ||||||
国別 | |||||||
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 の特定のバージョンを念頭に置いて構築された、バージョン対応のアダプタビルドがあります。また、アプリの 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
でリリースします。
サポート
メディエーションで複数の広告ネットワークを設定する際は、それぞれの CPM を設定して、それらのネットワークをリクエストする順序を指定する必要があります。広告ネットワークの掲載結果は随時変動するため、この管理は難しくなる可能性があります。
広告ネットワークの最適化(ANO) は、最大限の収益を得られるようにメディエーション チェーンの順位付けを自動的に行って、そのメディエーション チェーンの広告ネットワークから最も高いインプレッション単価を獲得できるようにするための機能です。上の表のメディエーション ネットワークには、 のサポートに対応して次の値が指定されています。
サポート | 意味 |
---|---|
Country-specific |
eCPM の値は、国別の基準で自動的に更新されます。これは、最適化のタイプとして最適です。 |
Global |
1 つの共通の eCPM 値が自動的に更新されます。 |
None |
その広告ネットワークの eCPM 値を手動で設定する必要があります。 |
広告ネットワークで を設定する方法について詳しくは、当該ネットワークのガイドをクリックしてください。
カスタム イベント
目的の広告ネットワークが上記のリストにない場合は、カスタム イベントを使用して広告ネットワークとの独自の統合を記述できます。カスタム イベントの作成方法について詳しくは、カスタム イベントをご覧ください。
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 管理画面での報酬値の設定について詳しくは、リワード広告ユニットを作成するをご覧ください。
ネイティブ広告のメディエーション
ネイティブ メディエーションを実装する際のおすすめの方法は次のとおりです。
- ネイティブ広告プレゼンテーション ポリシー
- 各広告ネットワークには独自のポリシーがあります。メディエーションを使用する場合は、 広告を提供したメディエーション対象ネットワークのポリシーに アプリが準拠している必要があります。
- リクエストの際は
GADMultipleAdsAdLoaderOptions
クラスを使用しない - 複数のネイティブ広告をリクエストすると、Google 広告のみが配信されます。複数のネイティブ広告機能では、 メディエーションはサポートされていません。