如何衡量用户的访问时间

时间:2009-08-24 16:24:49

标签: javascript web-analytics visitor-statistic

我喜欢衡量用户在我的webapp的特定页面上花费的时间。首先我考虑在浏览器中捕获onunload / onbeforeunload事件,并通过XMLHttpRequest通知服务器,用户现在就离开:

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

其中xxx是呈现页面时的初始tiemstamp。

不幸的是,这个解决方案并不适用于所有浏览器(例如Opera)。所以我的第二个想法是不断ping服务器。要计算访问时间,有人必须花费最后一次ping时间并从初始时间戳中减去它。但我不认为这是一个很好的解决方案,尤其是当用户打开3或5个标签并且每个标签每500毫秒触发事件时...

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

4 个答案:

答案 0 :(得分:3)

Google Analytics等工具使用的方法是,访问时间衡量的是用户点击第一页到单次“访问”中的最后一页时间。单次访问被定义为一个用户(cookie)的一系列页面查看,其中每次访问都足够接近上一次访问。但我不知道这个限制是什么。

根据我的经验,这些带卸载事件等的技巧接近于侵入性,用户不欣赏它们。因此,它们与更加被动的方法相比几乎没有任何价值,比如构建一个来自cookie和页面查看数据的访问。

答案 1 :(得分:1)

我建议几乎所有的网络分析包都取决于您的一些业务目标。

  1. Google Analytics :(免费)
  2. Yahoo Analytics :(免费)(测试版)
  3. Woopra :(免费)(测试版)
  4. Omniture :(昂贵)(功能最丰富,学习曲线最难)
  5. [还有其他人,有些更适合广告网络报告...]

答案 2 :(得分:0)

为什么不查看Google Analytics,标准跟踪会为您捕获这些统计信息。

http://www.google.com/analytics/

答案 3 :(得分:0)

这取决于您允许的错误数量。如果错误大约为几十分钟,则只需要访问日志,并设置最后一页的会话超时间隔。 如果只允许几百毫秒,则需要ping。 如果错误介于两者之间,您仍然需要ping,尽管速率较低;或接受关闭浏览器的用户不会触发onunload事件的事实。