Reports can count requests, responses or displayed impressions differently. Google Ad Manager, for example, distinguishes delivery rate from programmatic match rate, so record the metric’s full name before comparing results. (Prebid price floors module ↗ · Google Ad Manager report metrics)
Jump to a section
Calculating the share that filled
Illustrative Google Ad Manager-style delivery-rate calculation for May: 720 ad impressions served ÷ 900 ad requests × 100 = 80%. Another publisher may count programmatic responses divided by programmatic-eligible requests instead. Keep the same request/response event and denominator in both periods; a request-fill rate is not automatically an impression-fill rate.
What fill rate leaves out
A higher fill rate is not necessarily more profitable. In an illustrative comparison, 800 impressions at $2 per thousand earn $1.60, while 1,000 impressions at $1 per thousand earn $1.00. Filling every opportunity can earn less when the additional demand lowers the realized price enough.
| Measure | 80% fill | 100% fill |
|---|---|---|
| Paid impressions | 800 | 1,000 |
| Revenue per 1,000 paid impressions | $2.00 | $1.00 |
| Total revenue | $1.60 | $1.00 |
Why percentages need a named denominator
A report might count 800 paid impressions on 1,000 eligible opportunities and a different report might exclude some opportunities before calculating fill. Both percentages can be internally consistent. Write down what qualified for each denominator before using them to compare partners.
In the illustration the numerator stays fixed, so the higher reported rate comes entirely from the narrower population.
Swipe or scroll to see all columns.
| Report | Paid impressions | Eligible opportunities | Fill rate |
|---|---|---|---|
| All eligible slots | 800 | 1,000 | 80% |
| Report excluding 100 unfilled slots | 800 | 900 | 88.9% |