谷歌分析如何检测用户离开页面?

时间:2014-12-19 21:06:18

标签: javascript html html5 google-analytics

这是单页面应用程序的上下文,但我相信在其他情况下也会发生这种情况。 当GA跟踪器更新页面更改时,我可以在实时报告中看到用户仍然活着。但是,当用户暂时不与页面交互时(例如播放视频时),它会与GA视图断开连接。

我想更好地理解GA在这种情况下的工作方式,也许我需要发送事件来保持用户的活力。

3 个答案:

答案 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);