Guida pratica: creare il tuo vast.xml (VAST) e usarlo su JW Player

In questa guida impari a creare autonomamente un file VAST XML (es. vast.xml) simile a quello di esempio che vedi spesso online, e a inserirlo nel tuo player (es. JW Player). È utile per house ads, campagne dirette, test QA o quando vuoi controllare tutto tu.

Nota (normale!)
Se apri vast.xml nel browser potresti vedere un messaggio tipo: "This XML file does not appear to have any style information...". Non è un errore: significa solo che l’XML non ha stile, ma è valido da leggere per il player.

1) Requisiti

  • 1+ file video MP4 raggiungibile via URL pubblico (meglio più risoluzioni/bitrates).
  • 1 URL di destinazione (landing page) per il click: es. https://tuosito.it/offerta.
  • HTTPS ovunque (VAST + video + click). Evita HTTP su siti HTTPS.
  • Server/CDN dove caricare vast.xml (o endpoint che lo genera).
Checklist compatibilità JW Player
  • URL VAST deve rispondere HTTP 200 e contenere XML valido.
  • I MediaFile dovrebbero essere link diretti a .mp4 (niente pagine HTML, niente player embed).
  • Evita redirect multipli e URL “protetti” (token scaduti, login, hotlink protection aggressiva).
  • Durata coerente con il video reale (es. 00:00:10).

2) Concetti base (VAST, InLine, Wrapper)

  • VAST: è una risposta XML che descrive una pubblicità video (media, click, tracking).
  • InLine: il VAST contiene direttamente i MediaFile (il caso più semplice).
  • Wrapper: il tuo VAST “punta” a un altro VAST (utile per demand partner / ad server esterni).
Suggerimento
Se vuoi “partire subito” e ridurre variabili: usa InLine + 1 pre-roll.

3) Struttura minima di un VAST che funziona

Questi sono i blocchi fondamentali che quasi tutti i player si aspettano:

  • <VAST version="...">
  • <Ad> > <InLine>
  • <AdSystem>, <AdTitle>
  • <Creatives> > <Creative> > <Linear>
  • <Duration>
  • <MediaFiles> > <MediaFile> (uno o più MP4)
  • <VideoClicks> > <ClickThrough>
Tracking (consigliato)
Aggiungi <Impression> e alcuni <Tracking event="...">: non sono “obbligatori” sempre, ma aiutano debug e metriche.

4) Template VAST pronto (consigliato: VAST 3.0)

Copia questo template, sostituisci gli URL e caricalo come vast.xml. È pensato per massima compatibilità (pre-roll singolo, progressive MP4).

Template “InLine” (VAST 3.0)
<?xml version="1.0" encoding="UTF-8"?>
<VAST version="3.0">
  <Ad id="1">
    <InLine>
      <AdSystem version="1.0">HouseAd</AdSystem>
      <AdTitle><![CDATA[ Titolo della tua ADV ]]></AdTitle>

      <Impression><![CDATA[ https://tracking.tuosito.it/impression?ad=1 ]]></Impression>
      <Error><![CDATA[ https://tracking.tuosito.it/error?ad=1&code=[ERRORCODE] ]]></Error>

      <Creatives>
        <Creative sequence="1" id="1">
          <Linear>

            <Duration>00:00:10</Duration>

            <TrackingEvents>
              <Tracking event="start"><![CDATA[ https://tracking.tuosito.it/start?ad=1 ]]></Tracking>
              <Tracking event="firstQuartile"><![CDATA[ https://tracking.tuosito.it/q1?ad=1 ]]></Tracking>
              <Tracking event="midpoint"><![CDATA[ https://tracking.tuosito.it/q2?ad=1 ]]></Tracking>
              <Tracking event="thirdQuartile"><![CDATA[ https://tracking.tuosito.it/q3?ad=1 ]]></Tracking>
              <Tracking event="complete"><![CDATA[ https://tracking.tuosito.it/complete?ad=1 ]]></Tracking>
            </TrackingEvents>

            <VideoClicks>
              <ClickThrough><![CDATA[ https://tuosito.it/offerta ]]></ClickThrough>
              <ClickTracking><![CDATA[ https://tracking.tuosito.it/click?ad=1 ]]></ClickTracking>
            </VideoClicks>

            <MediaFiles>
              <MediaFile delivery="progressive"
                         type="video/mp4"
                         width="640" height="360"
                         bitrate="800"><![CDATA[ https://cdn.tuosito.it/ads/ad-640x360.mp4 ]]></MediaFile>

              <MediaFile delivery="progressive"
                         type="video/mp4"
                         width="1280" height="720"
                         bitrate="2500"><![CDATA[ https://cdn.tuosito.it/ads/ad-1280x720.mp4 ]]></MediaFile>
            </MediaFiles>

          </Linear>
        </Creative>
      </Creatives>
    </InLine>
  </Ad>
</VAST>
Perché più MediaFile?
Il player sceglie in genere il file più adatto in base a rete e dispositivo. Aggiungi 2–3 varianti (360p/720p/1080p) se puoi.

5) VAST 2.0 vs 3.0 vs 4.x: cosa scegliere

  • VAST 2.0: molto semplice e “storico”. Ottimo per esempi minimi.
  • VAST 3.0: spesso il miglior compromesso compatibilità/feature.
  • VAST 4.x: più moderno (es. miglioramenti su meccaniche e misurazioni), ma se vuoi massima compatibilità su stack misti, spesso si parte da 3.0.
Esempio ultra-minimo VAST 2.0 (stile demo)
<?xml version="1.0" encoding="UTF-8"?>
<VAST version="2.0">
  <Ad id="229">
    <InLine>
      <AdSystem version="1.0">HouseAd</AdSystem>
      <AdTitle><![CDATA[ La tua ADV ]]></AdTitle>
      <Creatives>
        <Creative sequence="1" id="331">
          <Linear>
            <Duration>00:00:10</Duration>
            <VideoClicks>
              <ClickThrough><![CDATA[ https://tuosito.it/offerta ]]></ClickThrough>
            </VideoClicks>
            <MediaFiles>
              <MediaFile delivery="progressive" bitrate="600" width="640" height="360" type="video/mp4">
                <![CDATA[ https://cdn.tuosito.it/ads/ad-640x360.mp4 ]]>
              </MediaFile>
            </MediaFiles>
          </Linear>
        </Creative>
      </Creatives>
    </InLine>
  </Ad>
</VAST>

6) Dove hostare il file e impostazioni server (MIME/CORS)

Carica vast.xml su un dominio HTTPS (CDN o webserver). Consigli pratici:

  • Header corretto: Content-Type: application/xml (o text/xml).
  • CORS: spesso conviene permettere la lettura cross-origin: Access-Control-Allow-Origin: *.
  • Evita cache aggressiva durante i test (poi puoi metterla in produzione).
Esempi header

Apache (.htaccess)

AddType application/xml .xml
Header set Access-Control-Allow-Origin "*"

Nginx

types { application/xml xml; }
add_header Access-Control-Allow-Origin *;
Tip “killer”
Il MediaFile deve essere un URL diretto al file MP4. Se l’URL restituisce HTML (pagina, redirect strano, player embedded), il player può fallire con errori tipo “no playable media”.

7) Come inserirlo in JW Player

In JW Player di solito ti basta indicare l’URL del tuo vast.xml come ad tag (pre-roll). Qui sotto un esempio generico via setup (la configurazione esatta dipende dalla tua versione/licenza).

Esempio configurazione (indicativo)
jwplayer("player").setup({
  file: "https://cdn.tuosito.it/video/contenuto.mp4",
  width: "100%",
  aspectratio: "16:9",
  advertising: {
    client: "vast",
    tag: "https://cdn.tuosito.it/ads/vast.xml"
  }
});
Se vuoi cache-busting
Aggiungi un parametro all’URL del tag (es. ?cb= + numero casuale) quando lo generi lato pagina/app, oppure esponi un endpoint che genera il VAST al volo.

8) Test & debug (prima di impazzire)

  1. Apri l’URL del VAST in browser: deve rispondere con XML e non con errori/redirect infiniti.
  2. Controlla Network/Console: vedi se il player scarica il VAST e poi i MediaFile.
  3. Disattiva ad blocker durante i test (possono bloccare URL di tracking o domini noti).
  4. Prova con 1 MediaFile (solo 1 mp4) e poi aggiungi varianti e tracking.
Checklist “funziona in browser ma non nel player”
  • CORS assente (aggiungi Access-Control-Allow-Origin).
  • Mixed content (VAST in HTTPS ma MP4 in HTTP).
  • MP4 non “progressive” / encoding strano (prova un MP4 H.264 + AAC standard).
  • Il server del MP4 richiede referer/token/cookie e il player non può scaricarlo.

9) Troubleshooting rapido

Il pre-roll non parte e parte subito il contenuto

  • Il VAST torna vuoto o invalido (XML malformato, tag mancanti).
  • Il MediaFile non è scaricabile o non è MP4 diretto.
  • CORS / HTTPS / redirect.

Il click non funziona

  • Verifica che <ClickThrough> abbia URL valido e in HTTPS.
  • Evita caratteri non encodati nell’URL (spazi, ecc.).

Tracking non arrivano

  • Ad blocker o policy browser bloccano tracking su domini sospetti.
  • Usa un dominio “pulito” (tuo) per tracking e controlla server logs.

10) ? FAQ

Posso monetizzare davvero con un VAST “statico”?

Un VAST statico è perfetto per house ads o campagne dirette. Per programmatic/asta e ottimizzazione automatica di solito serve un ad server/SSP che genera VAST dinamici.

Meglio VAST 2.0 o 3.0?

Se vuoi partire semplice, va benissimo 2.0. Se vuoi un template più moderno e robusto, usa 3.0 (come in questa guida).

Devo per forza mettere Impression/Tracking?

Non sempre, ma è fortemente consigliato per misurare e fare debug (sapere dove si rompe).


Tip finale: parti con 1 solo MP4, 1 ClickThrough, 0 tracking. Quando vedi il pre-roll partire, aggiungi Impression/Tracking e più MediaFile.

Hai trovato utile questa risposta? 0 Utenti hanno trovato utile questa risposta (0 Voti)