vastlint

VPAID-no-video-fallback

No MP4/video fallback alongside VPAID <MediaFile>

WarningCompatibilityIAB VPAID 2.0 §2.2 (graceful degradation), VAST 2.0 §3.9

The block contains a VPAID but no standard video (MP4, WebM, etc.). Players that do not support VPAID — which includes all CTV native players and an increasing number of programmatic environments — will receive an empty media file list and show a blank ad slot. A standard video fallback ensures the ad plays on environments that cannot or will not execute VPAID.

Why this matters in production

Treat this as a migration and compatibility warning. VPAID issues often survive desktop QA and then fail silently on mobile, CTV, or SSAI paths. Compatibility rules matter because VPAID support varies sharply by environment. Desktop web can still execute some units that mobile and CTV platforms reject outright.

How to fix

Add a standard <MediaFile> MP4 video element to <MediaFiles> alongside the VPAID entry. Players pick the first <MediaFile> they can use — VPAID-capable players will still use the VPAID unit.

Invalid

<MediaFiles>
  <!-- only VPAID, no video fallback -->
  <MediaFile delivery="progressive" type="application/javascript"
             apiFramework="VPAID" width="1280" height="720">
    <![CDATA[https://example.com/vpaid.js]]>
  </MediaFile>
</MediaFiles>

Valid

<MediaFiles>
  <MediaFile delivery="progressive" type="video/mp4"
             width="1280" height="720">
    <![CDATA[https://example.com/ad.mp4]]>
  </MediaFile>
  <MediaFile delivery="progressive" type="application/javascript"
             apiFramework="VPAID" width="1280" height="720">
    <![CDATA[https://example.com/vpaid.js]]>
  </MediaFile>
</MediaFiles>
Check your VAST tag for VPAID-no-video-fallback and other issues instantly.Validate a tag →