video-ad-sdk
Version:
VAST/VPAID SDK that allows video ads to be played on top of any player
36 lines (35 loc) • 1.45 kB
JavaScript
import { get, getAll, getText, getAttributes } from '../xml';
import { parseOffset } from './helpers/parseOffset';
import { getLinearCreative } from './helpers/getLinearCreative';
const getTrackingEvent = (trackingEventElement) => {
const { event, offset } = getAttributes(trackingEventElement);
const uri = getText(trackingEventElement);
return {
event,
offset: offset && parseOffset(offset),
uri
};
};
/**
* Gets the 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 getLinearTrackingEvents = (ad, eventName) => {
const creativeElement = ad && getLinearCreative(ad);
const linearElement = creativeElement && get(creativeElement, 'Linear');
const trackingEventsElement = linearElement && get(linearElement, 'TrackingEvents');
const trackingEventElements = trackingEventsElement && getAll(trackingEventsElement, 'Tracking');
if (trackingEventElements && trackingEventElements.length > 0) {
const trackingEvents = trackingEventElements.map(getTrackingEvent);
if (!eventName) {
return trackingEvents;
}
const filteredEvents = trackingEvents.filter(({ event }) => event === eventName);
if (filteredEvents.length > 0) {
return filteredEvents;
}
}
};