Created
February 5, 2019 10:24
-
-
Save ogii/e35ee36eb641de92afd8ac2b030dfe1d to your computer and use it in GitHub Desktop.
Track time spent on page and fire VWO goals
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
setInterval(function(){ | |
if(parseInt(timeSpentOnSite/1000) >= 5){ | |
window._vis_opt_queue = window._vis_opt_queue || []; | |
window._vis_opt_queue.push(function() {_vis_opt_goal_conversion(212);}); | |
} | |
if(parseInt(timeSpentOnSite/1000) >= 10){ | |
window._vis_opt_queue = window._vis_opt_queue || []; | |
window._vis_opt_queue.push(function() {_vis_opt_goal_conversion(213);}); | |
} | |
if(parseInt(timeSpentOnSite/1000) >= 20){ | |
window._vis_opt_queue = window._vis_opt_queue || []; | |
window._vis_opt_queue.push(function() {_vis_opt_goal_conversion(214);}); | |
} | |
if(parseInt(timeSpentOnSite/1000) >= 30){ | |
window._vis_opt_queue = window._vis_opt_queue || []; | |
window._vis_opt_queue.push(function() {_vis_opt_goal_conversion(215);}); | |
} | |
if(parseInt(timeSpentOnSite/1000) >= 60){ | |
window._vis_opt_queue = window._vis_opt_queue || []; | |
window._vis_opt_queue.push(function() {_vis_opt_goal_conversion(216);}); | |
} | |
if(parseInt(timeSpentOnSite/1000) >= 180){ | |
window._vis_opt_queue = window._vis_opt_queue || []; | |
window._vis_opt_queue.push(function() {_vis_opt_goal_conversion(217);}); | |
} | |
},1000); | |
var timer; | |
var timerStart; | |
var timeSpentOnSite = getTimeSpentOnSite(); | |
function getTimeSpentOnSite(){ | |
timeSpentOnSite = parseInt(localStorage.getItem('timeSpentOnSite')); | |
timeSpentOnSite = isNaN(timeSpentOnSite) ? 0 : timeSpentOnSite; | |
return timeSpentOnSite; | |
} | |
function startCounting(){ | |
timerStart = Date.now(); | |
timer = setInterval(function(){ | |
timeSpentOnSite = getTimeSpentOnSite()+(Date.now()-timerStart); | |
localStorage.setItem('timeSpentOnSite',timeSpentOnSite); | |
timerStart = parseInt(Date.now()); | |
// Convert to seconds | |
var timeCount = parseInt(timeSpentOnSite/1000); | |
//console.log(timeCount); | |
return timeCount; | |
},1000); | |
} | |
startCounting(); | |
/* ---------- Stop the timer when the window/tab is inactive ---------- */ | |
var stopCountingWhenWindowIsInactive = true; | |
if( stopCountingWhenWindowIsInactive ){ | |
if( typeof document.hidden !== "undefined" ){ | |
var hidden = "hidden", | |
visibilityChange = "visibilitychange", | |
visibilityState = "visibilityState"; | |
}else if ( typeof document.msHidden !== "undefined" ){ | |
var hidden = "msHidden", | |
visibilityChange = "msvisibilitychange", | |
visibilityState = "msVisibilityState"; | |
} | |
var documentIsHidden = document[hidden]; | |
document.addEventListener(visibilityChange, function() { | |
if(documentIsHidden != document[hidden]) { | |
if( document[hidden] ){ | |
// Window is inactive | |
clearInterval(timer); | |
}else{ | |
// Window is active | |
startCounting(); | |
} | |
documentIsHidden = document[hidden]; | |
} | |
}); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment