VAST Validator

Paste a VAST tag and check it against the IAB VAST rules in your browser. The XML never leaves your device.

The VAST Validator parses the tag you paste entirely in your browser. Remote ad tags, tracking pixels and MediaFile URLs are never fetched, and nothing you paste is uploaded to ArrayKit.

Open the XML Formatter

About VAST Validator

The VAST Validator parses a VAST (Video Ad Serving Template) tag and checks it against the IAB VAST rules so you can catch a broken creative before it ships. Paste an InLine or Wrapper document and it detects the version, then verifies the required nodes — AdSystem, AdTitle, Impression, Creatives and a VASTAdTagURI on wrappers — plus MediaFile delivery, type, width and height and the HH:MM:SS Duration. Every issue is grouped into errors and warnings with the exact node path, so you know which Ad, Creative or MediaFile to fix. It is built for ad-ops engineers, publishers and DSP integrators who debug video ad tags all day. Nothing is fetched or uploaded — the tag you paste is parsed entirely in your browser.

Features

How to use the VAST Validator

  1. Paste your VAST XML (InLine or Wrapper) into the box, or load a sample
  2. Read the detected version and the error / warning count at the top
  3. Open each finding to see the node path and what to fix
  4. Copy the report to share the results with your ad-ops team

Example

Input

<VAST version="4.0"><Ad><InLine>
  <AdSystem>Server</AdSystem><AdTitle>Ad</AdTitle>
  <Impression>https://ex/imp</Impression>
  <Creatives><Creative><Linear>
    <Duration>0:30</Duration>
  </Linear></Creative></Creatives>
</InLine></Ad></VAST>

Output

VAST 4.0 — 2 error(s), 0 warning(s)
[ERROR] …Linear > Duration — Duration "0:30" is not in HH:MM:SS format
[ERROR] …Linear — InLine Linear creative must contain a <MediaFiles> element

Version 4.0 is detected; the bad Duration and the missing MediaFiles are both flagged with their node paths.

Common errors & troubleshooting

Frequently asked questions

Which VAST versions does this validator support?
It reads the version attribute on the root <VAST> element and understands VAST 2.0, 3.0, 4.0, 4.1, 4.2 and 4.3. An unknown version is flagged as a warning so you can still see the rest of the structural checks.
Does it validate a Wrapper differently from an InLine?
Yes. An InLine ad must carry AdSystem, AdTitle, Impression, Creatives and, for a Linear creative, a Duration and at least one MediaFile. A Wrapper instead requires a non-empty VASTAdTagURI and does not need MediaFiles, so the two are checked with different rules.
Why is my MediaFile flagged when the ad still plays in some players?
Lenient players fall back to defaults, but the IAB spec requires delivery, type, width and height on every MediaFile. The validator holds the tag to the spec so it works across strict SSPs and players, not just the one you tested.
What Duration format does VAST expect?
A zero-padded HH:MM:SS value, optionally with milliseconds as HH:MM:SS.mmm. So 00:00:15 is valid but 0:15, 15 or 00:15 are not. The skipoffset attribute may instead be a percentage such as 25%.
Can it follow a VASTAdTagURI and validate the wrapped tag?
No — the validator never fetches remote URLs. It checks that the VASTAdTagURI is present and non-empty, but to inspect the downstream response you paste that VAST XML in separately and validate it on its own.
Does the validator fetch or upload my VAST tag?
Neither. The XML you paste is parsed on your device, and remote ad tags, trackers and MediaFile URLs are never requested. Nothing about the tag is sent to ArrayKit or any ad server.

Related tools

All ArrayKit tools