VAST-2.0-macro-wrong-context
Context-restricted macro ([ERRORCODE]/[REASON]) used where it has no defined value
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>VAST-2.0-macro-wrong-context and other issues instantly.Open the VAST tag validator →