Ads are critical to many streaming services as without the revenue they bring the service would not be commercially viable. No-one’s under the illusion that people universally enjoy watching ads, but a lot of money goes in to producing them and delivering them because of how important it is to serve ads.
Just like adverts in linear channels, server-side ad insertion happens before the video is streamed. To the video player, nothing changes, only the viewer will notice that an advert has started. Taking live transmission as an example, there are a couple of ways of this happening. One would be to mix the advert into the video as if it were part of the programme. There is nothing wrong with this method, as it would have the effect of getting this video to all of your viewers. It’s, in effect, no different than simply encoding an off-air commercial TV station for online streaming or a YouTube presenter doing an ad read. The trouble with this basic method is everyone gets the same video and there are, effectively, no analytics to give to the advertisers.
Part of the allure of online streaming is getting precise stats. You know exactly how many players you have streamed to, you know which resolutions they streamed and you know how many rebuffing events they have. Advertisers want to have that same information and would pay more for the ability to target adverts. This gives rise to the use of dynamic SSAI whereby an auction happens for an upcoming ad break and different players are given different adverts. The more you segment the viewers, the more difficult it is to scale the SSAI. The extreme would see each person getting a different manifest and hence advert playlist. So the question is where the balance is between CPM and cost of implementation. If you can segment down to the individual player, then you have better analytics and using VAST 4.0 it’s possible to expose much more information, in both directions, both about the ad but also, consequentially, to the advertiser.
In summary, SSAI is any way in which you place an advert into the stream such that all the stream/chunks still come from the original source. If you redirected the player to another domain, that would be seen as client-side ad insertion as the client would be doing the work of fetching the adverts. Because all of the adverts come from the same domain name, there is no way for an ad blocker, either in the browser or in a DNS server, to block the adverts. This is one big motivation to convert advertising workflows into SSAI from client-side inserted. There are always ways in which the user can interfere with a player to stop it diverting to adverts, but if they are done wholely on the server, there’s no way to know what’s an advert and what’s not.
In principle, SSAI ads should look better than, or at least as good as the most well-implemented, client-side implemented ads. We’ve all seen the YouTube videos where someone is interrupted mid-sentence by a mid-roll ad. This isn’t good for the viewer and, to be honest, isn’t great for the advertiser either. The aim should be to always to have great production values as, overall, viewers appreciate better production. If this weren’t the case, then the big names in broadcasting wouldn’t, universally, spend so much time and money producing meticulously produced content. Netflix didn’t make their name in original programming by getting amateurs to churn out massive amounts of content, they went to respected industry experts in both the creative arts and technical sciences and have invested a lot of time and money in refining their product.
SSAI offers ad-blocker-immune, targeted advertising which is something client-side ad insertion will never be able to offer. It’s not always the right choice for every service, but it’s clear why it’s a tantalising option for many.