<script> //Anonymous function (function(){ var videos = document.querySelectorAll('video'); for(var i=0;i<videos.length;i++){ var localVideo = videos[i]; var videoName = ""; var videoLength = 0; var milestoneLengths = []; var milestonesAchieved = []; //Play Event localVideo.onplay = function(){ if(localVideo.currentTime==0){ //Calculate video name is the video file name videoName = localVideo.currentSrc.split('/'); videoName = videoName[videoName.length-1]; videoName = videoName.replace(/\..*/,''); //Calculate the total length of video videoLength = localVideo.duration; //25%, 50% and 75% are the milestones considered milestoneLengths = [parseInt(0.25*videoLength), parseInt(0.5*videoLength), parseInt(0.75*videoLength)]; dataLayer.push({ 'event':"html5videoEvent", 'html5VideoAction':"play", 'html5VideoLabel': videoName }); } }; //Pause Event localVideo.onpause = function(){ dataLayer.push({ 'event':"html5videoEvent", 'html5VideoAction':"pause", 'html5VideoLabel': videoName }); }; //Milestones Events localVideo.ontimeupdate = function(){ if(milestonesAchieved.indexOf('25')==-1 && localVideo.currentTime>milestoneLengths[0]){ milestonesAchieved.push('25'); dataLayer.push({ 'event':"html5videoEvent", 'html5VideoAction':"milestone - 25%", 'html5VideoLabel': videoName }); } if(milestonesAchieved.indexOf('50')==-1 && localVideo.currentTime>milestoneLengths[1]){ milestonesAchieved.push('50'); dataLayer.push({ 'event':"html5videoEvent", 'html5VideoAction':"milestone - 50%", 'html5VideoLabel': videoName }); } if(milestonesAchieved.indexOf('75')==-1 && localVideo.currentTime>milestoneLengths[2]){ milestonesAchieved.push('75'); dataLayer.push({ 'event':"html5videoEvent", 'html5VideoAction':"milestone - 75%", 'html5VideoLabel': videoName }); } }; //Video Complete localVideo.onended = function(){ dataLayer.push({ 'event':"html5videoEvent", 'html5VideoAction':"complete", 'html5VideoLabel': videoName }); }; } })(); </script>