What is Fill Rate?
Also known as: Ad fill rate, Filled impressions
What is fill rate?
Fill rate is the percentage of ad requests that come back with a paid ad. The publisher sends a request. The ad server, SSP, or ad network either returns a creative or returns nothing. Fill rate is the ratio of returned-and-paid requests to total requests.
It is the supply-side yield metric for any publisher. A site with 10 million monthly ad requests and a 75 percent fill rate monetizes 7.5 million of them. The other 2.5 million serve a house ad, a passback, or a blank slot.
Three things sit underneath the number:
- Demand depth. How many bidders see the request.
- Floor prices. The minimum CPM the publisher will accept.
- Inventory quality. Whether the impression is viewable, brand-safe, and identifiable.
Fill rate alone does not tell you the site is healthy. Pair it with eCPM and viewability.
Fill rate formula and example
The math is straightforward.
Fill rate = (filled impressions / ad requests) x 100
A worked example. A news site sends 4,200,000 ad requests in a day. The ad server returns paid creatives on 3,150,000 of them. Fill rate is 3,150,000 / 4,200,000 = 75 percent.
Total revenue depends on what those filled impressions paid. If the average eCPM was $3.20, the day grossed (3,150,000 / 1,000) x $3.20 = $10,080. The unfilled 1,050,000 requests earned nothing. Lifting fill from 75 to 90 percent at the same eCPM would add roughly $2,016 in daily revenue.
Track fill at the ad-unit level, not just the site level. Header units, in-content units, and sticky footer units fill at very different rates.
Average fill rates by inventory type
Benchmarks vary by format and geography. The table below pulls from publicly reported figures across major SSPs and ad-tech vendors.
| Inventory type | Typical fill rate | Notes |
|---|---|---|
| Web display (open auction) | 60 to 80% | Tier-1 traffic clears higher. MFA filters drag it down. |
| Mobile web display | 55 to 75% | Lower than desktop because of viewport and identity loss. |
| Mobile in-app banner | 80 to 95% | Mediation stacks lift fill close to 100%. |
| Mobile rewarded video | 90 to 99% | Highest fill in mobile. Strong demand for opt-in formats. |
| Pre-roll / mid-roll video | 75 to 90% | Brand-safety filters cut fill on UGC content. |
| CTV / OTT | 90 to 99% | Premium inventory and direct deals dominate. |
| AVOD long-form | 85 to 95% | Strong demand. Frequency caps can suppress fill late in a session. |
US, UK, and DACH traffic fills 10 to 25 points higher than tier-3 markets at the same floor price, according to ad-tech vendor benchmarks published by PubMatic and Magnite in their quarterly investor decks.
Why fill rate drops
Fill rate problems almost always trace to one of four sources. Diagnose in this order.
Floor prices set too high
Floors filter out low bids before they enter the auction. Set them too high and bids that would have cleared at $0.40 get rejected when the floor is $0.80. Fill drops first. Revenue drops next.
The fix is unified pricing rules with floors set per ad unit, geography, and device, not a single global floor. Google Ad Manager unified pricing rules make this manageable.
Weak demand wiring
A waterfall with two SSPs leaves money on the table. A header bidding setup with eight to twelve SSPs and one or two SDK bidders covers most demand. According to Prebid.org wrapper benchmarks, sites adding three or more bidders typically see fill lifts of 8 to 15 points within four weeks.
Header bidding misconfiguration
Common breaks: an adapter that times out at 1,000 ms when its bid latency runs longer, a price-granularity setting that buckets bids into the wrong key-value pairs, or a userId module that fails silently and strips identity from the request. Any of these can cut fill 5 to 20 points overnight. Audit Prebid analytics monthly.
Brand-safety and MFA blocks
DSPs increasingly block made-for-advertising sites and domains flagged in Sellers.json. If your fill rate drops 30+ points in a week, check whether a major DSP added you to a block list. The IAB Tech Lab Transparency Center is the first place to look.
How to raise fill rate
Three plays compound. Run them in order.
Add header bidding (or extend it)
Header bidding is the single biggest fill-rate lever for open-web publishers. Replace the legacy waterfall with a Prebid wrapper. Start with three to five SSPs that already represent the bulk of your demand. Add two more per quarter while monitoring page latency. Most sites see fill move from the low 70s into the high 80s within two cycles.
Add mediation (mobile and CTV)
For mobile in-app and CTV inventory, in-app bidding plus a mediation stack does the same job as header bidding. AdMob bidding and Unity LevelPlay both expose multiple demand sources to the same impression. Rewarded and interstitial fill should sit above 95 percent once mediation is wired correctly.
Lower floors strategically
Drop floors on inventory that consistently goes unfilled. Keep premium floors on above-the-fold and high-viewability units. Use Google Ad Manager optimized pricing or a custom rules engine to floor by user segment, not just ad slot.
A small caveat. Lowering floors raises fill but can hurt eCPM. Watch the product, not the inputs.
Real-world example with numbers
A mid-size lifestyle publisher runs four ad units per article. Pre-optimization stack is a Google Ad Manager waterfall with two SSPs.
Baseline numbers, pulled from a 30-day window:
- Ad requests: 92,000,000
- Fill rate: 68 percent
- Filled impressions: 62,560,000
- Average eCPM: $2.10
- Monthly ad revenue: $131,376
The publisher migrates to a Prebid wrapper with seven SSPs and tightens UPRs. Two months later:
- Ad requests: 92,000,000 (flat)
- Fill rate: 87 percent
- Filled impressions: 80,040,000
- Average eCPM: $2.65 (auction pressure raised clearing prices)
- Monthly ad revenue: $212,106
Fill went up 19 points. eCPM went up 26 percent. Revenue went up 61 percent. The same traffic produced $80,730 more per month with no editorial changes. This is the standard outcome of moving from waterfall to header bidding on tier-1 display inventory.
Fill rate vs eCPM tradeoff
Fill rate and eCPM pull in opposite directions when you change floor prices. Raising floors filters out low bids, which lifts the average price of every winning bid (eCPM) but drops fill. Lowering floors does the opposite.
The metric that actually matters is RPM, the revenue per 1,000 ad requests. RPM combines both inputs.
RPM = (fill rate x eCPM)
A site at 95 percent fill and a $1.50 eCPM has an RPM of $1.43. A site at 70 percent fill and a $2.80 eCPM has an RPM of $1.96. The second site earns 37 percent more on the same traffic, even though its fill rate looks worse.
Optimize for RPM, not fill. Use fill rate as a diagnostic when RPM stalls or drops. The number is most useful when you compare it to itself month over month, ad unit by ad unit, not against a one-size-fits-all benchmark. Pair it with ad revenue and CPM reporting for a full picture of supply-side yield.
Related terms
Frequently asked questions
What is a good fill rate for a publisher?
It depends on the channel. Web display fill rate of 70 to 85 percent is healthy. Mobile in-app rewarded video clears 95+ percent. CTV premium inventory runs 90 to 99 percent. Anything below 60 percent on open-web display points at floor prices set too high or weak demand wiring.
What is the difference between fill rate and match rate?
Fill rate measures whether an ad request returns a paid ad. Match rate measures whether the user can be identified for targeting (cookie or ID match). A request can match but not fill, or fill at a low CPM after a match miss. Publishers track both.
Does a 100 percent fill rate mean a healthy site?
No. A 100 percent fill rate often signals floor prices set too low. The site fills every request, but at $0.20 CPMs. Real yield is fill rate multiplied by eCPM. Cutting fill from 99 to 92 percent while doubling eCPM is a win. Treat fill as one input, not a goal.
How does header bidding raise fill rate?
Header bidding lets multiple SSPs bid on the same impression in parallel, before the ad server call. More bidders means more chances of clearing the floor. Prebid.org integrations typically lift fill 5 to 15 points and CPMs 10 to 30 percent versus a single-waterfall setup, depending on demand depth.
Why is my fill rate suddenly dropping?
Four common causes. Floor prices were raised too aggressively. A major DSP paused budget mid-quarter. A brand-safety or made-for-advertising filter started blocking your domain. Or a header bidding wrapper update broke a key adapter. Check the SSP-by-SSP fill report first to isolate the source.