VASTlint

VAST examples / Media files

A VAST 4.1 <Mezzanine> missing its required attributes

VAST 4.14 errors1 warningVAST-4.1-mezzanine-delivery

The scenario

A streaming platform that does server-side ad insertion requires advertisers to supply a high-quality mezzanine master so the platform can transcode each ad to match the exact profile of the surrounding content. A new auto-brand campaign was being onboarded for CTV.

The broken tag

<?xml version="1.0" encoding="UTF-8"?>
<!-- Mezzanine missing required attrs — VAST-4.1-mezzanine-delivery, etc. -->
<VAST version="4.1">
  <Ad id="1">
    <InLine>
      <AdSystem>Test</AdSystem>
      <AdTitle>Test</AdTitle>
      <AdServingId>SRV-001</AdServingId>
      <Impression><![CDATA[https://example.com/imp]]></Impression>
      <Creatives>
        <Creative>
          <UniversalAdId idRegistry="ad-id.org">UAID-001</UniversalAdId>
          <Linear>
            <Duration>00:00:30</Duration>
            <MediaFiles>
              <MediaFile delivery="progressive" type="video/mp4" width="640" height="360">
                <![CDATA[https://example.com/video.mp4]]>
              </MediaFile>
              <!-- Mezzanine with no required attributes -->
              <Mezzanine><![CDATA[https://example.com/mezzanine.mp4]]></Mezzanine>
            </MediaFiles>
          </Linear>
        </Creative>
      </Creatives>
    </InLine>
  </Ad>
</VAST>

What the validator reports

Running this tag through vastlint produces the following. The primary failure for this example:

errorVAST-4.1-mezzanine-deliveryIAB VAST 4.1 §2.3.5.2line 20

<Mezzanine> is missing required delivery attribute

The same tag also surfaces these secondary findings — real tags rarely fail in isolation:

errorVAST-4.1-mezzanine-typeIAB VAST 4.1 §2.3.5.2line 20

<Mezzanine> is missing required type attribute

errorVAST-4.1-mezzanine-widthIAB VAST 4.1 §2.3.5.2line 20

<Mezzanine> is missing required width attribute

errorVAST-4.1-mezzanine-heightIAB VAST 4.1 §2.3.5.2line 20

<Mezzanine> is missing required height attribute

warningVAST-2.0-linear-tracking-quartilesIAB VAST 4.1 §3.14.2line 13

<Linear> has no standard quartile tracking events (start/firstQuartile/midpoint/thirdQuartile/complete) — ad will serve but measurement system receives no signal

Why it breaks

The creative includes a <Mezzanine> element, but it omits the required delivery, type, width, and height attributes (VAST 4.1 §3.... treats the mezzanine as a first-class source for transcoding). The mezzanine is the broadcast-quality master that SSAI systems re-encode from; to ingest it, the transcoder needs to know its delivery method, container/codec type, and resolution up front, exactly as it does for a regular MediaFile.

What it costs

Without valid mezzanine attributes the SSAI platform cannot ingest the master, so it either falls back to a lower-quality MediaFile (defeating the purpose of supplying a mezzanine) or rejects the creative from premium CTV inventory entirely. For a brand buying big-screen reach, that means either degraded visual quality or exclusion from the highest-value placements.

The fix

Populate the <Mezzanine> with delivery, type, width, and height just like a MediaFile, pointing at the high-bitrate master. Match the resolution to the highest tier the platform requests (commonly 1920×1080 or 3840×2160).

<Mezzanine delivery="progressive" type="video/mp4"
           width="1920" height="1080">
  <![CDATA[https://cdn.example.com/master-1080.mp4]]>
</Mezzanine>

Check your own version of this tag

Paste the resolved XML to run the same spec check, test a live tag URL, or inspect the wrapper chain hop by hop.

Related examples

Related reading