Start with the fill-rate equation
The practical view is simple: if Google Ad Manager receives ad requests but does not return a paid ad often enough, the publisher has unsold inventory. The reporting workflow must keep the demand signal and the missing fill signal side by side.
In an MCP workflow, ask for ad requests, ad server impressions, unfilled impressions, fill rate, revenue, and eCPM grouped by DATE, AD_UNIT_NAME, device category, and country.
- High ad requests with high unfilled impressions usually point to demand, pricing, targeting, or technical setup issues.
- Low ad requests are a traffic or tagging question, not primarily an unsold inventory problem.
- A stable fill rate with falling revenue may indicate lower yield rather than more unsold inventory.
Segment before you optimize
Network-wide averages hide the real problem. A 93% fill rate can still contain one homepage ad unit with a broken bidder, one mobile placement with invalid sizes, or one country excluded by a campaign rule.
The first useful report should segment by ad unit, device, country, and date. Add Line Item or Order only when you need to understand which demand source filled the request.
- Use
AD_UNIT_NAMEorAD_UNIT_CODEto locate the inventory surface. - Use device and country dimensions to catch demand gaps that are invisible in total rows.
- Compare yesterday, last 7 days, and the same weekday last week before changing price floors.
Turn the report into an action queue
The goal is not to admire a table. The goal is to create a short action queue: ad units to inspect, floors to review, campaigns to add, and tagging paths to test.
Claude or Codex can use MCP output to rank issues by lost opportunity: unfilled impressions multiplied by historical eCPM, filtered to placements where traffic volume is high enough to matter.
- Send technical issues to engineering when ad requests disappear or sizes are inconsistent.
- Send demand issues to monetization when requests exist but fill rate or eCPM falls.
- Keep a saved template so the same checks run after every GAM trafficking change.
Follow the MCP workflow for unsold inventory detection and prioritization.
Check the definitions of ad requests, fill rate, and unfilled impressions.
Use the product workflow to rebuild clean ad unit trees after the audit.
Frequently asked questions
What is unsold inventory in Google Ad Manager?
Unsold inventory is the gap between ad requests, eligible impressions, filled impressions, and the demand that actually paid — not a single metric. A high number of ad requests with high unfilled impressions is the core signal.
Which reporting metrics reveal unsold inventory?
Group AD_REQUESTS, AD_SERVER_IMPRESSIONS, UNFILLED_IMPRESSIONS, FILL_RATE, AD_SERVER_REVENUE and eCPM by DATE, AD_UNIT_NAME, device category and country. Keep AD_REQUESTS next to UNFILLED_IMPRESSIONS so traffic loss is not confused with no-fill.
Why isn't a high network-wide fill rate enough?
Network averages hide the real problem: a 93% fill rate can still contain one ad unit with a broken bidder, a mobile placement with invalid sizes, or a country excluded by a campaign rule. Segment by ad unit, device, country and date.
How do you prioritize which unsold inventory to fix first?
Rank issues by lost opportunity — unfilled impressions multiplied by historical eCPM — filtered to placements where traffic volume matters. Route technical issues to engineering and demand or yield issues to monetization.
