A valid VAST tag
can still serve nothing
Schema compliance is the easy half. The failures that actually cost you fill live in the creative, the origin, and the days after you last checked.
Tags break without telling anyone
A tag that validated last month can stop serving today — a wrapper times out, a media file moves, a CDN drops a header. Nothing alerts you. You find out from a fill-rate report, days later. (RenderSnap: daily re-checks with email alerts the moment health changes.)
Valid XML, unplayable creative
Most validators parse the document and stop there. The tag passes, the ad still doesn't play — because the media file is the wrong codec, the origin is unreachable, or the bitrate won't condition. (RenderSnap: every media file downloaded and probed with FFmpeg.)
One tag at a time, by hand
Free inspectors are browser tools: paste, click, squint at the log, repeat. That works for one tag and falls apart at campaign launch when there are two hundred. (RenderSnap: the same checks available programmatically.)
Server-side insertion hides the failure
With DAI and SSAI the stitcher fetches the creative server-side. If it can't be transcoded it is silently dropped from the pod — no client-side VAST error, no signal, just an unfilled break. (RenderSnap: conditioning checks before the stitcher sees it.)
Validate a tag
in three steps
Paste it, read the report, and decide whether you want to know the next time it changes. The first two steps take about thirty seconds.
Paste a tag or the XML
Drop in a VAST tag URL or paste a raw ad response. No account, no API key, no credit card — the validator runs for anyone who lands on the page.
We resolve it and probe the creativeFFmpeg
We follow the wrapper chain end to end, check the document against the VAST schema, then download every media file and inspect it with FFmpeg — codec, bitrate, resolution, audio, and whether the origin actually answers.
Keep watching it
Reports are shareable with one link. Ask us to monitor a tag and we re-check it daily, emailing you only when its health actually changes — not a digest, not a daily nothing-happened.
More than an XML parser
Free inspectors tell you whether the document is well-formed. We tell you whether the ad will actually play — and whether it still does tomorrow.
Media files downloaded and probed, not just parsed
We fetch every MediaFile in the response and inspect it with FFmpeg — container, codec, profile, resolution, frame rate, bitrate, duration and audio track. You find out that the creative is a 480p re-encode, or that the origin 302s to nowhere, before your audience does.
First-class REST API, not a browser tool
Every check the dashboard runs is an API call. Issue scoped workspace keys, send Authorization: Bearer, and validate tags from CI, a cron job, or your trafficking pipeline. Free inspectors are browser-only — you cannot automate a page you have to paste into by hand.
Wrapper chains resolved end to end
Wrappers are followed hop by hop until an inline ad or a failure. You see the whole chain, where it stalled, and how long each hop took — instead of a single unexplained error code.
Schema and structure checks
The document is validated against the VAST schema, with version detection, ad counts, impression and duration presence, companions, and the full tracking event table laid out for review.
Daily monitoring with change alerts
Ask us to watch a tag and we re-check it every day. You get an email when its health actually changes — a verdict flip, a new schema error, a media file that stopped resolving. Nothing when nothing happened.
Shareable reports
Turn any report into a public link and send it to the agency, the ad server vendor, or whoever trafficked the tag. No account needed to open it, and you can revoke the link at any time.
Batch pre-flight before launch
Campaign launches arrive as a spreadsheet of tags, not one tag. Loop the endpoint, collect the verdicts, and fail the launch on anything broken — instead of checking two hundred creatives by hand the night before.