VASTlint
VAST-2.0-macro-uri-unencoded

VAST-2.0-macro-uri-unencoded

Macro-bearing URL contains characters that must be percent-encoded per RFC 3986

WarningMacrosRFC 3986 §2.1VAST 2.0 and later (all versions)

Short answer

A URL that uses macros also contains characters that RFC 3986 requires to be percent-encoded (such as a space or |). Once the macro is substituted the result can be a malformed URL that the player rejects. Percent-encode the offending characters.

Why this matters in production

This rule is a strong risk signal. Tags with this issue often still parse, but they become brittle across SDKs, SSAI resolvers, and CTV environments. 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?ua=Mozilla 5.0&cb=[CACHEBUSTING]]]></Impression>

Valid

<Impression><![CDATA[https://t.example.com/i?ua=Mozilla%205.0&cb=[CACHEBUSTING]]]></Impression>
Check your VAST tag for VAST-2.0-macro-uri-unencoded and other issues instantly.Open the VAST tag validator →