The Brightcove Advertising SDK

Technology
Required
Edition
Pro, Enterprise

Advertising starts with the Brightcove Studio Advertising module and an ad server, but it doesn't end there. Through development in ActionScript and JavaScript, the Brightcove Advertising SDK allows you to advanced customizations and enhancements to advertising within a Brightcove 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 Brightcove player.

Advertising SDK: 3 components

Ad Policy and Ad Rules

Ad Rules SWFAs shown as calls #1 and #2 in the diagram above, the Brightcove player determines when to make an ad call based on an ad policy that's retrieved form Brightcove 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 Brightcove 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 Brightcove system and control when and how often ads are rendered in players. The Ad Rules SWF provides an alternative to the Brightcove 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 Brightcove system as an Ad Rules SWF and use their own ad delivery logic instead of relying on the Brightcove 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. 

Ad XML

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 Brightcove 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 Brightcove 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 Brightcove 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.

More Customization

We're always looking to make improvements to the advertising SDK. If you have anything you'd like to see here, let us know in the forums.