Scan then exclude, because you cannot pick the list first
1,073 zero-click placements cannot be known before a flight. The working order is deliver, read grain, then exclude at a key the seat can compile.
Published 2026-09-09 · Search job: programmatic placement exclusions
Programmatic placement exclusions only work after you have seen the placements. On the 2026-09-02 Supply Bench pull, 1,073 of 1,149 placements had zero clicks and took $202.77, 64 percent of observed spend. Those IDs did not exist on a planning spreadsheet. They appeared in inventory_agg after the campaigns delivered. If your process is "pick the blocklist, then launch," you are guessing.
Scan then exclude is the operating rule because remnant display is a long tail. The top ten domains took 31.9 percent of spend. The other 1,525 domains averaged about $0.215 each. You cannot curate that list from memory.
What a scan has to survive
This seat ignores report offset. A limit of 50,000 returns 400. Filters on campaign_id fail. The usable pull is the top roughly 5,000 rows by spend. The 2026-09-02 slice captured $316.64 of a combined total near $432. A scan that claims complete coverage is wrong. A scan that labels partial coverage and still acts on the head of the list is usable.
Returned keys are label-cased. A parser that expects campaign_id will read zeros. Placement and site entity keys in Supply Audit are composites (OPENX|ox/558246019, PUBMATIC|site:pm/1188465). The Beeswax value is the part after the pipe. Sending the un-split key matches nothing and the placement keeps serving.
What you exclude after the scan
Placement and site are direct keys. Domain and app_bundle need list objects. inventory_source is an allowlist that must not be emptied. The how-to is Placement vs site vs domain. The allowlist trap is Why an empty allowlist serves nothing.
Apply creates targeting. It does not change live delivery. Pointing a campaign at the new targeting is a second step. Until that step happens, a finding marked applied will keep appearing in the next lookback, because the auctions never moved.
What we will not put on the first list
We will not pre-exclude msn.com from a brand-new campaign and call that a strategy. We will put it on a watchlist and confirm it on the next scan. Two flights have already shown the host. A third flight should not have to discover it from scratch. That is a watchlist, not a pre-flight blocklist of 1,073 unknown placements.
A future alternative to a hard exclude is a bid modifier that scales the bid down, for example multiplier 0.3, and keeps collecting data. That path is not productized. It is a plan.
The measured pile this rule exists for is Most placements we bought did nothing.