Browse the documentation
Connected TV and streaming apps
Applies to: Publishers
A video zone serves TV apps, streaming boxes and mobile video apps as well as websites. The player asks the ad server for ads with a VAST URL, the same way a web player does. For long streams the zone adds what TV players expect: several ads per break, a plan of all breaks, an image ad while the viewer pauses, and server-side ad insertion.
Before you start#
- Create a video zone first: How to set up a video preroll zone.
- Your player or streaming platform must support VAST. For several ads per break it must support ad pods (VAST 3 or later). For the break plan it must read VMAP.
Settings#
Open the zone and find Connected TV and streaming apps in Video Ad Settings.
| Setting | What it does | Default |
|---|---|---|
| Ads per break | 1 to 6. With more than 1, one answer holds several ads in a row (an ad pod). The same campaign or advertiser never shows twice in one break. | 1 |
| Most ad seconds per break | Stops adding ads to a break once this many seconds are filled. 0 means no limit. | 0 |
| Mid-roll breaks (seconds) | Where the breaks in a stream go, in seconds from the start, for example 600, 1200. Up to 20. |
none |
| No pre-roll | Leaves the break before the stream out of the plan. | off |
| Post-roll at the end | Adds a break after the stream. | off |
| Allow server-side ad insertion | Lets your ad insertion server ask for ads on behalf of each viewer (see below). | off |
| Pause ad | One of your banner zones. When the viewer pauses, the player can show that zone's image ad. | No pause ads |
Click Save.
Player URLs#
Open the Ad Zone Code tab. TV and app players lists one URL for each case:
- VAST tag for CTV / app players: one ad, or as many as Ads per break.
- Ad pod (3 ads in one answer): change
pod=3to the number you want. - VMAP: the plan of all breaks. Players that read VMAP request each break themselves.
- Pause ad (JSON) and Pause ad (VAST NonLinear): the ad to show when the viewer pauses. Show the image, and call the
impression_urlonce it is on screen. - Server-side ad insertion: for an insertion server that stitches ads into the stream.
The parts in square brackets, such as [APPBUNDLE] and [IFA], are standard macros the player fills in: the app's bundle id, its store link, the device's advertising id, the limit-ad-tracking flag and the privacy string. Leave out whatever your player does not know.
The app bundle counts as the domain of the request. Advertisers can therefore include or block your app in their domain lists, and your statistics show it like a website.
Server-side ad insertion#
An insertion server asks for ads instead of the viewer's device. For those ads to match the viewer's country and device, the server sends the viewer's IP address and user agent with every request: ssai=1&ip=…&agent=…. The zone accepts this only with Allow server-side ad insertion on; otherwise such requests are refused.
Reaching TV viewers as an advertiser#
TV traffic is recognised from the device, or from device_type=3 when the player sends it. In a campaign's device targeting, pick TV to buy only TV screens. Upload video ads in 1080p for big screens. The ad server keeps the resolution you upload and converts the file to the standard H.264 format.