VMAP Ad Pods
The /vmap endpoint returns multiple ads in a single response for CTV and SSAI (Server-Side Ad Insertion) environments. Use it when your player supports multi-ad breaks.
Request
GET https://rtb.praevis.com/vmap?site_id={id}&pod_max_dur=90&pod_ad_slots=3Parameters
| Parameter | Description | Example |
|---|---|---|
site_id | Publisher or site ID | pub_abc123 |
pod_max_dur | Max pod duration in seconds | 90 |
pod_ad_slots | Number of ad slots in the pod | 3 |
min_dur | Minimum ad duration in seconds | 6 |
max_dur | Maximum ad duration in seconds | 30 |
ip | User IP (for server-side) | Detected from request |
ua | User agent (for server-side) | Detected from request |
Response
The endpoint returns a VMAP XML document with one <vmap:AdBreak> containing multiple VAST ads.
<vmap:VMAP version="1.0">
<vmap:AdBreak timeOffset="start" breakType="linear">
<vmap:AdSource>
<vmap:VASTAdData>
<VAST version="4.2">
<!-- Ad 1: 15s creative -->
<!-- Ad 2: 30s creative -->
<!-- Ad 3: 15s creative -->
</VAST>
</vmap:VASTAdData>
</vmap:AdSource>
</vmap:AdBreak>
</vmap:VMAP>How Pod Filling Works
- The exchange runs separate auctions for each slot in the pod
- Duration matching — ad durations are selected to fit within
pod_max_dur - Competitive exclusion — the same advertiser does not appear twice in one pod
- Slots that do not fill are omitted (the pod may be shorter than
pod_max_dur)
SSAI Integration
For SSAI environments (common SSAI platforms), the response uses Wrapper + InLine format. This allows the SSAI server to cache creatives while still firing Praevis tracking pixels.
VAST Wrapper (Praevis tracking) → InLine (creative media file)The Wrapper contains impression and event tracking URLs. The InLine contains the actual media file URL for the SSAI server to fetch and stitch.
Example
curl "https://rtb.praevis.com/vmap?site_id=pub_abc123&pod_max_dur=90&pod_ad_slots=3&min_dur=6&max_dur=30"Tips
- Set
pod_max_durto match your content break length. A 90-second break can fit three 30-second ads or six 15-second ads. - Use
min_durandmax_durto control individual ad lengths. - The endpoint returns as many ads as fit. If only 2 of 3 slots fill, you get a 2-ad pod.