AdMob メディエーションは、AdMob ネットワーク、第三者広告ネットワーク、AdMob キャンペーンなど、複数のソースからアプリに広告を配信できる機能です。AdMob メディエーションを利用すると、複数のネットワークに広告リクエストを送り、最適なネットワークを配信して、広告掲載率を最大限に高め、収益の拡大を図ることができます。事例紹介
Prerequisites
広告フォーマットにメディエーションを統合するには、その広告フォーマットをアプリに統合する必要があります。
メディエーションを初めてご利用の場合 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 でもバナー広告ユニットの更新頻度に基づいて更新が行われるためです。
リワード広告のメディエーション
デフォルトの報酬値はすべてオーバーライドすることをおすすめします。 AdMob UI で報酬値を設定してください。これを行うには、 メディエーション グループのすべてのネットワークに適用する ] チェックボックスをオンにして、すべてのネットワークで報酬が一貫してくるようにします。一部の広告ネットワークでは、報酬の値やタイプが一切ありません。報酬値をオーバーライドすると、広告を配信した広告ネットワークに関係なく、報酬の内容が一貫します。
AdMob 管理画面での報酬値の設定について詳しくは、リワード広告ユニットを作成するをご覧ください。
ネイティブ広告のメディエーション
ネイティブ メディエーションを実装する際のベスト プラクティスは次のとおりです。
- ネイティブ広告の表示に関するポリシー
- 各広告ネットワークには独自のポリシーがあります。メディエーションを利用する際は、広告を提供するメディエーション対象ネットワークのポリシーを遵守する必要があります。
- リクエスト時に
GADMultipleAdsAdLoaderOptions
クラスを使用しない - 複数のネイティブ広告に対するリクエストは、Google 広告のみを配信します。複数のネイティブ広告機能はメディエーションに対応していません。
CCPA と GDPR
カリフォルニア州消費者プライバシー法(CCPA)または一般データ保護規則(GDPR)を遵守する必要がある場合は、CCPA 設定または GDPR 設定の手順に沿って、プライバシーとメッセージ機能の CCPA または GDPR 広告パートナーのリストにメディエーション パートナーを追加してください。 AdMob そうしないと、アプリに広告が配信されないことがあります。
詳しくは、CCPA 制限付きデータ処理を有効にすると、Google User Messaging Platform(UMP)SDK を使用して GDPR の同意を取得するをご覧ください。