Open source SGAI proxy proof-of-concept available as a service
This blog outlines how you can quickly get started testing and evaluating Server-Guided Ad-Insertion (SGAI) without having to modify your current setup.
Server-Guided Ad-Insertion (SGAI) is an ad-insertion technology where the server signals the ad-breaks and the video player handles the ad-insertion. The server provides the players with a common streaming manifest that contains instructions to the player on when and how to reach an ad-server. When the player reaches an ad-insertion opportunity it reaches out to the ad-server and receives the manifest for the ads to insert.
The main streaming formats (HLS and MPEG-DASH) are working on standardizing this signaling protocol and Apple has support in AVPlayer for it. At the time of writing the native Safari player does not support it though.
Part of a proof-of-concept we have developed and open sourced a component to insert these type of signals in an already existing HLS stream. A proxy that enables you to add these signals in an already existing streaming setup and you can add this without having to do any modifications to your current platform. This proxy is open source and available on our GitHub and to reduce the barrier for you to try this out we have also made it available in Eyevinn Open Source Cloud. Together with some other components available you can start evaluating this with a few clicks of a button.
Launch your example setup in Eyevinn Open Source Cloud
In this example setup we will use a test live HLS source available in Eyevinn Open Source Cloud, and a test ad-server for delivering what ads to be inserted. You would replace the test live HLS source with a stream from your platform. The stream need to contain Program Date Time tags.
Login to the Eyevinn OSC web console and navigate to the service called Test Source HLS Live and click on the button “Create testsource +”. Give the source a name and press Create.
This test source is available on https://eyevinn-blog.eyevinn-docker-testsrc-hls-live.auto.prod.osaas.io/loop/master.m3u8 and will contain the trailer for Sintel in a loop.
Now create an instance of a test adserver. Navigate to the service called Test Adserver in the Eyevinn Open Source Cloud web console. Create a test ad-server that we will call “sgai” in this example.
The VAST endpoint that you will use is in this example https://eyevinn-sgai.eyevinn-test-adserver.auto.prod.osaas.io/api/v1/vast
Last thing to complete this setup is to create an instance of the SGAI proxy. Navigate to the SGAI Proxy in the Eyevinn OSC web console and press the “Create proxy +” button. Enter the following values in the dialog.
The VastEndpoint is the URL https://eyevinn-sgai.eyevinn-test-adserver.auto.prod.osaas.io/api/v1/vast and the OriginUrl is the URL to the test source https://eyevinn-blog.eyevinn-docker-testsrc-hls-live.auto.prod.osaas.io/loop/master.m3u8. We will use InsertionMode “dynamic” in this example as we will insert tags on demand.
Now when this instance has been created you will be able to play the test source from the proxy URL: https://eyevinn-blog.eyevinn-sgai-ad-proxy.auto.prod.osaas.io/loop/master.m3u8
Insert that in your AVPlayer and you will see the test source as you did before. Now it is time to actually insert an ad-insertion opportunity. Use an HTTP client (curl or Postman) of your choice and send this command to the proxy:
% curl "https://eyevinn-blog.eyevinn-sgai-ad-proxy.auto.prod.osaas.io/command?in=5&dur=10&pod=2"
This will insert an ad-opportunity in 5 seconds that is 10 seconds long and contains 2 ads. You can verify this in your AVPlayer.
Conclusion
This is a quick and easy way to get started with Server-Guided Ad-Insertion and evaluate how that will fit into your current setup. All components mentioned in this blog is available as open source and by making them available in Eyevinn Open Source Cloud you can get started without having to do any modifications to your current deployment.