video-ad-sdk
Version:
VAST/VPAID SDK that allows video ads to be played on top of any player
33 lines (32 loc) • 1.39 kB
JavaScript
import { get, getAll, getText, getAttributes } from '../xml';
import { getLinearCreative } from './helpers/getLinearCreative';
/**
* Gets the Non Linear tracking events from the Vast Ad
*
* @param ad VAST ad object.
* @param eventName If provided it will filter-out the array events against it.
* @returns Array of Tracking event definitions
*/
export const getNonLinearTrackingEvents = (ad, eventName) => {
const creativeElement = ad && getLinearCreative(ad);
const nonLinearAdsElement = creativeElement && get(creativeElement, 'NonLinearAds');
const trackingEventsElement = nonLinearAdsElement && get(nonLinearAdsElement, 'TrackingEvents');
const trackingEventElements = trackingEventsElement && getAll(trackingEventsElement, 'Tracking');
if (trackingEventElements && trackingEventElements.length > 0) {
const trackingEvents = trackingEventElements.map((trackingEventElement) => {
const { event } = getAttributes(trackingEventElement);
const uri = getText(trackingEventElement);
return {
event,
uri
};
});
if (!eventName) {
return trackingEvents;
}
const filteredEvents = trackingEvents.filter(({ event }) => event === eventName);
if (filteredEvents.length > 0) {
return filteredEvents;
}
}
};