Ad Server VAST Integration Document

Have more questions? Submit a request

This guide provides detailed instructions for integrating the EXCO server into your technology stack setup via VAST integration, enabling you to maximize ad revenue by accessing EXCO’s top market ad server with advanced yield capabilities. 

Overview

EXCO’s VAST tag integration allows you to request and retrieve CTV and in-app video ads from EXCO ad server by making a simple HTTP GET method. It can be used in the following scenarios: 

  • Server-to-Server Integration: This method involves direct communication between the publisher web server and EXCO’s. Ad requests and responses are handled entirely on the server side.
  • Client-Side Integration: With this method, the client side interacts directly with EXCO’s ad server. Ad responses are placed within the publisher's web page. 

Step-by-Step Integration

VAST Request Syntax

The VAST request has the following syntax:

https://v.ex.co/se/vast?pubid=[PUBLISHER_ID]&tagid=[TAG_ID]&env=[ENVIRONMENT]

The placeholders (e.g. [TAG_ID]) must be replaced by the actual values that are listed in the table below:

Parameter Name Macro VAST tag Query Parameter Necessity Description Example
Environment ENVIRONMENT env Required The environment which the visitors will see the ads on

app,web,ctv

Tag ID TAG_ID tagid Required The tag ID provided by EXCO 134556677
Publisher ID PUBLISHER_ID pubid Required The publisher ID provided by EXCO ABSCO192JMSO

 

Headers

Device IP

While the x-device-ip HTTP header is optional, it is highly recommended for server-side integrations with EXCO server. Correct configuration of this header in server-side environments ensures that EXCO receives the IP address of the end user, rather than the IP address of the server making the call.

Incorrect configuration of the x-device-ip header can result in significant revenue loss. This can occur due to monetization being halted because the network is classified as invalid traffic as the incorrect IP address is flagged as potentially malicious.

If the EXCO server receives both x-device-ip and x-forwarded-for headers, the x-device-ip header will be prioritized. The x-forwarded-for header may contain multiple IP addresses delimited by commas; if this occurs, the first (leftmost) IP address will be treated as the originating client's IP address.

User Agent

Both server-side and client integrations with EXCO server should correctly configure the x-device-user-agent HTTP header. This will ensure that EXCO receives the User Agent of the end user.

If the EXCO server receives both x-device-user-agent and user-agent headers, the x-device-user-agent header will be prioritized.

Examples
Header Necessity Example
 X-Device-Ip

Highly Recommended

111.111.111.111

X-Device-User-Agent

Highly Recommended AppleTV5%2C3%2F17.4
X-Forwarded-For Optional 111.111.111.111, 22.222.22.22
User-Agent Optional AppleTV5%2C3%2F17.4

 

Query Parameters

The parameters that are universally applicable to all ad environments and types are referred to as general parameters. In-app specific parameters are outlined in the "In-app parameters" sections below.

Parameter Name Query Parameter Name Necessity Type Description
Placement parameters
Environment env Required STRING The environment which the visitors will see the ads on
Tag ID tagid Required STRING The tag ID provided by EXCO
Publisher ID pubid Required STRING The publisher ID provided by EXCO
In App & CTV parameters
App Bundle appb Required STRING The application bundle ID.
App Name appn Required STRING The application name.

App Domain

appd Required STRING The fully qualified domain of the app.
App Store URL appsu Required STRING Full app store URL
Device Identifier Type ifa_type Recommended STRING An associated IFA type
Device Identifier ifa Recommended STRING The identifier for advertising of the device
App Version appv Optional STRING Application build version.
Inventory Partner Domain ipd Optional STRING A domain to be used for inventory authorization in the case of inventory sharing arrangements between an app owner and content owner.
Regs parameters
GDPR Applies

gdpr

Required (for EU traffic)l INTEGER indicates if the given request is from a location where the GDPR applies.
GDPR Consent gdpr_consent Required (for EU traffic)l STRING A consent string passed from various Consent Management Platforms (CMP's)
GPP gpp Optional STRING the Global Privacy Platform (GPP) consent string
GPP Section ID gpp_sid Optional INTEGER ARRAY an array of the section(s) of the GPP string to be applied
Coppa

coppa

Optional INTEGER indicates if the given request is subject to the Children's Online Privacy Protection Act of the US
US Privacy us_privacy Optional STRING A mandatory string for all publishers in which they must pass the privacy consent for users from California
Video parameters
Impression Height

h

Required INTEGER video player height in pixels
Impression Width w Required INTEGER video player width in pixels
Protocol video_protocols Recommended INTEGER ARRAY List of supported video protocols. Comma separated string.
MIME Types video_mimes Recommended STRING ARRAY Content MIME types supported. Comma separated string.
API Frameworks
video_api Recommended INTEGER ARRAY List of supported API frameworks for this impression. Comma separated string.
Placement Type video_placement Optional INTEGER the video placement type in accordance with IAB video guideline.
Placement Sub Type video_plcmt Optional INTEGER the video sub placement type in accordance with updated IAB video guideline.
Ad Maximum Duration video_maxduration Optional INTEGER Maximum video ad duration in seconds.
Skippable video_skip Optional INTEGER Indicates if the placement imposes ad skippability
Playback video_playbackmethods Optional INTEGER ARRAY the video playback method. Comma separated string.
Device parameters
User IP ip Optional STRING

This parameter carries the IP address of the end user and is valuable when the IP address can't be included in the HTTP header of the request.

Details about parameter priority are outlined in the "User Agent & IP logic" section below.

User Agent ua Optional STRING

This parameter carries the user agent of the end user and is valuable when the user agent can't be included in the HTTP header of the request.

Details about parameter priority are outlined in the "User Agent & IP logic" section below.

Device Width device_width Recommended INTEGER

Screen's physical width in pixels. This is useful when the video impression size differs from the screen size.

Recommended for In App

Device Height device_height Recommended INTEGER

Screen's physical height in pixels. This is useful when the video impression size differs from the screen size.

Recommended for In App

Device Pixel Ratio device_pixel_ratio Optional INTEGER The ratio of physical pixels to device independent pixels
Device PPI device_ppi Optional INTEGER Screen dimensions in inches
Limit Ad tracking lmt Optional INTEGER “Limit Ad Tracking” signal commercially endorsed.
Do not track dnt   INTEGER Standard “Do Not Track” flag as set in the header by the browser
Content parameters
Content Id content_id Optional STRING ID uniquely identifying the content.
Content Episode content_episode Optional INTEGER Episode number
Content Title content_episode Optional STRING Content Title
Content Series content_series Optional STRING Content Series
Content Season content_season Optional INTEGER Content Season
Content Genre content_genre Optional STRING Genre that best describes the content
Content Producer Name content_producer_name Optional STRING The name of the content producer
Content Producer Domain content_producer_domain Optional STRING The primary domain of the producer
Content Livestream content_livestream Optional INTEGER Indication of live content
Content Categories content_categories Optional STRING ARRAY Array of content categories using IDs from the IAB taxonomy.
Content Keywords content_keywords Optional STRING ARRAY Comma separated list of keywords describing the content.
Content Categories Taxonomy content_cattax Optional STRING The taxonomy in use for cat. If no cattax field is supplied, the IAB Content Category Taxonomy 1.0 (1) is assumed.
Content URL content_url Optional STRING A single URL of the content
Content Language content_language Optional STRING Content language using ISO-639-1-alpha-2.
Content Length content_length Optional INTEGER Length of content in seconds
Network Name network_name Optional STRING The Network the content is on
Channel Name channel_name Optional STRING The Channel the content is on
Channel Domain channel_domain Optional STRING The primary domain of the channel

 

User Agent & IP logic

When sending server 2 server request calls, EXCO uses the following logic to obtain the value for User Agent, Domain and IP: 

User Agent: The server will determine the User Agent value by checking the following, in order of priority:

  1. ua query parameter
  2. x-device-user-agent header
  3. user-agent header

IP: The server will determine the IP value by checking the following, in order of priority:

  1. ip query parameter
  2. x-device-ip header
  3. x-forwarded-for header

Related articles

Was this article helpful?
0 out of 0 found this helpful