网站分析度量、意义以及不为人所知的
今天继续度量这个话题,对Visitor和Visit进行更深入一点儿的挖掘。这个话题本来是不存在的,但是看到大家对这个系列第一集中关于visitor和visit的一些小疑惑,发现还是值得拿出来再说一说。仍然说它的原因,并不在于让大家死记住这两个度量本身的相关规定,而是这两个度量涉及了原理、方法和工具,这些是更有价值的知识。
为什么Visitor和Visit容易让我们疑惑?
Visitor让我们疑惑的,值得澄清的地方在于如下几点:
Visitor的含义是指访问的人数,但visitor并不可能等同于真正的访问你的网站的自然人的数量。
Visitor与visit和page view这两个度量不同的是,visitor跟时间的粒度(granularity)有关:即使相同的时间长度,时间粒度取的不同,visitor的数量也会不同。
相对而言,利用log file(日志法)对visitor的计数有先天不足,因此visitor这个概念对日志法较少使用。(关于什么是日志法,什么是标记法请看我的这个文章:服务器日志法网站分析的原理及优缺点)
对于上面三点稍作一点儿解释。第一点,visitor的含义是网站的访问人数,是具体的人。可是,并不可能真正知道到底有多少人访问了你的网站。为什么呢?假如你和你的朋友公用一台电脑,而且都用同一个浏览器访问我的博客(www.cwachina.com),这个时候用技术的方法来精确分辨出是两个访问者非常困难——总不能在你的电脑上装上一个摄像头窥视吧!因此,无论技术发展到何种程度,我认为100%准确记录访问网站的人数都是不太可能的,不仅是网站分析的工具难以做到,其他不同方法和不同工具也做不到(关于网站分析计数准确性的研究,请大家看这篇文章:网站分析——我们的数据准确吗?)。 因此,人们采用了一些变通的方法来解决识别visitor数量的问题,我后面会重点讲到。
第二点,visitor跟时间的粒度有关。所谓粒度,就是我们所说的截取的时间范围。举个例子,2010年11月14日到11月20日这一周的七天,你在每天都访问了CWA网站一次(感谢这么忠诚的读者。:) ),那么如不同的时间粒度下visitor的计数不同。Weekly visitor是1,而daily visitor则是7。值得注意的是,对于所有的网站分析工具,weekly、monthly或者quarterly、yearly这样的时间粒度都是指日历上的自然周、月或者季度和年。因此,虽然11月24日到11月30日也是七天,而且你分别在这期间的11月25日和11月29日访问了我的CWA网站,weekly visitor仍然会被记录为2。
第三点,日志法对于记录visitor的数量是采用分辨IP的方法的。因此,在日志法中,我们常常提到的一个概念是独立IP的数量,并借此指代实际的访问者数量。但是,今天的IP地址已经不可能再跟计算机一一对应了,更不用说跟使用计算机的人一一对应。因此,用这个方法统计visitor的数量存在很大误差,逐渐被人们抛弃掉。
相对而言,visit的麻烦其实更多一点:
1、为什么要存在visit?
2、Visit和session是什么关系?
3、关闭浏览器窗口对visit的计数有没有影响?
4、关闭浏览器标签(Tab)对visit的计数有没有影响?
5、从不同来源访问网站,一定会使这个网站visit的计数增加吗?
6、Visit和unique page view是什么关系?
这些问题普遍反映了大家对visit和(标记法)网站分析的疑惑,但实际上,如果我们深入领会了visit的本质,解答这些问题其实很容易。
首先,为什么要存在visit?我们说过,网站分析不是分析孤立的数据(这是跟过去网站简单的流量统计有本质的区别的地方),而是分析网站访问者的行为。page view本身是一个个的孤立数据,不能解答网站访问过程中,网页之间的相互关系。例如,我说首页的page view是19,807,网站分析工具频道首页的page view是2,303次,这不能说明首页就一定更受欢迎。而visit,是指访问者来到网站的一系列打开页面的访问过程,是行为,是联系page view和visitor的桥梁。Visit这个度量的重要性就在于,它几乎是其他所有网站分析度量的基石,或者直接影响到了其他所有的网站分析度量。
其次,visit和session是什么关系呢?session和visit肯定不完全是一回事,但是你可以认为这二者是一样的名词。因为这涉及到一些历史。session是计算机原理课中的一个名词,即一个“会话”,如果你学过网络的七层结构模型,你就一定还记得其中有一个session layer——会话层,就是指它。在日志法网站分析中,人们用session来表示一个连结的建立和解除,以用之描述visit。不过,由于标记法网站分析的出现,visit直接采用了别的更好的方法表述(马上也会重点讲到),这样就使session这个名词实际上弃用了,而直接使用visit来表示一次访问行为。当然,session作为技术上的一个名词,是不会被丢掉的,但在网站分析上,人们采用了更符合自然语言的表达。
剩下还有几个问题,关于visit的计数,以及visit和unique page view的关系,我会在下面首先跟朋友们解答visit和visitor的计数原理,然后在这个系列的下一篇中说明visit和unique page view的区别和联系,因为这一点将要引发出来的课题非常重要。为了弄清楚网站分析工具对于visit和visitor的计数,我们先要搞清楚怎样查看网站分析是否记录到了网站访问者的行为数据。
怎样查看网站分析工具是否捕捉到了数据
回答这个问题,我们不能靠猜测了,我们要用几种HTTP Sniffer(HTTP数据包嗅探器)工具(其实一般一种就够了,但不妨我们多了解几种)来探测,如同用雷达探测天上的飞机。首先,我推荐一个我最喜欢的工具:
HttpWatch
HttpWatch(http://www.httpwatch.com/)肯定不是最强大的,但我觉得是最容易上手的,能够跟IE和火狐很好的整合,并且很稳定。
其他工具
然后其他工具大家也可以试试。Charles(www.charlesproxy.com/),是最强大的工具。firebug,主要用来查看cookie,这是个免费工具。另外还有WASP(http://webanalyticssolutionprofiler.com/),专门用来查验各种网站分析工具的软件。还有httpfox,也是免费的,从firefox的插件库中可以找到,功能也基本上齐全了。
如果不想付费,建议装上httpfox(或者基本版的HttpWatch),firebug和WASP(试用版)就足够了。
怎样查看网站分析工具是否捕捉到了数据
下面我以HTTPWatch为例,介绍如何查看网站分析工具是否捕获到了数据。对这个部分熟知的朋友直接跳过。
1. 在Firefox浏览器空白页中,打开(快键Shift+F2)打开HTTPWatch。
2. 启动HTTPWatch的记录模式,即点击下图中的红色框中的红button。
3. 在地址栏中输入你要检查的网页URL,打开网页。这个步骤可不需要拘泥于在地址栏中输入URL,你一样可以通过点击外部链接来到这个页面,HTTPWatch仍然会忠实的记录页面打开过程中的HTTP数据包。这时,你可以看到一条条的浏览器传输的数据记录产生了。
请千万不要把这些记录当做是网站服务器的Log记录,这是两回事。
4. 上面的数据很多,怎么能看到网站分析工具捕获的数据呢?利用过滤功能就好了。利用快捷键Ctrl+F9,调出过滤器,然后勾选Enabling Filtering,再勾选URL Contains,其下输入“-analytics”,再点OK之后就过滤出页面中GATC(Google Analytics Tracking Codes)发送的信息,如图所示的两条。如果你的页面上加有多个GA profile ID,那么这个数据也可能是多条。如果过滤之后没有数据了,说明网页没有正常运行GATC,或者没有加入GATC,那当然就是不能完成正常监测啦。
对于Omniture SiteCatalyst,在过滤器中输入“2o7”,就能把只是Omniture Tracking Code发出的监测数据过滤出来。
现在,你有了这个好武器,它的用途可不只是让你看看监测代码正常工作了没有。我们下面要用它来检查网站分析工具是如何计数visit和visitor的。
Visitor和visit如何计数?
你可能会问,上面过滤之后的这两条信息是什么东西?想要搞清楚这个问题,我们得打开另外一个话题,即网站分析工具获取数据的原理。如果大家感兴趣,我会另开一篇帖子,如果没兴趣就算了,反正也不太影响大家直接进行网站分析的实践,在我未来计划(现在还只是计划,实在是忙的对不起大家)的书中会再专门提及。下面我们还是聚焦在网站分析工具如何计数这个问题上。
在标记法的网站分析中,除了page view之外,visitor和visit以及一切我们分析报告中显现的度量和计数其实都是通过cookie实现的,只有在没有cookie的情况下,才通过其他的方法实现,因此,如果想要搞清楚visitor或者visit到底是如何被网站分析工具记录的,最好的办法是直接看看cookie是怎么记录的。
不同网站分析工具cookie记录的方法有所不同,但核心思想是一致的。因此,这里先说说Google Analytics的cookie设置,未来有机会再聊Omniture SiteCatalyst的,因为后者的架构相对更加复杂。
Google Analytics的cookie设置
利用HttpWatch,我们点入第二条信息,然后选择“Query String”标签,在下方的检视窗口中出现了更多的信息。
先不管其他信息,我们直接看utmcc,这条记录是GA跟visit和visitor相关的cookie信息。如下:
utmcc __utma=148702437.1696395432.1289879776.1290424992.1290508917.6;+__utmz=148702437.
1289882757.1.6.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=%E7%BD%91%E7%AB%99%E5%88%86%E6%9E%90;
现在,我们一条条的看这些数据到底是什么意思。
- utma
记录visitor的信息,utma后面的信息,包括域的hash值,visitor的ID、访问时间相关信息和访问次数。utma对应的信息,除非人为删除,否则它在两年后才失效。为了免去我自己作图的痛苦,我直接利用了Google转化大学中的图,因此下图中的数字信息跟上面的不一样,但相应信息的含义是完全一样的。
本图的来源为http://services.google.com/analytics/breeze/en/ga_cookies/index.html
版权归Google所有
第一个蓝色的字段是域名的哈希串,对于一个确定的域名来说,这个值是不会改变的。
第二个字段(绿色字段)是识别visitor的ID,就是这个绿色字段,标识了不同的访问者,不同的值就意味着不同的访问者。这就是GA能够辨别不同访问者的原因。这个值如果不发生人为地删除cookie的情况的话,两年后才会被替换为一个新的值。
第三个字段(紫色字段)是这个visitor第一次访问网站的时间,如果不删除cookie,两年内这个值也不会变。这个时间是UNIX时间,0000000001代表着1970年1月1日0点0分1秒,之后每过一秒,数字加一。实际上UNIX时间是有点小错误的,但是已经不会再对使用产生影响。这里同学们需要注意了。这里以及cookie中其他的UNIX时间记录,构成了GA的整个时间度量系统。时间是这么创造的!
第四个字段(浅蓝色字段)是这个visitor前一个visit开始的时间。
第五个字段(浅紫色字段)是这个visitor这一次visit开始的时间。
第六个字段(最后那个独立数字)太重要了,是记录这个visitor访问网站的次数。
现在,再回头看看前面的我的网站的utma,大家会发现这个visitor(就是我)已经有6次访问了。
通过第六个字段值的增加与否,就能判断GA是否记录某一次访问行为为一次新的visit。
- utmz
utmz的功能是用来记录网站访问者的来源(即Traffic Source或者Campaign),如下:
这里各个字段的含义除了Campaign Number之外就不多解释了,大家肯定能看懂。Campaign Number是指这个访问者通过不同来源(除了直接来源)访问网站的来源数。如果通过了一个新的来源访问了网站,即使是在一个visit之内,campaign number也会加一,但visit并不会增加。
Campaign number的作用我并不是很明确,很希望知道的朋友告诉我。我知道的是,如果在一个visit之内,访问者通过多个来源访问了网站,那么GA默认把最后的那个来源归为这个visit的主人。如果你用utm_nooverride=1配置,那么GA则会把第一个来源记录为这个visit的主人。
- utmb和utmc
utmb和utmc是另外两个重要的cookie信息,在免费版本的HttpWatch中看不到,不过没关系,大家用firebug就能看到。
简单讲,utmb和utmc都是记录visit的cookie。两个cookie的区别是,utmb在30分钟后过期,如果utmb过期刷新,那么visit也被刷新。utmc是浏览器关闭则随浏览器一起关闭(失效),再打开浏览器访问那个网站,visit也被刷新。这就是为什么GA的visit在不活动30分钟后结束,以及关闭浏览器结束的原因。
好了,讲到这里,可能很多朋友会有恍然大悟的感觉。我希望你们能有这样的感觉,否则我真的应该隐退了。如果您有这样的感觉,一定在留言框中写点儿什么——心得、意见、问题,或者其他什么都可以。
作者:宋星
文章来源:http://www.chinawebanalytics.cn/metrics-and-its-back-story-2/
- 最新评论