VAST Tag Integration

Learn how to set up a VAST integration

To establish a VAST tag integration with Audiohook, please follow the steps below.

1. Complete and Sign the Audiohook IO

Before a VAST integration can be approved or activated, a signed Audiohook Insertion Order (IO) must be in place. The IO will be provided by the Audiohook team during the onboarding process.

2. Generate the VAST Tag URL

Once the IO is signed and your unique publisher/supplier ID is assigned, generate your VAST Tag URL using the provided base_url below and parameter guidelines outlined in this document.

This VAST tag should be implemented in your ad server or playback environment according to your standard insertion logic.

3. Go-Live & Activation

After the VAST tag has been implemented, begin sending traffic so Audiohook can verify that impressions and tracking events are being received correctly.

When the VAST tag is live, notify Audiohook by emailing:

No additional details are required beyond confirmation that the VAST tag is now live. Audiohook will validate incoming data and confirm once the integration has been approved and billing is enabled.

4. Measurement, Billing & Initial Monitoring

Once approved, impressions generated during the initial live period will be monitored for validity and are billable based on Audiohook’s measurement standards.

Billable impressions are derived from valid impressions received within the defined attribution window. Monthly reporting will be provided, after which suppliers may submit invoices in accordance with the IO.

5. Recommended Discrepancy Monitoring Setup

Audiohook offers optional discrepancy monitoring to help identify and resolve reporting differences.

If you would like Audiohook to monitor discrepancies, please confirm this with the team. You will be asked to set up an automated report from your system that includes:

  • Impressions
  • Revenue amount

Report delivery details:

  • Preferred frequency: Daily
  • Alternate frequency: Weekly

Audiohook will compare supplier-reported data against internal reporting and flag any discrepancies for investigation.


Generating the VAST Tag URL

 
base_url = directvast.audiohook.com/{{publisher-id}}/vast?{{params}}
 

Example VAST:

https://directvast.audiohook.com/testPub/vast?feed-url=%%feed_url%%&episode-url=%%episode_url%%&ip=%%ip%%&ua=%%ua%%&vspec=4

 

Update macros and traffic in your ad server.

Here is a list of hosting platform support articles:

Recommended VAST tags:

  • For Megaphone users
    • https://directvast.audiohook.com/{{publisher-id CHANGE ME}}/vast?feed-url=%%rssurl%%&episode-url=%%mediaurl%%&placement-type=%%position%%&ip=%%ip%%&ua=%%ua%%&ord=%%cachebuster%%&vspec=4
  • For Omny/Triton users
    • Podcast inventory:
      https://directvast.audiohook.com/{{publisher-id CHANGE ME}}/vast?feed-url= PLEASE REQUEST FROM TRITON &episode-url=@C.EPISODE-URL@&placement-type=@TIMESTAMP@&ip=@IP@&ua=@USERAGENT@&ord=@CACHEBUSTER@&vspec=4&genre=@C.ITUNES-CAT@&publisher=@PUB_NAME@&inventory-type=podcast&feed-type=3
      
      Streaming inventory:
      https://directvast.audiohook.com/{{publisher-id CHANGE ME}}/vast?feed-url= PLEASE REQUEST FROM TRITON &episode-url=@C.EPISODE-URL@&placement-type=@TIMESTAMP@&ip=@IP@&ua=@USERAGENT@&ord=@CACHEBUSTER@&vspec=4&publisher=@PUB_NAME@&inventory-type=streaming&feed-type=1
      
      Digital radio inventory:
      https://directvast.audiohook.com/{{publisher-id CHANGE ME}}/vast?feed-url= PLEASE REQUEST FROM TRITON &episode-url=@C.EPISODE-URL@&placement-type=@TIMESTAMP@&ip=@IP@&ua=@USERAGENT@&ord=@CACHEBUSTER@&vspec=4&publisher=@PUB_NAME@&station=@STATION_NAME&inventory-type=radio&feed-type=2
      
      Other inventory:
      https://directvast.audiohook.com/{{publisher-id CHANGE ME}}/vast?feed-url= PLEASE REQUEST FROM TRITON &episode-url=@C.EPISODE-URL@&placement-type=@TIMESTAMP@&ip=@IP@&ua=@USERAGENT@&ord=@CACHEBUSTER@&vspec=4&publisher=@PUB_NAME@&inventory-type=emerging&feed-type=6
 
  • For Art19 users
    • (different VASTs needed for pre, mid and post rolls)
      
      https://directvast.audiohook.com/{{publisher-id CHANGE ME}}/vast?feed-url={{ primaryFeed }}&episode-url=https://rss.art19.com/episodes/{{ episodeID }}.mp3&ip=header-x-device-ip&ua={{ deviceUserAgent }}&vast-type=inline&placement-type=pre&vspec=4
      
      https://directvast.audiohook.com/{{publisher-id CHANGE ME}}/vast?feed-url={{ primaryFeed }}&episode-url=https://rss.art19.com/episodes/{{ episodeID }}.mp3&ip=header-x-device-ip&ua={{ deviceUserAgent }}&vast-type=inline&placement-type=mid&vspec=4
      
      https://directvast.audiohook.com/{{publisher-id CHANGE ME}}/vast?feed-url={{ primaryFeed }}&episode-url=https://rss.art19.com/episodes/{{ episodeID }}.mp3&ip=header-x-device-ip&ua={{ deviceUserAgent }}&vast-type=inline&placement-type=post&vspec=4
 
 

We require ip, ua, vspec=4, feed-url, and episode-url parameters. Additional parameters depend on your hosting platform’s requirements and your desired parameters.

We require inventory-type if you have 2 or more of podcasts, streaming, radio or emerging inventory. For podcasts we recommend placement-type. For streaming and radio, placement-type=mid recommended.

Parameter
Required Field
Requires Macro
Default Value
Permitted Values
Example
Comment
ip
yes
yes
header-ip
%%IP%%
The IP Address of the User (only provided to attribution partners). If the IP address is passed in the header, please insert "header-{{key}}" where the key is the key that is used in the header (example: header-ip).
ua
yes
yes
%%USER_AGENT%%
The User Agent String of the User.
vspec
yes
no
4
4
This is the version of the VAST specification. We previously support VAST 2 however we have since stopped supporting that version.
feed-type
yes
no
[1-7]
inventory-type
no
no
podcast
[podcast,streaming,radio,emerging]
This field has been deprecated and feed-type should be used.
lang
yes
no
Two digit ISO 639-1 language code
publisher
no
no
[all values]
bonneville
This field allows partners to pass the name of the publisher that is producing the content. Note that this field will be reported on for analytics and billing purposes.
station
no
no
[all values]
FM100
This field allows for partners to pass the name of the station. This field can be used for both streaming inventory and digital radio inventory. Note that this field will be reported on for analytics and billing purposes.
feed-url
yes (if content is podcast)
yes
[all values]
This allows Audiohook to support brand safety integrations. Feed URLs should be URL encoded. Note that for some hosting platforms the series and episode id can be provided instead if the RSS feed is consistent
episode-url
yes (if content is podcast)
yes
[all values]
%%FEED_URL%% or a URL with episode ID macro such as https://rss.art19.com/episodes/{{ episodeID }}.mp3
This allows Audiohook to support brand safety integrations. Episode URLs should be URL encoded. Note that for some hosting platforms the series and episode id can be provided instead if the RSS feed is consistent.
series-id
no
yes
[all values]
Use feed-url parameter. In case hosting platform doesn’t have url macro instead use feed-url param with a URL with series-id macro inserted. This parameter should only be used in the case that the hosting provider does not support feed-url as a macro. Note that the hosting parameter is required when using this parameter.
episode-id
no
yes
[all values]
Use episode-url parameter. In case hosting platform doesn’t have url macro instead use episode-url param with a URL with episode-id macro inserted. This parameter should only be used in the case that the hosting provider does not support episode-url as a macro. Note that the hosting parameter is required when using this parameter.
floor
no
no
1.25
This is the floor in USD that will be honored. Note that this may result in lower bid responses and volume.
cpm
no
no
1.00
Publishers can pass an optional CPM floor. With VAST 4.0 all bidding is now dynamic. This is no longer supported.
hosting
no
no
[all values]
art19
This parameter is required when using either the series-id or episode-id parameters.
player-domain
no
no
[all values]
domain.com
This parameter should be passed if the content is being played through a web player. It should be the domain of the website that the player is located.
vast-type
no
no
wrapper
[wrapper, inline]
Currently, by default, we serve VAST tags with wrappers. This replaces the historical inline parameter. REPLACE INLINE=1 WITH VAST-TYPE=INLINE
placement-type
no
no
post
[pre,mid,post]
If this is left blank, we will assign the inventory as post-roll.
genre
no
yes
%%SPORTS%%
Currently we support only one genre to be provided at a time.
bcat
no
no
None
[IAB1,IAB2,IAB3,IAB4,IAB5,IAB6,IAB7,IAB8,IAB9,IAB10,IAB11,IAB12,IAB13,IAB14,IAB15,IAB16,IAB17,IAB18,IAB19,IAB20,IAB21,IAB22,IAB23,IAB24,IAB25]
IAB3-2
This allows the publisher to block specific IAB advertiser categories. We support both parent categories and sub-categories. This field is not case sensitive.
badv
no
no
None
[all values]
example.com
This allows the publisher to block specific advertiser domains. Note that domains should not include http/https.
ord
no
yes
%%cachebuster%%
serves as a cachebuster, which is a unique value appended to the VAST tag URL to create a new and distinct ad request each time the VAST tag is called
Did this answer your question?
😞
😐
🤩