Google Analytics和其他工具间的数据差异

时间:2022-01-17 06:19:42
 本文来自
http://sq.zhongsou.net/gatebbs/2_809_6032_0_1.html

我的网站上同时放了Google Analytics和其他的网站分析工具,为什么这两个工具报告的数据会不一样?哪个是准确的?这是我最近经常被问到的一个问题,估计也是每个使用网站分析工具的朋友都会碰到的问题。如何回答呢?

你可以这样解释:当你有一只表时,可以知道现在是几点钟,而当他同时拥有两只表时,却无法确定现在的时间。两只手表并不能告诉你更准确的时间,反而会让你失去对准确时间的信心。网站分析工具也是同样的道理。怎么样?很cool吧~。这个答案虽然很正确,但却并不能解决实际的问题,并且还有推卸责任的嫌疑。好吧,我们是勇敢的网站分析师,让问题来的再猛烈些吧!(天呐,我在说什么?!)
常见的数据差异原因:
网站分析工具之间产生数据差异的的原因有很多种,需要具体情况具体分析。这里站在Google Analytics工具的角度看下GA与其他网站分析工具产生数据差异时常见的几种原因。
1,追踪代码的实施问题
追踪代码实施的问题是指添加追踪代码时,由于各种原因出现页面漏加或重复添加的问题,或者是与现有追踪代码不一致。这个问题看起来好像并不容易发生,一个网站虽然有成百上千个页面,但通常都会使用几个固定的页底文件,只要保证这几个页底文件中都添加了追踪代码,那么整个网站也就OK了。但真的是这样吗?
理论上如果是一个新网站,并且你对网站的结构了如指掌,那么是没问题的。但大部分网站的情况都没这么简单,它们经历过数次调整,优化,和改版。这时候原来简单的问题就变得复杂了。我曾经碰到过两次这样的情况,网站中同时包含新老两版的页面文件,并且它们使用了不同的页底文件,这时候两类页面中可能包含有不同工具的追踪代码,或是同一个工具的不同定制追踪代码。
2,追踪代码的位置差异
追踪代码位置差异是指两种追踪代码在页面中的位置差异,例如,异步的Google Analytics追踪代码建议放在</head>标签之前,而有些网站分析工具的追踪代码可能会放在</body>之前。当页面被加载时,</head>中的追踪代码先被执行,而</body>中的追踪代码后被执行。此时如果访问者没有等到页面显示完整就关闭了页面,或者点击链接进入了下一页面,那么同一页面中的两个工具记录到的数据就会不一样。</head>中的追踪代码会完整的记录这次访问,而</body>中的追踪代码却不会。
3,对特殊访问者的处理
特殊访问者是指对浏览器进行了特殊设置的访问者,不同的网站分析工具在处理特殊访问者时是不一样的。例如:当访问者的浏览器拒绝cookie时,Google Analytics不会记录这个访问者的任何访问信息。而其他的网站分析工具当发现访问者拒绝cookie时,可能会按优先级设置选择记录这个访问者的IP地址来填补这个访问者的信息。
4,追踪策略间的差异
网站访问者的情况千差万别,而每个网站分析工具都有自己的追踪策略,Google Analytics是基于Javascript和cookie的,而有些工具是No Javascript的,(GA也提供No Javascript的页面标签)或是基于日志的,或者是session的。不同的追踪策略导致了不同的数据记录方式,而这也会产生数据上的差异。
5,丢包和防火墙的影响
数据在INTERNET上是以数据包为单位传输的,每包nK。就是说,不管你的网有多好,你的数据都不会是以线性传输的,中间总是有空洞的。数据包的传输,不可能百分之百的能够完成,因为种种原因,总会有一定的损失。碰到这种情况,INTERNET会自动的让双方的电脑根据协议来补包。如果你的线路好,速度快,包的损失会非常小,补包的工作也相对较易完成,因此可以近似的将你的数据看做是无损传输。但是,如果你的线路较差,数据的损失量就会非常大,补包工作也不可能百分之百完成。在这种情况下,数据的传输就会出现空洞,造成丢包。
丢包问题对于Google Analytics是个永恒的话题,它的服务器远在美国,丢包是肯定的。这也肯定是造成数据差异的一个原因,但其实我却并不想把它作为数据差异的主要原因。最起码不应该是这个问题的第一个答案。因为丢包就好像是个黑匣子,我们无法控制和测量它。GA的丢包的比例有多少?其他的网站分析工具也会有丢包的问题吗?服务器在中国的就比在美国的丢包情况要好一些吗?据我所知 Omniture目前在中国也没有自己的分析服务器。
除了丢包以外,还有一个黑匣子就是我们祖国的防火墙。天岸曾经问我防火墙对Google Analytics收集数据是否会产生影响,这个影响有多大?这个问题我真的不知道。也无法回答。但肯定是会有影响的。
6,度量定义间的差异

不同的网站分析工具对度量有着不同的定义,例如:piwik会将页面浏览,下载和出站链接都算在一起,而在google analytics中,下载和出站默认是不记录的,而只有单独设置了虚拟页面后才会和综合浏览量记录在一起,但通常我们会使用事件追踪来记录下载行为,而不是虚拟页面。所以这时候,两个工具直接的综合浏览量就会产生差异。
7,处理数据的时间差异
不同的网站分析工具在处理数据的时间上也会不同,Google Analytics以小时为单位处理数据,通常从访问者访问你的网站到你在报告中看到这条访问的数据需要1个小时的时间,有时候可能需要更长的时间。这个时间就是google analytics处理数据的时间。并且在一小时后,你看到的也还不是准确的数字,因为google会在每天结束后再重新处理一遍当天的数据。这就是说,当天或者是实时的数据通常是不准确的。通常要在隔天后数据才会基本稳定。这是google analytics处理数据的时间,其他网站分析工具的处理过程和时间也会各有差异,所以当选择当天数据进行对比时差异就变的不可避免了。
这里再多说两句,很多网站分析工具都推出了实时数据的功能。我的理解就是说,报告中的数据与网站访问情况同步,或者只有很短暂的延迟。但是这可能吗?访问者访问网站是一个连续的过程,并且每个访问过程都不一样,无论是访问的持续时间,还是用户行为上。而网站分析工具中的大部分数据是以访次为基础的。例如:每访次页面浏览数,网站停留时间等等。举个例子:当我访问一个博客网站时,我可能会阅读5篇文章,这5篇文章分别在三个不同的页面上,而我的阅读速度是10分钟一篇。这样算下来,我的一次访问花费了50分钟的时间,那么实时网站分析工具在哪个时间点显示这次访问的数据呢?如果在访次刚开始的时候显示,这次访问的很多数据还可能会有变化,那么这些数据准确吗?如果是在50分钟之后显示,就是说这个访次结束后。那就不能算作实时数据了,只能算准实时。
解决方法:
前面说了一大堆可能的原因了,下面要说一说如何解决数据差异的问题。其实很多时候,我们并不能完全解决这些问题,但找到问题所在和产生的原因总比什么都不知道要好一些。当出现数据差异时,有个很好的查找方法,就是细分。
细分:产生差异的具体度量
第一步,先要对产生差异的具体度量进行细分。在所有的度量中,有些是基本度量,有些是复合度量。例如:pageviews,这就是一个基本度量,如果是pageviews的数据产生问题,多半是因为追踪代码设置问题导致的。而如果是Bounce Rate,Pages/Visit或Avg. Time on Site出现差异,那么就要对这些复合度量进行拆分,找出分子或者是分母度量的差异,然后再进行对比和分析。
细分:产生差异的具体页面
第二步,找出存在差异的具体基本度量后,还要对页面进行细分,就是说这些基本度量在网站的哪些页面中产生了差异,有些时候你会发现,同一个度量在某些页面或频道数据相差并不大的,但在另一些页面或频道中却差了近一倍。找到这个频道或页面,检查页底文件的追踪代码。 如果是每个页面的数据都不一样,可能是度量的定义或收集方法导致的。这就比较复杂了,需要了解每个工具对度量的定义和追踪方法。

—————————————–上篇文章中的问题及答案———————————–

在上一篇文章中提到,按照过滤cookie值的方法过滤来自search和campaign的流量通常都不会有问题,但在过滤referral流量的时候会有一些问题。报告中的数据比真实的referral流量低。这是为什么呢?
因为某些时候在google analytics返回的数据中cookie存储的来源信息和referral信息是不相同的。例如:访问者先通过搜索访问网站,在同一个session中又从其他的网站的链接访问了网站。这时候google是不会更新cookie中的来源信息的。而如何第二次访问是通过标记过的URL触发的,google就会更新cookie的来源。

所以,如果你希望准确记录每个推介来源的访问量,就不能对cookie值进行过滤,而是要选择对referral过滤,即返回数据中的utmr的参数值。但请注意,过滤utmr后报告中依然会有来自搜索和campaign的流量,并且与主配置文件的数据有差异。但这些流量确实都是通过你过滤的推介来源产生的。