GlossaryDynamic ad insertion

Dynamic ad insertion

Dynamic ad insertion (DAI) picks ads at playback time for each viewer and places them into marked breaks, instead of editing ads permanently into the video file. Two viewers watching the same episode can see different ads in the same break, chosen by location, device or audience. The breaks are marked with cue points or SCTE-35 markers, an ad decision server chooses the ads, and insertion happens either on the server (SSAI) or in the player (CSAI).

How does dynamic ad insertion work?

Dynamic ad insertion has three parts. The first is break markers: for on-demand video, cue points stored with the asset or listed in a VMAP schedule; for live and linear streams, SCTE-35 cues carried in the stream. The second is decisioning. When a break comes up, an ad request goes to the ad decision server with context such as device type, approximate location, app and consent signals, and the server returns ads in VAST format, chosen by direct deals or an auction. The third is insertion, where the chosen ads actually reach the screen.

Because the choice happens at playback, the same file never changes. An old title gets new ads every time it plays, a break can be sold separately in each region, and a frequency cap in the ad server can stop one viewer seeing the same ad in every break.

Dynamic ad insertion vs. SSAI

The two terms describe different layers. Dynamic ad insertion is the goal: choose ads per viewer at playback time. SSAI, server-side ad insertion, is one way to deliver them, where a server splices the chosen ads into a per-viewer playlist and the player never leaves the content stream. The other way is CSAI, client-side ad insertion, where the player itself fetches and plays the ads at each break.

So every SSAI setup is a form of dynamic ad insertion, but not every dynamic ad setup uses SSAI. Many services use both: SSAI on connected TVs, where smooth transitions and ad blocker resistance matter, and CSAI on web and mobile, where clickable formats matter. The break markers and the ad decision server can be shared between the two paths, so only the insertion step differs by device.

How does dynamic ad insertion work in live streams?

Live dynamic ad insertion adds timing pressure. The break is announced by an SCTE-35 cue in the stream, often only seconds before it starts, so the ad request, the response and, for SSAI, the stitched manifest must all be ready inside that window. If decisioning is slow, the break goes out with slate, a filler card, or with the programme content underneath.

Duration is the next constraint. A live break has a fixed length, so the ads chosen must fill it exactly or the gap must be filled with slate or a shorter house ad. And because every viewer hits the break at the same moment, ad requests arrive as a burst: one request per viewer within a second or two, whether the player or the SSAI service sends them. Live sports and news streams test that burst at full audience size before launch, along with what viewers see when an ad request fails.

Dynamic ad insertion vs. ads stitched into the file

The alternative to dynamic ad insertion is a static ad: a sponsor message or promo edited into the video and encoded as part of it. Every viewer sees the same ad forever, and changing it means re-editing and re-encoding the title. It is simple, needs no ad server and plays the same everywhere, which suits a fixed sponsor credit or a house promo.

Dynamic insertion keeps the library untouched and the ads separate. That costs more infrastructure: break markers on every title, an ad decision server, an insertion path and tracking. In return, each break can be sold again on every play, matched to the region or device, and replaced when a campaign ends. News publishers selling local breaks and catch-up services monetising old titles depend on that, while a course platform with one sponsor per course can stay static.

How does FastPix handle dynamic ad insertion?

FastPix provides the break markers on linear channels and the stream that ads play around; the per-viewer ad decision and the insertion come from your ad partner. FastPix does not choose or stitch ads.

For scheduled and 24/7 channels, Cloud Playout programs your library and live inputs by time slot, and mixes them in one rundown. It supports SCTE-35 markers, the standard cues a server-side ad partner reads to find breaks.

For a fixed message rather than a dynamic one, intro and outro stitching is built in, so a sponsor credit can be joined to a video. That message is the same for every viewer, so it is static insertion, not dynamic.

In Video Data, every session is broken down by country, region, CDN and ASN, with up to 10 custom dimensions such as market or ad tier, and per-channel concurrent viewers, startup, rebuffering and errors. Event-level export to Snowflake, BigQuery, Redshift, Databricks or ClickHouse lets you join that with your ad partner's impression data.

Cloud Playout costs $99 per channel a month, with a 14-day trial, and schedules against your full library with no storage bands. Your ad partner bills separately for decisioning and insertion. Use the trial to build a test channel and check its markers with your ad partner.