VAST Integration
Full parameter reference for the Praevis VAST endpoint.
Endpoint: GET https://rtb.praevis.com/vast
Required parameters
| Parameter | Type | Description |
|---|---|---|
site_id | string (UUID) | Your Publisher ID from the dashboard |
w | int | Player width in pixels |
h | int | Player height in pixels |
Device and traffic parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
ip | string | Server IP | Viewer IP address — pass via ad server macro |
ua | string | Request UA | Viewer user agent |
did | string | — | Device identifier (IDFA, GAID) |
ifa | string | — | Advertising identifier (alias for did) |
Always pass ip and ua via your ad server macros. Without them, DSPs cannot geo-target and fill rate drops significantly.
Video parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
format | string | vast | Response format: vast or vmap |
min_ad_duration | int | 6 | Minimum creative duration (seconds) |
max_ad_duration | int | 120 | Maximum creative duration (seconds) |
pod_duration | int | 90 | Ad pod total duration (seconds, VMAP only) |
Content metadata
Passing content metadata significantly improves fill rate. Genre-targeting DSPs only bid when they can match a content signal.
| Parameter | Type | Description |
|---|---|---|
content_genre | string | Content genre: drama, sport, news, entertainment, comedy, documentary, reality, gaming, music |
content_title | string | Episode or video title |
content_series | string | Series name |
content_episode | int | Episode number |
content_season | int | Season number |
content_id | string | Your internal content ID |
content_rating | string | Content rating: G, PG, PG-13, R |
content_length | int | Content duration in seconds |
content_livestream | int | 1 if live, 0 if VOD |
content_categories | string | IAB categories, comma-separated |
content_keywords | string | Keywords, comma-separated |
App / CTV parameters
Required for mobile and CTV inventory. DSPs use these for app targeting and brand safety.
| Parameter | Type | Description |
|---|---|---|
app_bundle | string | Bundle ID: com.example.app (Android) or 12345678 (iOS) |
app_name | string | App display name |
app_store_url | string | App Store or Play Store URL |
language | string | Content language (ISO 639-1, e.g. en, ar) |
network_name | string | TV network or channel name |
channel_name | string | Channel name within app |
Session and GDPR
| Parameter | Type | Description |
|---|---|---|
session_id | string | Session ID for frequency capping |
gdpr | int | 1 if GDPR applies, 0 otherwise |
gdpr_consent | string | IAB TCF 2.2 consent string |
Ad server macro reference
| Ad Server | IP macro | UA macro | Bundle macro |
|---|---|---|---|
| SpringServe | %%IP%% | %%UA%% | %%APP_BUNDLE%% |
| Google Ad Manager | %%CBIP%% | %%UA%% | %%APP_BUNDLE_ID%% |
| FreeWheel | [IP] | [USERAGENT] | — |
| AWS MediaTailor | [playerconfig.ip] | [playerconfig.ua] | [playerconfig.bundle] |
Response format
Praevis returns VAST 3.0 XML with a single <Linear> ad when a DSP wins the auction.
<?xml version="1.0" encoding="UTF-8"?>
<VAST version="3.0">
<Ad id="auction-uuid">
<InLine>
<AdSystem>Praevis Exchange</AdSystem>
<AdTitle>Ad</AdTitle>
<Impression><![CDATA[https://rtb.praevis.com/track/impression?...]]></Impression>
<Creatives>
<Creative>
<Linear>
<Duration>00:00:30</Duration>
<MediaFiles>
<MediaFile type="video/mp4" width="1920" height="1080">
<![CDATA[https://cdn.example.com/creative.mp4]]>
</MediaFile>
</MediaFiles>
</Linear>
</Creative>
</Creatives>
</InLine>
</Ad>
</VAST>When no DSP bids above the floor, an empty VAST is returned:
<?xml version="1.0" encoding="UTF-8"?>
<VAST version="3.0"/>Your ad server will handle this as a passback to the next demand source.
AWS MediaTailor parameters
If you’re using AWS MediaTailor for server-side ad insertion (SSAI):
| Parameter | Description |
|---|---|
aw.userId | MediaTailor user ID |
aw.correlator | Cache-buster |
aw.deviceMake | Device manufacturer |
aw.deviceModel | Device model |
aw.deviceType | mobile, tablet, desktop, ctv |
aw.limitAdTracking | iOS LAT flag (1 = limited tracking) |
VMAP (ad pods)
For ad break / pod filling, use format=vmap:
https://rtb.praevis.com/vast?site_id={ID}&format=vmap&pod_duration=90&w=1920&h=1080The response is a VMAP document with individual VAST URLs for each ad slot.