FAST World SSAI takes the linear channels ChannelForge produces, finds the ad breaks, decides which ads fill each one, and stitches that media straight into the viewer's HLS manifest. Program → ad → ad → program, with no separate ad player and no interruption. It's running today against real ChannelForge FAST channels — you can watch the inserted ads play through the breaks in the FAST World TV player.
No client SDK, no VPAID, no second player. The stream the viewer receives already contains the ads.
Reads the ChannelForge origin and finds each avail from its SCTE cue markers, with a stable, per-channel opportunity id.
Priority- and weight-based selection over your house creatives, seeded per break so it fills the length exactly. Same seed and inventory → the same pod, every time.
Ingest a third-party VAST tag (parsed, wrappers followed) or upload your own — creatives are conditioned to HLS offline, never on the playback path, and third-party tracking beacons fire server-side.
Unsold time falls back to slate; a failure falls back to the origin. Playback always survives an advertising failure.
Every decision is reconstructable — eligible and rejected creatives with reasons, the pod, and the complete impression → quartile → complete event timeline, reconciled per break.
Each session gets a signed, expiring playback token the data plane verifies before serving — session ids can't be forged.
For each break, the ad decision is made a single time per viewer and cached. Every playlist refresh after that is a pure read — no re-deciding, no transcoding, no third-party calls on the hot path. The result the player receives is a normal continuous HLS manifest: the ad segments are already in it, wrapped in the right discontinuities.
SSAI fetches the origin, finds the CUE-OUT…CUE-IN break, and reads its duration.
Eligible creatives are selected by priority and weight, looped to fill a longer break, with any remainder padded by slate so the break is always complete.
The pod's real segments replace the break in a per-viewer manifest, held a little behind the live edge so they reliably reach the player; impression and quartile beacons flow back and reconcile per break.
Manage channels, campaigns and creatives, watch fill and completion in real time, and trace any session end-to-end.