AdMob メディエーションは、AdMob ネットワーク、第三者広告ネットワーク、AdMob キャンペーンなど、複数のソースからアプリに広告を配信できる機能です。AdMob メディエーションを利用すると、複数のネットワークに広告リクエストが送信され、広告配信に最適なネットワークが特定されるため、広告掲載率を最大化して収益を伸ばすことができます。事例紹介。
前提条件
特定の広告フォーマットのメディエーションを組み込むには、その広告フォーマットを事前にアプリに統合しておく必要があります。
メディエーションを初めてご利用の場合は、詳しくは、AdMob メディエーションの概要をご覧ください。
入札の場合: Google Mobile Ads SDK 7.53.1 以降。
Mobile Ads SDK を初期化する
クイック スタートガイドでは、Mobile Ads SDK を初期化する方法を説明します。この初期化の呼び出し中に、メディエーション アダプタと入札アダプタも初期化されます。最初の広告リクエストですべての広告ネットワークからの参加が確実に行われるように、初期化が完了するのを待ってから広告を読み込むことが重要です。
次のサンプルコードは、広告リクエストを行う前に各アダプタの初期化ステータスを確認する方法を示しています。
Swift
import GoogleMobileAds
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let ads = GADMobileAds.sharedInstance()
ads.start { status in
// Optional: Log each adapter's initialization latency.
let adapterStatuses = status.adapterStatusesByClassName
for adapter in adapterStatuses {
let adapterStatus = adapter.value
NSLog("Adapter Name: %@, Description: %@, Latency: %f", adapter.key,
adapterStatus.description, adapterStatus.latency)
}
// Start loading ads here...
}
return true
}
}
Objective-C
@import GoogleMobileAds;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
GADMobileAds *ads = [GADMobileAds sharedInstance];
[ads startWithCompletionHandler:^(GADInitializationStatus *status) {
// Optional: Log each adapter's initialization latency.
NSDictionary *adapterStatuses = [status adapterStatusesByClassName];
for (NSString *adapter in adapterStatuses) {
GADAdapterStatus *adapterStatus = adapterStatuses[adapter];
NSLog(@"Adapter Name: %@, Description: %@, Latency: %f", adapter,
adapterStatus.description, adapterStatus.latency);
}
// Start loading ads here...
}];
return YES;
}
@end
落札した広告ネットワークを確認する
各広告フォーマット クラスには、現在の広告の広告ネットワークのクラス名を返す adNetworkClassName
を含む GADResponseInfo
プロパティがあります。adNetworkClassName
に値が設定されるのは、広告が正常に読み込まれる場合のみです。次のコードは、バナー広告の情報を取得する方法を示しています。
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);
}
詳しくは、広告レスポンスに関する情報を取得するをご覧ください。
バナー広告のメディエーション
AdMob メディエーションで使用されているバナー広告ユニットについては、第三者広告ネットワークのすべての管理画面で更新を無効にしてください。AdMob もバナー広告ユニットの更新頻度に基づいて更新をトリガーするため、これにより更新の重複を回避できます。
ネイティブ広告メディエーション
ネイティブ メディエーションを実装する際に考慮すべきベスト プラクティスは次のとおりです。
- ネイティブ広告の表示に関するポリシー
- 広告ネットワークごとに独自のポリシーがあります。メディエーションを使用する場合、アプリは、広告を配信したメディエーション対象ネットワークのポリシーに引き続き準拠する必要があります。
- リクエストの作成時に
GADMultipleAdsAdLoaderOptions
クラスを使用しない - 複数のネイティブ広告をリクエストした場合は、Google 広告のみが配信されます。複数のネイティブ広告機能では、メディエーションはサポートされていません。
米国のプライバシー関連州法と GDPR
米国のプライバシー関連州法または一般データ保護規則(GDPR)を遵守する必要がある場合は、米国の州規制の設定または GDPR 設定の手順に沿って、AdMob の「プライバシーとメッセージ」の米国州または GDPR 広告パートナーのリストにメディエーション パートナーを追加します。実装しないと、パートナーがアプリに広告を配信できなくなる可能性があります。
詳しくは、制限付きデータ処理(RDP)を有効にして、Google User Messaging Platform(UMP)SDK を使用して GDPR 同意を取得する方法をご覧ください。