Google AdMob: The Complete Guide to Monetizing Your Mobile App (2026)
Turn your free app into a revenue engine. Everything from account setup and ad formats to eCPM optimization, mediation, and Flutter integration — in one guide.
Over 72% of mobile app users prefer free apps with ads over paying upfront. That means displaying ads isn’t just acceptable — it’s what your users expect. Google AdMob is the world’s most widely used mobile ad network, connecting your app to millions of Google advertisers and delivering targeted ads that match your users’ interests.
But there’s a massive gap between developers who drop in a banner ad and hope for the best — and those who strategically deploy multiple formats, use mediation, and consistently earn $1,000–$10,000+ per month from the same app. This guide shows you exactly how to close that gap.
What Is Google AdMob?
Google AdMob (short for Advertising on Mobile) is Google’s free mobile advertising platform that enables app developers to generate revenue by displaying ads inside their apps. It connects your app to Google’s massive advertiser network — the same ecosystem behind Google Ads — ensuring a high fill rate and competitive eCPMs.
🔵 AdMob works on a real-time bidding (RTB) model — advertisers compete in milliseconds to show their ads to your users. The highest bidder wins each impression, maximizing your revenue per ad shown. Integrating AdMob mediation opens this competition to additional ad networks beyond Google, increasing eCPM further.
AdMob officially supports Android, iOS, Flutter, Unity, and C++. It integrates natively with Firebase Analytics, giving you a unified view of user behavior and ad performance in one dashboard.
AdMob Ad Formats Explained — Which to Use and When
Choosing the right ad format for the right moment in your user’s journey is the single biggest lever for maximizing AdMob revenue. Here are the four core formats:
Banner Ads
Small rectangular ads anchored to the top or bottom of the screen. Always visible during app use. Low friction — user doesn’t need to interact.
Interstitial Ads
Full-screen ads displayed at natural transition points (level complete, between screens). High CPM. Must show at breaks — never interrupt active use.
Rewarded Video Ads
User opts in to watch a 15–30 second video in exchange for in-app rewards (lives, coins, hints). Highest engagement and eCPM of all formats.
Native Ads
Fully customizable ads that match your app’s look and feel. Shown inside content feeds or lists. Highest user acceptance when done well.
| Ad Format | Avg. eCPM (Tier 1) | User Experience | Best Use Case | Revenue Potential |
|---|---|---|---|---|
| Rewarded Video | $10–$30+ | Opt-in, positive | Games, after completing tasks | Highest |
| Interstitial | $5–$15 | Moderate — must be timed well | Level transitions, screen changes | High |
| Native | $2–$8 | Non-intrusive when done right | Content feeds, news apps, lists | Medium |
| Banner | $0.50–$2 | Low friction, always visible | Utility apps, passive backgrounds | Low–Passive |
💡 Best practice: Don’t choose just one format. The highest-earning apps combine rewarded video (primary) + interstitials (at transitions) + banners (passive background revenue). This “stacked monetization” approach maximizes revenue per session without harming retention — if timed correctly.
How to Set Up Google AdMob — Step by Step
Create Your AdMob Account
AdMob is free to use. Sign up at admob.google.com using your Google account.
- Sign in at admob.google.com with your Google/Gmail account
- Select your country and preferred currency (cannot be changed later)
- Complete your account details and accept the AdMob terms of service
- Link your AdMob account to Firebase for enhanced analytics
- AdMob only pays developers over 18 years old — ensure your account meets this requirement
Register Your App in AdMob
Add your Android or iOS app to AdMob to get your App ID — required for all SDK integrations.
- In AdMob dashboard: go to Apps → Add App
- Select platform (Android or iOS)
- If already published: search for your app on Play Store / App Store and link it
- If not yet published: manually enter your app name and platform
- Copy your App ID (format: ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX) — you’ll need this in your code
Create Ad Units for Each Placement
An ad unit represents a specific ad placement in your app. Create a separate ad unit for each placement — this enables individual performance tracking and optimization.
- In AdMob: go to Apps → [Your App] → Ad Units → Add Ad Unit
- Select the ad format (Banner, Interstitial, Rewarded, or Native)
- Give it a descriptive name: e.g.,
banner_home_screen,rewarded_after_level - Copy each Ad Unit ID (format: ca-app-pub-XXXXXXXX/XXXXXXXXXX)
- Always use test ad unit IDs during development — using live IDs before launch risks policy violations
- Name ad units systematically from day one — you’ll thank yourself when you have 20+ placements
Set Up Payments & Verify Your Identity
AdMob pays monthly once you reach the $100 threshold. Complete your payment setup before your app goes live.
- Go to Payments → Payments info in AdMob
- Add your bank account details or select wire transfer
- Complete tax form submission (W-8BEN for non-US developers)
- Verify your address using the PIN sent by post (takes 2–3 weeks)
- Payment is processed approximately 21 days after the end of each calendar month
- You must reach $100 in verified earnings before the first payment is issued
AdMob Integration — Flutter, Android & iOS
AdMob officially supports Flutter via the google_mobile_ads package. This lets you implement ads for both iOS and Android from a single codebase — perfectly aligned with Flutter’s cross-platform philosophy.
🔵 Official documentation: developers.google.com/admob/flutter/quick-start · Package: pub.dev/packages/google_mobile_ads
Step 1 — Add the dependency (pubspec.yaml)
dependencies:
google_mobile_ads: ^5.1.0 # Always use the latest stable version
flutter:
sdk: flutterStep 2 — Add App IDs to your platform configs
Android — in android/app/src/main/AndroidManifest.xml inside <application>:
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX"/>iOS — in ios/Runner/Info.plist:
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX</string>Step 3 — Initialize AdMob in main.dart
import 'package:google_mobile_ads/google_mobile_ads.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await MobileAds.instance.initialize(); // Initialize SDK
runApp(MyApp());
}Step 4 — Load and Show a Rewarded Ad (highest eCPM)
RewardedAd? _rewardedAd;
void _loadRewardedAd() {
RewardedAd.load(
adUnitId: 'ca-app-pub-3940256099942544/5224354917', // Test ID
request: const AdRequest(),
rewardedAdLoadCallback: RewardedAdLoadCallback(
onAdLoaded: (ad) {
_rewardedAd = ad;
// Show ad when user taps "Watch for reward"
ad.show(onUserEarnedReward: (_, reward) {
// Grant the reward (coins, lives, etc.)
});
},
onAdFailedToLoad: (err) => print('Failed: $err'),
),
);
}💡 Always use test ad unit IDs during development. Google provides official test IDs at developers.google.com/admob/android/test-ads. Using your live ad unit IDs before app approval risks invalid activity detection and account suspension.
MobileMerit’s Flutter developers implement AdMob, mediation, and revenue optimization as part of every app build.
Understanding eCPM, Revenue & AdMob Payouts
eCPM (effective cost per mille) is the most important AdMob metric — it measures your earnings per 1,000 ad impressions. Your total revenue = (Total Impressions ÷ 1,000) × eCPM.
Geographic Revenue Tiers — Where Your Users Come From Matters Most
User geography is the single biggest variable in AdMob revenue. An app with 80% Tier 1 traffic earns roughly 3–5× more than the same app with mostly Tier 3 traffic — because advertisers pay far more to reach users in high-income markets.
⚠ Strategy note: If your app primarily serves Tier 3 markets, focus aggressively on session length and rewarded ad frequency rather than just fill rate. Mediation becomes even more critical at lower eCPMs — every fraction counts. Consider targeting your marketing towards Tier 1 countries to shift your audience mix over time.
AdMob Mediation — Earn 20–40% More by Using Multiple Ad Networks
AdMob alone doesn’t always win every auction. Mediation lets you connect multiple ad networks to your app and serve whichever network pays the highest eCPM for each impression — increasing your total revenue by 20–40% on average.
💡 AdMob supports two mediation models: Waterfall (sequential bidding — networks are tried in order of historical eCPM) and Open Bidding / Real-Time Bidding (all networks bid simultaneously in a live auction). Open Bidding typically outperforms waterfall by 10–20% but requires eligible partner networks.
These are the most widely used ad networks compatible with AdMob mediation:
Privacy & Consent Management — Required Since January 2024
Since January 16, 2024, Google requires all AdMob publishers to use a Google-certified Consent Management Platform (CMP) that supports the IAB’s Transparency and Consent Framework (TCF 2.2). Without a compliant CMP, Google will stop serving personalized ads in the EEA and UK — dramatically reducing your eCPM.
How to Implement Consent with Flutter
// Add UMP (User Messaging Platform) SDK — Google's free certified CMP
import 'package:google_mobile_ads/google_mobile_ads.dart';
ConsentRequestParameters params = ConsentRequestParameters();
ConsentInformation.instance.requestConsentInfoUpdate(
params,
() async {
// Load and show the consent form if required
if (await ConsentInformation.instance.isConsentFormAvailable()) {
ConsentForm.loadAndShowConsentFormIfRequired((formError) {
// Initialize AdMob AFTER consent is obtained
MobileAds.instance.initialize();
});
}
},
(error) => print('Consent error: ${error.message}'),
);Revenue Optimization Tips — From Basic to Advanced
Time Ads to Natural Moments
Show interstitials at transition points only — never interrupt active gameplay or reading. Users shown ads at the wrong moment churn at 3× the rate.
Prioritize Rewarded Ads
Design meaningful rewards (extra lives, premium content, more attempts). Users who opt into rewarded ads have higher retention and LTV than those who skip.
Preload Ads in Advance
Load your next ad as soon as the current one completes. Never wait until the moment of display to start loading — this creates a poor experience and kills fill rates.
Use Firebase A/B Testing
Link AdMob to Firebase and run A/B tests on ad frequency, placement, and format mix. Small optimizations (e.g., rewarded at session end vs mid-session) can lift revenue 15–30%.
Set eCPM Floors
Use AdMob’s eCPM floor feature to reject impressions below a minimum value. This prevents low-quality ads from filling inventory that could earn more from a premium network.
Monitor Invalid Activity
Never click your own ads. Never incentivize users to click (other than rewarded format). Invalid activity detection can suspend your AdMob account permanently with no appeal.
Common AdMob Mistakes That Kill Revenue (or Your Account)
☠
Clicking Your Own Ads
Instant permanent account ban. Google’s invalid activity detection is extremely sophisticated. Never test your app by clicking ads — even accidentally.
🚫
Using Live Ad IDs During Testing
Loading live ads during development pollutes your data with invalid impressions. Always use Google’s official test ad unit IDs until your app is live.
⚠
Placing Ads Next to Buttons
Banner ads placed adjacent to tap targets cause accidental clicks. This triggers invalid activity detection and can get your account limited. Keep a 50dp buffer around interactive elements.
📉
Only Using Banner Ads
Banners alone earn 10–20× less than a strategic combination of rewarded + interstitial + banner. Most developer underearn because they never implement higher-eCPM formats.
🔐
Skipping Consent Management
Not implementing a CMP for EEA/UK users means Google serves non-personalized ads — reducing your European eCPM by 40–60%. Implement Google’s UMP SDK before launch.
📊
Never Checking AdMob Reports
AdMob’s reports reveal which placements earn the most, which countries convert best, and where fill rate drops. Review weekly and iterate. Revenue optimization is ongoing, not one-and-done.
MobileMerit integrates AdMob, mediation, and consent management into every Flutter and Android app we build.
Frequently Asked Questions About Google AdMob
Answers to the most common AdMob questions — optimized for Google’s People Also Ask and AI search engines.
google_mobile_ads to pubspec.yaml, add your App ID to AndroidManifest.xml and Info.plist, then call MobileAds.instance.initialize() in main.dart. Always use test ad unit IDs during development.flutter pub add google_mobile_ads.Ready to Monetize Your App with AdMob?
MobileMerit builds Flutter and Android apps with AdMob, mediation, and consent management built in from day one — so you start earning from your first user.