Stay organized with collections
Save and categorize content based on your preferences.
AdMob Mediation is a feature lets you serve ads to your apps from
multiple sources, including the AdMob Network and third-party ad sources, in
one place. AdMob Mediation helps maximize your fill rate and increase your
monetization by sending ad requests to multiple networks to verify you find the
best available network to serve ads.
Case study.
Prerequisites
Before you can integrate mediation for an ad format, you need to integrate that
ad format into your app:
For bidding:
Google Mobile Ads SDK 7.53.1
or higher.
Initialize
Google Mobile Ads SDK
The quick start guide shows you how to initialize the
Google Mobile Ads SDK
.
During that initialization call, mediation adapters also
get initialized. It is important to wait for initialization to complete before
you load ads in order to verify full participation from every ad network on the
first ad request.
The following sample code shows how you can check each adapter's initialization
status prior to making an ad request.
Each ad format class has a GADResponseInfo property that contains
adNetworkClassName which returns the class name of the ad network for the
current ad. adNetworkClassName only has a value once an ad successfully
loads. The following code shows you how to get that information for banner ads.
Swift
funcadViewDidReceiveAd(_bannerView:BannerView){print("Banner adapter class name: \(bannerView.responseInfo.adNetworkClassName)")}
Objective-C
-(void)adViewDidReceiveAd:(GADBannerView*)bannerView{NSLog(@"Banner adapter class name: %@",bannerView.responseInfo.adNetworkClassName);}
Make sure to disable refresh in all third-party ad source UIs for banner ad
units used in AdMob Mediation. This prevents a double refresh since
AdMob also triggers a refresh based on your banner ad unit's
refresh rate.
Use native ads with AdMob Mediation
The following are some best practices to consider when implementing native ads
in AdMob Mediation.
Native ad presentation policy
Each ad network has its own policies. When using mediation, it's important to
remember that your app still needs to abide by the policies of the mediated
network that provided the ad.
Avoid using the GADMultipleAdsAdLoaderOptions class when making requests
Requests for multiple native ads only serve Google ads. The multiple native
ads feature does not support mediation.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-26 UTC."],[[["\u003cp\u003eAdMob Mediation lets you maximize ad revenue by serving ads from multiple sources, including AdMob and third-party networks, all in one place.\u003c/p\u003e\n"],["\u003cp\u003eBefore integrating mediation, ensure you have the necessary account permissions and have integrated the desired ad format into your app.\u003c/p\u003e\n"],["\u003cp\u003eInitialize the Mobile Ads SDK to enable mediation adapters and ensure all ad networks can participate in ad requests.\u003c/p\u003e\n"],["\u003cp\u003eYou can identify the winning ad network by checking the \u003ccode\u003eadNetworkClassName\u003c/code\u003e property of the \u003ccode\u003eGADResponseInfo\u003c/code\u003e object.\u003c/p\u003e\n"],["\u003cp\u003eFor compliance with privacy regulations like GDPR and U.S. state privacy laws, remember to add your mediation partners in AdMob's Privacy & Messaging settings.\u003c/p\u003e\n"]]],["AdMob Mediation serves ads from multiple sources, maximizing fill rates. Before setup, verify account permissions and integrate desired ad formats (banner, interstitial, native, rewarded). Initialize the Mobile Ads SDK and wait for adapter initialization. Retrieve the winning ad network's class name via `GADResponseInfo`. For banner ads, disable third-party ad refresh. Native ads should avoid `GADMultipleAdsAdLoaderOptions`. Configure mediation partners in AdMob's Privacy & messaging for U.S. states privacy laws and GDPR compliance.\n"],null,["# Get started\n\nAdMob Mediation is a feature lets you serve ads to your apps from\nmultiple sources, including the AdMob Network and third-party ad sources, in\none place. AdMob Mediation helps maximize your fill rate and increase your\nmonetization by sending ad requests to multiple networks to verify you find the\nbest available network to serve ads.\n[Case study](//admob.google.com/home/resources/cookapps-grows-ad-revenue-86-times-with-admob-rewarded-ads-and-mediation/).\n\n\nPrerequisites\n-------------\n\n| **Important:** Verify that you have the necessary account permissions to complete the mediation configuration. These permissions include access to inventory management, app access, and privacy and messaging features. See [Manage user access to your\n| account](//support.google.com/admob/answer/2784628) for details.\n\nBefore you can integrate mediation for an ad format, you need to integrate that\nad format into your app:\n\n- [Banner Ads](/admob/ios/banner)\n- [Interstitial Ads](/admob/ios/interstitial)\n- [Native Ads](/admob/ios/native)\n- [Rewarded Ads](/admob/ios/rewarded)\n- [Rewarded Interstitial\n Ads](/admob/ios/rewarded-interstitial)\n\nNew to mediation? Read\n\n[Overview of AdMob Mediation](//support.google.com/admob/answer/3063564).\n\nFor bidding:\n\nGoogle Mobile Ads SDK 7.53.1\nor higher.\n\nInitialize\nGoogle Mobile Ads SDK\n--------------------------------\n\nThe quick start guide shows you how to [initialize the\nGoogle Mobile Ads SDK](/admob/ios/quick-start#initialize_the_mobile_ads_sdk).\nDuring that initialization call, mediation adapters also\nget initialized. It is important to wait for initialization to complete before\nyou load ads in order to verify full participation from every ad network on the\nfirst ad request.\n| **Important:** Bidding adapters require you to explicitly initialize Google Mobile Ads SDK .\n\nThe following sample code shows how you can check each adapter's initialization\nstatus prior to making an ad request. \n\n### Swift\n\n import GoogleMobileAds\n\n @UIApplicationMain\n class AppDelegate: UIResponder, UIApplicationDelegate {\n\n func application(_ application: UIApplication,\n didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -\u003e Bool {\n\n MobileAds.shared.start { status in\n // Optional: Log each adapter's initialization latency.\n let adapterStatuses = status.adapterStatusesByClassName\n for adapter in adapterStatuses {\n let adapterStatus = adapter.value\n NSLog(\"Adapter Name: %@, Description: %@, Latency: %f\", adapter.key,\n adapterStatus.description, adapterStatus.latency)\n }\n // Start loading ads here...\n }\n\n return true\n }\n\n }\n\n### Objective-C\n\n @import GoogleMobileAds;\n\n @implementation AppDelegate\n\n - (BOOL)application:(UIApplication *)application\n didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n\n GADMobileAds \\*ads = \\[GADMobileAds sharedInstance\\];\n \\[ads startWithCompletionHandler:\\^(GADInitializationStatus \\*status) {\n // Optional: Log each adapter's initialization latency.\n NSDictionary \\*adapterStatuses = \\[status adapterStatusesByClassName\\];\n for (NSString \\*adapter in adapterStatuses) {\n GADAdapterStatus \\*adapterStatus = adapterStatuses\\[adapter\\];\n NSLog(@\"Adapter Name: %@, Description: %@, Latency: %f\", adapter,\n adapterStatus.description, adapterStatus.latency);\n }\n // Start loading ads here...\n }\\];\n return YES;\n }\n\n @end\n\nKnow which ad network wins\n--------------------------\n\nEach ad format class has a `GADResponseInfo` property that contains\n`adNetworkClassName` which returns the class name of the ad network for the\ncurrent ad. `adNetworkClassName` only has a value once an ad successfully\nloads. The following code shows you how to get that information for banner ads. \n\n### Swift\n\n func adViewDidReceiveAd(_ bannerView: BannerView) {\n print(\"Banner adapter class name: \\(bannerView.responseInfo.adNetworkClassName)\")\n }\n\n### Objective-C\n\n - (void)adViewDidReceiveAd:(GADBannerView *)bannerView {\n NSLog(@\"Banner adapter class name: %@\", bannerView.responseInfo.adNetworkClassName);\n }\n\nRefer to [Retrieving Information about the Ad Response](/admob/ios/response-info)\nfor details.\n\n\u003cbr /\u003e\n\nUse banner ads with AdMob Mediation\n-----------------------------------\n\nMake sure to disable refresh in all third-party ad source UIs for banner ad\nunits used in AdMob Mediation. This prevents a double refresh since\nAdMob also triggers a refresh based on your banner ad unit's\nrefresh rate.\n\nUse native ads with AdMob Mediation\n-----------------------------------\n\nThe following are some best practices to consider when implementing native ads\nin AdMob Mediation.\n\nNative ad presentation policy\n: Each ad network has its own policies. When using mediation, it's important to\n remember that your app still needs to abide by the policies of the mediated\n network that provided the ad.\n\nAvoid using the `GADMultipleAdsAdLoaderOptions` class when making requests\n: Requests for multiple native ads only serve Google ads. The multiple native\n ads feature does not support mediation.\n\nUS states privacy laws and GDPR\n-------------------------------\n\nIf you need to comply with the [U.S. states privacy\nlaws](//support.google.com/admob/answer/9561022) or [General Data Protection\nRegulation (GDPR)](//support.google.com/admob/answer/7666366), follow the\nsteps in [US state regulations\nsettings](//support.google.com/admob/answer/10860309) or [GDPR\nsettings](//support.google.com/admob/answer/10113004#adding_ad_partners_to_published_gdpr_messages) to add your\nmediation partners in AdMob Privacy \\& messaging's\nUS states or GDPR ad partners list. Failure to do so can lead to partners\nfailing to serve ads on your app.\n\nLearn more about enabling [restricted data processing\n(RDP)](/admob/ios/privacy/us-states) and obtaining GDPR consent with the\n[Google User Messaging Platform (UMP) SDK](/admob/ios/privacy)."]]