Skip to content

What to do about unfilled ad impressions

Short answer

Work through fallbacks in descending value on inventory nobody bid on. First re-render losing header bidding bids that were valid but lost to the ad server. Then contextual alternatives such as shopping or affiliate referrals. Then native-styled direct-link creatives. Then your own house ads. Frequency-cap every stage and collapse the slot rather than serving something worthless.

Last updated Intermediate

An unfilled impression is a slot that was requested, was possibly seen by the user, and earned nothing. It is the least glamorous line in ad reporting and frequently the largest single pool of recoverable revenue on a site.

Why requests go unfilled

  • No bidder wanted the impression — thin geography, low-value audience, or a placement buyers avoid.
  • Bids arrived but were below your floor, so you rejected them. That is a deliberate choice, but it produces unfilled inventory and you should know the volume.
  • Consent was refused, so most demand cannot legally bid. Non-personalised demand exists but is much thinner and priced accordingly.
  • Bids arrived after the timeout and were discarded.
  • The winning creative could not render — a size mismatch, or a creative blocked by your own brand safety or ad quality rules.
  • Seasonal demand collapse. The first week of January and mid-August are brutal in most markets.

The recovery cascade

The ordering principle is simple: highest expected value first, and everything runs only after the primary auction has definitively failed, so no latency is charged to inventory that was going to fill anyway.

  1. 1 PostBid — re-render a header bidding bid that was valid but lost to the ad server's own decision. You already have the bid; nobody claimed the impression. This is the highest-value fallback and the cheapest, because there is no new auction.
  2. 2 Contextual referrals — shopping or affiliate placements matched to the page. They monetise on click or conversion rather than impression, so they suit slots with real attention but no programmatic demand.
  3. 3 Native-styled direct links — a small set of link creatives styled to sit within your layout. Low value per impression, but non-zero on inventory that would otherwise earn nothing.
  4. 4 House ads — your own newsletter signup, subscription offer or internal promotion. Worth more than it looks: a newsletter subscriber is a durable asset, and it beats a blank box.
  5. 5 Collapse the slot — the correct final answer. If nothing worthwhile is available, remove the space. Reserve it in a way that collapsing does not cause layout shift.

Frequency capping is not optional

Every stage after PostBid degrades user experience somewhat, and low-value fallback creatives get worse the more often a user sees them. Cap each stage per user per day — 24-hour caps per stage are a sensible default — and check the cap is enforced across the whole site rather than per page.

The failure mode to avoid: a user who refuses consent sees nothing but direct-link creatives on every page. That is a fast route to teaching people to install an ad blocker, which costs you far more than the fallbacks earned.

Floors and unfilled rate

If your unfilled rate is high, check your floors before building a recovery cascade. A floor that is 40% above what the market will pay converts fillable impressions into unfilled ones, and no amount of fallback demand recovers as much as simply pricing correctly.

Sanity check: what share of your unfilled inventory is floor-rejected rather than genuinely unwanted? If nobody knows, that is the first thing to measure.

Related questions

What is PostBid?

Re-rendering a header bidding bid that was valid but lost to the ad server's own decision, on a slot that then went unfilled. Because the bid already exists, there is no new auction and no added latency. It is the highest-value fallback available for unfilled inventory and typically the first stage of a recovery cascade.

Do fallback ads hurt user experience?

They can, which is why ordering and frequency capping matter. Re-rendering a real programmatic bid is invisible to users. Low-value direct-link creatives shown repeatedly are not, and are a genuine driver of ad blocker installs. Cap each stage per user per day and collapse the slot when nothing worthwhile is available.

Should I collapse empty ad slots?

Yes, when no fallback is worth serving — a blank reserved box looks broken and wastes screen space. Collapse carefully though: removing a reserved container after layout causes cumulative layout shift. Collapse out of flow, or reserve the space in a way that collapsing does not move surrounding content.

Can high price floors cause unfilled impressions?

Directly, yes. A floor above what the market will pay for that impression rejects bids that would otherwise have filled it. This is sometimes the right call — protecting price across your whole inventory — but it should be a measured decision. Track floor-rejected volume separately from genuinely unwanted inventory.

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