Skip to content

The header bidding metrics that actually matter

Short answer

Track revenue per thousand pageviews (RPM) as your primary number, then unfilled rate, viewability, bid response times by percentile, win rate per bidder, and timeout rate per bidder. CPM alone is misleading because it rises when you sell fewer impressions at better prices. Pair every yield metric with LCP and CLS so you can see what the revenue cost in user experience.

Last updated Beginner

Almost every argument about ad monetisation is really an argument about measurement. Two people looking at the same change can both be right if one is looking at CPM and the other at revenue per session.

Take a baseline first

Before touching anything, record: RPM per thousand pageviews, average CPM, fill and unfilled rate, viewability, and your field LCP and CLS. Do it over at least a full week so you capture the weekday/weekend cycle, and note anything unusual about the period.

Without a baseline you cannot prove a change worked, and you will end up arguing from impressions rather than evidence. This is the step everyone regrets skipping.

The metrics worth watching

  • RPM per thousand pageviews — your primary metric. It is the only number that cannot be gamed by changing how many impressions you generate. If a change raises CPM and lowers RPM, you got poorer.
  • Unfilled rate — the share of ad requests that returned nothing. This is your clearest pool of recoverable revenue, and many publishers have never looked at it.
  • Viewability — measured per placement, not sitewide. A sitewide average hides the one below-the-fold unit at 12% that is dragging down how buyers price your whole site.
  • Bid response time percentiles — the 50th, 90th and 99th per bidder. This is the raw material for setting a defensible timeout.
  • Timeout rate per bidder — the share of auctions where a bidder failed to answer in time. Consistently above about 30% and that bidder is a latency tax that rarely pays.
  • Win rate per bidder — how often each bidder wins when it bids. Near-zero win rate plus meaningful bundle cost is a straightforward case for removal.
  • Bid density — average number of bids received per auction. Falling density means demand is thinning, usually before revenue shows it.
  • Field LCP and CLS — from real users. Yield changes that quietly wreck Core Web Vitals cost you traffic later, and traffic is the input to everything else.

Metrics that mislead

  • CPM in isolation — trivially inflated by serving fewer, better impressions. Useful only alongside impression volume.
  • Total impressions — easily inflated by aggressive refresh and unviewable slots. More impressions of worse quality lowers what buyers will pay for all of them.
  • Number of bidders connected — an input, not an outcome. Ten bidders where four win is worse than four bidders.
  • Highest bid received — a nice screenshot, no information. What matters is the distribution.

How to run a change

  1. 1 Change one thing at a time. Two simultaneous changes give you one uninterpretable result.
  2. 2 Run for a full week minimum, ideally two. Ad revenue is seasonal at every timescale, including within the day.
  3. 3 A/B split traffic if you can rather than comparing this week to last week. Week-over-week comparison silently attributes market movements to your change.
  4. 4 Compare RPM, not CPM. Then check that viewability and Core Web Vitals did not degrade.
  5. 5 Write down the result even when it is negative. Negative results are the ones that stop the same idea coming back in six months.

Related questions

What is a good unfilled rate for a publisher?

It varies enormously by geography, content vertical and season, so there is no universal target. What matters is the trend and whether you have a recovery path for it. A rate that is stable and handled is fine; a rate nobody has measured is the problem. Ask for the number before accepting any benchmark.

Why did my CPM go up but revenue go down?

You sold fewer impressions at higher prices. Common causes: a timeout increase that pushed ads past the viewport, lazy loading with too small a margin, or higher price floors rejecting more bids. All three raise average price while cutting volume. Always evaluate on revenue per pageview instead.

How long should I run an A/B test on ad setup?

At least one full week, preferably two. Ad demand varies by day of week, by advertiser budget cycles within the month, and by season. A three-day test mostly measures which days it happened to run on. Split traffic concurrently rather than comparing consecutive periods.

Should I measure viewability per placement or sitewide?

Per placement, always. A sitewide average hides the specific units that are failing, and those units are what drag down how buyers price your inventory overall. Per-placement data tells you what to fix, move, or remove; the average tells you only that something is wrong.

Try it on your own site

Free up to 1 million ad impressions a month. You keep your Ad Manager account and your SSP contracts.

Start free