感谢大家在上篇文章中的踊跃参与!集体智慧太强大了!我准备整理大家的发言,也加上我的发言,汇集成一个单独的文章。
近期又在出差,前几天跟同事学习了一些关于Adobe Omniture Discover的特点,一时激动,在微薄上发了一个帖子,说这是个超级工具,结果受到了大家的普遍兴趣。也许有些言重,但很久没有这么激动的感觉了,若有言语不妥,请朋友们海涵。
今天继续度量这个话题,对Visitor和Visit进行更深入一点儿的挖掘。这个话题本来是不存在的,但是看到大家对这个系列第一集中关于visitor和visit的一些小疑惑,发现还是值得拿出来再说一说。仍然说它的原因,并不在于让大家死记住这两个度量本身的相关规定,而是这两个度量涉及了原理、方法和工具,这些是更有价值的知识。
为什么Visitor和Visit容易让我们疑惑?
- Visitor的含义是指访问的人数,但visitor并不可能等同于真正的访问你的网站的自然人的数量。
- Visitor与visit和page view这两个度量不同的是,visitor跟时间的粒度(granularity)有关:即使相同的时间长度,时间粒度取的不同,visitor的数量也会不同。
- 相对而言,利用log file(日志法)对visitor的计数有先天不足,因此visitor这个概念对日志法较少使用。(关于什么是日志法,什么是标记法请看我的这个文章:服务器日志法网站分析的原理及优缺点)
对于上面三点稍作一点儿解释。第一点,visitor的含义是网站的访问人数,是具体的人。可是,并不可能真正知道到底有多少人访问了你的网站。为什么呢?假如你和你的朋友公用一台电脑,而且都用同一个浏览器访问我的博客(www.chinawebanalytics.cn),这个时候用技术的方法来精确分辨出是两个访问者非常困难——总不能在你的电脑上装上一个摄像头窥视吧!因此,无论技术发展到何种程度,我认为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的麻烦其实更多一点:
- 为什么要存在visit?
- Visit和session是什么关系?
- 关闭浏览器窗口对visit的计数有没有影响?
- 关闭浏览器标签(Tab)对visit的计数有没有影响?
- 从不同来源访问网站,一定会使这个网站visit的计数增加吗?
- 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(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如何计数?
你可能会问,上面过滤之后的这两条信息是什么东西?想要搞清楚这个问题,我们得打开另外一个话题,即网站分析工具获取数据的原理。如果大家感兴趣,我会另开一篇帖子,如果没兴趣就算了,反正也不太影响大家直接进行网站分析的实践,在我未来计划(现在还只是计划,实在是忙的对不起大家)的书中会再专门提及。下面我们还是聚焦在网站分析工具如何计数这个问题上。
你可以先阅读这个帖子——网站分析工具如何辨别UV,然后再继续往下看,一定会有新的收获。在标记法的网站分析中,除了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访问网站的次数。
现在,再回头看看前面的我的网站(CWA,China Web Analytics,http://www.chinawebanalytics.cn)的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分钟后结束,以及关闭浏览器结束的原因。
好了,讲到这里,可能很多朋友会有恍然大悟的感觉。我希望你们能有这样的感觉,否则我真的应该隐退了。如果您有这样的感觉,一定在留言框中写点儿什么——心得、意见、问题,或者其他什么都可以。
出差很忙很累,所以博客发晚了些,请大家原谅。后面是否写写网站分析工具获取数据的原理,看朋友们的反馈咯!
11月底了,悉尼已经可以看到圣诞节的气氛,到处都能看到圣诞树,可是这里的圣诞在夏天,感觉实在是太怪了。北京的圣诞节,时有下雪,感觉自然完全不同。预祝朋友们圣诞愉快!
第一次离楼主那么近,坐在沙发上再仔细研究一下该文!谢谢分享先!-_-
我对网站分析工具获取数据的原理比对高级技巧要更加感兴趣。
越是深入的学习wa越是渴望完全摸透度量。
GA是如何监测到用户关闭浏览器的呢?
就是utmc cookie。关闭浏览器,这个cookie就失效。再打开浏览器和网页,这个cookie会重建,因此值和之前的utmc不同了。这样就知道浏览器关闭导致了一次新的visit增加。
初学web分析,那些utma,utmz,utmb,utmc现在终于恍然大悟,明白是怎么回事了,非常感谢如此高质量的文章。感谢博主辛苦的付出!
“utmc是浏览器关闭则随浏览器一起关闭(失效),再打开浏览器访问那个网站,visit也被刷新。”
这个也是可以自己设定的吗?Google 的设定就是浏览器关闭则 visit cookie 失效。那 Omniture 呢?博主对比着说说呗,也好让我们明白规则都是可以自己定的,不是所有的分析工具都是一样的。这样也能加深对分析工具的认识。多谢呀。
回复Manda,Google这里不可以自己定义,utmc是固有的。Omniture SiteCatalyst的visit失效跟关闭浏览器无关,30分钟超时visit才失效,或者visit持续了12个小时,则12个小时之后自动成为一个新的visit。
visitor 我认为是一个IP一天内算一次
而visits应该是打开 关掉 打开 算2个visits
个人愚见 呵呵!
感谢回复。关于visitor和visit的计算请见原文内容。
cookie还可以用浏览器自带的cookie记录查(Firefox和Chrome有).
工具多了真地除了常用功能都记不清.
谢谢分享宝贵的经验
的确!而且能看到所有的cookie的内容。谢谢分享经验。
学到了很多,刚接触这个,受益匪浅。
能说说firebug下怎么使用吗
能说说firebug下怎么使用吗
装一个用一下就好了,比较简单的工具。
看完我先晕一下,再看一遍
我也对网站分析工具获取数据的原理比对高级技巧要更加感兴趣
"1月24日到11月30日也是七天,而且你分别在这期间的11月25日和11月29日访问了我的CWA网站,weekly visitor仍然会被记录为2。"
宋老板,weekly visitor 是不是在选取的这段时间里排重了,weekly visitor不是2,而是记为 1 : )
谢谢Kobe回复。仍然是2。因为是按自然周,虽然是7天,但是跨了两个自然周。
博主你好,你的文章写的真是既专业又易懂.
我是一个菜鸟,想往网站分析这方向发展.
目前国内有很多很多的独立网店,或者说小型B2C是用shopex这样的程序跑起来的..
对于这样的小型电子商务网站的数据分析,在网店系统功能有限,甚至有时修改受限制的情况下,如何让ga的功能最大化呢?
希望博主能在白忙之中,分享一下这方面的经验,造福咱们小B一下,感激不尽!~ :)
GA 所有cookie中的时间,都是取的客户端时间,这样貌似不太准确,不过也可以接受。
另外,个人感觉,visit重要的原因有亮点:
1、历史原因:日志分析时期,Session作为技术上的重要指标被强调;
2、Visit 可以说是众多网站分析指标中,主观色彩比较浓的了,即,我们认为当一个访客在30内未与网站产生互动则说明该访客已经在主观上离开网站了。
Events Tracking – Categories 报表中, 当选择 “Site Usage”这个标签时,GA给出了四个指标的数据:Visits,Pages/Visit,Avg.Time on Site,% New VIsits 。想请问Sidney,这些指标是怎么定义的呢? GA上给出的定义非常不给力啊:
VIsits: 发生该操作、类别和标签组合时的访问次数。(The number of visits during which this combination of actions, categories, and labels occurred.)
晕,“发生该操作时的访问次数”该怎么理解呢?比如对Flash的播放按钮添加了事件追踪,那么发生该操作就是指按钮被点击。照着么说,VIsits就是指 播放按钮被点击时的访问次数? 究竟是播放按钮被点击时网站的访问次数(这个数有意义么?) 还是播放按钮被点击的次数?
不知道utmu 是干嘛的 搞不明白
:)
utmu是干什么的?
这个问题问的好,&utmu=这个参数是GA最后发送图片请求的时候生成的。
这个参数对于用户来说没有意义,是GA用的。
utmu=简单的说是一个用户函数调用的64进制摘要码
GA把它提供给用户的所有函数按照1~102编号,每调用一个函数会累加一个计数,最终GA将这个数字进行摘要计算后以64进制发送回服务器,从这个参数上GA可以知道用户调用了那些函数。
至于为什么要使用这个参数,GA官方没有明确的解释,我猜想是GA优化参数取得性能用的。
例如根据该摘要值可以确定用户收集了那些数据,而直接可以取得参数,不需要遍历整个HTTPRequest对象。
utmu=由GA生成,不需要用户管理。
参考代码:
var ya = function ()
{
var k = this,
l = [],
f = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
//计数累加
k.Ic = function (m)
{
l[m] = r
};
// 生成摘要
k.Xb = function ()
{
for (var m = [], h = 0; h < l[B]; h++) if (l[h]) m[w.floor(h / 6)] ^= 1 << h % 6;
for (h = 0; h < m[B]; h++) m[h] = f[x](m[h] || 0);
return m[H]("")
}
},
@donsun:赞一个!
traffic source 和campaign的分析对于网络营销评测意义比较大,建议前辈能结合一个电商分析一下这方面的内容,谢谢!
traffic source 和campaign的分析对于网络营销评测意义比较大,建议前辈能结合一个电商分析一下这方面的内容,谢谢!
观后受益匪浅,厉害。一直想做一名合格的analyst,但是每次都在comments的时候卡壳。
可否解释一下 Omniture 代码的用途。。。谢谢