如何测量用户的访问时间?

10

我想要测量用户在我的Web应用程序的特定页面上花费的时间。首先,我考虑在浏览器中捕获onunload / onbeforeunload事件,并通过XMLHttpRequest通知服务器用户现在正在离开,如下所示:

<body onunload="userLeaves('/url/to/current/page',xxx);" ...> ... </body>

其中xxx是页面渲染初始时间戳。

不幸的是,这个解决方案并不能在所有浏览器上都起作用(例如Opera)。所以我的第二个想法是不断地对服务器进行ping。为了计算访问时间,有人必须取最后一次ping的时间,并从初始时间戳中减去它。但我认为这也不是一个好的解决办法,特别是当用户打开3或5个选项卡时,每个选项卡都会每500毫秒触发事件......

你会如何测量访问时间?有人有更好的想法来获取在一个特定页面上花费的时间吗?


你最终是怎么做的?我也在考虑向服务器发送ping请求。 - brauliobo
4个回答

3
这些工具(如Google Analytics)使用的方法是将访问时间定义为用户从第一个页面进入到最后一个页面之间的时间,其中单个“访问”被定义为一个用户(cookie)的一系列页面浏览,每次访问在时间上与前一次足够接近。但我不知道这个限制是多少。
根据我的经验,这些卸载事件等技巧有些过分了,用户并不欣赏它们。因此,与通过cookie和页面浏览数据构建访问相比,它们几乎没有任何价值。

1

根据您的业务目标,我建议使用几乎任何网络分析软件包。

  1. Google Analytics:(免费)
  2. Yahoo Analytics:(免费)(测试版)
  3. Woopra:(免费)(测试版)
  4. Omniture:(昂贵)(功能最丰富,学习曲线陡峭)

[还有其他一些更适合广告网络报告的软件...]


0

0

这取决于您允许多少误差。如果误差在几十分钟的范围内,您只需要一个访问日志,并为最后一页设置会话超时间隔。 如果您只允许数百毫秒的误差,您将需要进行ping测试。 如果误差在两者之间,您仍然需要进行ping测试,但速率较低;或者接受这样一个事实,即关闭浏览器的用户不会触发onunload事件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接