Problem
Creative material is often ingested before the destination seller, product, or
player is known. One logical creative can arrive with several equivalent
delivery representations. A CM360 tag sheet is a concrete example:
- display: iframe/JavaScript, JavaScript, Standard, and Internal Redirect;
- video/audio: VAST 2.0, 3.0, and 4.0 pre-fetch URLs.
The correct representation depends on the eventual product's format option and
execution path. Discarding alternatives at parse time makes later assignment
impossible; creating unrelated creative IDs loses logical identity,
provenance, revision correlation, and reporting continuity.
The current CreativeAsset contract selects one format_kind (and optionally
one format_option_ref) with one assets object. Arrays inside asset slots are
cardinality for formats such as carousels, not one_of delivery alternatives.
There is no protocol object or normative workflow for preserving equivalent
representations and selecting one after seller discovery.
References:
Proposed direction
Define a first-class, explicitly one_of delivery-variant set for pre-binding
creative intake. Each variant should carry:
{
"variant_id": "cm360-vast-3",
"format_kind": "video_vast",
"format_option_ref": null,
"assets": { "vast_tag": { "asset_type": "vast", "...": "..." } },
"source": {
"system": "cm360",
"source_variant": "VAST 3.0 pre-fetch"
}
}
The exact envelope could be delivery_variants[] on a creative-source object,
or a new creative-library object that compiles to an ordinary seller-bound
CreativeAsset. It should not overload repeatable asset groups.
Resolution workflow
- Ingest and preserve all valid source variants without executing them.
- Discover seller and product format options.
- Compute compatible variants using canonical kind, format-option
requirements, seller capabilities, and asset metadata.
- Select exactly one representation for a seller-bound sync/assignment.
- Read back
selected_variant_id, or return structured rejection reasons for
every candidate when there is no compatible variant.
The protocol should decide whether selection is always buyer-side or may be
delegated to a seller that advertises deterministic variant resolution. Silent
seller guessing must not be the default.
Non-goals
- Creative rotation or A/B testing. Variants here are equivalent trafficking
representations, not content intended to rotate.
- Treating a higher VAST version as universally better. Version compatibility
is product/player-bound.
- Inventing vendor macro replacements during ingestion.
Acceptance criteria
Compatibility and versioning
This can be additive if introduced as a pre-binding creative-source/library
object that compiles to today's CreativeAsset. Adding alternatives directly
to the seller-bound CreativeAsset union may require a larger versioning
discussion.
Problem
Creative material is often ingested before the destination seller, product, or
player is known. One logical creative can arrive with several equivalent
delivery representations. A CM360 tag sheet is a concrete example:
The correct representation depends on the eventual product's format option and
execution path. Discarding alternatives at parse time makes later assignment
impossible; creating unrelated creative IDs loses logical identity,
provenance, revision correlation, and reporting continuity.
The current
CreativeAssetcontract selects oneformat_kind(and optionallyone
format_option_ref) with oneassetsobject. Arrays inside asset slots arecardinality for formats such as carousels, not
one_ofdelivery alternatives.There is no protocol object or normative workflow for preserving equivalent
representations and selecting one after seller discovery.
References:
creative-asset.jsonformat-option-ref.jsonProposed direction
Define a first-class, explicitly
one_ofdelivery-variant set for pre-bindingcreative intake. Each variant should carry:
{ "variant_id": "cm360-vast-3", "format_kind": "video_vast", "format_option_ref": null, "assets": { "vast_tag": { "asset_type": "vast", "...": "..." } }, "source": { "system": "cm360", "source_variant": "VAST 3.0 pre-fetch" } }The exact envelope could be
delivery_variants[]on a creative-source object,or a new creative-library object that compiles to an ordinary seller-bound
CreativeAsset. It should not overload repeatable asset groups.Resolution workflow
requirements, seller capabilities, and asset metadata.
selected_variant_id, or return structured rejection reasons forevery candidate when there is no compatible variant.
The protocol should decide whether selection is always buyer-side or may be
delegated to a seller that advertises deterministic variant resolution. Silent
seller guessing must not be the default.
Non-goals
representations, not content intended to rotate.
is product/player-bound.
Acceptance criteria
representations under stable variant IDs.
one_ofsemantics distinct from repeatableasset cardinality.
never silently trafficked.
Compatibility and versioning
This can be additive if introduced as a pre-binding creative-source/library
object that compiles to today's
CreativeAsset. Adding alternatives directlyto the seller-bound
CreativeAssetunion may require a larger versioningdiscussion.