The manifest learned to describe how the ad was made
Generative video went from demo to production inventory faster than the delivery stack adapted, and the agentic protocols are the first place the industry has written down what an AI-made creative should disclose about itself. AdCP has a provenance object that attaches to a creative manifest, to an individual asset, or to a content-standards artifact.
It is more specific than a boolean. A digital source type classifies AI involvement along IPTC-aligned lines. An ai_tool object names the model, its version, and the provider. A human_oversight enum grades involvement from none, through prompt_only, selected, and edited, to directed. A declared_by object records who made the claim and in what role: creator, advertiser, agency, platform, or tool. Timestamps separate when the content was produced from when the claim was attached, which exists because claims get added retroactively for compliance.
The schema also refuses to do something it easily could have done, and the refusal is the most honest sentence in it. Asserting human oversight does not by itself relieve a disclosure obligation, because the carve-outs in regulation have factual prerequisites a schema cannot evaluate. There is a separate C2PA watermark classification distinguishing a watermark cryptographically bound to a manifest from one that exists independently of any manifest.
Provenance is a claim by the declaring party. Receiving parties should verify claims independently via their own detection tools.
Now follow the claim into delivery
A provenance object lives in the creative manifest, which is an agent-to-agent artifact. The thing a player receives is a VAST document, and VAST has no provenance element. There is no field for a model name, no field for an oversight level, no field for a C2PA manifest reference, and no field for the disclosure obligation the manifest was tracking.
So the claim stops at the boundary. Downstream, three things carry identity instead: the creative identifier in Creative id and adId, the Universal Ad ID, and whatever a verification vendor sees through AdVerifications. Everything the provenance object said about how the video was produced is, from the player's point of view, unavailable.
That is survivable, but only if the identifiers that would let anyone reconnect the two halves are actually present and stable. In practice they often are not. A Universal Ad ID left as the placeholder value, a creative id that changes between wrapper hops, an AdVerifications block that no player can parse: each one breaks the link between the served impression and the manifest that described it.
What has to hold for a provenance claim to mean anything at delivery
- A real Universal Ad ID, with a registry and a value that is not the unknown placeholder, consistent across every hop of the wrapper chain.
- Stable creative identifiers. If the id differs between the manifest, the wrapper, and the inline ad, reconciliation becomes a manual exercise.
- A parseable AdVerifications block with a JavaScript resource and verification parameters that survive whatever the ad server did to the tag, since this is the only channel a third party can use to observe anything at render time.
- Extensions that are well-formed, because vendor-specific provenance metadata, if anyone carries it, will ride there and a malformed Extensions node can take the surrounding parse with it.
- Media files that match what was described. A manifest asserting a generated video of a given duration and a tag serving something else is a provenance failure even if nobody used the word.
- Disclosure assets that actually render, when a disclosure is required. An overlay, a companion, or burned-in text is a creative element with its own failure modes, not a metadata field.
The regulatory clock is the reason this stops being theoretical
The EU AI Act's transparency obligations under Article 50 apply from 2 August 2026. Two of its requirements bear directly on advertising creative. Providers of systems generating synthetic audio, image, video, or text must mark outputs in a machine-readable format that makes them detectable as artificially generated. Deployers of systems producing deepfake content must disclose that the content is artificially generated or manipulated, and advertising using synthetic depictions of real or realistic-looking people, places, or events is squarely in scope.
Note the shape of the first obligation: machine-readable and detectable. A human-visible label alone does not satisfy it. That is precisely what C2PA-style signing and watermarking are for, and precisely what a VAST document does not currently carry.
This is engineering commentary rather than legal advice, and the compliance analysis for any specific campaign depends on facts that are not in the payload. But the direction is not ambiguous. Something machine-readable will have to travel with synthetic creative, and the delivery envelope for video advertising has no slot for it yet.
Get VAST spec updates, platform guides, and release notes in your inbox.
What to do before the standards catch up
The useful posture is to treat the manifest claim and the served tag as two records that must be reconcilable, and to make reconciliation cheap on purpose.
Keep the provenance object with the creative in your own systems, keyed on the identifier that survives delivery, which in practice means the Universal Ad ID. Validate the tag at acceptance so the identifiers you are keying on are present and well-formed before anything serves. Re-validate what is actually being served rather than what was submitted, because endpoints change without manifests changing. And when a disclosure is required, verify it as a rendered creative element, not as a field that was set to true somewhere upstream.
None of that requires a new standard. It requires the same discipline the rest of the creative stack already needs, applied to a claim that currently has nowhere to live.
What would actually close the gap
Two additions would make provenance survive delivery. A defined place in VAST for a content credentials reference, so a player or verification vendor could locate a C2PA manifest for the media it is about to render. And a normative binding between the creative identifier in the manifest and the identifier in the served document, so the two records are joinable without a spreadsheet.
Both are small, and both are the kind of thing that gets specified after enough people hit the problem. In the meantime the checkable part is the tag, which is the one artifact in this chain that every party receives and every party can parse.
Validate the tag that carries the claim
vastlint parses a VAST document against the version it declares and reports Universal Ad ID, verification, wrapper, and identifier problems by rule id, in the browser, from the CLI, or as an MCP tool call inside an agent loop.
Read the agentic integration guideSources and further reading
digital_source_type, ai_tool, human_oversight, declared_by, declared_at, and the caveat that provenance is a claim to be verified independently.
How generative assets are produced and described inside the creative protocol.
Transparency obligations for providers and deployers, including machine-readable marking of synthetic content and deepfake disclosure. Applies from 2 August 2026.
Content Credentials: signed manifests and the watermark action taxonomy AdCP references.
Why the identifier that would anchor a provenance claim is so often a placeholder.
The one channel in VAST a third party can use to observe a creative at render time.