Overview of the Video Cloud Advertising SDK

Video CloudLegacy StudioExpress III, Professional, Enterprise

An overview of the Video Cloud Advertising SDK, which consists of the ad configuration parameters, ad tag translators, ad SWF, and ad APIs.

Advertising starts with the Video Cloud Studio Advertising module and an ad server, but it doesn't end there. Through development in ActionScript and JavaScript, the Video Cloud Advertising SDK allows you to advance customizations and enhancements to advertising within a Video Cloud player.

Brightcove Ad SDK Diagram

The Advertising SDK consists of the ad configuration parameters, Ad Tag Translator SWF, ad Display SWF, Ad Rules SWF, and Ad APIs. We'll be describing these pieces as we go over the flow of advertising in a Video Cloud player.

Advertising SDK: 3 components

Ad Policy and Ad Rules

Ad Rules SWFAs shown as calls #1 and #2 in the diagram above, the Video Cloud player determines when to make an ad call based on an ad policy that's retrieved form a Video Cloud server. Not shown in the diagram is how the ad policy is set. This is done in the ad module at the player level and the video level or using an Ad Rules SWF.  

The ad policy stored at the player level can be overwritten and completely customized by using an Ad Rules SWF. This allows partner ad networks to easily plug in to the Video Cloud system and control when and how often ads are rendered in players. The Ad Rules SWF provides an alternative to the ad policy but is still assigned to players via the Advertising module. It can also be assigned at the account level. Tremor Media and Yahoo APT both plug into the Video Cloud system as an Ad Rules SWF and use their own ad delivery logic instead of relying on the Video Cloud ad policy.

While most of the ad policy must be set up in the Advertising module, a few parts are exposed in the Advertising SDK. Some of the key ad policy values can be set as configuration parameters in the HTML snippet for the player. All of the ad policy values can be read via the getAdPolicy function and some values can be changed during a single player load via the setAdPolicy function in the ad APIs. A single ad request can also be made at any time by using the API requestAd() function.  The ad APIs are a part of the player API, which can be used in ActionScript or JavaScript.

Ad Calls

Once the player determines that an ad call must be made, it hands control of the ad call over to the current ad tag translator. The ad tag translator sends and receives a response for an ad, as shown in calls #3 and #4 in the diagram. This is a central piece of the advertising SDK, as it allows for reusable implementations for different ad servers and networks.

Brightcove provides support for many ad servers, and new ones can be developed fairly easily with the examples and documentation that are provided for the ActionScript development. 


The ad tag translator usually ends control of the ad call by giving a XML response to the player, as shown in call #4 in the diagram. The XML is often in the form of one of the Video Cloud ad formats, but the XML can be something completely different. If a player would like to handle custom XML outside of an ad tag translator, this can be done with the enableExternalAds() function in the ad APIs. If the ad that's returned has elements that are meant to be displayed in HTML, this can be handled with the external ad API.

Displaying an Ad

Ad SWF diagramIf the XML is one of the Video Cloud standard ad formats, it will be automatically displayed and the ad impression calls will be made at the appropriate times. The ad impression calls are represented as call #5 in the diagram.

One of the ad formats is the ad SWF format, which is a format within a format. An ad SWF can be developed in ActionScript by advertisers in order to completely customize the display and functionality of an ad. The ad SWF format has been used inside of Video Cloud for the support of Google and DoubleClick Rich Media ads.  Ad SWFs can be used in our standard player templates or in a custom player template.