#relationships·Jul 17, 2026·6 min read
CPM vs Fill Rate: Which Metric Tells You If Your Ad Price or Your Inventory Utilization Is the Problem?
CPM (cost per mille) tells you how much advertisers pay for 1,000 ad impressions. Fill rate tells you what percentage of your available ad slots actually get filled with an ad. Together they reveal whether your revenue problem is price (CPM) or utilization (fill rate).
Core Difference: Price vs Utilization
CPM measures the price advertisers pay per thousand impressions. Fill rate measures the percentage of your inventory that actually gets served.
- CPM = Revenue / (Impressions / 1000)
- Fill rate = (Impressions served / Total ad requests) × 100
Why it matters
- A high CPM with low fill rate means you earn well when you sell, but you leave money on the table from unsold slots.
- A high fill rate with low CPM means you sell almost everything, but at a cheap price.
The trap
Optimizing only CPM can push fill rate down (too high floor prices). Optimizing only fill rate can crash CPM (selling to any buyer at any price).
Which to Use When
Pick CPM when:
- You are comparing ad networks or demand partners.
- You want to set floor prices for your inventory.
- You are analyzing revenue per impression across different ad formats.
Pick fill rate when:
- You are diagnosing why total revenue is low despite decent CPM.
- You are testing new ad placements or formats (are they getting filled?).
- You are optimizing waterfall or header bidding setups.
Use both together when:
- You want to calculate effective CPM (eCPM) = Revenue / (Total ad requests / 1000). eCPM combines both metrics into one revenue-per-opportunity number.
Quick rule
If revenue is flat but CPM looks healthy, check fill rate. If fill rate is high but revenue is low, check CPM.
How they diverge
What They Measure
- CPM: Price per 1,000 impressions (dollar amount).
- Fill rate: Percentage of ad requests that result in a served impression.
Who Cares
- CPM: Both publishers and advertisers (advertisers use it to compare costs).
- Fill rate: Primarily publishers (advertisers don't care about unsold inventory).
Optimization Trade-off
- CPM: Raising floor prices can increase CPM but may reduce fill rate.
- Fill rate: Accepting low-CPM demand can boost fill rate but drags down average CPM.
Where they overlap
Both Affect Revenue
Revenue = (Impressions / 1000) × CPM. But impressions = total ad requests × fill rate. So both metrics directly multiply into revenue.
Both Are Aggregated
Neither metric is granular enough to diagnose user-level or placement-level issues without segmenting by device, geo, or ad unit.
Both Can Be Misleading in Isolation
A high CPM with 10% fill rate is worse than a moderate CPM with 80% fill rate. Always look at the pair.
Real scenarios
High CPM, Low Fill Rate: The Empty Premium Shelf
A publisher sees CPM of $12 but fill rate of only 15%.
- What happened: High floor prices scared away most demand.
- What they checked: They segmented fill rate by floor price bucket and found that dropping the floor from $10 to $5 doubled fill rate while CPM only dropped to $9.
Takeaway: A high CPM is useless if you can't sell the inventory. Balance floors to maximize revenue, not CPM.
High Fill Rate, Low CPM: The Fire Sale
A publisher has 95% fill rate but CPM of $0.50.
- What happened: They accepted every low-quality bid to keep fill rate high.
- What they checked: They introduced a minimum floor of $0.80 and saw fill rate drop to 70%, but CPM rose to $1.20. Total revenue increased by 68%.
Takeaway: A high fill rate can mask a fire sale. Raising floors can improve revenue even if fill rate drops.
How they work together
Use CPM when you are setting floor prices, comparing demand partners, or analyzing the price your inventory commands in the market.
Use fill rate when you are launching new placements, testing ad formats, or troubleshooting why total revenue is low despite decent CPM.
Use both to calculate eCPM (effective CPM) = Revenue / (Total ad requests / 1000). eCPM gives you a single revenue-per-opportunity metric that accounts for both price and utilization.
Side-by-side snapshot
| Lens | CPM | Fill Rate |
|---|---|---|
| Definition | Cost per 1,000 impressions served | Percentage of ad requests that get filled |
| Formula | Revenue / (Impressions / 1000) | (Impressions served / Total ad requests) × 100 |
| Primary User | Publishers & Advertisers | Publishers |
| Optimization Risk | Raising CPM can lower fill rate | Raising fill rate can lower CPM |
| Combined Metric | Part of eCPM calculation | Part of eCPM calculation |
Common pitfalls
Confusing CPM with eCPM
Some practitioners think CPM and eCPM are interchangeable. They are not.
- CPM = Revenue / (Impressions served / 1000)
- eCPM = Revenue / (Total ad requests / 1000)
What to do instead: Use eCPM when you want to measure revenue per opportunity (including unfilled slots). Use CPM when you want to measure the price of what actually sold.
Optimizing Fill Rate Without a Floor
Chasing 100% fill rate by accepting any bid can destroy CPM and user experience (low-quality ads).
What to do instead: Set a minimum floor price that aligns with your inventory value. Accept some unfilled slots as a trade-off for higher CPM.
Quick check
Test whether you can tell these metrics apart.
boolean
CPM measures the percentage of ad requests that result in a served impression.
Select an answer to continue
For learning only. Not advice on bids or spend.