Publisher Integration Documentation

Revisions history

Revision

Changes

1.0

Initial version


Basics

This document describes the process of integration of the new publishers into the platform. Direct inventory buying is typically achieved by calling dedicated URL, provided by the platform, with a set of special parameters, which allows to narrowly target the inventory. Before that, the publisher should be registered in the platform and receive its unique ID. The workflow of the integration process consists of next steps:

  1. Registering and configuring the publisher in the platform.
  2. Start calling dedicated URL(s) for the interested inventory types (video, etc.) with the special parameters settled.

Video inventory

After the publisher is already registered in the platform, you can start directly buying video inventory. For that you ought to perform a special HTTP GET request with the appropriate parameters: http://px.adhigh.net/p/direct_vast?\[params\] https://px.adhigh.net/p/direct_vast?\[params\]
See the list of the available parameters below:

Name

Mandatory

Description

Example

pid

required

The ID of the underlying publisher registered in the platform.

pid=5

сpm

required

The CPM price in the currency of the Publisher.

cpm=1.30412

tid

optional

The ID of the publisher Tag.

tag=A1415154ECB

protocols

optional

The numeric list of the restricted VAST protocol versions, split by comma.

  • 1 – VAST 1.0
  • 2 – VAST 2.0
  • 3 – VAST 3.0
  • 4 – VAST 1.0 Wrapper
  • 5 – VAST 2.0 Wrapper
  • 6 – VAST 3.0 Wrapper
    Unless provided, it will match all versions of the VAST protocol.

protocols=2,3,5,6

size

optional

The size of the player.
Unless provided, the size will be taken from the Tag configuration in the platform, if set.

size=640x480

mimes

optional

The list of URL-encoded allowed mime types, split by comma.
Unless provided, the system will try to fill it with the list of mime types in the Tag configuration in the platform. Unless, it will match any mime type.

mimes=application%2Fx-shockwave-player,video%2Fmp4

min_dur

optional

Minimal duration of video ad in seconds.

min_dur=30

max_dur

optional

Maximal duration of the video ad in seconds.

max_dur=60

min_btr

optional

Minimal bitrate of the video ad, kbps.

min_btr=128

max_btr

optional

Maximal bitrate of the video ad, kbps.

max_btr=512

pb

optional

Passback VAST URL, which will be returned in the VAST Wrapper in case no inventory is matched for the given request.
Unless provided, the system will try to take it from the Publisher configuration. Unless, an empty VAST response will be served.

pb= http%3A%2F%2Fad.content.vast%2Fpassback


Examples

No inventory matches, no passback url

Request: curl –i http://px.adhigh.net/p/direct_vast?pid=5&cpm=1.34&size=1024x768
Response: <?xml version="1.0" encoding="utf-8"?><VAST version="2.0"></VAST>

no inventory matches, with passback url

Request: curl –i http://px.adhigh.net/p/direct_vast?pid=5&cpm=1.34&size=1024x768&pb=http%3A%2F%2Fad.content.vast%2Fpassback
Response: <VAST version="2.0">
<Ad id="sqq1Ctjm8IR">
<Wrapper>
<AdSystem>GetIntent</AdSystem>
<VASTAdTagURI><![CDATA[http://ad.content.vast/passback]]></VASTAdTagURI>
<Creatives/>
</Wrapper>
</Ad>
</VAST>

response with media files


Request: curl –i http://px.adhigh.net/p/direct_vast?pid=5&tid=abc&cpm=1.34&size=328x434
Response: <VAST version="3.0">
<Ad id="ew8YhEBzR7p">
<InLine>
<AdSystem>GetIntent</AdSystem>
<AdTitle>GetIntent</AdTitle>
<Error>http://ad.server.com/test-app/p/video/error.gif?s=direct&code=\[ERRORCODE\]</Error>
<Impression><![CDATA[http://ad.server.com/test-app/p/video/imp.gif?id=ew8YhEBzR7p&s=direct]]></Impression>
<Creatives>
<Creative>
<Linear>
<Duration>00:00:20</Duration>
<MediaFiles>
<MediaFile delivery="progressive" type="video/mp4" width="1280" height="1024"><![CDATA[http://d7y63ze08grg5.cloudfront.net/media/video/test.mp4]]></MediaFile>
</MediaFiles>
<TrackingEvents>
<Tracking event="start"><![CDATA[http://ad.server.com/test-app/p/video/tracking.gif?s=direct&e=start]]></Tracking>
<Tracking event="firstQuartile"><![CDATA[http://ad.server.com/test-app/p/video/tracking.gif?s=direct&e=firstQuartile]]></Tracking>
<Tracking event="midpoint"><![CDATA[http://ad.server.com/test-app/p/video/tracking.gif?s=direct&e=midpoint]]></Tracking>
<Tracking event="thirdQuartile"><![CDATA[http://ad.server.com/test-app/p/video/tracking.gif?s=direct&e=thirdQuartile]]></Tracking>
<Tracking event="complete"><![CDATA[http://ad.server.com/test-app/p/video/tracking.gif?s=direct&e=complete]]></Tracking>
<Tracking event="skip"><![CDATA[http://ad.server.com/test-app/p/video/tracking.gif?s=direct&e=skip]]></Tracking>
<Tracking event="closeLinear"><![CDATA[http://ad.server.com/test-app/p/video/tracking.gif?s=direct&e=closeLinear]]></Tracking>
</TrackingEvents>
<VideoClicks>
<ClickThrough><![CDATA[http://ad.server.com/test-app/p/click?id=ew8YhEBzR7p&s=direct]]></ClickThrough>
</VideoClicks>
</Linear>
</Creative>
</Creatives>
</InLine>
</Ad>
</VAST>