网站流量分析在中国的曙光

从开始做共享软件就做网站流量分析,但真正重视是从2002年开始的,狂热的时候每天分析几十次日志,变换着过滤器来回分析每个数据。当时还没有Google Analytics,免费的page tagging统计网站没有好用的,只好用日志分析软件, 当时几乎把能找到的日志分析软件用了个遍,感觉现有工具都有些不能满足自己的需求,就一怒之下做了自己的日志分析工具。当时国外已经很重视web analytics,常上几个国外的日志分析论坛向老外们学习,但自己英文太烂,上去只有学习的份,和别人交流不来。很想在国内找人交流,但遇到的国内站长的web analytics水平仅限于pv,uv之类,他们更关心买卖流量,怎么卖广告,怎么做插件之类。和他们聊天,双方都感觉是在对牛弹琴,反倒是共享软件作者们对网站流量分析更重视些。

从对国内网站流量分析水平大失所望后,一直没怎么再关注国内这方面的发展,当时也缺乏这方面的消息来源。去年年底无意中网上认识了Sidney Song,看到了他的blog – 网站流量分析在中国,并参加了他发起的China WAW活动, 才发现国内的网站流量分析水平已经得到了长足的发展。而这其中,Sidney Song发起的China WAW活动则为大家提供了一个非常好的交流平台。每个月的第一个周三,大家聚在一起听听讲座,分享一下经验,了解最新的分析技术,认识圈内的朋友们,让我每次参加都感觉所得非浅。 而且China WAW也成了国内有关网站流量分析的消息发布平台, Omniture今天下午在北京组织了一个Online Business Optimization workshop,这个消息就是通过China WAW形成的圈子发布的,今天去听了听,有点大开眼界的感觉。

参加的每次China WAW活动坐满了人,不少人都要站着听。 可能比起微软的PDC之类的大会要显得规模小了太多,但感受到的气氛却比参加过的PDC之类更热烈,waw的参会者身上能感受到强烈的求知欲。waw中不只是讲座能学到东西,从大家的提问中也能学到很多。参加了几次waw后,让我一扫对国内网站流量分析水平的错误认识,让我看到了网站流量分析在中国的曙光。

附:关于china waw活动的相关消息都发布在网站流量分析在中国

另:大家如果在活动中看到剃着秃头的矮胖子那十有八九就是我。

页面停留时间为什么为0

最近遇到好几个人在问:为什么自己网站的流量分析报表中很多页面的停留时间为0?有些人据此怀疑使用的统计系统有问题,更多人没有理解这个统计数字背后所反映出的问题。在这里给统一解答一下这个问题。

解答这个问题首先要从页面停留时间的计算方法说起。下面我们以Google AnalyticNihuo Web Log Analyzer(http://www.loganalyzer.net) 为例,介绍他们页面停留时间的计算方法。

Nihuo Web Log Analyzer当发现一个访问者进入一个网站访问了第一个页面时,会记录下他的访问时间。等到他访问第二个页面时,记录下第二个时间,用第二个时间和第一个时间的差值作为这个访问者在第一个页面的停留时间。 以此类推,每个页面的停留时间就是用户访问下个页面时的时间减去他访问这个页面时的时间,并加入到这个页面总的停留时间中。 这个方法在诸多统计方法里,是最简单的,也比较合理,并且计算量最小。 但有个问题,就是用户访问的最后一个页面, 它没有下一个页面,那么怎么计算它的停留时间呢? 在Nihuo Web Log Analyzer中,用户访问的最后一个页面的停留时间被认为是0。

Google Analytic的报表来看,它采用的统计方法应该是和上面提到的方法一模一样的。

由此可见,当页面的停留时间为0时,表明这个页面每次都是用户访问的最后一个页面,也就是说访问者到这个页面后都退出了对网站的访问。 这有三个可能:

  1. 第一个可能:这个页面是某个流程的最后一个页面,比如确认购买页面,用户到了这个页面就没必要继续访问了
  2. 另一个可能是这个页面的设计有问题,访问者到了这个页面后就没有兴趣继续访问下去,或页面设计错误,用户不能再继续访问下去
  3. 当使用的统计系统是Google Analytic时,那么还有个可能,就是在这个页面链接的几个页面都没有加入Google Analytic代码,造成系统追踪不到用户后续的访问。

当发现自己的流量分析报表中有些页面有着较大访问量,但停留时间为0时,不妨对照上面的三个可能检查一下,如果存在后两个问题就需要及时修改网站页面了。

如何用Google Analytics跟踪出站点击

有时候我们需要知道用户是点击了站点中哪个外部链接离开了你的站点。比如当你的购买链接是指向第三方的收费代理,这时候就很有必要知道有多少用户是点击了购买链接离开了你的站点. 单靠平常的在线统计日志分析(Log Analysis)是不能跟踪的,因为很多时候外部站点不允许你插入统计代码,更不会给你看日志文件。这时候就需要我们动手加点东西来实现对出站点击的跟踪。

以前追踪出站点击的方法主要就是不直接链接到外部站点,而是链接到一个本地文件上,把用户的出站点击经这个文件中转一下。这样通过日志分析(Log Analysis)统计中转文件的访问,或直接由这个中转文件把统计结果写入数据库, 以此来实现对出站点击的跟踪。

那么用Google Analytics如何跟踪出站点击呢?有人要说可以在中转文件中插入Google Analytics的代码,实际上有个更简单的办法。 在普通网页统计插入的Google Analytics代码中,最后要调用不带参数的urchinTracker() 函数。其实这个函数是可以带参数的。查看http://www.google-analytics.com/urchin.js这个文件,你会发现这个参数名是page,再向下多看看你就很容易发现,这个page参数就是统计页面的url。 利用这个函数就可以实现对出站点击的追踪了,将每个出站链接加入如下代码:

<a href=”http://www.waibu.com” onClick=”javascript:urchinTracker(/outgoing/1);”>链接</a>

这个链接中给出的参数’/outgoing/1‘ 是可以根据自己需要定制的,并不是站点中必须要有的文件。urchinTracker 这个函数你只要给他什么参数他就统计什么,实际是否存在并不关心。 加入这段代码后,一旦用户点击,Google Analytics就会记录为一个对’/outgoing/1‘的访问。这样你只用每天看Top Content(最常见内容)报表中’/outgoing/1‘ 的访问数字就能知道点击这个外部链接的访问有多少了。 你还可以把’/outgoing/1‘ 定义为一个目标(Goal),在Google Analytics对目标的转化率Conversion Rate(转化率),Goal Path(目标访问路径)等进行分析。

注:

1.这种跟踪方法在不支持或禁止javascript的客户端是无效的
2.这种跟踪方法的前提是你必须在网页中安了Google Analytics统计代码

在线统计 vs 日志分析 ( Page Tagging vs Log Analysis )

网站流量分析(Web Analytics)的工具分为两大类, 一类是以Google Analytics为代表的在线统计系统, 英文称Page tagging。国内的武林榜,51yes,国外的Hitbox, Nielsen NetRatings, OneStat 都属于此类。这一类的重要特点是,分析时需要在里页面嵌入代码,这也是Page Tagging这个词的由来。 另一类就是日志分析,英文称Log Analysis, 特指web服务器的日志分析就是Web Log AnalysisNihuo Web Log Analyzer, awstats, analog 都属此类,这一类的特点是不用在页面嵌入代码,而是靠分析web 服务器产生的日志来生成统计报表。

经常有人问起这两种方法哪个更好,解释次数多了,自己都烦了,现在在这里统一回答一下。涉及到两类产品的比较时,就分别以Google Analytics( http://www.google.com/analytics/ )和Nihuo Web Log Analyzer( http://www.loganalyzer.net/ )为例了。

网站流量分析机制的差异

在线网站流量统计(Page tagging)的实现机制

Google Analytics需要在所有需要统计的页面中插入如下的Java Script统计代码,只有插入了代码的页面才能被统计,


这段Java script做的工作如下:

  • 判断用户是不是第一次访问这个网站。它是通过cookie来判断, 如果特定Cookie不存在它就会认为是新用户,它会种一个用户标识的cookie,并在cookie中记录下用户第一次访问时的Refrrer,即来源网站。 如果是从搜索引擎过来的,它还会分离出用户搜索用的关键词并记录下来
  • 判断用户是不是新的访问(New Visit),并获取当前浏览的页面URL,标题,Referrer(来源网址),客户端信息(如屏幕分辨率,语言,flash版本,是否支持java )
  • 创建一个image对象,调用http://www.google-analytics.com/__utm.gif,把上面所有的信息作为图像文件的参数传回去。这个图像文件其实就是1个像素的gif文件,而且这个像素还是透明的,在页面中是看不到的。

其他的在线统计系统与Google Analytic有些细微的差别, 比如Nielsen NetRatings要求嵌入的javascript代码中还包含有如下代码:

这确保了在javascript被禁止的客户端,用户的访问也能被统计。当然,这种情况下能统计的信息很有限了。关于这些在线系统实现方法上的一些细微差别做过专门研究,说起来就很长了,哪天有时间会单独写个文章讲这个话题。

日志分析(Web Log Analysis)的实现机制

Web服务器在工作时会把所有用户发过来的请求和相应情况记录在文件里,这个文件就是日志文件。下面就是从http://www.loganalyzer.net/log-analysis-tutorial/log-file-sample-explain.html 找到的一行日志:

111.111.111.111 – – [08/Oct/2007:11:17:55 -0400] “GET /support.html HTTP/1.1” 200 10801 “http://www.google.com/search?q=log+analyzer&ie=utf-8&oe=utf-8 &aq=t&rls=org.mozilla:en-US:official&client=firefox-a” “Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7”

在这一行里包含了客户端IP(111.111.111.111),时间([08/Oct/2007:11:17:55 -0400] ),请求方法(Get),请求文件(/support.html ),HTTP协议版本(HTTP/1.1),返回状态码(200,表示成功),文件大小(10801 ),Referrer信息(”http://www.google.com/search?q=log+analyzer&ie=utf-8&oe=utf-8 &aq=t&rls=org.mozilla:en-US:official&client=firefox-a”),Agent信息”Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7″)。具体如何详细解读日志会另文阐述,在这里只是展示一下日志中都包含什么信息。

Nihuo Web Log Analyzer就是靠读入日志文件在本地进行统计计算而得出最终报表的。在大部分Web日志文件中,都是靠IP来判断访问者。Nihuo Web Log Analyzer也可以通过Cookie识别用户,但需要在日志中首先输出Cookie信息。

在线统计日志分析的优缺点比较

上面费比较多的笔墨说两者的实现机制,就是为了大家能更好理解这一段,因为两种方法的优缺点都是由他们的实现机制决定的。

在线网站流量统计(Page tagging)的优点

  • 通过Cookie识别访问者,比依靠IP识别要更准确。因为通过IP识别用户在遇到很多用户通过代理服务器(比如网吧)时就会不准确。而且当用户过几天后再访问时,通过Cookie能很好的识别这是已经来过的用户。而日志分析以IP识别用户时,因为用户每次上网拨号可能会被动态分配不同的IP,就会比较难准确判断返回用户。
  • 能通过javascript搜集到一些通过日志不能搜集到的客户端信息,屏幕分辨率,语言,flash版本,是否支持java 等
  • 使用方便,只要在所有页面插入了统计代码,以后每次直接看报表即可
  • 可以做第三方统计, 比如你在blogspot.com开了一个blog,而blogspot是不可能把他们的web日志提供给你的,这时候没有别的选择,只能是用在线统计系统。

在线网站流量统计(Page tagging)的缺点

  • 当客户端禁止Javascript或禁止Cookie时,都会影响统计结果,要么是完全统计不到,要么是出现错误的统计
  • 存在一定误差,因为在线统计是通过javascript把客户端信息搜集起来再传回服务器实现统计,有时因为网络的延迟,会出现没有统计到的情况。而且和页面的载入速度也有关系,把代码加在页面代码顶部或尾部统计结果都是会有差异的。
  • 不能统计用户对图像,视频,音频等文件的访问,因为这些文件不能插入统计代码
  • 不能统计带宽信息
  • 统计信息被第三方掌握,有安全上的危险

日志分析(Web Log Analysis)的优点

  • 没有网络延迟的问题,统计准确
  • 可以统计网络蜘蛛(spider ,bot)的访问,这对于做SEO比较重要
  • 能够统计非页面文件,如图像,flash文件等等
  • 客户端禁止了Javascript和Cookie也不影响统计的结果
  • 能够采用丰富的过滤器(Filter)进行数据挖掘(Data mining),可以从多角度分析网站流量和用户的访问行为。一些在线统计也支持Filter, 比如Google Analytics,但是一旦应用过滤器最终数据就被改变,原始数据是找不回来的。
  • 可以多域名的日志放在一起分析,在线统计系统对用户的标识是基于Cookie的,而Cookie是不能跨域名的,在这方面日志分析有天然的优势。
  • 安全,分析数据是由你自己掌握的

日志分析(Web Log Analysis)的缺点

  • 使用比较麻烦,每次要分析日志,而且有的还要配置web服务器以输出合适的日志。
  • 用IP追踪用户不如Cookie准确。 不过这个问题可以通过在Web服务器上添加插件或模块来解决。Apache需要添加mod_usertrack模块,并在日志中输出cookie信息。IIS可以装ISAPI的插件(自己用VC6写了一个,可以从http://www.doyj.com/downloads/cookiefilter.dll 下载,不过这个当时只是写来测试的,出了什么问题可别怪我 )。也可通过javascript,php,asp等语言给客户端种植cookie,这讲起来就长了,大家可以google相关资料看看。
  • 搜集的客户端信息不如Page Tagging丰富,象flash版本,是否安装java之类从日志是看不出来的
  • 日志的存储管理也是挺头痛的事,尤其是当每天都产生几十G日志的时候。

经常有人问这两种方式哪个更好,应该选择哪种,这让我很难回答。 因为这两种方式都各有所长各有所短,只用一种方法很难准确完整的了解网站流量的的全貌,我自己做分析时两种工具都使用的,两个报告互相参考着看,也推荐大家采用这个方式。

注:这篇文章借鉴了一些 http://www.kichus.in/2006/09/23/log-file-analysis-page-tagging/ 的内容

网站流量分析 (Web analytics) 水平分级

记得自己最早的网站流量分析Web analytics) 是1997年左右的时候,当时网易开放40M免费个人网页空间的申请,自己也申请了一个,再去网上找了个免费的计数器挂上去。 然后每天看着计数器的跳动激动不已,其实一大半是自己刷出来的。这就算是最早的网站流量分析了吧。

开发日志分析软件这些年来,接触了不少国内的网站,对国内网站的流量分析有个大致的了解。下面据此对网站流量分析的水平划分出几个等级,大家可以对照看看自己属于哪个等级。

菜鸟级的网站流量分析 (No web analytics)

这个水平的就是什么统计分析都不做, 自己站点的访问量大约是什么数量级都不知道。对uv, pv, unique ip这些基础概念都一问三不知。一些个人站点这样还情有可原,可很多企业,政府网站居然也这样就说不过去了。

入门级的网站流量分析 (Junior web analytics)

到了这级已经知道了网站流量统计的基本概念,已经懂得在自己网页上插入武林榜( http://www.50bang.com ), 51yes ( http://count.51yes.com )之类的在线统计代码,或者隔三岔五看看虚拟主机用开源软件(比如awstat( http://awstats.sourceforge.net ), analog( http://www.analog.cx ), webalizer( http://www.mrunix.net/webalizer )) 分析出来的日志分析报表。这一级别的人知道光看pv不行,还要看uv和unique ip。 懂得看Referrer(来源网站)报表,研究Search Phrase(搜索关键词)报表。他们能根据看到的报告,及时调整自己网站的内容及经营策略。比如发现uv少了,就加大推广力度;发现搜索引擎过来的人少了,就做SEO;看地域统计报告,发现广东过来人少了,就赶紧安排一些针对广东的弹窗广告之类。国内的网站大都是这个级别。

高手级的网站流量分析 (Master of web analytics)

这个级别和入门级最重要的差别在于, 入门级的人关心有多少人到了自己的网站, 而高手级的人还懂得关心,甚至更关心:人们到自己的网站都干了什么。也就是说他们懂得用户行为分析 (Visitor behavior analysis) 的重要性。使用的工具中,国内那些简单的在线统计网站早就被剔除了,使用的是Google Analytics( http://www.google.com/analytics/ ),及收费的Nielsen NetRatings( http://www.nielsen-netratings.com/ )等在线统计系统, 同时还采用Nihuo Web Log Analyzer( http://www.loganalyzer.net/ )等专业的日志分析器,做到在线统计与日志分析相结合 。 他们分析的也不只是流量,而是包括网站内容,网站链接结构,SEO等多方面的数据;做的不再只是网站流量分析 (web traffic analytics) 而是进化成整体的网站分析 (web analytics)。他们关注用户的访问路径;关注每个关键词过来的流量在登录页面,Bounce rate弹出率),停留时间,访问路径等等指标上的细微不同;对一些重要页面进行单独的Tracking(跟踪),关注这些页面的每个细节; 他们还能熟练使用各种filter过滤器),能在几M到上百G的日志中进行数据挖掘工作,从中挖掘出有价值的数据;他们能轻易判断报表上反映的问题是技术问题,还是网页设计问题,还是网站推广问题。 他们的眼睛能透过报表上纷繁的数字,看到数字背后的真相。

专家级的网站流量分析 (Expert of web analytics)

专家级的人已经不满于现有的各种工具和指标,他们会针对自己的网站特点,提出一些很有针对性的新指标,他们会为自己的网站开发极有针对性的分析系统,甚至开发自己的日志系统。他们不只是看到数据背后的真相,而是会自己主动发掘新的数据,并把自己的网站变成数据驱动Data Driven)型的网站。网站的每个设计,每个推广活动,每个决策,不是拍脑子想出的结果,不是开无聊会议的结果,而都是有强大的分析数据来支持。 每个决策的效果又能及时统计分析,变成数据再反馈回来,让网站及时调整决策,乃至改进整个数据分析的流程和方法。

最高级 – 仙级的网站流量分析 (God of web analytics)

他们从专家级中走过来,从网站分析 (web analytics) 中看到的已不只是对过去的总结,还能从中能看到将来变化的趋势,并帮助网站提前把握这种趋势;他们不只是看自己网站的分析,还看竞争对手,同行业乃至整个互联网的情况,并根据掌握的这些情况对自己网站的流量做出更合理的分析解释,并做相应调整;他们有广博的知识,能把其他方面的知识应用到分析中来,了解社会及自然界发生的一些事情可能对网站流量的影响;他们对网站流量分析有着自己独到的见解;他们在公司里是传播分析思想与方法的中心人物;他们不只是对分析技术,而且对整个网站的机制和涉及到的技术都有深入的理解;他们是一个网站走向成功的重要保证。

国内这方面的水平还比较低。在国外很多公司在招专业的网站分析员Web analyst),而在国内的51job( http://www.51job.com )找不到这个职位的招聘。 国内很多网站把网站流量分析当作是网管附带的工作,不要说专职的部门,连专职的分析人员也没有。有时还不止是缺乏数据分析的问题,不少网站还热衷于制造数据,比如alexa( http://www.alexa.com )排名之类,对这些网站说重视数据分析,说从流量数据分析中挖掘出金矿无异于对牛弹琴。

但有理由对将来保持乐观,将来一个网站如果要成功,没有好的网站分析员是不可想象的。已经在国内见到有专家级甚至快成仙得道的大侠,见到过国内网站内部开发的超强统计分析系统,而且看到这样的大侠和这样有远见的网站有越来越多的趋势。国内将来不仅会有成批专职的网站分析员,而且这个职业可能成为下一个热门高薪职业。 登陆Google Analytics( http://www.google.com/analytics/ )的时候会看到有Analytic Authorized Consultant的标志,全世界已经有了很多获得这个认证的分析顾问( http://www.google.com/analytics/support_partner_provided.html ),其中中国已经有了一家,相信会越来越多。