How In App Advertising Revenue Works for App Developers 2026

In-app advertising revenue is the money an app earns by showing ads supplied by third-party ad networks, paid per impression, per click, or per completed user action. That is how in app advertising revenue works in a single sentence: you bundle an ad SDK into your app, and every time a user reaches a placement the network runs a real-time auction, fills the slot with the highest bidding ad, and credits your account against an eCPM rate. You are renting attention, and the advertiser pays for it.

That is the short version, and it is worth sitting with for a minute because most confusion about low earnings comes from not knowing which of those steps is failing. A developer staring at a low eCPM usually assumes the problem is the ad network, when the real cause is more often geography, fill rate, or an ad type that nobody wants to tap.

Below is the full mechanism. Understanding how in app advertising revenue works comes down to a chain of parties: advertisers set a budget and a bid, their demand-side tooling competes for the slot, your ad network wins that competition and returns a creative, your app displays it, and the network records the event and pays you a share of what the winning bid was worth.

Table of Contents

What Is In-App Advertising Revenue?

What Is In-App Advertising Revenue?

In-app advertising revenue is any money your app earns by displaying advertising inside your app, whether that is a banner along the bottom of a feed, a full-screen video between levels, or a rewarded ad a user opts into for a bonus. The defining feature is that the payment comes from an advertiser buying access to your user, not from the user paying you directly.

That is the line that separates ads from every other model. In-app purchases and subscriptions are direct payments from the user, so a 0.9 percent conversion rate is enough to make them meaningful. Sponsored content, affiliate commissions, and data licensing are direct or near-direct relationships with a known counterparty. Ads are the only model where the person paying you is invisible to your user, and that distance is exactly where the confusion lives.

Nothing in that chain is mysterious once you can name the parties. The parts that trip people up are the auction itself, which decides your eCPM in milliseconds, and the filtering steps that decide which impressions get paid at all. Both are covered below.

Developers on developer forums describe the learning curve in exactly these terms. One recurring thread asks where the money comes from and who pays it, and another asks why the same app earns radically different amounts in different months. Both questions are answered by the same pipeline, which is where we go next.

How Does In-App Advertising Revenue Work?

The process is a pipeline, and each stage can fail independently. Knowing which stage broke is the single most useful diagnostic skill in app monetization.

  1. You integrate an ad SDK or SSP. The network’s software development kit goes into your app build. It handles rendering, user-agent signals, and reporting callbacks.
  2. The user reaches a placement. Something triggers an ad request: a screen loads, a timer elapses, a game level ends, or a rewarded button is tapped.
  3. An auction runs. In the milliseconds that follow, the network asks its sources of demand what each will pay for this specific impression. Most traffic is now programmatic, so this is a real-time bidding process rather than a fixed rate card.
  4. The impression is filled. The winning creative and its price are returned to your app and rendered. If nothing bids above your floor price, the slot stays empty. That is an unfilled request, and it earns nothing.
  5. An event is recorded. The SDK reports the impression, and possibly a click or a completed view, back to the network. Invalidation and fraud checks run here, and rejected events are removed from your billable total.
  6. You get paid. Valid events are aggregated into eCPM figures, filtered against your mediation settings, and swept into your account once you pass the network’s payment threshold.

The step-by-step mechanics of how in app advertising revenue works

Two ideas do most of the work in that list. The first is that impressions are inventory sold one at a time. Your app is not being paid a fixed rate per ad; it is being paid whatever a specific advertiser bid for that specific impression, in that specific moment, for a user in a specific country.

The second is that a second-price auction is common. The winning bidder pays roughly what the runner-up bid, plus a small amount, rather than the full amount of their own bid. This exists to stop bidders from bidding wildly high to win at any cost, and it means your revenue sits a little below the headline bid you will see in your own network’s reporting.

Everything else follows from those two points. A higher eCPM means richer bidders for your particular inventory at that particular time. A lower fill rate means some requests went unfilled because nobody cleared your floor. Which of those two you should chase depends on your traffic, and we get to that later.

Mediation, waterfall and header bidding

Most serious apps do not use a single network. They use mediation, which means one SDK sits in your app and asks several networks in turn, choosing the best outcome for each impression. This matters because networks have different strengths by region, format and device.

A waterfall takes those networks in a fixed order and takes the first acceptable bid. It is simple and easy to reason about, but the ordering has to be maintained by hand, and a weak network placed first quietly wastes impressions. In-app bidding, sometimes called header bidding and often implemented through a Prebid-style setup, sends the request to every source simultaneously and takes the best bid on the open auction instead. It usually wins on revenue, at the cost of more integration work.

What Counts as a Billable Ad Event?

Only some of what happens in your app is money. The distinction matters because dashboards show several very different numbers and it is easy to read the wrong one.

  • Ad request — your app asks for an ad. This is volume, not money. Requests are free and unlimited.
  • Impression — an ad was actually rendered on screen. This is the standard billable event for a CPM-priced impression.
  • Viewable impression — the impression crossed a visibility threshold, usually meaning a meaningful percentage of pixels were on screen for a set number of milliseconds. Some campaigns and viewability measurement systems pay only for these, which is why a rewarded video can show as an impression and not a viewable impression.
  • Click — the user tapped through. Worth money under CPC pricing, and valued by bidders in auctions even when the billing model is CPM.
  • Conversion — the user did something after the click, such as an install or a purchase. This is what performance-based pricing rewards.
  • Completion — the user watched a video to the end. Rewarded ads generally pay on this event rather than on the impression, which is the main reason they earn multiples of what a banner does.

Not every rendered ad becomes a payable event. Invalid traffic filters remove automated clicks, repeated renders in the background, and refreshes nobody actually saw. Publishers who see a high request count and a small revenue number are usually looking at a fill rate problem or a revenue-share problem, not a payment problem.

Which Ad Formats Earn Money?

Format decides how much each impression is worth, and placement decides how many impressions you get without wrecking the app. The ranges below are illustrative and vary enormously by country, device and season, so treat them as relative rather than exact.

Ad format economics at a glance
FormatPaid onRough eCPM rangeBest fitRetention risk
BannerImpression0.05 to 0.60Always-on surfaces such as feeds and list screensLow to moderate, grows with exposure
InterstitialImpression1.00 to 8.00Natural breaks between levels or screensHigh when mistimed
Rewarded videoCompleted view5.00 to 30.00Opt-in bonuses, extra lives, unlocksLowest, because the user chose it
NativeImpression0.50 to 6.00In-feed cards, sponsored listings, recommendation unitsLow, looks like content
App openImpression1.50 to 10.00Apps with frequent short sessions, such as weather or transitModerate, cheap to trigger irritation

The pattern in that table is consistent: formats the user actively chooses earn far more per event than formats you push at them. Developers posting first-month AdMob screenshots in game engine forums are usually surprised by how little banners pay, and the same developers report that rewarded video earns multiples of a banner, provided the reward genuinely matters.

Interstitials are the format most likely to cost you more than they earn. A full-screen ad after a level ends is fine; the same ad after the user finishes a task they did for themselves is not. One-star reviews and uninstall spikes trace back to placement far more often than to format.

Native ads are underrated outside games. A sponsored card that matches your layout earns a middling eCPM but blends into the screen, which is why it is a good fit for news, civic and utility apps where a banner would look out of place.

How Are App Advertising Earnings Calculated?

Here is the core arithmetic: revenue equals monetized impressions divided by 1,000, multiplied by your eCPM. Everything else in this guide is an input to that single line.

Define the inputs first. An impression is any ad rendered. A monetized impression is an impression that survived fill, fraud filtering, and your own exclusions. Fill rate is monetized impressions divided by requests, expressed as a percentage. eCPM is what you earned per thousand monetized impressions. RPM is what actually landed in your account.

Worked example: one month of a small utility app
InputValue
Monthly ad requests400,000
Fill rate88 percent
Monetized impressions352,000
Invalid traffic removed4 percent of impressions
Payable impressions337,900
eCPM2.40
Gross revenue337.9 divided by 1,000 times 2.40 = 811.0
After mediation and network deductionsAbout 90 percent, so roughly 730

That calculation is the whole model. The same traffic with a 60 percent fill rate pays 32 percent less. The same traffic with a 1.10 eCPM pays 54 percent less. Understanding how in app advertising revenue works in practice means knowing which of these two dials your app is actually stuck on, because the fix for each is completely different.

Fill rate is usually an inventory and floor-price problem. eCPM is usually a demand and audience problem. A developer with weak fill but strong eCPM should lower the floor or add a second network. A developer with strong fill and weak eCPM has a targeting or placement problem, and adding volume will not fix it.

What monthly revenue looks like at different audience sizes

Illustrative monthly ad revenue by daily active users
Daily active usersImpressions per montheCPMMonthly revenue range
1,000About 90,0001.00 to 3.0090 to 270
10,000About 900,0001.50 to 5.001,300 to 4,500
100,000About 9 million2.40 to 9.0021,000 to 81,000
1 millionAbout 90 million3.60 to 13.30324,000 to 1.2 million

Two assumptions sit behind that table: three sessions per user per day and roughly one monetized impression per session. Both are conservative for a game and generous for a utility app, which is why the spread between verticals matters more than the spread between user counts.

What Is the Difference Between eCPM and RPM?

eCPM is the advertiser-side number: what a buyer pays for a thousand impressions. RPM is the publisher-side number: what you keep after everything is subtracted. When a dashboard shows both, the gap is the entire cost stack.

Same month, two numbers
LineValue
Advertiser eCPM on the winning impressions4.00
Less unfilled requests and floor price shortfall-0.40
Less invalid traffic removal-0.16
Publisher RPM3.44

A 14 percent gap is normal. If you see a much bigger one, your network is taking a revenue share rather than paying a straight rate, or your mediation stack is layering fees. Both are worth checking before you assume your eCPM is the problem.

Who Pays App Developers and How Do They Get Paid?

There are more parties than most developers realize, and each one is paid differently. Every step of how in app advertising revenue works runs through the same five parties, and knowing which of them sets your price saves a lot of guessing.

The advertiser is the brand or app promotion team with the budget. Their demand-side platform decides who to bid on and how much, using targeting signals and past performance. The ad exchange is the marketplace where demand meets supply, and the auction usually happens there. Your supply-side platform, which is the ad network or mediation layer you integrated, packages your impression, runs the auction, and pays you.

Payment models differ by what triggers money. CPM pays for impressions, which is the norm for display and video inventory. CPC pays for clicks and needs much higher click-through rates to work. CPA and CPI pay for a completed outcome such as an install, and are used mainly in app promotion, where an advertiser is buying a specific user rather than a moment of attention.

On the payout side, expect a threshold, a schedule, and paperwork. Networks generally accumulate earnings and pay out once you clear a minimum, commonly a few hundred credits in the account currency, on a monthly cycle for established accounts. You will need a payment method and a tax form, most often a W-8BEN or W-9 depending on where you are based, and a valid bank or payment account in a supported currency. Payouts also trail reported earnings by a few weeks because of that validation window.

How revenue share deals work at mid-size scale

Once your monthly numbers are steady, direct deals start to appear. Instead of sending every impression to an exchange, you sell a block of guaranteed volume to one buyer, usually a network or an agency representing an app advertiser, at a negotiated rate. The trade is certainty in exchange for flexibility: you give up some upside on individual impressions in exchange for a rate you can plan around.

Negotiate on three things. The first is the floor, so a quiet month still clears your cost. The second is placement, since an agreement that forces a rewarded ad into a place your users will not tolerate is worthless. The third is reporting, and this is where smaller publishers get caught: some deals pay on gross demand-side value while others pay on net revenue after the intermediary’s cut. Always ask which one your statement uses, and ask for the click-through rate and impression totals your network reports so you can reconcile.

Direct deals are not for every app. If your traffic is irregular or your revenue is still under the network’s own payment threshold, the auction will almost always beat what you can negotiate at the table.

Two questions get asked constantly in developer forums and both deserve a straight answer. First, does the app store take a cut of ad revenue? No. Store platform fees apply to in-app purchases and subscriptions, not to advertising income, so an ad-funded app keeps its ad earnings. Second, does the network take a share? Sometimes. Networks that offer managed placements and demand-side deals often work on a revenue share, while pure programmatic setups pay a rate against eCPM. Check whether your reports show gross demand-side value or your net share, because comparing the two is the most common source of “my dashboard disagrees with my payout” confusion.

What Factors Can Increase or Reduce Revenue?

Geography is the biggest single factor. Tier-one countries have far denser advertiser demand, so the same impression can be worth many times more in one market than in another. A developer with 80 percent of users in low-demand markets cannot lift their eCPM through optimization alone, only by improving fill and volume.

Beyond geography, fill rate moves with your floor price. Raise the minimum bid and you earn more per impression but leave more slots empty. Lower it and the reverse happens. Seasonality matters too: retail and travel advertisers spend heavily in the fourth quarter, so eCPMs often climb from October through December and fall again in January.

Format and placement are the levers you control most directly. Session length drives impressions per user, and more impressions is not automatically good. Pushing a fifth interstitial into a session that started with one is a common mistake; it lifts today’s revenue and lowers tomorrow’s retention. ARPDAU, the revenue per daily active user, is the metric that reveals this, because it collapses when users start leaving early.

Device and category play out through advertiser demand rather than through your code. Advertisers bid more for some operating systems, some device tiers, and some app categories, which is why two identical apps can show different eCPMs on the same day.

Finally, two factors sit outside your control. Ad blockers and privacy-focused browsers remove some traffic before any request is made, which shows up as lower impressions rather than lower eCPM. And consent rates, particularly on iOS after the App Tracking Transparency prompt, shrink the bidding pool: fewer usable signals means lower bids for the same impression.

How non-gaming apps differ, including utility and civic apps

Gaming dominates coverage of this topic, which is why so much of it assumes rewarded video and level breaks. Utility, weather, news, education and civic apps earn differently, and the difference is structural rather than a matter of doing the same thing better.

Users open a transit app for under a minute, often several times a day. That pattern suits app open ads and high-frequency native units rather than interstitials, because there is no natural break to insert one into. News apps have long scroll sessions, which makes adaptive banners and in-feed native cards the sensible pairing. Weather apps are opened in a burst and then ignored, so revenue depends on session count and on how aggressively you trigger an app open ad.

Civic and municipal apps sit in the same band with an extra constraint: the audience is often local, advertisers are often regional, and eCPMs are lower than national averages. That usually pushes teams toward a hybrid model, where ad revenue funds the free service and a modest number of sponsors or a subscription for power users covers the gap.

How Do App Developers Measure and Optimize Performance?

Start with a baseline. Record impressions, fill rate, eCPM, RPM, sessions per user and day-one, day-seven and day-30 retention for a full month before changing anything. Most optimization failures are really measurement failures.

Then segment. Revenue by platform, by ad format, by country and by placement will show you something the blended average hides. A blended eCPM of 2.00 might be two strong markets diluted by many weak ones, or one strong format carrying several weak ones. You cannot tell from the total.

Watch revenue and retention together rather than separately. Session length, impressions per session, day-30 retention and ARPDAU should move as a set. If impressions per session rises and day-30 retention falls, the change is buying revenue with future revenue, and the ad fatigue will show up later as a falling store rating.

Test one variable at a time. Moving an interstitial from a level-end break to a level-start break is a placement test. Raising it from two per session to three is a frequency test. Both are useful, but running them together tells you nothing about which one caused the change. Use your network’s built-in A/B testing or split your audience, and let a test run long enough to see retention effects rather than a single day of fill rate.

Cap your experiments with a decision rule before you start, because it is easy to keep testing and never change anything. A common one is: ship the variant if it lifts daily revenue per user by more than five percent and does not reduce day-seven retention by more than one percentage point. Writing the threshold down first is what turns an experiment into a decision, and it stops a small day-to-day swing from convincing you that a worse placement is better.

Frequency capping is the mechanism that enforces those limits. You set a maximum number of impressions per user per day or per session, and the mediation layer stops serving once the cap is reached. The cap trades a little daily revenue for better retention, and it is usually worth it. Developers who report ad revenue looking strong in month one and declining steadily afterwards are usually describing an uncapped app that quietly taught its users to leave.

Compare mediation reports against your network dashboards monthly. Discrepancies are normal because different tools count impressions and invalid traffic differently, but a widening gap means something in your configuration changed.

How AdMob and App Store Connect report differently

AdMob reports estimated earnings in its own dashboard under Reports, with estimated revenue per thousand impressions broken out by format and country. These are estimates that can shift for weeks as invalid traffic is reconciled, so treat the trend as real and the final figure as provisional.

App Store Connect does not report ad revenue. It reports proceeds from in-app purchases and subscriptions under Sales and Trends, which is why an ad-funded app and a purchase-funded app produce such different-looking dashboards. Set expectations about this early, because it surprises people who expect to find ad earnings anywhere in App Store Connect and do not.

What Privacy and Policy Rules Affect App Advertising?

Consent is now part of the request itself. On iOS, the App Tracking Transparency prompt determines whether your SDK can pass the identifiers advertisers use for targeting and measurement, and a refusal rate translates directly into lower eCPM. In the European Economic Area, a consent management platform gates storage and access, and advertisers bid less aggressively on traffic that arrives without consent signals.

In the United States, state privacy laws give users rights to opt out of sale or sharing, and ad networks honor those signals through industry frameworks. If your app is aimed at children, the rules are stricter and the inventory available to you is smaller, because child-directed content attracts restricted ad categories. The app stores also require accurate privacy disclosures in your listing, and mismatches between the declared data use and the SDK’s actual behaviour can trigger review questions or removal.

The practical takeaway is to use an advertising SDK that is current and compliant, keep your consent flow honest, and review your store disclosures whenever you add a new SDK. This is general information rather than legal advice, so check current requirements for your region and audience with your own adviser before launch.

How to Start Monetizing an App With Ads

Putting the pieces together takes a specific order, and skipping the first two steps is why some launches stall with no earnings and no obvious reason why.

  1. Confirm you need ads at all. Run the arithmetic first with conservative numbers. Take your current monthly active users, assume a realistic session count, apply an eCPM in the range for your formats and countries, and see whether the result justifies the work. If it does not, a subscription or a direct deal may suit your app better.
  2. Pick one network and one format. A single network and a single format gives you a clean baseline. Adding a second network before you understand the first makes it impossible to tell which change moved the numbers.
  3. Integrate the SDK and verify the events. Use the network’s test mode first and confirm that requests, impressions and clicks appear in the dashboard with realistic volumes. Check the test device registration and consent state before going live.
  4. Choose placements where the user already pauses. A screen transition, the end of a task, or an explicit opt-in button. Avoid the moment right after the user completes something they wanted to complete.
  5. Set a floor price and a frequency cap. Start with a modest floor so you can see fill behaviour, then raise it once you know which requests go unfilled. Cap impressions per user per day before you launch, not after reviews turn bad.
  6. Set up consent and privacy disclosures before releasing. On iOS, the App Tracking Transparency prompt must appear before tracking starts. Correct store disclosures cost nothing to fix now and a submission to reopen later.
  7. Review after the first full month. Compare impressions, fill rate, eCPM, retention and ARPDAU against the baseline you wrote down. Only then change one variable at a time.

Developers asking how to make money from in-app advertising usually want one shortcut. There is not one, but the order above has a reason behind it, and following it means every later decision is based on measured behaviour rather than on the highest-rated forum advice you happened to find.

Frequently Asked Questions

Does every ad impression pay money?

No. A request that comes back unfilled earns nothing, and a rendered impression can still be rejected later as invalid traffic. You are paid for impressions that are filled, valid and not excluded by your own filters. This is why request counts in a network dashboard are often many times larger than the impressions in your earnings report.

Why do my ad earnings fluctuate so much month to month?

Mostly seasonal and geographic. Advertiser budgets rise in the fourth quarter and fall in January, and the demand competing for your impressions shifts with them. Mix changes matter too: if a traffic source that earned well stops sending, or a new low-demand country grows, your blended eCPM drops without anything changing in your code. Check eCPM and impression count separately to see which one moved.

How much ad revenue per 1,000 impressions is realistic?

It depends almost entirely on format and country. A banner in a low-demand market can sit below 0.10 per thousand impressions, while a completed rewarded video in a high-demand market can clear 30. The format table earlier gives illustrative ranges for each type. Treat the low end as your floor and never build a forecast on the high end.

Is ad revenue worth the user-experience cost?

Sometimes, and the deciding factor is placement rather than format. Rewarded video and native units that the user accepts usually add revenue without hurting retention. Interstitials triggered at inconvenient moments do the opposite, and the retention loss shows up months later in lower lifetime revenue. Test placements and watch day-30 retention and ARPDAU together before scaling impression volume.

How do I test ad placements without guessing?

Change one thing at a time and let the test run long enough to see retention effects, not just a day of fill rate. A useful first test is frequency: hold the format the same and change how many impressions a session receives. The second is placement: keep frequency fixed and move the trigger point. In-app bidding plus your mediation platform gives you per-placement revenue you can compare directly.

How can I tell whether an ad network is trustworthy?

Look for three things: a clear rate card or revenue-share explanation, published payout thresholds and schedule, and documentation that explains how it treats invalid traffic and why estimates change. Then read your first two months of statements line by line against your dashboard. Forums where developers compare actual payout reports tend to agree on which networks behave consistently and which do not.

Conclusion

In-app advertising revenue works because your ad slots are inventory sold in a per-impression auction, and the highest bidder for that particular moment, in that particular country, on that particular device sets the price. There is no fixed rate card you can negotiate your way to, which is why your job is to produce valid impressions in formats your users tolerate, and to keep enough slots unfilled that you are not competing with yourself.

Here is where to start. Pick one ad format that fits how your app is actually used, and place it where a user would expect a break rather than where it would interrupt them. Then work through the arithmetic honestly: take your real monthly impressions, multiply by a realistic eCPM for your geographies and that format, and divide by 1,000. If the result is not worth the complexity, knowing that before you integrate the SDK saves you a lot of wasted work.

After that, set up compliant consent and reporting from the start, and run one small test on placement or frequency before you scale. That is how in app advertising revenue works in practice, and a month of careful measurement will tell you more than a year of guessing. It will also tell you which of the two dials, fill rate or eCPM, is actually worth your attention.

Leave a Comment