Flowplayer is now part of the Wowza Video live streaming and VOD platform. Learn more →

light background

Using Server Side Ad Insertion with Flowplayer

8 minutes read
Using Server Side Ad Insertion with Flowplayer

Using Server Side Ad Insertion (SSAI) with Flowplayer

Flowplayer is used to power live streaming and VOD around the globe which makes Flowplayer a reliable and good choice for playing streaming content, whether Live Streaming or Video-On-Demand (VOD).

But how about monetization? After all, producing Live Streaming or VOD content and streaming it out can be expensive and time-consuming.

So if your business model calls for generating revenue streams from your content, you have a variety of options for monetizing video content.

You could:

  1. Charge per View (Pay-Per-View or PPV)

  2. Charge Subscription Fees (SVOD)

  3. Insert Ads into your Streams or VOD (AVOD)

Of course, you can also use a selection of these methods with a variety of plans, even mixing and matching these methods in unique ways.

There are pros and cons to each method, and depending on the content your audience might be unwilling to pay outright for the privilege of viewing your videos.

Displaying ads can be a very good option if your audience would tend to balk at paying directly for content yet you feel you can attract a large enough audience to make putting ads into the content worthwhile.

Flowplayer Content Advertising

If you’ve decided to insert advertising, then the questions become:

  1. How do you avoid getting your carefully planned advertising campaigns blocked by Ad Blockers?

  2. How do you ensure that accurate analytics will be available to prove to advertisers that you gave them legitimate counts of the views or impressions of the ads?

  3. What are the most effective ways to monetize videos using inserted ads?

Fortunately, Flowplayer has the answers!

Client Side Ad Insertion (CSAI) using Flowplayer

Flowplayer excels at inserting Ads into video content on the Player side. It’s a fairly simple process to add Ad Tags into an Ad Schedule inside the Flowplayer Dashboard.

Of course, your first order of business is to either find an Ad Service provider (if you don’t already have one) and then obtain a properly formatted Ad Tag file (a VAST file is commonly used - more on that next).

Once you completed these steps, your Live Stream or Video-On-Demand content can be connected to the Ad Schedule and will play the appropriate Ads at the appropriate times. Voila!

Flowplayer Supported Ad Formats

In order to insert ads prior to the Stream being sent to the display device/software, you’ll need to provide the ads, insertion points, and other important data to the server.

Think of the insertion process like this: if you were going to manually splice the ads into the video and then rebuild the video as one complete video file with the ads now inserted, you would need to know:

  1. What ads are to be inserted

  2. How long are the ads

  3. At what points in the video should the ads be inserted

There are several main Ad Service file formats - VAST, VMAP and more. VMAP is really a container for VAST ads, and thus is considered a Schedule of VAST ads to play.

VAST stands for Video Ad Serving Template. Essentially VAST is an XML file format that is easy to read by both humans and machines.

There are many different types of XML file formats (far beyond just Ad Services), and this one in particular is designed to support the many ways that Ads can be inserted into video and called at specific points during video streaming.

You can find out much more about the technical specs for Ad Tags on the Interactive Advertising Bureau (IAB) Website (iab.com) and with this PDF:


How does VAST work?

VAST is a specification for creating a file that contains Ad Objects. These objects include tags to trigger actions related to Ad insertion in the player (on the Client Side, meaning in the browser or App) or directly in the server (on the Server Side).

So of course we will focus on how these tags are used by the server to get the job done on the Server Side.

A typical VAST file may contain parameters such as:

  • Media Files (Ads)

  • Ad Titles

  • Impression ID

  • Tracking urls of many kinds

  • Duration

  • Category related data

Interestingly, the parameters called out above can simply be read straight from the XML files they are embedded in.

You can find numerous examples provided by the IAB in GitHub:


These are worth checking out to give yourself some familiarity with the VAST format.

Preparing to Test Ad Tags in Flowplayer

To become familiar with how to integrate Ad Tags using a VAST file, it’s best to upload a relatively short test video that has no ads in it, and start by building in some Tags and then testing your results.

Doing so makes it very easy to establish a direct connection between how you’ve configured your Ad Tags and how the configurations affect the actual outcome on the screen.

You can easily upload a video file in the Flowplayer Dashboard by clicking on Videos (it usually comes up first when you login to the Dashboard), then click Add Videos (at the top of the Videos column), then choose the video to upload.

Once it’s uploaded, you can begin installing Ad Tags and Ad Schedules and testing it for proper playback, ad insertion, and analytics.

Configure Ad Tags in Flowplayer

Flowplayer supports numerous options and ways to potentially maximize monetization while maintaining viewer attention and avoiding obnoxious commercial interruptions.

The first step to install Ad Tags is to get them from your Ad Network Service. Your VAST Ad Tag should be formatted properly, and contain all the required and appropriate parameters.

To install VAST Ad Tags, click on Ad Tags on the left side of the Flowplayer Dashboard, then click New Tag. The Ad Tag screen will popup, and you can enter a Name and the Ad Tag URL from your Ad Network.

If you want dynamic variables in your vast tags, please check out Flowplayer Macros: https://docs.flowplayer.com/plugins/ads#macros

Creating Ad Schedules in Flowplayer

Once created, click Ad Schedule (also on the left side menu, and you’ll be able to enter a name for the Ad Schedule and choose which Ad Tag to include in it. You’ll have three choices - Pre-Roll, Mid-Roll, and Post-Roll.

As their names imply, Pre-Roll ads run before the video plays, Mid-Roll ads run during video playing, and Post-Roll ads run after the video plays.

The Flowplayer Dashboard screens for creating an Ad Schedule as a Mid-Roll that will be run at specific points during the video, using play percentage as the marker for when the Ads run.

There is much more detail about creating Ad Schedules with a variety of Pre, Mid, and Post rolls here:


Testing and Debugging VAST files

There are a number of steps that can be taken to test and debug VAST Files, and they are documented here:


The testing and debugging methods discussed on the page above may not be necessary for every VAST URL every time, but it’s worth checking this information out to familiarize yourself with it and know what you’re dealing with.

What does the Ad Network Service company provide?

As mentioned previously, there are numerous companies providing vast ads. Those Ad networks, or ad servers if you like, can be used directly as CSAI and together with a SSAI provider, the VAST standard ensures the compatibility.

Popular commercial Ad service companies include Doubleclick (now part of the Google Marketing Platform), AdTech, OpenX Ad Server, Broadstreet Ad Server, adColt Ad Server, AdButler, and more. There are also self-hosted Ad service options, some open-source and free, except for the effort you spend to set them up and maintain them.

Of course, commercial Ad Network Services charge a fee for their efforts, but they not only provide the advertisers and their ads, they also do the job of building the Ad Service Files that are required by Flowplayer and other popular streaming services as well as performing analytics chores that the advertisers insist on.

Server-Side Ad Insertion using Flowplayer

So if you’re looking for Server-Side Ad Insertion, there are a few more steps that need to be taken. So let’s get a little technical and discuss Server-Side Ad Insertion (SSAI).

First off, as the title of this article suggests, using Server-Side Ad Insertion prevents Ad Blockers for working, since the video content of the Ad is embedded directly into the video on the server prior to reaching the player, and thus is part of the actual stream content, not some sort of browser-based overlay.

This represents a big advantage of using Flowplayer for SSAI, but like all highly advantageous technical capabilities there are some considerations and potential drawbacks. The Flowplayer Video player support IMA DAI and Yospace SSAI, and the integration of the backend is done as a custom project, with little work on the IMA DAI solution, and a moderate amount of work on the Yospace setup

There’s a App For That

Flowplayer has built a plugin that allows clients to choose either Google DAI or Yospace in the Flowplayer Video Player.

Details about these commands can be found here: https://docs.flowplayer.com/plugins/ssai

Reaping the Benefits

The bottom line of this effort is to demonstrate to your clients that the content they run is properly monetized and generating conversion for them, so that in turn they will continue using your service and generate revenue for you.

To demonstrate the effectiveness of your SSAI to your clients, nothing works quite so well as legitimate and accurate analytics, statistics, and summaries of viewership including how many ads were started, watched, and perhaps even resulted in a clickthrough and conversion.

And of course, for this effort Flowplayer has several tools that can be combined into a single solution.

There’s the Flowplayer plugin (Google Analytics, Gemius, Comscore) as a complement to the Ad Provider analytics. Flowplayer also provides a tool to analyze all your CSAI requests, including those that do not reach the adserver, thus allowing a wider range of data for troubleshooting.


Using Ad Insertion can be a very effective way to generate a revenue stream, particularly where the content you are streaming is not effective for subscriptions (perhaps being used as a “loss-leader”).

While CSAI can get the job done in some cases, it is susceptible to Ad Blockers that key in on calls to the streaming server from the player, thus diminishing CSAI’s effectiveness.

SSAI, because Ad Insertions are done prior to reaching the Client, can dramatically improve conversions and sales for your advertisers, thus allowing you to negotiate for better rates from advertisers.

SSAI makes Ad Insertions even more effective by keying on individual signals of the viewer and inserting Ads that are more valuable or appropriate for the viewer.