UNPKG

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
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; } } };