Skip to main content

Slot Audit

When one slot under-earns — low fill, low eCPM, fewer impressions than its pageviews imply — audit it end to end. This runbook walks a single slot from "does it even render" down to "is it earning what it should," in the order that catches the most problems soonest.

Not rendering at all?

If the slot shows no ads whatsoever, start with Ads not showing — that's the faster path for a slot that's completely dark. Come here when it renders but under-delivers, or when you want a full config-and-performance pass.


Step 1: Scope

Name the slot and where it should appear. Have its expected page-path(s) in mind — you'll check that a layout actually places it there.


Step 2: Trace the configuration, top to bottom

Each link in this chain can silently cost the slot revenue. Check them in order; the first break explains the most.

1. Layout match

Inventory → Layouts. Is the slot a member of a layout whose page-path pattern matches the pages you expect it on? A slot that isn't in any matching layout never enters the auction on those pages. Confirm the layout's page-path against a real URL. (On a live page, the console line AAM Processing N ad slots tells you how many slots the matched layout registered — see Ads not showing.)

2. GAM ad-unit mapping

Inventory → Ad Slots → <slot> → Insert tab. Is Ad unit set to a GAM ad unit? An unmapped slot can collect bids but has nowhere for GAM to serve the winner — bids arrive and nothing renders. If the mapping is blank or points at the wrong unit, fix it here. (Symptom: populated getBidResponses() but empty getAllWinningBids().)

3. Sizes

Media tab → Sizes. Do the slot's sizes match what demand actually wants and what the mapped GAM ad unit supports? Too few sizes starves the slot of eligible demand; sizes the GAM unit doesn't carry won't serve. Keep the list tight (2–4 is the sweet spot) but make sure the high-demand sizes for the placement are present. If you use the per-device toggle, check both mobile and desktop lists.

4. Bidders and tag IDs

Demand → Prebid → Tag IDs. For each bidder you expect on this slot, is a tag ID assigned to it? A bidder with no tag ID for the slot simply won't bid on it. A slot getting bids from only one or two of your enabled bidders is usually a tag-ID gap, not a demand problem. (Confirm live with pbjs.getBidResponses() — see which bidders actually respond for this slot's ad unit.)

5. Load and refresh

Insert tab → Load and Media tab → Refresh.

  • Load (eager / lazy / dynamic): an above-the-fold slot set to lazy-load may miss impressions; a below-the-fold slot set to eager hurts page speed for little gain.
  • Refresh (Trigger / Interval / Times): a refresh that's too aggressive inflates impressions at the cost of viewability and eCPM; none at all leaves impressions on the table for engaged users. Refresh should be viewability-gated where possible.

6. Floor

Auction tab → Floor. A floor set too high prices out demand and depresses fill; too low leaves money on the table. Check it against what the slot actually clears (next step). See Floors.


Step 3: Read the slot's performance

Dashboard → Monetization → Supply tab, Breakout by → Ad Slots, filtered to this slot:

MetricWhat it tells you
ImpressionsLow vs. the slot's pageviews → a layout, load, or fill problem upstream
Fill RateLow → bids aren't clearing (floor too high, thin bidder coverage, sizes)
eCPMLow → demand or size issue; compare against your other slots in the same position
ViewabilityLow → placement or aggressive refresh; also drags eCPM, since viewable inventory bids higher

Supply Health and Fill Rate Trend give the trend; Refresh Analysis is worth a look if the slot refreshes.


Step 4: Attribute the weak spot

For whatever metric is off, break it down further — by device, browser, or bidder — to localize it. "Low fill" often turns out to be "low fill on mobile only," which points straight at the mobile size list or a bidder that's absent on mobile. Use the Supply and Demand breakouts together: Supply tells you the slot is weak, Demand tells you which bidder on it is.


Step 5: Verdict and fixes

FindingFix
Not in a matching layoutAdd the slot to the right layout
Unmapped GAM ad unitSet Ad unit on the Insert tab
Thin sizesAdd the high-demand sizes for this position
Missing tag IDsAssign tag IDs on Demand → Prebid → Tag IDs
Wrong load behaviorEager above the fold, lazy below
Over-aggressive refreshLengthen the interval; gate on viewability
Floor too highLower it; re-check fill
A specific bidder is weak on this slotBidder-health runbook

Ship changes as a release, then re-read the Supply tab after it's accumulated data. For a risky change, roll it out to a slice of traffic with an experiment first.


Let the AI Assistant run it

The Assistant has a slot-audit flow — "Audit the article_sidebar_top slot", "Why is my mobile header slot's fill rate low?" — that pulls the slot's configuration and performance, breaks down underperformance by dimension, and recommends size, load, refresh, or floor changes. See the AI Assistant guide.