Nimble Advertizer live demo

This page shows server-side ads insertion in action and gives implementation details.

Watch the demo

Currently, we have a Nimble Streamer instance running with 1 incoming live stream with all-time blockbuster "The Big Buck Bunny" running 24/7.
Video output is available via HLS, SLDP and RTMP. Audio output is available via Icecast and audio-only HLS.

Nimble Advertizer is set to show pre-roll and mid-roll ads.

  • All video and audio streams have 1 pre-roll ad.
  • Video stream has 2 types of mid-roll ads. First mid-roll is played after 60 seconds after you started watching and it's repeated every 80 seconds. The second ad is played after 100 seconds from the start and is also repeated every 80 seconds.
  • Audio stream also has 2 types of mid-roll ads. First mid-roll is played after 30 seconds after you started watching and it's repeated every 60 seconds. The second ad is played after 60 seconds from the start and is also repeated every 60 seconds.





RTMP playback is deprecated in the browsers, however, if you use some RTMP-enabled players, you can check the below link.



Demo workflow

Ads insertion technology workflow of this demo is operating as follows:

  • Nimble Streamer processes incoming streams to get content.
  • Nimble Advertizer gets settings from a JSON file (see section below) after start and it does that periodically.
  • Advertizer gets files with advertisements and processes them for further insertion. This is done periodically if JSON settings define some new ads content.
  • You connect to Nimble Streamer to get live stream via designated protocol.
  • Nimble inserts the ads into original media and packages the outgoing stream.
  • You watch the streams containing original content mixed with advertisements.

You can find ads from this demo in Advertizer github repository.

Config for Nimble Streamer

Nimble Advertizer behavior is defined on server side via Nimble Streamer configuration file.

We added the following settings in our nimble.conf:


You can find parameters description in Advertizer technical spec describing all aspects of its usage. After changing your config file, you need to restart Nimble Streamer. For Linux it’s done by "sudo service nimble restart" command. Read this page for more details on Nimble Streamer config.

JSON for Advertizer

Nimble Advertizer business logic for ads insertion is typically defined by a handler application which returns a JSON response with ads setup description. As handler response must be just a valid JSON text, we put a plain-text JSON file available via HTTP. You can see that in advertising_url parameter value.
You can download JSON response file used for this particular demo. Check our Advertizer repository on github to find more examples.

Pre-roll video tutorial

We've made a quick video showing the setup process for a simple use case: adding a pre-roll ad into a live stream.

Full capabilities

Full technical spec shows how exactly you can use all Nimble Advertizer features.

Those features include flexible timing control like inserting ads at exact moment of time. You may also personalize ads per individual viewer using his ID from our Pay-per-view framework which gives full customization of your ads insertion experience.

Insertion logging will allow you to track ads performance for your advertizers' confidence.

Nimble Advertizer premium functionality avaialble as part of Nimble Streamer Addenda package license.
Get a license for each Nimble Streamer server instance where you want to enable SSAI. You'll have a separate active subscription to cover all licenses and if you need to add more of them, you'll make a proportional payment.
Feel free to sign up and subscribe for WMSPanel account to proceed with Nimble Streamer Addenda licensing and usage.

If you have any questions on Nimble Advertizer usage, please contact us via company helpdesk.

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the Privacy Policy. If you want to know more or withdraw your consent to all or some of the cookies, please refer to the Privacy Policy.
By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to the use of cookies.