8

谷歌分析跟踪“现场时间”。你将如何有效地做到这一点?它是否真正跟踪用户关闭浏览器或导航离开的时间?

想法?

4

5 回答 5

4

我当然不能 100% 确定,但我猜他们使用 javascript 以及 onload 和 onunload 事件和/或 setTimer 通过 AJAX 与 Web 服务进行通信。通过这种方式,他们可以确定用户何时访问或离开您网站上的页面。一旦浏览器停止“ping”网络服务,就假定他们离开了您的网站。

我敢肯定,不管你怎么做,都会有一些误差,但你可以通过这种方式得到一个相当不错的估计。

于 2009-02-26T19:03:26.593 回答
3

只需设置这样的功能:

function track()
{
   setTimeout(track ,1000);
   now = new Date;
   now_string = now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds();
   (... whatever you want to do with this data)
}

在 javascript 中,如果小时/分钟/秒数少于 2 个字符,您会得到这样的字符串 HH:MM:SS 或 H:M:S

所以只需围绕它做一些数学运算

只需将它运行在窗口中的某个位置,并将其与会话相关联(保证这是在所有页面中),您就可以准确地了解某个用户在您的页面中的时间。

编辑:必须删除我在那里的一个功能,它不是来自 javascript sry:p

于 2009-02-26T19:04:45.560 回答
3

onBeforeUnload当用户离开页面时,会调用一个 javascript 事件。这可能包括关闭窗口/选项卡或导航到不同的页面(即使它在同一个站点上)。通过在页面加载后立即获取时间并使用 JavaScript 以加载和离开之间的时间差发送同步请求onBeforeUnload,您可以有效地跟踪在页面上花费的时间。我认为这就是谷歌所做的。

如果您想要工作代码示例和更多信息,请查看内容。

于 2009-11-24T17:48:54.153 回答
2

我认为它不会在您关闭浏览器或导航离开时进行跟踪,即使这样做,这在 100% 的情况下也不起作用。

我的猜测是,他们估计了退出页面的停留时间,可能是基于前几页或所有访问者该页面的平均值。如果您在几分钟内获得了三个页面点击量,那么您对前两个页面的查看时间是准确的,但您永远不知道第三个页面被查看了多长时间。也许您立即关闭页面,或者将其打开并稍后阅读。

这是统计数据,所以从长远来看,它通常是相当准确的,但它从来都不是真的。;)

于 2009-02-26T19:03:36.343 回答
1

我怀疑他们可能会运行一个计时器,该计时器使用 cookie 在每个循环上重复并执行某种回调来识别用户和会话

于 2009-02-26T19:02:28.483 回答