VAST 4.0 Parser and Builder
This is a simple VAST parser and builder heavily using xml2js. This VAST parser is used to keep a consistent and compliant VAST structure between building and parsing. Validation is NOT implemented yet so use at your own risk.
Example Usage
Parsing VAST
const vastXML = ; ;
Building VAST
const vastXML = ; const vastJson = "vast": "_attr": "version": "4.0" "ad": "_attr": "id": "abc123" "sequence": "0" "inLine": "adSystem": "_value": "Shibby Service" "_attr": "version": "1.0" "adTitle": "_value": "VAST 4.0 Test" "impression": "_value": "http://myTrackingURL/impression" "category": "_value": "Inline Video" "_attr": "authority": "IAB" "description": "_value": "VAST Inline" "advertiser": "_value": "IAB" "pricing": "_value": "4.00" "_attr": "model": "CPM" "currency": "USD" "survey": "_value": "https://iab.com/survey.js" "_attr": "type": "text/javascript" "extensions": "" "viewableImpression": "viewable": "_value": "https://iab.com/viewable" "notViewable": "_value": "https://iab.com/notViewable" "viewUndetermined": "_value": "https://iab.com/notDetermined" "adVerification": "" "creatives": "creative": "_attr": "adId": "abc123" "sequence": "0" "apiFramework": "iab-api" "universalAdId": "_value": "unknown" "_attr": "idValue": "unknown" "creativeExtensions": "creativeExtension": "custom": "_value": "this is custom stuff" "linear": "duration": "_value": "00:00:30" "trackingEvents": "tracking": "_value": "http://iab.com/creativeView" "_attr": "event": "creativeView" "_value": "http://iab.com/start" "_attr": "event": "start" "_value": "http://iab.com/midpoint" "_attr": "event": "midpoint" "_value": "http://iab.com/firstQuartile" "_attr": "event": "firstQuartile" "_value": "http://iab.com/thirdQuartile" "_attr": "event": "thirdQuartile" "_value": "http://iab.com/complete" "_attr": "event": "complete" "videoClicks": "clickThrough": "_value": "http://iab.com" "clickTracking": "_value": "http://iab.com/click" "mediaFiles": "mediaFile": "_value": "http://iad.com/test.mp4" "_attr": "delivery": "progressive" "type": "video/mp4" "bitrate": "600" "width": "1920" "height": "1080" "scalable": "true" "maintainAspectRatio": "true" "adParameters": "_value": "qs=test&reddit=true" "icons": "icon": "_value": "http://adchoices.com" "_attr": "adID": "123-Companion" "companionAds": "companion": "_attr": "width": "1920" "height": "1080" "assetWidth": "1920" "assetHeight": "1080" "htmlResource": "_value": "http://adserver.com/htmlresourcefile.htm" "trackingEvents": "tracking": "_value": "http://iad.com/firstCompanionCreativeView" "_attr": "event": "creativeView" "_attr": "width": "1920" "height": "80" "staticResource": "_value": "http://iad.com/companion.jpg?test1=true&test2=false" "_attr": "creativeType": "image/jpeg" "companionClickThrough": "_value": "http://www.iab.com/clickThrough" ; return vastXML;
TODO's
- Add Validation when building and parsing VAST 4.0
- Add Utility Functions setValue and setAttr for building VAST