How the break gets filled
Every step runs on open standards, so the same engine works on a laptop, a single VM, or Kubernetes, with no vendor lock-in.
Detect the cue
An SCTE-35 marker in the origin manifest (splice_insert or time_signal) opens an ad avail.
Decide the ad
The engine calls a real VAST tag (Google's public IMA sample) and gets back a real MP4 creative.
Condition and place
The creative is conditioned to the stream's rendition ladder, then stitched in (SSAI) or delivered as an HLS Interstitial (SGAI).
Track and reconcile
Impression and quartile beacons fire, and every break is logged for server-side reconciliation against the ad server.
What you are watching
No mock and no stand-in: the creative is a live response from Google's ad infrastructure.
- A real Google IMA sample ad (a roughly 10 second MP4), fetched live over VAST at session start.
- Inserted into a 30 second break signalled by SCTE-35. The ad fills the first 10 seconds; slate pads the rest.
- Never dead air: on no-fill or an origin hiccup the break degrades to slate and last-good, never to a black screen or a 5xx.
- Plays as SSAI in any hls.js browser; Safari and iOS additionally render the SGAI interstitial variant.
Inspect it live
The same instance exposes its audit trail and reconciliation, the parts an ad-operations team actually checks.