Vungle VAST Integration

This article describes the Vungle process and specifications for helping a new VAST partner integrate their technology into our programmatic ad platform.

Contents

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

  1. Partner sends Vungle technical documents (if available).

  2. 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.

  3. Vungle builds a test environment to call Partner's endpoint on demand.
    This is used to validate variable values and tracking beacons.

Phase 2

  1. 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.

  2. Partner and Vungle reconcile delivery and compare discrepancy.

  3. 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

 

Have more questions? Submit a request

Comments