This article describes the Vungle process and specifications for helping a new VAST partner integrate their technology into our programmatic ad platform. For more information, please take a look at the IAB VAST 2.0 document.
Contents
- VAST response specifications
- Vungle's partner integration protocol
- Sample VAST requests
- VAST request parameters
VAST response specifications
The bid response must adhere to the following specifications:
- Maximum 30-second video duration
- Minimum bitrate of 250 kbps
- XML must contain:
- one .mp4 media file
- bitrate information
- video length information
- Any redirects can only redirect a maximum of one time
- Response time:
- for streaming: must be within 250ms
- for pre-cached: must be within 750ms
- Must click through to landing page
- Must support SSL and respond with secure assets
- Respond with
‘no-ad’
or‘403’
in the event of a no ad - VAST extensions are optional, but preferred
Vungle returns an error if any of the above requirements are not met.
Vungle's partner integration protocol
When Vungle helps a new VAST partner integrate their technology into our programmatic ad platform, the process is divided into two phases. The first phase can be described as general validation: Vungle inspects the tag, ensuring that server calls are fired correctly and that values are correctly populated. The second phase involves rigorous testing, during which we search for discrepancies among a statistically significant set of impressions to ensure that Vungle's numbers align with the partner's.
Phase 1
- Partner sends Vungle technical documents (if available).
- Partner sends Vungle a test VAST endpoint.
Note: During the test phase, Partner must respond to 100% of Vungle's bid requests to generate significant test results. - Vungle builds a test environment to call Partner's endpoint on demand.
This is used to validate variable values and tracking beacons.
Phase 2
- Vungle works with Partner to set up test campaigns.
- Partner sends test endpoint simulating real demand.
- Vungle sets up a test campaign to run a predetermined number of impressions.
- Partner and Vungle reconcile delivery and compare discrepancy.
- If any issues with tracking, targeting, or discrepancy occur, Vungle and Partner work together to debug them until each issue is resolved.
Sample VAST requests
Sample VAST request URL (VAST tag) with unfilled parameters
https://partner.com/vast2/6524rgww153hifw/?duration=15&app_name={{{pub_app_name}}}&app_id={{{market_id}}}&rtb_type=instream_mobile_vast_inter&user_id={{{device_id}}}&ua={{{browser_user_agent}}}&random={{{timestamp}}}&ip_address={{{ip}}}
Sample VAST request URL (VAST tag) with filled parameters
https://partner.com/vast2/124765432/?duration=15&app_name=My%20Talking%20Tom%20Free%20for%20Android&app_id=com.outfit7.mytalkingtomfree&rtb_type=instream_mobile_vast_inter&user_id=6df43c89-9e3d-43fb-a1e9-bacd51932d41&ua=Mozilla%2F5.0%20(Linux%3B%20Android%204.4.2%3B%20SPH-L720%20Build%2FKOT49H)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Version%2F4.0%20Chrome%2F30.0.0.0%20Mobile%20Safari%2F537.36&random=2015-01-27T21%3A30%3A34%2B00%3A00&ip_address=66.87.114.254
VAST Request Parameters
Parameter Name | Macro | Value | Notes | Example |
App Category | {{{pub_app_store_category}}} |
String | List of categories | Games |
App Name | {{{pub_app_name}}} |
String | From the iTunes or Play store | Family Farm Seaside |
App Store URL | {{{pub_app_store_url}}} |
String | App Store or content URL. Encoded. | https://play.google.com/store/apps/details?id=com.funplus.familyfarm&hl=en |
Bundle ID | {{{pub_market_app_id}}} |
String/Int | From the iTunes or Play store | com.funplus.familyfarm&hl=en (Android) 539920547 (iOS) |
City | {{{city}}} |
String | Encoded | New York |
Connection Type | {{{connection_type}}} |
String | Wifi, wwan, mobile | Wifi, wwan, mobile |
Country | {{{country}}} |
String | Two-letter country code | US |
Device DNT | {{{ad_tracking_disabled}}} |
String | 'True' indicates that user does not allow ad tracking | True/False |
Device DNT | {{{ad_tracking_enabled}}} |
String | 'True' indicates that user does allow ad tracking | True/False |
Device DNT | {{{boolean_number ad_tracking_disabled}}} |
Int | Do not track, in binary form | 0 – False 1 - True |
Device ID | {{{device_id}}} |
String | Clear or Hashed | ab4d6cc4-f57f-4309-9d29-b7fb5e35dd74 |
Device Model | {{{device_model}}} |
String | Encoded | Amazon,KFFOWI samsung,SM-J700T |
IP | {{{ip}}} |
String | Internet Protocol Address | 95.118.153.77 |
Language | {{{language}}} |
String | Two-character Language from headers | 10.2.1 |
OS version | {{{os_version}}} |
String | OS Version (ie iOS 7.2) | 2014-12-05T00%3A44%3A19%2B00%3A00 |
Platform | {{{device_platform}}} |
String | iOS or Android | iOS/Android |
Screen Height | {{{screen_height}}} |
Integer | Screen height (pixels) | 768 |
Screen Orientation | {{{screen_orientation}}} |
String | Portrait or Landscape | Portrait/Landscape |
Screen Width | {{{screen_width}}} |
Integer | Screen width (pixels) | 1024 |
Timestamp | {{{timestamp}}} |
String/Int | Encoded | 2014-12-05T00:44:19+00:00 |
User Agent | {{{browser_user_agent}}} |
String | UA from headers. Encoded. | Mozilla/5.0 (Linux; Android 5.1.1; VF-1397 Build/LMY47V; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/55.0.2883.91 Safari/537.36 |
Vungle ID | {{{vungle_id}}} |
String | Vungle Publisher ID to associate performance | 5497c989a3b61ba3660001b1 |