Closed edrpls closed 4 years ago
After reading the VAST spec, I found that the required work to fully support VAST would fall into two subtasks:
Support playback of old VAST versions: the current version specifies that interactive files (aka javascript) should be placed in their own section within the Ad (InteractiveCreativeFile), but older versions included interactive files along with media files (MediaFiles), this breaks our player, as currently there are JS files mixed up with other media files.
Event tracking: The VAST tag may include many wrappers, each with their own tracking URIs for errors and/or other events (play, mute, clickthrough, progress, etc), from what I read in the spec, it should be the player’s duty to emit any events required in the VAST, replacing macros and such. The good news is that if we do need to implement this in the player, all events are already supported, we just need to hook up VAST-Tracker and it will take care of sending the necessary tracking requests. This one is not really that difficult, but it will require hooking all the necessary events, this could be accomplished either by attaching all listeners on its own VAST listeners method or by emitting the VAST tracking on every method that requires it. I would prefer to try and keep it all in one place.
delegate VAST support to the VAST Tracker included with vast-client-js