我喜欢衡量用户在我的webapp的特定页面上花费的时间。首先我考虑在浏览器中捕获onunload / onbeforeunload事件,并通过XMLHttpRequest通知服务器,用户现在就离开:
<body onunload="userLeaves('/url/to/current/page',xxx);" ...> ... </body>
其中xxx是呈现页面时的初始tiemstamp。
不幸的是,这个解决方案并不适用于所有浏览器(例如Opera)。所以我的第二个想法是不断ping服务器。要计算访问时间,有人必须花费最后一次ping时间并从初始时间戳中减去它。但我不认为这是一个很好的解决方案,尤其是当用户打开3或5个标签并且每个标签每500毫秒触发事件时...
您如何衡量访问时间?有人有更好的想法来获得在一个特定页面上花费的时间吗?
答案 0 :(得分:3)
Google Analytics等工具使用的方法是,访问时间衡量的是用户点击第一页到单次“访问”中的最后一页时间。单次访问被定义为一个用户(cookie)的一系列页面查看,其中每次访问都足够接近上一次访问。但我不知道这个限制是什么。
根据我的经验,这些带卸载事件等的技巧接近于侵入性,用户不欣赏它们。因此,它们与更加被动的方法相比几乎没有任何价值,比如构建一个来自cookie和页面查看数据的访问。
答案 1 :(得分:1)
我建议几乎所有的网络分析包都取决于您的一些业务目标。
[还有其他人,有些更适合广告网络报告...]
答案 2 :(得分:0)
为什么不查看Google Analytics,标准跟踪会为您捕获这些统计信息。
答案 3 :(得分:0)
这取决于您允许的错误数量。如果错误大约为几十分钟,则只需要访问日志,并设置最后一页的会话超时间隔。 如果只允许几百毫秒,则需要ping。 如果错误介于两者之间,您仍然需要ping,尽管速率较低;或接受关闭浏览器的用户不会触发onunload事件的事实。