What Fill Rate Means in Ads and Monetization
Fill rate is one of the simplest metrics in digital advertising, but it’s also one of the most misunderstood. In plain terms, it answers a basic question: when your site or app requests an ad, how often does it actually get one? If you send 100,000 ad requests and you receive 90,000 impressions served, you have a 90% fill rate. The missing 10% is unfilled inventory—requests that did not return an ad.
Why does this matter? Because unfilled inventory is usually lost opportunity. Each unfilled request is a chance to show an ad that either didn’t meet the rules (policy, targeting, floors), wasn’t available (demand gap), or wasn’t delivered in time (latency, timeouts). Sometimes leaving inventory unfilled is intentional—especially if you protect user experience, avoid low-quality demand, or keep floors high. But most publishers want a clear view of the trade-off: how much fill are we getting, and what is the realistic revenue impact of improving it?
Fill Rate Formula and Common Variations
The standard fill rate formula is straightforward: Fill Rate (%) = (Impressions Served ÷ Ad Requests) × 100. This matches how many reporting dashboards define fill rate, but the exact definitions can differ across ad stacks. Some platforms measure “requests” as auction requests, others as ad calls, and some count refreshed ads as new requests. That’s why the best practice is to keep your inputs aligned with the same reporting window and the same definitions.
In some setups, you’ll see fill rate measured as “filled impressions ÷ eligible requests,” where “eligible” excludes requests blocked by consent settings or policy filters. That number can look higher, but it answers a slightly different question. For planning, the practical approach is to use the numbers you track consistently, then compare changes over time.
What Causes Unfilled Inventory
Unfilled inventory isn’t always a single issue. It’s often a combination of demand, configuration, and user conditions. Here are common drivers:
- Geography and demand availability: some countries have less advertiser demand, especially for certain niches.
- Device and layout differences: mobile placements may behave differently than desktop due to viewability and size constraints.
- Ad sizes and compatibility: limiting to narrow size sets can reduce eligible bids.
- Floors and pricing rules: aggressive floors can protect eCPM but reduce fill.
- Policy and content filters: sensitive categories or restricted content can reduce eligible demand.
- Latency and timeouts: slow pages, blockers, or network delays can cause missed fills.
- Ad blockers: requests may be prevented or impressions may not register as served depending on instrumentation.
Fill Rate vs eCPM: The Trade-Off You Actually Manage
Publishers rarely optimize fill rate in isolation. The real optimization is a balancing act between fill and price. If you lower floors or add low-value demand, you may increase fill, but the average eCPM could drop. If you raise floors or tighten policies, eCPM could rise, but fill may drop. The best outcome depends on your traffic quality, user experience goals, and how the auction behaves across your inventory.
That’s why this calculator includes a revenue impact model. It lets you assume an eCPM and see how changing fill rate changes impressions served and expected revenue. In real life, eCPM can change when fill changes, so treat the estimate as a planning baseline, then validate using your analytics and reporting.
How to Interpret Fill Rate in Context
A “good” fill rate depends on your business model and traffic mix. A site with mostly Tier-1 traffic, broad content, and a healthy demand stack might see fill rates consistently in the 90–99% range for many placements. A niche site with strict policies, specialized audiences, or heavy mobile traffic might see lower fill. A site that uses high floors intentionally may accept lower fill because the filled impressions are worth more.
Context matters even more at the placement level. A sticky unit might have a different fill rate than an in-content unit. A video placement might have much lower fill but higher eCPM. A single aggregate number can hide these differences. Use the Scenario Planner to compare segments: geo groups, devices, or ad units.
How This Fill Rate Calculator Helps
The Fill Rate tab is the quick diagnostic: enter requests and impressions served to compute fill rate and unfilled counts. The Revenue Impact tab turns the metric into a planning question: if you improve fill rate from X% to Y% at an assumed eCPM, what is the estimated revenue lift? Finally, the Scenarios tab helps you compare multiple cases and export results for reporting.
This workflow is useful for publishers, app teams, SEO/content sites, affiliate sites, and anyone managing monetization where demand and policy rules vary across segments.
How to Use the Revenue Impact Model Correctly
The revenue estimate uses a standard assumption: Revenue = (Impressions ÷ 1,000) × eCPM. That means your estimate is only as good as your eCPM input and your ability to keep apples-to-apples conditions. When you increase fill, you might change the mix of ads served (more backfill, different buyers), which can shift eCPM. Use the calculator in two ways:
- Planning baseline: assume eCPM stays roughly stable and measure the “inventory lift.”
- Sensitivity check: try multiple eCPM values to see best-case vs conservative outcomes.
What If Fill Rate Looks Over 100%?
If impressions served exceed requests, it usually indicates a definition mismatch. Common reasons include auto-refresh (one request can generate multiple impressions over time), counting multiple ad units but comparing against requests for one unit, or mixing reporting windows. Another cause is server-side vs client-side differences in how requests are recorded. The fix is to align the same scope and timeframe across both numbers.
Practical Ways to Improve Fill Rate Without Ruining UX
Improving fill rate does not have to mean “add more ads.” Often the best improvements come from making existing inventory more eligible and more reliable:
- Expand size support carefully: add common responsive sizes to increase eligible demand.
- Review floors and rules: test floors that protect pricing without blocking too much demand.
- Improve viewability: better viewability can improve demand and may improve fill in some stacks.
- Reduce latency: faster pages and fewer blocking scripts can reduce timeouts and missed fills.
- Segment demand sources: use mediation or multiple demand sources where appropriate.
- Check policy blocks: ensure your content classification and policy settings are accurate.
How to Use Scenarios for Better Decisions
A single fill rate number is rarely enough for decisions. Scenarios help you isolate what matters. For example, create a “US Desktop” scenario, a “GCC Mobile” scenario, and a “ROW Mobile” scenario. Add their requests, impressions, and eCPM. You’ll see which segment has the largest unfilled volume and where improvements are most valuable. Sometimes the highest ROI comes from fixing one segment rather than making a global change.
Common Mistakes to Avoid
- Mixing time windows: using weekly requests with daily eCPM leads to misleading revenue numbers.
- Ignoring refresh: refresh changes how you interpret “requests” and “impressions.”
- Chasing fill only: a higher fill rate at a much lower eCPM can reduce revenue and hurt UX.
- Not segmenting: averages hide problems; segment by geo, device, and placement.
When Lower Fill Rate Is Actually OK
It’s worth saying out loud: sometimes lower fill rate is intentional. If you maintain strict brand safety, protect user trust, or enforce floors to avoid low-quality ads, you may accept unfilled inventory. The key is to make it a conscious choice with measured outcomes. Use this calculator to quantify what you are trading away and decide whether the trade-off is worth it.
FAQ
Fill Rate Calculator – Frequently Asked Questions
Clear answers about what fill rate is, how to calculate it, why it changes, and how to use it to plan revenue and optimization.
Fill rate is the percentage of ad requests that result in an ad being served. In most setups it’s calculated as impressions served ÷ ad requests × 100.
Fill Rate (%) = (Impressions Served ÷ Ad Requests) × 100. If you have 90,000 impressions from 100,000 requests, your fill rate is 90%.
Unfilled inventory is the portion of requests that did not receive an ad. Unfilled = Ad Requests − Impressions Served (or requests × (1 − fill rate)).
Fill rate can vary by geography, device, ad sizes, viewability, demand availability, and policy filters. Some traffic sources have less advertiser demand, which reduces fill.
Not always. More filled impressions can help, but revenue depends on eCPM, viewability, user experience, and session depth. Sometimes fewer, higher-quality impressions earn more.
Fill rate is whether an ad was served. Viewability measures whether the served ad was actually viewable on screen for a minimum time. You can have high fill rate but low viewability.
Common levers include adding demand sources, enabling price floors carefully, improving ad sizes and placements, reducing policy blocks, increasing viewability, and using passbacks or mediation.
Requests and impressions are typically per ad slot. If you want a page-level view, multiply by average ad units per page, then compare scenarios using consistent assumptions.
Yes. Use the Scenario tab to create multiple cases and export them as a CSV for spreadsheets, reporting, or team planning.
No. Revenue estimates use your inputs (like eCPM) and assume comparable traffic quality. Real results vary with auction dynamics, ad blockers, latency, and policy changes.