Summary
list-creative-formats-response.json inlines an assets.items.oneOf that has drifted from core/assets/asset-union.json. Five asset types are in the union and missing from the response schema, so a format carrying one of them cannot validate against the response that is supposed to carry it.
This is self-contradictory within a single release bundle: the spec's own canonical format catalogue declares assets the spec's own response schema rejects.
Evidence, v3.1.1 (release bundle 3.1.1.tgz)
core/assets/asset-union.json — 20 branches:
image, video, audio, vast, text, url, html, javascript, zip, webhook, css, daast,
markdown, brief, catalog, published-post, card, pixel-tracker, vast-tracker, daast-tracker
bundled/creative/list-creative-formats-response.json → properties.assets.items.oneOf — 15 individual branches (plus RepeatableGroupAsset):
image, video, audio, text, markdown, html, css, javascript, zip, vast, daast,
url, webhook, brief, catalog
In the union, missing from the response: card, daast_tracker, pixel_tracker, published_post, vast_tracker
Still present in v3.2.0-rc.1
The response schema was restructured into a nested discriminated oneOf (item_type → asset_type), but the individual branch list is unchanged at 15 and the same five are still absent. asset-union.json grew to 21 branches (adds display-tag-asset.json) and still includes all three trackers.
The contradiction is inside one bundle
In the v3.2.0-rc.1 bundle:
- 4 of the 16 files under
formats/canonical/ declare pixel_tracker assets (e.g. coordinated_placements.json);
bundled/creative/list-creative-formats-response.json mentions pixel_tracker 128 times — every one in a description or an enum vocabulary, including "pixel_tracker / vast_tracker / daast_tracker are the renderer-fired measurement-tracker primitives — see /schemas/core/assets/pixel-tracker-asset.json" — and none as a oneOf branch;
core/assets/pixel-tracker-asset.json exists and is a complete asset schema;
- the Python SDK generates
PixelTrackerAsset, PixelTrackerEvent and PixelTrackerMethod from it.
How it surfaces
A sales agent serving formats captured from the reference creative agent (pinned image adcp-creative-agent, 467fd93d7711 = the v3.1.1 tag) fails response validation on list_creative_formats:
at formats.12.assets.1: {'asset_type': 'pixel_tracker', 'event': 'impression',
'method': 'img', 'item_type': 'individual', 'asset_id': 'impression_tracker',
'required': False, 'requirements': {'description': '3rd party impression tracking pixel URL'}}
is not valid under any of the given schemas
Reproduced on 92 conformance checks in one run, across four transports.
Expected
assets.items.oneOf in list-creative-formats-response.json (and any sibling response schema that inlines the asset union) should be generated from core/assets/asset-union.json rather than maintained as a second list, so the two cannot diverge again.
Summary
list-creative-formats-response.jsoninlines anassets.items.oneOfthat has drifted fromcore/assets/asset-union.json. Five asset types are in the union and missing from the response schema, so a format carrying one of them cannot validate against the response that is supposed to carry it.This is self-contradictory within a single release bundle: the spec's own canonical format catalogue declares assets the spec's own response schema rejects.
Evidence, v3.1.1 (release bundle
3.1.1.tgz)core/assets/asset-union.json— 20 branches:bundled/creative/list-creative-formats-response.json→properties.assets.items.oneOf— 15 individual branches (plusRepeatableGroupAsset):In the union, missing from the response:
card,daast_tracker,pixel_tracker,published_post,vast_trackerStill present in v3.2.0-rc.1
The response schema was restructured into a nested discriminated
oneOf(item_type→asset_type), but the individual branch list is unchanged at 15 and the same five are still absent.asset-union.jsongrew to 21 branches (addsdisplay-tag-asset.json) and still includes all three trackers.The contradiction is inside one bundle
In the v3.2.0-rc.1 bundle:
formats/canonical/declarepixel_trackerassets (e.g.coordinated_placements.json);bundled/creative/list-creative-formats-response.jsonmentionspixel_tracker128 times — every one in adescriptionor an enum vocabulary, including "pixel_tracker/vast_tracker/daast_trackerare the renderer-fired measurement-tracker primitives — see/schemas/core/assets/pixel-tracker-asset.json" — and none as aoneOfbranch;core/assets/pixel-tracker-asset.jsonexists and is a complete asset schema;PixelTrackerAsset,PixelTrackerEventandPixelTrackerMethodfrom it.How it surfaces
A sales agent serving formats captured from the reference creative agent (pinned image
adcp-creative-agent,467fd93d7711= the v3.1.1 tag) fails response validation onlist_creative_formats:Reproduced on 92 conformance checks in one run, across four transports.
Expected
assets.items.oneOfinlist-creative-formats-response.json(and any sibling response schema that inlines the asset union) should be generated fromcore/assets/asset-union.jsonrather than maintained as a second list, so the two cannot diverge again.