AdMob Mediation Setup: A Step-by-Step Walkthrough
Create ad sources, map ad units, build mediation groups, add adapters and test with ad inspector, with the AdMob menu names as they appear today.
12 min read · Updated
AdMob mediation takes about an hour to set up if your accounts are ready, and most of that hour is spent in other networks' dashboards, not in AdMob. The order is: create the ad source setup, map your ad units, build one mediation group per ad format and platform, then add the adapters to your app and test with ad inspector.
Google's own guide splits it into five steps: create ad units, set up ad sources, map the ad units, create the mediation group, and set up mediation in the app. Skip the last one and nothing changes, because a group with no adapters behind it cannot fill requests.
This walkthrough follows those five steps with the menu names as they appear in AdMob today, plus the parts the help pages scatter around: app-ads.txt, consent partner lists, optimization, A/B tests and the reports you check afterwards. Dollar figures are modelled estimates from our benchmark tables, not promises. If you are still deciding whether to bother, read mediation or a single network first.
What you need before you open the Mediation page
Have these ready, or you will stall halfway through:
- Your app already showing AdMob ads, with the ad units live. The Android integration guide covers that part. Mediation sits on top of working ad units.
- An account with each network you plan to add, with your app registered there and an ad unit created on their side.
- A test device registered in AdMob (Settings > Test devices), so ad inspector will open later.
- A hosted app-ads.txt file. Bidding partners check it, and some will not bid without it.
- A working consent message if you serve users in Europe or the UK.
Start small. Two or three networks beside AdMob is plenty for a first pass, since every extra adapter adds app size and another SDK to keep updated.
Step 1: choose bidding and waterfall ad sources
AdMob treats every ad source as one of two kinds. Bidding sources compete in a real-time auction for each request. Waterfall sources are called one at a time, in order of the eCPM you (or AdMob's optimization) assign. A group can hold both, which AdMob calls a hybrid setup. The theory is in bidding versus waterfall; here is the practical part.
AdMob's bidding list is long and includes AppLovin, Meta Audience Network, Unity, ironSource, Liftoff Monetize, InMobi, Mintegral, Pangle and Moloco, among others. Every one needs a contractual relationship before it can take requests from your account. Some are regional: Google's list notes that Ad Generation supports only Japan domestic apps and that Pangle demand is available in limited regions. The waterfall list is shorter and includes Chartboost, Tapjoy, Unity Ads, InMobi and Liftoff Monetize. The full lists are on Google's help pages for bidding and waterfall ad sources, and they change, so check them before you commit to a network.
Where a network offers both, use bidding as the main route and keep a waterfall instance as a backstop. AdMob's bidding FAQ says the same: one source can be both a bidding and a waterfall source in the same group, and Google recommends using both where possible.
Our best ad networks for apps guide and the AdMob versus AppLovin comparison help with picking which ones deserve your first slot.
Step 2: set up each ad source in your account
Do this once per network, outside any group.
Bidding sources
- In AdMob, click Mediation in the sidebar, then Bidding sources, then Set up ad source.
- Pick the network and click Next.
- If the source needs secure signal sharing, accept the Ads Data Processing Terms. You only do this once, across all sources.
- Complete the partnership step. Depending on the network, that means signing an agreement on its website or following its instructions. If you already have one, click "I already have a partnership agreement".
- Click Acknowledge & agree for the bidding terms, then add ad unit mappings or click Skip and do it later.
The partnership shows as Pending until the network approves it, then Active. Once the network approves you, it emails you its seller information. Add those lines to your app-ads.txt file straight away. Skipping this is the classic reason a new bidder shows lots of bid requests and almost no wins. The app-ads.txt guide for Google Play walks through the file itself.
Waterfall sources
Go to Mediation > Waterfall sources > Set up ad source, choose the network and click Next. If the network supports optimization you will be asked for its credentials (usually an API key or report key from the network's dashboard). Tick the authorization box that lets AdMob read data from your network account and click Save. You are only asked once. Then add mappings, or skip and come back.
Credentials matter even if you never turn optimization on. AdMob's help page says they are needed to show that network's reporting data inside your AdMob reports.
Step 3: map your ad units
A mapping ties one AdMob ad unit to one ad unit on the partner's side. It holds the partner's identifiers, such as an app ID or a slot ID, and the details differ network by network. Google's Map your ad units page explains the rest.
A few rules that save time:
- Bidding sources allow one mapping per ad unit. Some bidders need no mapping at all.
- Each waterfall instance in a group needs its own mapping. To call the same network twice, create a second ad unit in that network's dashboard first.
- One mapping can be linked to up to 10 mediation groups.
- The status column shows "Missing mapping" or "Incorrect mapping" when something is off. The right values are almost always sitting in your account with the network, so copy them again rather than guess.
Step 4: create the mediation group
Here is the click path from Google's create a mediation group page:
- Mediation in the sidebar, then Create mediation group.
- Choose the ad format and the platform (Android or iOS), then Continue. You need a separate group for every format and every platform.
- Give it a name you will recognise in a table of twenty groups later, such as "Android rewarded, all countries".
- Choose locations to target or exclude. On iOS you can also target by IDFA availability.
- Click Add ad units and tick the units this group should control. Click Done.
- In the Bidding ad sources table, click Add ad source, select the network and choose a mapping. Optionally set a bidding eCPM floor.
- In the Waterfall ad sources table, click Add ad source, select the network, decide whether to leave optimization on, enter a manual eCPM, then choose a mapping.
- Click Save.
The AdMob Network is added to bidding automatically on new groups. Leave it there: AdMob's help says the AdMob Network must be one of your bidding sources for bidding to work.
How groups are matched
AdMob compares each request with the targeting of your groups. If one matches, that group fills the request. If none matches, the built-in AdMob (default) group fills it straight from the AdMob Network. Groups do not waterfall into each other.
When several groups match the same request, priority decides, and priority 1 beats priority 2. The number cannot exceed how many groups you have: with five groups, a priority of 8 becomes 5. The cleanest way to avoid conflicts is to exclude countries, platforms or formats from the groups that should not catch them. A typical layout is one group for your top countries with all your networks, and a second catch-all group with a shorter list for everywhere else.
Waterfall order, optimization and floors
For waterfall sources you enter a manual eCPM. If the source supports optimization, that number only orders the source until AdMob has gathered enough history. After that, AdMob replaces it with an optimized eCPM, updated twice a day and calculated per country. For a source with optimization off, your manual number fixes its position permanently, which means you have to keep it honest yourself.
To turn optimization on later: open the group, click the edit icon next to the source's eCPM in the Waterfall ad sources table, switch on eCPM optimization, enter a starting eCPM, add the credentials and click Confirm. The status column then reads "Optimization in progress", which can last up to three days. Google's page on optimizing waterfall ad sources lists the details.
Almost every waterfall network in AdMob's list supports optimization, and leaving it on is the right default. Manual eCPMs go stale fast.
Floors work differently by source type. AdMob's floor documentation says eCPM floors apply to the AdMob Network and your bidding sources on a best-effort basis, but not to third-party waterfall sources. A bidding floor set inside a group overrides the ad unit floor for bidding traffic in that group. If you want to raise floors, read choosing floor prices first, because a floor trades fill for price and the trade is not always a good one.
Step 5: add adapters and initialize in the app
The dashboard work does nothing until the app contains each network's adapter. Google keeps a page per partner under its mediation developer guides, for Android, iOS and Unity. Each lists the Gradle or CocoaPods line, any manifest or Info.plist changes, and the exact ad source names to pick in AdMob.
On Android, the AppLovin page shows the shape. These versions are what the page listed when we checked; use whatever it lists now.
dependencies {
implementation("com.google.android.gms:play-services-ads:25.5.0")
implementation("com.google.ads.mediation:applovin:13.6.4.2")
}
Google's docs also note that the older Google Mobile Ads SDK is in maintenance mode, and point to a newer Next-Gen SDK. If you are starting a project, check which one the current pages assume before copying dependency lines.
Three code-side habits matter more than the Gradle line:
- Wait for initialization. Initialize the SDK and let it finish before loading ads, so every network can take part in the first request. Bidding adapters in particular must be initialized explicitly.
- Pass an Activity when creating ad objects. Some networks need it to serve.
- Turn off banner refresh in partner dashboards. AdMob refreshes banners itself, and Google's guide says to switch the partner-side refresh off.
Logging adapter status at startup shows quickly which adapters failed to start:
MobileAds.initialize(this) { status ->
for ((adapter, s) in status.adapterStatusMap) {
Log.d("Ads", "$adapter: ${s.description}, ${s.latency} ms")
}
}
For native ads, Google's guide says to call loadAd() and not loadAds(), because loadAds() serves only Google ads.
app-ads.txt and consent partners
Two settings catch people out because they live outside the mediation screens.
app-ads.txt. Add every network in your stack, AdMob included. AdMob's crawler can take a few days to pick up changes, and up to a month on low-traffic apps. Paste into a plain-text editor, since invisible formatting characters cause the file to be ignored.
Consent partner lists. For users in Europe and the UK, open Privacy & messaging, click the settings icon on the European regulations message card, and use "Review your ad partners". Add your mediation partners there. AdMob allows up to 700 ad partners, and if you go over, the changes will not save. There is also an option to add ad sources from your mediation groups automatically. The same applies to the US states regulations partner list. A partner missing from these lists can fail to serve, which looks exactly like low fill. Our consent messages guide covers the wider setup.
Test with ad inspector before you ship
Ad inspector ships inside the Google Mobile Ads SDK (Android 20.0.0 or later) and opens only on registered test devices. Register yours under Settings > Test devices in AdMob, give it a name and its advertising ID, and optionally pick a gesture (shake or flick twice) to open the inspector. Allow up to an hour for test mode to take effect. Note that AdMob's test mode only covers AdMob Network ads; clicking live ads from other sources can trigger a policy violation.
To open it from code, after initialization:
MobileAds.openAdInspector(this) { error ->
// error is non-null only if the inspector closed because of a problem
}
What to look at:
- Adapters tab. Lists each third-party adapter and its status. An adapter that failed to initialize is the most common cause of one network never showing.
- Ad units tab. Tap a unit to open its SDK request log: which sources were called before a fill, which bidders took part (View all bidders, winner first), and the error for each no-fill.
- Single ad source test. Switch it on at the bottom of the screen, pick one source, force-close and reopen the app, then check the request log. Every request is sent to that source, even if it is not configured for the unit, in which case you get a "No fill" error saying so. The test expires after 60 minutes.
Test each network one at a time on each format. It is dull, and it finds the missing mapping before your users do.
A/B test changes and read the results
Do not edit a live group on a hunch. AdMob's mediation A/B tests compare your current group (Variant A) with a modified copy (Variant B). Hover over the group, click the More icon, choose Set up A/B test, name it and use the slider to give Variant B between 1% and 50% of users. You can test adding or removing a source, changing manual eCPMs, switching optimization, changing how many times a source is called, or a different bidding floor.
The rules from Google's A/B testing page are worth remembering. The test needs at least 10,000 ad requests before it can call a result. It runs 90 days by default, and Google suggests at least two weeks. You cannot change the allocation, or edit either variant or the group, until it stops. Change one thing at a time.
For the numbers, open the Ads Activity report and filter by Ad source or Mediation group. The columns that matter are Requests, Match rate, Show rate, Bids in auction, Winning bids (%), Observed eCPM and Est. earnings. Observed eCPM appears only for sources with optimization on. Reading the AdMob report explains how to tell a fill problem from a price problem, and our fill rate explainer covers match rate and show rate.
What mediation can add: a worked example
This is an example with stated assumptions, using our benchmark tables. Take 1,000,000 interstitial requests a month from a Tier 1 Android audience. AdMob alone: our table has 88% fill at about $8.00 eCPM, which is 880,000 impressions and about $7,040.
Now add AppLovin as a bidder, whose benchmark is about $9.80 and 90% fill. Assume (these are our assumptions, not measurements) combined fill reaches 96%, and AppLovin wins 40% of the impressions:
| Source | Impressions | eCPM | Revenue |
|---|---|---|---|
| AppLovin (assumed 40% of wins) | 384,000 | $9.80 | $3,763 |
| AdMob (assumed 60% of wins) | 576,000 | $8.00 | $4,608 |
| Total | 960,000 | $8,371 |
That is about $1,330 more, or 19%. Real results will differ with your audience, and countries outside Tier 1 pay far less, so plug your own mix into the AdMob revenue calculator. The eCPM explainer covers the arithmetic.
Common questions
How many mediation groups do I need?
One per ad format per platform, as a minimum. A banner, an interstitial and a rewarded unit on both Android and iOS means six groups. Add extra groups only when a region genuinely needs a different network mix.
Do I still get paid by AdMob?
For AdMob Network ads, yes. Other networks vary. AdMob's bidding FAQ says most bidding revenue is paid through AdMob while some sources pay you directly, and waterfall networks usually pay on their own schedule and thresholds. Check each network's terms.
My new network shows requests but no impressions. Why?
Work through it in order: adapter status in ad inspector, mapping status in AdMob, the partner's app-ads.txt lines, then the consent partner list. A brand-new bidder also has no history with your app, so give it a few days before judging it.
Should I move to AppLovin MAX instead?
Maybe, but you do not have to choose in a hurry. MAX is a separate mediation layer with its own dashboard. Our AppLovin MAX guide and the mediation layer comparison cover the trade-offs.
What to do next
Open Mediation in AdMob and check whether you already have groups you forgot about, since the AdMob (default) group handles anything unmatched. Build your first group on the format that earns the most, usually rewarded or interstitial, with AdMob plus one bidder. Test it with ad inspector on both a Wi-Fi and a mobile connection, ship it, then leave it alone for two weeks before you add anything else.
If a drop in eCPM follows, why is my eCPM low gives a diagnostic order to follow.