Programmatic Advertising & Monetization Insights

YieldSolutions is part of the Affinity Ecosystem, built to power advertising and publishing at scale.
Explore the Ecosystem

Decoding Fill Rates: A Publisher's Guide to Calculating, Benchmarking, and Improving Fill Rate

Yieldsolutions
6 min read
Decoding Fill Rates: A Publisher's Guide to Calculating, Benchmarking, and Improving Fill Rate

Fill Rate is the number every app publisher tracks and almost nobody can define precisely. It sits on every ad ops dashboard, and still gets confused with eCPM, impression share, and ad request volume more often than any other monetization metric.

This guide gives you the exact formula, healthy ranges by ad format, and the specific reasons Fill Rate quietly drops even when everything else on your dashboard looks fine.

What Is Fill Rate?

Fill Rate is the percentage of ad requests successfully filled with an ad, out of the total ad requests your app sends.

Fill Rate = (Ads Served ÷ Ad Requests Sent) × 100

If your app sends 10,000 ad requests in a day and 7,500 return an actual ad, your Fill Rate is 75%.

The math is simple. The complexity is in what counts as an "ad request" once you're running a real mediation stack, and that's where publishers most often get their own number wrong.

What Counts as an "Available Impression"?

In a single-network setup, an ad request is straightforward: your app asks, the network either has an ad or it doesn't.

In a mediation setup with multiple demand sources, an "unfilled" request at one network isn't unfilled overall, your waterfall or auction moves to the next source. What matters is the final outcome: did the user see an ad after every demand source had a chance to respond.

This is why two publishers with identical traffic can report very different Fill Rates depending on whether their reporting counts per-network requests or per-impression opportunities. A jump in reported Fill Rate after adding demand sources doesn't always mean more users saw ads. Sometimes it just means the reporting layer started counting differently.

What's a Healthy Fill Rate? Benchmarks by Ad Format

There's no single "good" Fill Rate across every app and format, but there is a widely used general benchmark and format-specific ranges that are more useful in practice.

General benchmark: 60% to 80%. Below 60%, you're likely leaving impressions unmonetized, from too few demand sources or floor prices set too high for parts of your traffic. Consistently above 80-90%, check the opposite problem: floors may be too low, letting weak bids clear too easily.


Ad Format

Healthy Fill Rate Range

Notes

Rewarded video

70% to 90%

Highest demand density; users opt in

Interstitial

65% to 85%

Strong demand, sensitive to geo/device

Banner

80% to 95%

High fill is normal; low CPM is the tradeoff

Native

55% to 75%

Fewer demand partners support it well

App open

60% to 80%

Newer format; varies by mediation maturity

These ranges assume a diversified mediation stack and actively managed floor prices, not a "set once and forget it" setup.

Fill Rate vs. eCPM vs. ARPDAU

Fill Rate answers one question: are you monetizing the inventory you have? It doesn't tell you what that inventory is worth (eCPM), or whether your overall strategy is healthy for your user base (ARPDAU).

A publisher can have rising eCPM and falling Fill Rate at the same time. Watch eCPM alone and you'll miss that a shrinking share of inventory is being monetized at all. Think of it as an anchor sequence: Fill Rate (capacity) to eCPM (price) to ARPDAU (health). Track one in isolation and you get a misleading picture.

Why Fill Rate Drops

Fill Rate rarely drops from one dramatic event. It's usually one of these, quietly compounding:

  • Too few demand sources, capping how much inventory can realistically be filled, especially in lower-value geos or off-peak hours.
  • Floor prices set too high for the segment, a floor tuned for premium Tier 1 traffic can silently block valid bids for Tier 2/3 geos.
  • SDK or adapter version mismatches, an updated demand partner SDK with an unmatched mediation adapter can silently stop responding, no obvious error, just a drop that looks like a demand problem.
  • Seasonal and geographic demand shifts, advertiser budgets move; last quarter's healthy Fill Rate may not reflect this quarter's traffic mix.
  • Auction timeouts set too short, cutting slower-but-valuable bidders out before they can respond.

How to Improve Fill Rate

Diversify demand in the bidding layer; keep the waterfall layer lean. Bidding-layer sources compete simultaneously in real time, so more of them generally means better price discovery and stronger fill. Waterfall-layer sources are checked one at a time, so extra ones just add latency without adding real competition, four to five well-integrated partners is typically enough.

Segment floor prices instead of using one global floor. A floor tuned for your best geo blocks valid bids everywhere else. Splitting by geography, device, and time of day lets each segment clear at the right price.

Add a fill-gap layer for unsold inventory. A secondary demand layer that activates only when your primary stack can't fill a request captures revenue that would otherwise hit an empty ad slot.

Audit SDK and adapter versions on a schedule, not just when something breaks, to catch silent mismatches before they show up as an unexplained dip.

Review timeout settings against real bidder response times to confirm slower, still-valuable partners have enough time to respond without hurting ad load latency.

Frequently Asked Questions

What is a good fill rate for a mobile app?

A general healthy benchmark is 60% to 80%, though the right number depends on ad format, region, and how many demand sources are competing for your inventory.

How do you calculate fill rate?

Fill Rate = (Ads Served ÷ Ad Requests Sent) × 100. If 8,000 of 10,000 daily requests return an ad, Fill Rate is 80%.

Why is my fill rate low even with multiple ad networks?

Common causes: floor prices too high for a segment, an outdated SDK adapter silently failing for one partner, or an auction timeout too short for some bidders to respond.

Is a higher fill rate always better?

Not necessarily. Consistently above 90-95% can mean floor prices are too low, letting weak bids clear instead of holding out for stronger demand. Evaluate eCPMs & revenue alongside Fill Rates, not alone.

Does fill rate differ by ad format?

Yes. Rewarded video and banner ads typically see the highest fill rates due to broader demand support. Native ads typically run lower, since fewer partners support the format as fully.

The Bottom Line

Fill Rate answers a narrow but important question: how much of your existing inventory is actually being monetized. Read alongside eCPM and ARPDAU, it's one of the fastest ways to spot a monetization problem before it becomes a revenue drop you can't explain.

At YieldSolutions, Fill Rate is one of the first three numbers we look at with every publisher we work with, alongside eCPM and ARPDAU. If yours has been sitting outside the healthy range for your format, that's usually the fastest starting point for finding revenue you're already leaving on the table.

Get In Touch