LabArticleSeat-verified

Domain waste after we filter exchanges

Exchange excludes do not remove domain waste. Domain findings still need seat-level reference list objects. That is an honest product limit, not a custom_list myth.

Published 2026-09-09 · Search job: domain exclusions programmatic

Domain exclusions in programmatic buying still need list objects after you filter exchanges. On this seat, inventory_source is an allowlist you can narrow. domain is not a direct targeting key. It points at /rest/v2/ref/lists through domain_list. Removing OPENX from an allowlist does not remove msn.com from every other source that still sells it.

If you filtered exchanges and expected the seven-domain click pile to disappear, the product cannot do that yet. That is an honest limit. It is not the old wrong custom_list story.

What the report keeps showing

The 2026-09-02 domain view returned 1,535 domains. The top ten took 31.9 percent of spend. Seven hosts produced 41.3 percent of clicks from 4.7 percent of impressions, including msn.com at 5.35 percent and people.com at 15.97 percent. Those rows are hostnames. Stored Supply Audit domain keys are a bare hostname with no pipe. The extractor that splits OPENX|ox/558246019 correctly returns null for them.

An exchange filter acts on inventory_source. A domain finding that sits on several sources will survive every source you keep. A domain finding that sat only on a source you removed will disappear from future delivery and still sit in the lookback window of the last run. Do not read a lingering domain row as proof the exclude failed.

What we will not pretend

We will not tell a buyer we excluded msn.com if we only narrowed exchanges. We will not re-block placement and site because domain is still blocked. Placement and site are direct keys. The old sentence that they needed custom_list blocked 59 percent of findable waste ($47.71 placement plus $34.21 site of $138.53, versus $7.79 actionable). Domain refusal now names domain_list and /rest/v2/ref/lists. Keep that sentence accurate.

We will not silently write a seat-level list from a publication. List objects are shared. A bad list is a seat-wide incident.

What to do instead today

Scan. Exclude at placement and site when the key exists. Narrow inventory_source without emptying the allowlist. Put repeating hosts on the watchlist. Keep domain on the honest-limit list until reference lists are a productized write with a revert.

The grain map is Placement vs site vs domain. The order of operations is Scan then exclude. The allowlist refusal is Why an empty allowlist serves nothing.