Google Analytics 是用于网站应用等进行流量统计分析的工具。对于统计分析来说,数据的准确性尤为重要。而有些网站则会针对 Google Analytics 的用户,通过在用户的统计信息里插入自己网站的地址来达到广告的效果。因此我们需要过滤掉这些垃圾内容,从而使得我们的统计数据能够更为准确。

Google Analytics 中的垃圾内容

如上图中的第 1 行中 zzz.buzz 是我们自己站点的名字,其下的统计数据也基本来自于网站的真实用户;而第 3 - 7 行中的站点如 o-o-11-o-o.com, uptime.com 等则是这些网站针对我们的 Google Analytics 账号发送的垃圾数据,应该被过滤掉;第 2 行中的 localhost 则是我们在调试站点时产生的流量,也应该被过滤掉。

建立过滤器过滤垃圾数据

要想过滤掉这些数据,可以在我们 Google Analytics 的视图(查看)中,根据垃圾数据的特征来建立过滤器,并过滤掉这些垃圾数据。如后图所示:

Google Analytics 管理页面

Google Analytics 添加过滤器

具体过滤条件的设置,根据在 Google Analytics 插入的垃圾数据的多种多样,我们需对症下药。


根据主机名进行过滤

大部分的垃圾信息都是通过枚举 Google Analytics 的统计 ID 来插入的,插入垃圾信息的人并不知道网站的主机名,从而我们可以根据统计信息中是否包含网站真实的主机名来进行过滤,这也是最为有效的过滤统计信息中的各种垃圾信息的办法了。另外通过主机名进行过滤,也自然地会过滤掉我们本地调试网站时的统计信息(来自 localhost 的流量):

Google Analytics 配置过滤器 - 仅包含有效主机名

不过,用这种方法过滤统计数据还是有一定的缺陷的。在上面的过滤器中,我们设定了只包含有我们网站主机名(如本站是 zzz.buzz)的流量。虽然在大部分的时候,来自真实用户的流量也确实是会在主机名中包含网站的域名,但还有一些情况,如通过翻译服务、网站归档服务等访问网站的用户的流量中的主机名则不会被设为网站的域名了,而是这些服务的域名,因此我们需要将一些常见的翻译服务、归档服务的域名加入过滤模式中,如:

主机名 站点功能
translate.googleusercontent.com 谷歌翻译服务
webcache.googleusercontent.com 谷歌搜索缓存服务

另外,我们也可以在自己的未过滤的统计数据中找出那些真实有效的主机名,并将他们加入过滤器。查找统计数据中所有主机名的方法可以见下图:

Google Analytics 查找所有访问的主机名

在将主机名添加到过滤器中时,注意在多个主机名间用 | 符号来分隔。

Google Analytics 配置过滤器 - 包含多个有效主机名

根据屏幕分辨率进行过滤

还有些垃圾信息的发布者通过爬取网页,从而同时有用户的统计 ID 和网站主机名。这时,上面的方法就无法过滤掉这些垃圾信息,但是在这些垃圾统计信息中往往有一些无效的数据,或者说正常访问网站时不会产生的数据,如:正常访问网站的用户,统计信息中会包含用户屏幕的分辨率,而伪造的统计信息中往往没有这项数据(在报表中显示为 (not set)),因而我们也可以据此来进行过滤。

我们可以注意到,屏幕分辨率有如下形式:宽x高,因此我们可以检测分辨率中是否含有 x 来进行过滤:

Google Analytics 配置过滤器 - 包含正确的分辨率

根据语言设置进行过滤

类似地,也有在统计信息的语言设置字段中填入广告的形式,而这种广告一般会包含网址。比如下图所示:

Google Analytics 报告/访客语言 示例

因此,我们则可以根据语言中是否包含 . 来进行过滤,因为,语言一定是 xxxx-yy 的形式的,而不会有广告中含有的 . 符号。

Google Analytics 配置过滤器 - 过滤无效语言

注意事项

需要注意的是,新建立的过滤器并不会改动已有的数据,而只会对新生成的数据产生作用,且被过滤器过滤掉的数据并不会在删除过滤器后重新恢复。所以,推荐为自己的站点或应用新建一个视图(查看),随后在新创建的视图上建立过滤器,这样便可以在保留原始数据的同时,得到一份过滤了垃圾数据后的有效数据。

参考