What Is SSAI? Server-Side Ad Insertion Explained
A plain-English explanation of Server-Side Ad Insertion (SSAI) for FAST channel operators — how it works, why it matters for TV distribution, the difference between SSAI and client-side ad insertion, and what you need to set it up.
Server-Side Ad Insertion (SSAI) is how ads get into FAST channels. If you're running a linear streaming channel, SSAI is the technology that replaces content segments with ad segments in your HLS stream, creating a seamless viewing experience where ads flow into programming without buffering or black frames.
Understanding SSAI is essential for any FAST channel operator. It affects your ad revenue, your viewer experience, and what you need to set up.
The problem SSAI solves
Traditional web video advertising uses client-side ad insertion (CSAI): the video player pauses, loads an ad from a third-party ad server, plays it, then resumes the content. This is how YouTube, Hulu's web app, and most browser-based video players work.
CSAI has several problems for TV distribution:
-
Ad blockers. Browser-based ad blockers trivially block CSAI ads — they just filter the separate ad server request. Ad blocker adoption has reached 40%+ on desktop.
-
TV platforms can't run ad SDKs. Roku, Fire TV, and Apple TV run closed operating systems. You can't install an ad blocker or a JavaScript ad SDK on them. But you also can't use CSAI because it requires JavaScript running in the browser.
-
Buffering. The pause-load-resume pattern creates buffering artifacts that frustrate viewers on slow connections.
SSAI solves all three by moving ad insertion from the client (browser/player) to the server.
How SSAI works
With SSAI, the ad is stitched into the video stream before it reaches the viewer's device. From the player's perspective, there's no difference between an ad segment and a content segment — it's all one continuous HLS stream.
Here's the sequence:
-
A viewer starts watching your channel. The SSAI server (provided by your FAST platform) intercepts the HLS manifest request.
-
The SSAI server checks for an upcoming ad break (triggered by SCTE-35 cue markers embedded in your stream's manifest).
-
The server calls your ad tag URL (a VAST endpoint from your ad server — typically Google Ad Manager).
-
The ad server returns a VAST response with one or more ad video URLs.
-
The SSAI server fetches the ad media, transcodes it to match the content's bitrate ladder, and stitches the ad segments into the HLS manifest in place of the content segments.
-
The viewer's player receives the manifest and plays the ad as if it were regular content.
-
The SSAI server fires impression beacons back to the ad server to confirm viewership.
SCTE-35 cue markers
SCTE-35 is a broadcast standard for signaling ad break opportunities in a video stream. When you want an ad break at a specific point in your FAST channel, you insert a SCTE-35 cue-out marker at that timecode in your manifest. The SSAI system watches for these markers and triggers the ad decision process.
For FAST channels, your playout engine (not you manually) inserts SCTE-35 markers on a schedule. You configure how often ad breaks happen and how long they run — typically 2-4 breaks per hour, 2-4 minutes each.
SSAI platforms handle the SCTE-35 detection automatically. You don't need to manually encode markers into your source files.
VAST and VMAP ad tags
VAST (Video Ad Serving Template) is the XML-based standard that ad servers use to communicate ad decisions to players and SSAI systems. Your ad server (Google Ad Manager, FreeWheel, Magnite, etc.) gives you a VAST tag URL that looks like:
https://pubads.g.doubleclick.net/gampad/ads?iu=/your-network/your-ad-unit&...
You configure this URL in your FAST platform's monetization settings. The SSAI server calls this URL each time it needs to fill an ad break.
VMAP (Video Multiple Ad Playlist) is an extension of VAST that defines an entire session's ad schedule upfront — when breaks should happen, how long they should be, and what ads should play. VMAP is useful for FAST because it lets the ad server control the ad schedule rather than having to call for each break individually.
Ad fill rate
Fill rate is the percentage of ad break opportunities that are actually filled with paid ads. A 70% fill rate means 30% of your ad breaks run house ads, backfill, or nothing.
Fill rates depend on:
- Audience size. Small audiences have lower demand, lower fill rates.
- Targeting data. Better demographic and geographic data gets better fills.
- Content category. News, sports, and cooking channels command better CPMs and higher fill rates than niche categories.
- Time of day. Primetime (8-11 PM) has higher demand than overnight.
- Geography. US audiences get the highest CPMs. UK is second. Most other markets are significantly lower.
New channels with small US audiences should expect 20-50% fill rates initially. As the channel grows, fill rates improve.
CPM ranges for FAST
FAST CPMs (cost per thousand ad impressions) vary widely:
| Market | Typical CPM range |
|---|---|
| US primetime, sports/news | $15–$40 |
| US general, all dayparts | $8–$20 |
| UK | $5–$15 |
| Canada, Australia | $4–$12 |
| Other | $1–$5 |
These are gross CPMs — what advertisers pay. After platform revenue share, you typically receive 50-70% of gross CPMs depending on your arrangement.
What you need to set up SSAI on Vidiyo
Vidiyo handles all the SSAI infrastructure. What you need to provide:
-
A VAST ad tag URL. Get this from your ad server. If you don't have an ad server yet, Vidiyo can backfill through its ad network while you set one up.
-
Monetization settings. Configure how many ad breaks per hour and the break duration in your channel settings.
That's it. Vidiyo's playout engine handles SCTE-35 insertion, the SSAI stitching, and beacon firing.
SSAI vs. CSAI comparison
| SSAI | CSAI | |
|---|---|---|
| Ad blockers | Bypassed (ads are in the stream) | Blocked |
| TV platform support | Yes | Limited or no |
| Buffering | No (seamless stitch) | Yes (load pause) |
| Targeting | Session-level (less granular) | User-level (more granular) |
| Setup complexity | Platform handles it | Requires SDK integration |
| Works on Roku | Yes | Limited |
For FAST channels on TV platforms, SSAI is not a choice — it's the only viable approach.
What's next
Ready to launch your TV channel?
Vidiyo handles the infrastructure (HLS playout, SSAI, EPG, and cross-platform distribution) so you can focus on programming.
Start free. No credit card.