JSFiddle - React, Tailwind, and code Playground
HTML
<div class="container">
<video muted id="video" src="http://s3-eu-west-1.amazonaws.com/advertisingcdn/overslide-creatives/dads-army/Dads_Army.mp4" controls>
</video>
</div>
JavaScript
var myPlayer = document.querySelector('#video');
var percentageCompleted = 0;
var totalLength = 0;
var videoStarted, videoTwentyFive, videoFifty, videoSeventyFive, videoComplete = false;
myPlayer.on('timeupdate', getPercentage);
function getPercentage(){
percentageCompleted = (myPlayer.currentTime()/totalLength)*100;
//console.log('percentage', (percentageCompleted+'%'));
// is 0
if((!videoStarted) && (percentageCompleted>0))
{
console.log('VIDEO_STARTED');
videoStarted=true;
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'playStart'
});
}
// is 25
if((!videoTwentyFive) && (percentageCompleted>25))
{
console.log('VIDEO_25');
videoTwentyFive=true;
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'playTwentyFive'
});
}
// is 50
if((!videoFifty) && (percentageCompleted>50))
{
console.log('VIDEO_50');
videoFifty=true;
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'playFifty'
});
}
// is 75
if((!videoSeventyFive) && (percentageCompleted>75))
{
console.log('VIDEO_75');
videoSeventyFive=true;
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'playSeventyFive'
});
}
// is 100
if((!videoComplete) && (percentageCompleted>99))
{
console.log('VIDEO_100');
videoComplete=true;
window.dataLayer = window.dataLayer || [];
...