Problem
AdCP has a canonical PublishedPostAsset and canonical format params for
publisher-owned references, but list_creatives cannot filter creative rows by
asset type.
A cross-platform buyer wanting to show “existing published posts” must currently
fetch creative rows and inspect assets.published_post locally. Filtering by
format_ids is not a valid substitute: that field carries legacy
{agent_url, id} format identity, while published-post rows may be canonical
format_kind + format_option_ref. Requiring every buyer to download unrelated
creative rows is inefficient and duplicates protocol semantics in each host.
Proposal
Add an optional asset-type filter to CreativeFilters, reusing the existing
AssetContentType vocabulary:
{
"filters": {
"asset_types": ["published_post"]
}
}
Recommended semantics: a creative matches when it contains at least one asset
whose asset_type is in the requested set. Multiple requested values are OR,
consistent with format_ids and statuses. The field should be exact and
conjunctive with other filters.
Why this belongs in AdCP
published_post is already a cross-platform protocol asset. Buyers and shared
MCP Apps should be able to request that creative flavor without knowing
publisher-specific format options or inventing an extension. The same filter is
useful for image/video/audio/VAST creative libraries.
Acceptance
- Schema and generated SDK types expose
CreativeFilters.asset_types?: AssetContentType[].
list_creatives documentation defines OR-within-field and AND-across-fields
semantics.
- Conformance fixtures cover
published_post, mixed-asset creatives, empty
results, and interaction with format_ids.
- No
agent_url or platform-specific post fields are introduced.
Problem
AdCP has a canonical
PublishedPostAssetand canonical format params forpublisher-owned references, but
list_creativescannot filter creative rows byasset type.
A cross-platform buyer wanting to show “existing published posts” must currently
fetch creative rows and inspect
assets.published_postlocally. Filtering byformat_idsis not a valid substitute: that field carries legacy{agent_url, id}format identity, while published-post rows may be canonicalformat_kind + format_option_ref. Requiring every buyer to download unrelatedcreative rows is inefficient and duplicates protocol semantics in each host.
Proposal
Add an optional asset-type filter to
CreativeFilters, reusing the existingAssetContentTypevocabulary:{ "filters": { "asset_types": ["published_post"] } }Recommended semantics: a creative matches when it contains at least one asset
whose
asset_typeis in the requested set. Multiple requested values are OR,consistent with
format_idsandstatuses. The field should be exact andconjunctive with other filters.
Why this belongs in AdCP
published_postis already a cross-platform protocol asset. Buyers and sharedMCP Apps should be able to request that creative flavor without knowing
publisher-specific format options or inventing an extension. The same filter is
useful for image/video/audio/VAST creative libraries.
Acceptance
CreativeFilters.asset_types?: AssetContentType[].list_creativesdocumentation defines OR-within-field and AND-across-fieldssemantics.
published_post, mixed-asset creatives, emptyresults, and interaction with
format_ids.agent_urlor platform-specific post fields are introduced.