
The gap in brand safety

- Property lists control where ads run — which apps, sites, and platforms. Jordan can say “not on this news app” and every seller enforces it.
- Content standards control what content is adjacent to an ad — per-impression evaluation against a natural language policy. They handle nuance like “exclude kids content except G/PG animation.”
Most buyers use one or two layers. A buyer who only needs to exclude specific programs uses a collection list alone. The three-layer model is a composition framework, not a requirement.
Resolving program identifiers

Building the collection list

How filters compose
Include filters are allowlists, exclude filters are blocklists. When both are present for the same dimension, include applies first, then exclude narrows further. Example:genres_include: ["drama", "comedy"] + genres_exclude: ["crime"] first includes only drama and comedy collections, then removes any also tagged as crime. A collection tagged ["drama", "crime"] is excluded — the exclude filter wins.
Sellers match against their inventory

adagents.json, so the match is automatic.
Priya’s agent reports back: 47 of 200 excluded programs are in StreamHaus’s library. 12 additional collections caught by the TV-MA filter. The rest aren’t programs StreamHaus carries — acknowledged and ignored.
The list is cached for a week (collection metadata changes less frequently than property metadata). When the governance agent re-resolves the list — a new season changes a show’s content rating, or Jordan adds programs — sellers receive a webhook and refresh their cache.
Targeting integration
Collection lists are referenced in targeting overlays alongside property lists:
A media buy can reference both simultaneously — “run in these approved shows, but never in these specific programs even if they appear on the approved list.” The exclude list always wins on overlap.
Why two fields for collections but one for properties? Property lists predate the paired include/exclude pattern now used across other targeting dimensions (geo, audience, device). Collection lists follow the current pattern. A future evolution may add
property_list_exclude for symmetry.Jordan’s three-layer configuration
By the time Jordan is done, Nova Motors’ CTV brand safety is expressed in three machine-readable artifacts:- Property list — excluded apps and approved CTV platforms
- Collection list — excluded programs by distribution identifier + TV-MA and news genre filters
- Content standards — the nuanced kids/animation policy that requires per-episode judgment
Relationship to property lists
Property lists and collection lists are sibling constructs — both are inventory lists managed by governance agents with the same lifecycle pattern (create, get, update, list, delete, webhook). They differ in what they address:Tasks
Collection list management
- create_collection_list: Create a new collection list on a governance agent
- get_collection_list: Retrieve resolved collections (with caching guidance)
- update_collection_list: Modify filters or base collections
- list_collection_lists: List collection lists for an account
- delete_collection_list: Remove a collection list