Video Streaming
Planning your SGAI strategy? Start with your stream.
October 27, 2026

About the author
Eric Walsh is the founder and principal consultant at Digitech Innovation, advising media and streaming companies on technology and platform strategy. During nearly 24 years at MSG Networks, he owned and delivered the network’s digital transformation, led product and streaming operations for live sports, and won six Emmy Awards.
Most conversations about server-guided ad insertion (SGAI) start with the ad. I’d start with the stream.
When you’re responsible for the live stream and ad breaks on game night, you quickly learn that a live sports broadcast is a freight train with no brakes: it won’t stop for your systems, and the breaks come when the game decides.
So, choosing SGAI isn’t simply an ad-tech decision or a vendor swap. It’s a decision about your stream and your data, in that order. Before you write a requirement or start a build, the real work is deciding where each piece belongs: where it keeps the stream stable and the data trustworthy.
What SGAI moves.
In traditional server-side ad insertion (SSAI), a stitcher, or manifest server, does the heavy lifting, building a custom manifest with the ads stitched in for every individual viewer. SGAI keeps the decision on the server and moves the insertion to the client-side video player. The live stream stays intact and shared, and the player fetches the ads and handles the switch.
Think of a newspaper. SSAI prints a custom edition for every reader, with the ads already bound into the pages. SGAI delivers the same newspaper to everyone, with personalized ads inserted at the doorstep. If those ads arrive late, the newspaper still gets delivered. And where you don’t control the doorstep (the player), you can still stitch the ads in.
Questions worth asking before you build.
What’s the best way to deliver content and ads?
For me, the pull toward SGAI starts with stream integrity, not the ad. One shared stream means the CDN can cache all of it, manifest included, not just the segments, and latency stays low.
The ad break stops being the moment every viewer hits a stitching server at once. Once the stream is secure, each break becomes programmable. The server answering the request can apply business rules, query multiple ad sources, use audience data and drive interactive formats, all without touching the content.
Where does each piece of data in the ad request come from, and when is it known?
Data has a where and a when. Capture it where it originates, when it’s accurate, and carry it forward rather than recreating it downstream.
When we built SSAI in 2016, I needed to locate or generate the program identifier our ad decisioning depended on completely. The natural home was the traffic system, so I stopped by to see my good friend and colleague in charge of broadcast traffic. Together we put the system’s content code field to work, built out values for each team and every phase of programming (pregame, game, overtime, postgame, re-airs) and carried that value into every SCTE-35 cue.
SGAI applies the same principle with better timing. A fan who starts the pregame on the train home is on the couch by game time. In a typical SSAI setup, each cue updates what’s on (ours carried it straight from the traffic log), which is extremely helpful. But what the player knows about the viewer- where they are, what they’ve already seen, how they’re watching- is usually captured once, at session start. SGAI can refresh all of this before every break.
Keep the legacy: carry the cue master control already sends, and just add to it, with precise timing and markers that tell the player when to get ready.
Who supplies it, and what happens when it is missing?
Map every value to an owner: the player, the content system, the video workflow, the cue. Then set contingency defaults for each, so a request missing a location or a program ID still goes out instead of failing. Plan for the ad that doesn’t arrive, too. When stitching fails, it tends to fail for everyone on that stream. With SGAI, the content stream still carries the linear break, so a late ad gives way to the linear spot for that one viewer: no global switch, no slate. Clear that fallback with your rights and ad sales teams before launch.
When SSAI is still right.
In practice, the answer is hybrid. Where you own the player, and it handles the switch cleanly, SGAI earns its place. Where you don’t own the player, or ad blockers are in play, SSAI still does the job. On the web, default to guided; if an ad blocker shows up, fall back to stitched for that session. And if it isn’t seamless on a device, wait until it is.
Where it belongs.
Ten years after that conversation in traffic, the lesson hasn’t changed. Before deciding where an ad goes, make sure you understand where the data comes from, when it’s available and how it moves through your streaming infrastructure.


