node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »



bitHound Score Code Climate Build Status devDependency Status Test Coverage


JS + Flash wrapper for VPAID.

VPAID or Video Player Ad-Serving Interface Definition, establishes a common interface between video players and ad units, enabling a rich interactive in-stream ad experience.

Because some of the ad's are in flash, this projects will allow to expose the api to be used by js.

JS is responsible of:

  • create a uniqueid for the vpaid and request swfobject to load the swf
  • to do the bridge between vpaid api between flash and js using ExternalInterface
  • for security reasons the swf will not be allowed to communicate with flash if not excuting in the server

Flash is responsible of:

  • load the ad Unit
  • expose ad Unit interface to outside
  • using the uniqueid to identify the swf

The goals of VPAIDFLASHClient are:

  • common interface for VPAID in different technologies HTML5 and FLASH.
  • handle how to load the VPAID adUnit
  • be a simple and "stupid" implementation of VPAID

check videosjs-vast-vpaid if you need VPAID in videojs



The project uses:


Flash is compiled using Flex SDK.


  • when creating a VPAIDFLASHClient instance the last parameter is debug, if this flag is set to true, will create a visual textfield that allows to show errors
  • as well if the js+flash is working all errors catch by the VPAIDFlash.swf will be sent to js
  • other error's can be caugth with Flash debugger

Flash debugger

Allows to flash to throw errors in a popup like window. To install go to adobe support page and install the flash player with content debugger in the name for the correct OS. PS:

  • in Google Chrome the Flash debugger is not working (the last time I tried), I found an issue in chromium, so install in Firefox or other if not working for you in Google Chrome.

Running the project

  • install nodejs, bower and gulp
  • npm install will to install all dependencies
  • bower install will install swfobject, if you run npm install will execute as well bower install using postinstall
  • ./ will install in vendor folder flex sdk that will allow to compile flash without needing flash, flash builder or flashDevelop
  • gulp serve or npm start to start build script and a demo page should be open in default browser
  • gulp to watch, bundle and run tests
  • npm test or gulp test:ci task used by the server

Example of the usage

var flashVPaid = new VPAIDFLASHClient(element, flashVPAIDWrapperLoaded);
function flashVPAIDWrapperLoaded(err, result) {
    if (err) {
        //handle error here 
    flashVPaid.loadAdUnit('TestAd.swf', function (error, adUnit) {
        if (err) {
            //handle error here 
        adUnit.on('AdLoaded', function (err, result) {
            console.log('event:AdLoaded', err, result);
        adUnit.on('AdStarted', function (err, result) {
            console.log('event:AdStarted', err, result);
        adUnit.handshakeVersion('2.0', function (err, result) {
        function initAd() {
            adUnit.initAd(0, 0, 'normal', -1, '', '', function (err) {
                console.log('initAd', err);
        function startAd() {
            adUnit.startAd(function (err, result) {
                console.log('startAd call', err, result);
        function checkAdProperties() {
            adUnit.getAdIcons(function (err, result) {
                console.log('getAdIcons', result);
            adUnit.setAdVolume(10, function (err, result) {
                console.log('setAdVolume', result);
            adUnit.getAdVolume(function (err, result) {
                console.log('getAdVolume', result);

for the api of VPAIDFLASHClient check VPAIDFLASHClient.js, for adUnit api check IVPAIDAdUnit.js.


licensed under the MIT License, Version 2.0. View the license file

Copyright © 2015 MailOnline