VASTlint
VAST-2.0-macro-wrong-context

VAST-2.0-macro-wrong-context

Context-restricted macro ([ERRORCODE]/[REASON]) used where it has no defined value

InfoMacrosIAB VAST 4.2 §6VAST 2.0 and later (all versions)

Short answer

Some macros are only defined in a specific element. [ERRORCODE] is only substituted inside <Error> URIs, and [REASON] only inside a verificationNotExecuted tracking URI. Used elsewhere they resolve to nothing.

Why this matters in production

This rule is advisory rather than fatal, but it still matters for portability, debugging speed, and keeping tags predictable across different buyers and playback stacks. Macro rules catch substitution problems in tracking, click, and error URLs. A misspelled, mis-cased, or out-of-context macro is never replaced by the player, so the server receives literal placeholder text instead of the measurement value, and unencoded characters can break the request entirely. Affected scope: VAST 2.0 and later (all versions).

Invalid

<Impression><![CDATA[https://t.example.com/i?e=[ERRORCODE]]]></Impression>

Valid

<Error><![CDATA[https://t.example.com/e?e=[ERRORCODE]]]></Error>
Check your VAST tag for VAST-2.0-macro-wrong-context and other issues instantly.Open the VAST tag validator →