有哪些方法可以跟踪用户在网页上花费的时间?

时间:2011-01-17 04:42:00

标签: javascript html web webserver

有哪些方法可以跟踪用户在网页上花费的时间?

2 个答案:

答案 0 :(得分:1)

Google Analytics(分析)在http://www.google.com/analytics/提供了一种非常简单且免费的方式。您也可以在Google上搜索此内容:http://www.google.com/search?track+user+time+on+webpage。使用PHP,您可以执行此操作以及许多其他语言。

答案 1 :(得分:0)

我已将一些工作放入一个小型JavaScript库中,该库会计算用户在网页上的时长。它具有更准确(但并不完美)跟踪用户实际与页面交互的时间的额外好处。它忽略了用户切换到不同标签,闲置,最小化浏览器等的时间。建议的Google Analytics方法有缺点(据我所知),它只检查您的域处理新请求的时间。它将之前的请求时间与新的请求时间进行比较,并调用“您在网页上花费的时间”#39;。它实际上并不知道是否有人正在查看您的页面,最小化浏览器,将标签切换到自上次加载页面以来的3个不同的网页等。

供参考 - 没有解决方案是完美的。但希望这个也能提供价值。

编辑:我已更新示例以包含当前的API使用情况。

https://timemejs.com

其用法示例:

包含在您的信息页中:

<script src="https://timemejs.com/timeme.min.js"></script>
<script type="text/javascript">
TimeMe.initialize({
    currentPageName: "home-page", // page name
    idleTimeoutInSeconds: 15 // time before user considered idle
});
</script>

如果您想自己向后端报告时间:

xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST","ENTER_URL_HERE",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var timeSpentOnPage = TimeMe.getTimeOnCurrentPageInSeconds();
xmlhttp.send(timeSpentOnPage);

TimeMe.js还支持通过websockets发送计时数据,因此您不必尝试强制完整的http请求进入document.onbeforeunload事件。