v0.11.0
Added
-
CTV Ad Portfolio support for the VAST 2.0 extension path. The pull
request that landedvast_4.4.xsdon 2026-07-17 also added
extensions/ctv_ad_portfolio.mdandextensions/ctv_qrcode.md, which
deliver the same six formats through VAST 2.0 rather than 4.x. That path
had no coverage: none of the AdCOM value or QR checks were reachable, and
the generic extension rules reported IAB's own examples as defective.
Six new rules for the container's own failure modes:
VAST-2.0-ctv-portfolio-creative-id-required(the binding that fails
silently when an ad has multiple creatives),
VAST-2.0-ctv-portfolio-creative-id-unmatched,
VAST-2.0-ctv-portfolio-mediafiles-required,
VAST-2.0-ctv-portfolio-mediafiles-empty,
VAST-2.0-ctv-portfolio-no-renderable-assetand
VAST-2.0-ctv-portfolio-no-duration. Catalog: 212 to 218 rules. -
Format-to-Signal consistency, two rules that read the AdCOM signals as a
set rather than one at a time:VAST-4.4-adcom-pos-format-mismatchand
VAST-4.4-adcom-playbackmethod-format-mismatch.plcmt,posand
playbackmethodcan each sit inside its own enumeration and still describe
two formats at once, which is invisible to the per-value rules:plcmt=5
(Pause) withpos=12(a Squeezeback layout) passed all three. The scope is
the container that carries the signals, so both encodings are covered: the
whole<Extensions>block on 4.x, the single
<Extension type="ctv_ad_portfolio">on 2.0. Catalog: 218 to 220 rules.Both stay quiet where the guidance hedges.
posis checked for the four
formats with a published value set, never for In-Scene, whose table cell
reads "NA", and never forpos=0, AdCOM "unknown".playbackmethodis
checked only against the two rows the reference table states outright, 8/9
Pause and 10/11 Screensaver, in both directions; the other three rows read
"typically 1 or 2", which is advice rather than a constraint, so an Overlay
declaring an autoplay method is not reported. An out-of-rangeplcmt
suppresses both, sinceVAST-4.4-adcom-plcmt-valuehas already reported it
and the pairing would be guesswork. -
explain_rulein the MCP server returns fix guidance for the CTV Ad
Portfolio rules instead of the generic fallback.
Fixed
VAST-2.0-extension-misplaced-elementno longer fires inside a
standardised IAB extension container.<Extension type="ctv_ad_portfolio">carriesMediaFiles,Duration,
TrackingEvents,IconsandAdParametersby design, because it exists
to give VAST 2.0 a NonLinear delivery model it never had.- Version inference ignores elements inside those containers. A conforming
2.0 tag carrying a SIMIDInteractiveCreativeFilein its extension was
reported asVAST-2.0-version-mismatch, which is the one thing the
extension is designed to do. VAST-4.4-adcom-attr-not-motionaccepts 19 and 20. AdCOM 1.0-202607 added
19 Contains advertiser QR Code and 20 Support alpha channel transparency
alongside the three motion attributes, and IAB's own examples declare 19.- The media rules only apply when the extension is the delivery vehicle. A
creative that renders from a nativeStaticResourceand uses the container
only to declare AdCOM signals is conforming.
All five VAST 2.0 examples published in the two extension documents now
validate clean.
Changed
- VS Code extension 0.10.0 and Chrome extension 0.9.0 pick up the new rules.
Thevastlint.vastVersionsetting offers4.4, which the CLI has accepted
since 0.10.0. specs/vast_4.4_reference.mdcovers the VAST 2.0 extension path, the
Format-to-Signal cross-check and its deliberate gaps, and corrects the
attr=20entry in its list of defects in IAB's published examples: AdCOM
1.0-202607 defines 20, so it was never a defect.