video-ad-sdk
Version:
VAST/VPAID SDK that allows video ads to be played on top of any player
30 lines (29 loc) • 1.2 kB
JavaScript
import { getNonLinearTrackingEvents } from '../vastSelectors';
import { createVastEventTracker } from './helpers/createVastEventTracker';
import { pixelTracker } from './helpers/pixelTracker';
import { acceptInvitation, adCollapse, close } from './nonLinearEvents';
const trackingEventSelector = (event) => (ad) => getNonLinearTrackingEvents(ad, event);
const linearTrackers = {
[acceptInvitation]: createVastEventTracker(trackingEventSelector(acceptInvitation)),
[adCollapse]: createVastEventTracker(trackingEventSelector(adCollapse)),
[close]: createVastEventTracker(trackingEventSelector(close))
};
/**
* Tracks the passed non linear event.
*
* @param event name of the linear event we need to track. @see LinearEvents
* @param vastChain the ad VAST Chain.
* @param options Options Map.
*/
export const trackNonLinearEvent = (event, vastChain, { data, tracker = pixelTracker, logger = console }) => {
const { [event]: linearTracker } = linearTrackers;
if (linearTracker) {
linearTracker(vastChain, {
data: Object.assign({}, data),
tracker
});
}
else {
logger.error(`Event '${event}' cannot be tracked`);
}
};