All articles Analytics

Fill Rate Is a Vanity Metric: What Actually Drives Ad Revenue

By the Adrop team
Impressions enter a funnel beside a revenue gauge

At 100,000 monthly requests, Setup A fills 95% at a $0.80 CPM and earns $76 per thousand requests. Setup B fills 70% at $2.40 CPM and earns $168. Lower fill produces more than twice the revenue.

Fill rate is simple to measure and interpret, so mobile publishers adopted it as the default report metric. Alone, however, it is among the least useful optimization targets. The reason becomes clear in the revenue equation.

The Revenue Formula

Placement revenue follows a basic formula: total requests multiplied by fill rate and eCPM, then divided by 1,000:

Revenue=(Requests x Fill x eCPM)/1,000

Fill rate and eCPM are inputs, not goals. Improving fill while reducing eCPM can lower revenue. Reducing fill while materially raising eCPM can increase it. Revenue is the target.

The right tradeoff depends on the size of each change and your starting point. At 40% fill with a healthy eCPM, lowering the floor to reach 65% fill while keeping eCPM nearly flat is probably worthwhile. At 90% fill, giving up 15 points requires a substantial CPM increase to produce a net gain.

Why Publishers Fixate on Fill Rate

Fill rate became a primary health metric partly because older ad networks reported it directly. It was easy to read as a quality signal and actionable: low fill often indicated a misconfigured placement or thin category demand from a network. Cross-network eCPM comparisons were less clear because reporting differed and payout terms varied.

Modern mediation reports eCPM at placement and network level with reasonable consistency. The original case for optimizing mainly for fill is weaker, but the habit remains. Publishers used to single-network setups often bring that mental model into mediation, where it is less useful.

Dashboards create another bias. Fill rate is a 0 to 100% ratio that looks good or bad at a glance. eCPM changes by category, geo, and format without a universal threshold. New mediation users naturally choose the number they can judge without context. Once a baseline exists, revenue per thousand requests is a better top-line metric.

Effective Revenue Per Request (eCPR)

Revenue per ad request, also called effective cost per request or eCPR, captures the outcome that matters. It equals eCPM multiplied by fill rate, divided by 1,000, combining both variables in one number.

eCPR makes configurations directly comparable. Moving from Fill 92% / eCPM $1.10 to Fill 78% / eCPM $1.65 changes eCPR from $1.012 to $1.287. The second earns 27% more per ad request despite lower fill. Without eCPR, each decision requires repeated mental arithmetic.

Most mediation dashboards do not show eCPR, but their reported figures make it easy to calculate. For a placement, divide daily revenue by daily ad requests and express the result in the same unit as eCPM.

When Fill Rate Helps

Fill rate works well as a diagnostic signal. A sudden drop on a previously stable placement suggests a failure: an expired credential, lost category campaigns from a demand partner, or an SDK update that changed request formatting. As a monitoring metric, fill can expose these issues early.

Fill also matters at very low absolute levels. An app with 10% rewarded video fill has a different problem from one at 75%. At 10%, configure more demand partners and verify the integration before tuning floors. Below about 50% fill on a stable placement, incomplete demand coverage is usually more likely than floor misconfiguration.

Use fill rate to monitor health and diagnose faults. Use eCPR, or effective revenue per user session, as the main optimization target. They relate to each other but are not interchangeable, and confusing them can maximize fill while revenue per request stalls.

Applying This to Mediation

Raising eCPM floors can reduce fill without necessarily harming revenue. If default floors remain in place because of fill concerns, ask how much eCPM will rise relative to the fill decline, and whether eCPR improves.

Test a floor on a share of traffic. Send 20% of a placement's traffic through a higher floor, observe eCPM and fill for a week, calculate eCPR for both groups, and compare. If the higher-floor group has better eCPR, apply it to the full placement. The loop optimizes revenue, not fill alone.

Fixating on fill makes sense when monetization is new, because consistent ad delivery feels like progress. After the setup stabilizes, evaluate what each request earns rather than only whether it fills. That framing is more valuable than any single configuration change.

[/BODY-HTML]