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
- try to implement flex unit tests
- create test coverage (not done yet because of karma coverage - issue #123)
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
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.
- install nodejs, bower and gulp
npm install
will to install all dependenciesbower install
will install swfobject, if you runnpm install
will execute as wellbower install
usingpostinstall
./flexSDK.sh
will install invendor
folder flex sdk that will allow to compile flash without needing flash, flash builder or flashDevelopgulp serve
ornpm start
to start build script and a demo page should be open in default browsergulp
to watch, bundle and run testsnpm test
orgulp test:ci
task used by the server
var flashVPaid = new VPAIDFLASHClient(element, flashVPAIDWrapperLoaded);
function flashVPAIDWrapperLoaded(err, result) {
if (err) {
//handle error here
return;
}
flashVPaid.loadAdUnit('TestAd.swf', function (error, adUnit) {
if (err) {
//handle error here
return;
}
adUnit.on('AdLoaded', function (err, result) {
console.log('event:AdLoaded', err, result);
startAd();
});
adUnit.on('AdStarted', function (err, result) {
console.log('event:AdStarted', err, result);
checkAdProperties();
});
adUnit.handshakeVersion('2.0', function (err, result) {
initAd();
});
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