VAST macros / Player and device
[PLAYERCAPABILITIES] VAST macro
Short answer: The capabilities the player supports (e.g. skip, mute, OMID, SIMID). Introduced in VAST 4.1.
What it means
A list of capability tokens describing what the player can do: skippable, mute/unmute, fullscreen, OMID measurement, SIMID interactivity, and more.
Example value
After the player substitutes the macro, [PLAYERCAPABILITIES] becomes something like:
skip%2Cmute%2ComidWhere it is valid
Impression and tracking URLs.
Macros are case-sensitive and substituted only inside URL fields. A macro written in the wrong case, or placed where it has no defined value, is sent to the server as literal text instead of a value.
Using it in a tag
<Impression><![CDATA[https://t.example.com/i?val=[PLAYERCAPABILITIES]&cb=[CACHEBUSTING]]]></Impression>VAST XML fragment only. This excerpt belongs inside a complete VAST document, so standalone validation will fail until it is wrapped in a full <VAST>response.
Related vastlint rules
- VAST-2.0-macro-unknown: URL contains a [MACRO] that is not a recognised IAB VAST macro
- VAST-2.0-macro-lowercase: Recognised macro is not uppercase — players match macro names case-sensitively
- VAST-2.0-macro-uri-unencoded: Macro-bearing URL contains characters that must be percent-encoded per RFC 3986
Related macros
- [PLAYERSIZE]: The width and height of the player in pixels.
- [PLAYERSTATE]: The player state at request time (e.g. muted, fullscreen).
- [APIFRAMEWORKS]: The API frameworks the player supports (e.g. OMID, SIMID, VPAID).
Validate your macros
vastlint flags unknown, mis-cased, deprecated, out-of-context, and unencoded macros in any tracking, click, error, impression, or media URL:
# CLI: exits non-zero on errors, ideal for pipelines
vastlint check creative.xmlUse the right tool for this failure
If you already have the resolved XML, run a pure spec check. If you only have a live tag URL, test that endpoint first. If the failure happens in the wrapper chain, inspect each hop.