AdMob Integration: A Step-by-Step Guide

How to add AdMob to an Android app correctly — and the single mistake that can stall an entire account's approval.

📁 Monetization⏱ 7 min read

AdMob integration looks simple on paper: add the SDK, create an ad unit, show an ad. In practice, most of the problems developers run into aren't technical — they're policy and configuration mistakes that are easy to make and hard to notice until an app gets stuck in review.

1. Set up your AdMob account before writing any code

Create your AdMob account and link it to the Play Console app entry first. Confirm your account is fully verified — a pending or unverified account will block ad serving regardless of how correct your code is.

2. Create real ad units, and use them correctly

Create separate ad units for each ad format you plan to use (banner, interstitial, rewarded, etc.). Each ad unit has its own ID, and that ID is what goes into your production build.

3. The mistake that stalls approval: test ad unit IDs in production

This is worth calling out on its own, because it's a genuinely common and quiet failure: during development, it's normal to use Google's official test ad unit IDs so you can see sample ads without risking policy violations from clicking your own live ads. The problem is when that test ID is never swapped out before the app is published. The app runs fine, ads show up fine in testing — but the live production build is still serving test ads, which stalls AdMob's review of the account entirely, often without an obvious error message pointing at the cause. Before any release build, explicitly check every ad unit ID against your AdMob dashboard, not just your memory of having "already changed it."

4. Follow placement policies, not just format rules

Google's AdMob and Play policies restrict where and how ads can appear — no ads that overlap navigation controls, no ads placed to cause accidental clicks, and no full-screen ads shown without a clear way to close them. Review the current AdMob policies before finalizing placement, since these rules are updated periodically.

5. Test with real ad units before submitting

Once test IDs are replaced with production IDs, test again. Ads can take some time to start serving on a brand-new ad unit, so don't mistake an empty ad slot immediately after switching IDs for a broken integration.

6. Keep monetization out of the way of core functionality

An interstitial ad that interrupts a core action (like skipping a song mid-playback) creates a worse user experience and a higher risk of accidental clicks, which policies specifically discourage. Placing ads at natural breakpoints — between levels in a game, or when returning to a home screen — tends to perform better and cause fewer issues.

7. Keep your privacy policy in sync with your ad implementation

If your app serves ads, your privacy policy needs to reflect that, including any data collection used for ad personalization. This is checked as part of Play Store review, not just AdMob's own review.

Frequently asked questions

Why is my AdMob account stuck in "pending" review?

This is frequently caused by exactly the issue above — a published app still using a test ad unit ID instead of a real production ID. Double-check every ad unit ID in your live build against your AdMob dashboard.

How many ad units should one app have?

One per ad format actually used in the app (e.g., one banner unit, one interstitial unit). Don't create more than you need — it adds confusion without benefit.

Can I click my own ads to test them?

No — this violates AdMob policy and can get an account suspended. Always use official test ad unit IDs for development and testing.