有没有办法确定客户在网页上花费的时间

时间:2008-10-02 12:24:31

标签: apache proxy apache2 squid

假设我有一个可以增强的开源Web服务器或代理,让我们说apache或squid。

有没有办法确定每个客户在网页上花费的时间?

HTTP当然是无国籍的,所以这不是微不足道的,但也许有人知道如何处理这个问题?

5 个答案:

答案 0 :(得分:5)

使用Apache或Squid,您几乎无法检测到用户在您的网页上花费的时间。

但是,如果您的网页上还有一些额外的糖,您可以:

它是免费的并且有一个很多的功能。

但你也会邀请谷歌观看你网站的统计数据......(但也许这有助于他们决定你是否想要买你: - )

答案 1 :(得分:4)

不是没有一些javascript经常在客户端点击你的服务器,然后检查它何时停止(但当然假设用户启用了javascript)。还有各种(丑陋的)方法来检测用javascript关闭的窗口,但当然这些并不总是触发。例如。浏览器崩溃。

我有点想知道你为什么要这样做。如果一个人看了3秒的网页,被另一个标签/窗口分散注意力但让你的页面打开了2个小时怎么办?你得到的答案是2小时,你(可能)想要的答案是3秒。

答案 2 :(得分:2)

您可以计算从请求页面到请求下一页之间的时间,但是只有当用户在请求下一页时整个时间都停留在该页面上时,这才是正确的。即便如此,他仍然可能在原始页面上(例如,他在选项卡中打开了新页面),并且只有在浏览到另一页时才会起作用。

唯一可以确定的方法是使用Javascript每十秒左右从打开的页面ping服务器,只是说“我还在阅读!”

答案 3 :(得分:2)

我实际上已经看到了javascript分析软件包,他们不仅通过每隔一段时间对服务器进行一次跟踪来跟踪您在页面上的时长,而且还跟踪了屏幕上的确切内容。通过测量浏览器窗口的大小以及文档的滚动位置,他们能够确定每个元素在屏幕上的确切长度。通过跟踪鼠标的位置,可以很好地猜测他们正在看什么。我现在找不到链接,但这是短篇小说。如果你真的对人们看到的东西感兴趣,多久,你可以做到。您可以跟踪的数量没有太大限制。

另外,只是想一想,如果你不想过多地ping服务器,你可以把东西保存在内存中,只有当你有足够的数据时,或者只是在页面之前发送到服务器闭合。

答案 4 :(得分:0)

这种指标实际上在几年前非常流行,在PC功能更强大且标签式浏览器变得流行之前,它变得越来越难以准确测量。过去执行此操作的标准方法是假设人们通常一次只加载一个页面,并且只使用服务器日志数据来确定页面查看之间的时间。您的标准分析供应商(如Omniture和Urchin(现在的Google Analytics))会对此进行计算。

通常情况下,您设置跟踪Cookie以便能够随时间识别特定的人/浏览器,但在短期内您可以使用IP地址/用户代理组合。

所以,基本上你只需要处理日志数据并计算页面浏览量之间的差值,即人们在页面上的持续时间。您设置了一些规则(或者您的分析供应商在幕后执行此操作),例如丢弃/截断超过某些截止时间(例如10分钟)的时间,其中您假设此人实际上没有阅读但是在窗口/选项卡中打开页面。 / p>

这些数据是否完美?显然不是。但是你只需要足够“足够好”的数据来进行统计分析并得出一些结论。

它对于纵向分析(读者的长期习惯)和网站上不同页面之间的定性比较仍然有用。 (即两篇700字的文章之间,如果一篇文章的平均阅读时间是另一篇文章的两倍,那么更多的人实际上正在阅读第一篇文章。)当然,您的网站必须足够忙,才能拥有足够的数据点。抛弃所有“坏”异常值数据点后的统计上合理的分析。

是的,你可以使用Javascript发送keep-alives来改善数据。您可以在document.onload之后以给定的时间间隔进行轮询,或者在页面的各个部分设置鼠标悬停事件。

另一种技术是使用Javascript向点击服务器的每个<a href>添加onclick事件。您不仅知道有人点击某个链接将其从您的网站上移除,真正复杂的“热点”分析会看到这样一个事实,即如果有人在页面上点击了6个段落的链接,那么他们必须已经阅读了那么远。