这是单页面应用程序的上下文,但我相信在其他情况下也会发生这种情况。 当GA跟踪器更新页面更改时,我可以在实时报告中看到用户仍然活着。但是,当用户暂时不与页面交互时(例如播放视频时),它会与GA视图断开连接。
我想更好地理解GA在这种情况下的工作方式,也许我需要发送事件来保持用户的活力。
答案 0 :(得分:14)
Google Analytics不会检测有人离开页面的时间。没有可靠的方法可以做到这一点(当有人关闭窗口时,卸载处理程序不会触发)。相反,谷歌等待会议结束 - 30分钟后没有互动(可以在属性设置中的Universal Analytics中进行调整)会话结束,并且vsitor已经离开了报告(他可能早就离开了很多) ,但是在GA中没有跟踪最后一次交互之后的时间。
另外,一个会话最多可以有500个交互,因此无法无限期地保持活动。
答案 1 :(得分:1)
Eike Pierstorff已经为我的问题提供了一个很好的答案,只是想在谷歌分析文档中添加一些细节,以及一个补充解决方案来微调会话cookie超时。
除了在以下帐户设置上设置会话Cookie超时: 管理员>物业>跟踪信息>会话设置
也可以在运行时设置:
_gaq.push(['_setSessionCookieTimeout', 1800000]);
您可以在google documentation找到更多详细信息。
_setSessionCookieTimeout(cookieTimeoutMillis)
以毫秒为单位设置新会话cookie超时。默认情况下,会话超时设置为 30分钟。自访问以来,会话超时用于计算访问次数 浏览器不活动30分钟后或浏览器退出后结束。如果 您想要为您的特定更改“会话”的定义 需要,你可以传递毫秒数来定义一个新的 值。这将影响每个部分中的访问报告 计算访问次数,以及访问次数 计算其他价值。例如,访问次数将是 如果缩短会话超时会增加,如果你缩短会减少 增加会话超时。您可以将到期超时更改为 0表示浏览器应该删除此cookie 闭合。
答案 2 :(得分:0)
beforeunload
事件处理程序将在页面关闭之前运行。
window.addEventListener('beforeunload', function(e) {
//run some code
//OPTIONAL: if you use the following, a navigate confirmation box will appear
return "Are you sure you want to leave";
});
或者,您可以使用pagehide
事件,该事件也会在卸载页面时触发。这会在beforeunload
事件发生后触发一段时间,因此如果您想执行更繁重的计算,我建议您改为使用beforeunload
。
如果您希望在将网页停用非常长时间后暂停会话时间,则可以使用每次用户与网页互动时重置的setTimeout
:
window.idleTimer = 0;
function resetIdleTimer() {
clearTimeout(window.idleTimer); //reset the previous timer
window.idleTimer = setTimeout(function() { //set another one right away
//kill the connection
}, 30*60*1000); //30 minutes = 3600000ms
}
resetIdletimer(); //initialise the timer
window.addEventListener('focus', resetIdleTimer);
window.addEventListener('mousemove', resetIdleTimer);