How Much Does an Ad in an App Make? AdMob Math
By Mehdi Azizi
Published , 8 min
One ad pays the eCPM divided by 1,000. Your revenue is impressions ÷ 1,000 × eCPM, and eCPM shifts with format, country, ATT and consent.
An ad in an app pays the eCPM divided by 1,000: with the $4 eCPM Google uses in its example, one impression is worth $0.004. Your ad revenue is the number of impressions divided by 1,000, multiplied by the eCPM, and that eCPM changes with the format, the country, tracking permission on iOS and consent in Europe. For an AdMob account in euros, Google pays around the 21st of the following month, as long as your balance reaches 70 euros.
To compare with subscriptions, the big picture is in how much an app makes. My iOS apps make money from subscriptions, not ads: this guide relies on the official pages from Google, Apple and the library, reviewed on October 25, 2026.
How much an ad makes: the math
Google defines eCPM as an estimate of the revenue you receive for every 1,000 impressions: (total earnings ÷ impressions) × 1,000. Flip the formula and you get your revenue.
Revenue = impressions ÷ 1,000 × eCPM
Between the request and the impression, the AdMob glossary tracks three metrics:
- Requests: every time your app asks for an ad, even if nothing shows up.
- Match rate: the share of requests that received an ad.
- Show rate: the share of received ads that were actually shown.
An impression counts as soon as one pixel of the ad is visible. An ad that loads but never shows doesn't count as an impression.
AdMob formats and their risks
AdMob Help describes six formats. The table combines that description with Google's and Apple's rules.
| Format | Where it shows | Upside | Risk to watch |
|---|---|---|---|
| Banner | Strip at the top or bottom of screen | Visible without interrupting use | Accidental clicks near a button |
| Interstitial | Full screen, at a natural break | Whole screen, video possible | Visible close button required by Apple |
| Rewarded | Short video chosen in exchange for a bonus | Explicit opt-in from the user | Never money as a reward |
| Rewarded interstitial | Full screen at a transition (beta) | No need for users to ask for it | Intro screen with a "No" option |
| App open | Over the loading screen | Monetizes the launch wait | Avoid on the first few opens |
| Native | Inside content, styled like your app | Blends into the design | "Ad" label required |
On Google's side, banners next to an interactive element are discouraged, and a badly placed interstitial that causes accidental clicks can get ad serving disabled. A rewarded ad requires explicit opt-in and rules out any direct monetary item. Google recommends waiting for several uses before showing an app open ad, and a native ad must be labeled "Ad", "Advertisement" or "Sponsored".
On Apple's side, guideline 2.5.18 requires that an ad interrupting the user be clearly presented as an ad, with a visible close button that's big enough. It limits ads to the main app and requires a way to report an inappropriate ad. Guideline 3.2.2 allows rewarding users for watching an ad, but rejects an app designed mainly to display ads. Guideline 1.3 rules out third-party ads in the Kids category, except in limited cases.
Why their eCPM differs
Each format sells a different space: a strip, a full screen, a video watched by choice. The AdMob help pages I reviewed don't rank them by eCPM, but they note that turning on more formats puts more advertisers in competition. A high-eCPM format seen rarely can make less than a modest format seen on every screen. Your own ranking is in the AdMob report, by format and by country.
What makes eCPM change
Country and platform
Google writes that eCPM depends heavily on the market and the platform: it can go up in one country while dropping in another. I'm not giving you an eCPM-by-country table: the ones floating around come from other apps, other audiences and other time periods.
ATT on iOS
For Apple, showing targeted ads based on data from other companies' apps counts as tracking. You need the user's permission through App Tracking Transparency, otherwise the advertising identifier is all zeros. Google acknowledges that iOS privacy changes can make eCPM fluctuate, without putting a number on it.
Explain your request before Apple's prompt and wait for the answer before loading ads. Locking a feature or offering a bonus in exchange for a yes is banned by guideline 5.1.2.
Consent in Europe
To serve personalized ads, Google requires a certified consent management platform integrated with the IAB's TCF: since January 16, 2024 in the European Economic Area and the UK, and since July 31, 2024 in Switzerland. The European message Google offers inside AdMob is certified. If the user's choices allow neither personalized nor non-personalized ads, AdMob tries limited ads, with no personalization or remarketing.
Fill and seasonality
According to Google's page on revenue drops, a low match rate is often tied to lower revenue, and a low show rate points to an integration or user experience problem in the app. To spot seasonality, Google recommends comparing year over year. A seasonal drop is probably out of your control.
When AdMob pays you, and what Apple takes
For an account in euros, the AdMob payment threshold is 70 euros, and Google never pays below it. The monthly cycle comes down to three dates:
- The 3rd: the previous month's estimated earnings are finalized.
- By the 20th: your payment info is up to date, and your balance reaches the threshold with no payment hold.
- On or around the 21st: the payment is issued, or on the next business day if the 21st falls on a weekend or holiday.
Below the threshold, your balance rolls over and adds up with the next month.
Apple's commission applies to digital goods and services bought through the App Store. The report on the App Store ecosystem, written by Analysis Group for Apple and published in June 2026, lists in-app advertising among commission-free revenue. Apple takes nothing from what AdMob pays you. For subscriptions, Apple's cut is covered in the Small Business Program guide.
Step-by-step example
Every value below is an assumption picked for the exercise. It's neither a measurement from one of my apps nor a market average.
Picture a small game: 500 people open it every day, play two rounds and see an interstitial at the end of each. Take a 90% match rate, an 80% show rate and an eCPM of 3 euros.
| Step | Math | Result |
|---|---|---|
| Requests per day | 500 × 2 | 1,000 |
| Matched | 1,000 × 0.9 | 900 |
| Impressions per day | 900 × 0.8 | 720 |
| Impressions in 30 days | 720 × 30 | 21,600 |
| Monthly revenue | 21,600 ÷ 1,000 × 3 | 64.80 euros |
If the interstitial loads too late and the show rate drops to 50%, you're down to 13,500 impressions, so 40.50 euros.
Say that month is October. The 64.80 euros are finalized on November 3, below the 70-euro threshold: no payment on November 21. With an identical November, the balance hits 129.60 euros in early December, and the payment goes out around December 21. In this scenario, almost three months pass between the first ad shown and the first payment issued.
Integrating AdMob in an Expo app
The react-native-google-mobile-ads library brings AdMob to Expo. The steps follow its Expo documentation.
1. Install the library
Run npx expo install react-native-google-mobile-ads.
2. Declare its plugin
The plugin goes in app.json, with your AdMob app IDs and the tracking request text. The docs add the skAdNetworkItems list, which you need to keep in sync with Google's.
{
"expo": {
"plugins": [
[
"react-native-google-mobile-ads",
{
"androidAppId": "ca-app-pub-xxxxxxxx~xxxxxxxx",
"iosAppId": "ca-app-pub-xxxxxxxx~xxxxxxxx",
"userTrackingUsageDescription": "Your ATT text"
}
]
]
}
}
3. Forget Expo Go
The library contains native code, which Expo Go can't run. You need a development build, for example npx expo prebuild then npx expo run:ios, redone after every plugin option change.
4. Gather consent, then initialize
Google warns that initializing the SDK can already preload ads. Gather consent first, then initialize the SDK only if canRequestAds is true. If gathering fails, the library docs recommend trying anyway: the SDK reuses consent from the previous session.
import mobileAds from "react-native-google-mobile-ads";
import { AdsConsent } from "react-native-google-mobile-ads";
export async function demarrerLesPubs(): Promise<void> {
try {
await AdsConsent.gatherConsent();
} catch (erreur) {
// Previous consent is still valid.
console.warn("Consent not refreshed", erreur);
}
const info = await AdsConsent.getConsentInfo();
if (info.canRequestAds) {
await mobileAds().initialize();
}
}
If you set up an ATT message in AdMob, the consent SDK also handles Apple's tracking request, preceded by an explainer message.
5. Develop with test ads
The docs warn that real ads during development can get your account disabled. Use the TestIds IDs throughout development.
6. Publish your app-ads.txt file
It declares who's allowed to sell your ads, and Google considers it necessary to avoid a significant loss of revenue. Put it at the root of the site in the Marketing URL field of your App Store listing, with a line like google.com, pub-0000000000000000, DIRECT.
7. Declare what the SDK collects
Fill in the form by following App Privacy in App Store Connect.
Ads or subscription for a first app?
In the example, 500 daily players bring in 64.80 euros a month, about 13 cents each. In the general guide, a monthly subscription at 4.49 euros, also a price picked for the example, leaves you about 3.18 euros per subscriber after 20% French VAT and a 15% commission. For ads, that guide uses other assumptions: 3 ads seen per day and a $4 eCPM. Change one assumption and the result changes with it.
Ads make sense when the app gets opened several times a day, like a game: Google presents rewarded ads as ideal for monetizing free games. For a tool used for a few minutes, a subscription is often more realistic. The math is in subscription or one-time purchase for an iOS app, and the setup in RevenueCat and iOS in-app subscriptions.
Pick your model before you code
The iOS Kit has the starter code from my apps, with onboarding, paywall and subscriptions already built, to follow at your own pace.
Before you decide, the free diagnostic tells you what's really blocking your project and sends you my Apple anti-rejection checklist. Setting up a subscription is covered in detail on the iOS in-app subscription page.
Frequently asked questions
How much does an ad in a mobile app make?
The eCPM divided by 1,000. With the $4 eCPM from Google's example, one impression is worth $0.004.
How much does Google AdMob pay?
There's no fixed amount. Your revenue is impressions ÷ 1,000 × eCPM, and eCPM varies with country, format, ATT, consent and season.
What is the AdMob payment threshold?
70 euros for an account in euros. A month's earnings are finalized on the 3rd of the following month, then paid around the 21st if the balance reaches the threshold. Otherwise, they roll over.
Does Apple take a commission on ad revenue?
No. The Analysis Group report for Apple, published in June 2026, lists in-app advertising among commission-free revenue.
How much does an ad in a mobile game make?
The math is the same. A game offers natural breaks for an interstitial, like the end of a level, and bonuses to hand out in exchange for a rewarded video.
Can you test AdMob in Expo Go?
No. The library contains native code, which Expo Go can't run. You need a development build, with test ads.