很少直接讲工具,但是其实工具的“科普贴”总是很受欢迎,而且正好也是一个朋友们不断提问的话题,所以觉得还是很有必要发一篇文章。这个文章是直接介绍几个实用的GA过滤设置,除了这个文章之外,如有更多时间,近期还想出另一篇文章会跟大家聊一聊GA的高级过滤功能(Custom Filter中的Advanced Filter),这个相对更加复杂一些。所以,这篇文章是初级篇,下一篇文章是高级篇。
Google Analytics的过滤功能简介
Google Analytics的过滤设置其实包含两大逻辑功能,第一种功能是我们通常意义上的过滤,即根据一定条件过滤掉一部分访问者(本质上是过滤掉一部分流量),例如过滤掉所有来自北京的访问者的流量,或是只保留网站某个子域(subdomain)的流量。 第二种功能则不是简简单单的过滤,而是类似于我们使用MS Office Word的“查找并替换”功能(实际上比这个功能更强大,因为实际上包括查找、替换和重组三种功能),即按照一定的条件把GA中的一部分属性的表述替换或再组合为另外一种表述。例如,把campaign报告中campaign的英文名字替换为汉语名字。
这样看来,我们可以发现Google Analytics的主要功能是:
1. 去除掉我们不想要的一部分流量;
2. 修改一种表述方法为另外一种,或者实现标准报告中无法实现的表述。
不过,其实还有第3、4种功能
3. 因为GA是可以不断复制的profile的,GA的filter和profile的配合可以实现分析需要的细分功能。不过这个功能在GA的Advanced Segments出现之后就弱化了。
4. 我们还可以利用多个filter进行组合而实现类似“解释编程”的高级功能。这种filter的组合再加上正则表达式的共同作用,能够实现一些更复杂的过滤或者更精确的属性表述。例如,我们知道SE(搜索引擎)都是提供Universal Search(就是除了文本搜索,还提供图片、视频等)的,但我们在GA中看到的流量可能都是来自Google / organic,我们如何区分流量是来自文本搜索还是图片或是视频搜索呢?这个实际上通过filter的组合能够实现(不过这个很高深了,放在以后说)。
今天要谈的这五个Google Analytics的过滤设置非常非常基础,不熟练正则表达式也完全没问题,只要照葫芦画瓢就行了。由于几乎是我们每个使用GA的分析师都要用到的,建议把它们牢记在心。:)
安全通告:在开始下面的尝试前,请注意!
请一定复制一个新的profile进行尝试!
原因在于,filter和advanced segmentation不同,前者是在形成报告之前的过滤,因此过滤掉的数据肯定是不可能在该profile中出现了,而advanced segmentation是在形成报告之后再进行的操作,数据不会因为你的不恰当设置而丢失。所以,切记切记!否则Sidney就是害了大家。
如何复制profile,见下图所示:
图1
直接在同一个GA ID(例如我的GA ID是UA-4130899-1)后面点击“+ Add new profile”,然后在下图(图2)中输入你想要的profile的名字,然后点击continue之后保存就行了。
图2
是不是很简单?搞定了之后,你就在刚才复制的profile下“胡作非为”吧!你以前的数据不会有任何问题了!现在,让我们开始吧!
设置一:过滤掉自己对网站的访问
你的网站最忠实的访问者是你自己,毫无疑问。但是你自己的访问数据也会混在其他用户的访问数据中,从而一定程度(程度大小取决于你网站的流量,如果你的网站流量跟新浪相差无几,那么这个小节可以直接无视)上污染了网站真实用户的访问数据。
防止这种情况的最简单的办法是通过屏蔽某些IP地址来过滤掉自己的访问,这种设置在GA中非常容易。方法如下:
1. 点击你刚刚复制好的那个profile旁边的edit按钮。
图3
2. 进入profile settings页面后点击“+ add filter”。
图4
3. 在Create New Filter中用如下设置,然后输入想取的filter的名字和自己的IP地址就好了。最后别忘了保存。
图5
请注意,这里我们使用的是Predefined filter,也就是GA已经预制好的几类filter,主要就是解决这种类似的小问题。在这种filter中,不支持使用正则表达式。因此,GA自己的介绍:https://www.google.com/support/googleanalytics/bin/answer.py?answer=55496,其实是不正确的,因为其中应用了正则表达式。
你问我,如果是动态IP怎么办?那么你可以用自定义filter(Custom filter)选取一个IP地址范围进行过滤,这个时候要用到Custom Filter(自定义过滤)。例如,我想要过滤掉从121.33.33.33到121.33.38.254的IP段范围,那么我的设置如下:
图6
这里,我们在Filter Pattern中用到了正则表达式:^121\.33\.(33\.(3[3-9]|[4-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5]))|((3[4-7])\.([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-5])))|38\.([0-9]|[1-9][0-9]|1([0-9][0-9])|2([0-4][0-9]|5[0-4])))$。哈哈,可怕吧!别担心,其实你访问这个地址,就能自动生成你IP段的正则表达式了:https://www.google.com/support/googleanalytics/bin/answer.py?answer=55572&hl=en_US&utm_id=ad。Google自己的这个工具很好用。
不过,这种方法可能会误伤其他合理的访问数据,所以如果要精确地去除掉你每天毫无规律变动的IP地址,那么仅靠过滤功能本身就有点儿力不从心了。我们需要利用控制cookie和filter的结合来实现,可以在这里找到一些线索:http://www.webmasterworld.com/forum39/4048.htm,这里不多说了。
设置二:改变Content报告中Top Content报告URI的大小写
看看下面这个报告的情况是不是大家经常遇到?
图7
其实四个URL只代表着两个页面,但是由于GA是大小写敏感(lowercase sensitive)的,因此它会认为这是不同的URL,代表着不同的页面。
这可不太妙,对于page view这样的度量,我们还可以直接加总,而要把该页面的bounce rate或者avg. time on page合并起来,就有点儿麻烦了(当然其实也还是有办法,这里按下不表,大家自己研究一下就能弄通)。所以,我们要想办法让GA识别这种情况。
利用Filter就能轻松解决,非常简单。Filter的设置方法如下所示:
图8
请注意几点:
1. 这里利用了自定义filter(Custom filter)。
2. 选择Lowercase是全部变成小写,也就是所有的content报告中的页面URI都会变成小写,而同一个页面URI以前是大写的,就自动和小写URI的合并在一起了,这样就不会被GA记成两个不同页面了。如果你想全部变成大写,用Uppercase。
3. Filter Field是我们要施加过滤功能的某一个GA属性(dimension),Request URI指被用户访问(即用户请求)的页面的URI。URI是什么?简单理解URI是URL去掉域名后剩下的(相对路径)。除了Request URI,Filter Field还可以选取很多其他的属性,点击这里看全部属性的解释。
设置三:把Content报告中页面的URI变成页面实际的Title
GA和Omniture不同,GA中显示的网站页面名字是固定好的,就是这个页面的Request URI。而Omniture则完全可以自己定义页面的名称和目录结构。那么,如果GA不能自己定义页面名称,那么至少能够想想办法让页面名称自己显示出来吧!
没错!用Filter就可以实现,具体的设置如下图9。
图9
大家可以看到,我们现在使用了自定义过滤中的高级过滤(Advanced),现在我稍微解释一下我们这么设置的意义,因为相信有些符号大家会有点儿奇怪。
1. Field A –> Extract A和Field B –> Extract B是两个数据段,这两个并不是运算的关系,而是并列的关系。由于有两个数据段,因此我们可以合并两种不同的GA属性。这两个数据段相当于“input”,即输入数据部分。
2. Output To –> Constructor是输出部分,我们可以把A、B数据段中的数据按照一定方式修改,然后合并,在这个地方进行输出。
3. A、B数据段都是支持正则表达式输入的,上图中的(.*)就是正则表达式,表示所有的字符。具体正则表达式的解释请见这里(需要翻墙)。正则表达式最好了解一个原理,不过精通?恩,感觉不容易,反正我害怕这东西。
4. Output To这个数据段不支持正则表达式,因此你看到的“$A1”其实不是正则表达式。
5. $A1的意思是,Field A –> Extract A中的第一个变量。上图只有一个变量,那就只能是$A1。如果有两个,你要在Output To中显示第二个,那就是$A2,以此类推。同理,如果你看到$B4,你就知道是Field B中的第四个变量——说实话我还没见过这么变态的用到4个变量的filter。
6. 整个设置的意思是说,在A字段中,我们选择Page Title属性,并且把页面Page Title的所有字符(用(.*)实现),全部取出来。然后再把取出的这些字符(因为是A字段的第一个也是唯一一个变量)在Request URI中输出出来。就这么简单。
看看有什么效果?见对比图:
图10:【之前】
图11:【之后】
你会说,我们不是有Content by Title报告吗?是的,不过这个报告数据不知为何不准确,而用上面的方法,数据就是Top Content报告的数据,不会在数据上再困扰我们了。
设置四:在Content报告中显示页面完整的URL而不是URI
有时候,我们希望在我们的content报告中显示的不是页面的URI(如上图10所示),而是页面完整的URL,我们同样可以用Filter实现。
不过请注意,由于都是修改页面的URI表示,因此设置三和设置四放在一个profile中只有一个(后设置的那个)会起效果。大家在做实验的时候注意把这两个设置分别放在不同的profile中。
设置如下图12所示:
图12
有了设置三的铺垫,再看这个设置就很简单了。Field A是取出网站的host name的每一个字符,我的网站host name是www.chinawebanalytics.cn/。Field B是取出页面Request URI的每一个字符。Output To则是把A和B按照“host name”/ “Request URI”的方式进行输出。请注意,为了表明content报告的改变是我们的filter设置的结果,我有意在这里多写了一个“/”,实际上你在输出框内应该写“$A1$B1”。效果见下图13。
图13 ,现在大家可以看到我们多了一个“/”是我当时设定在输出框中的
设置五:只监测网站的某个子域或者某个具体目录的流量
有时候,我们想把网站的某一个部分单独拿出来进行分析,例如想要分析music.chinawebanalytics.cn(当然,这只是一个假设的域名)单独的表现,我们利用Advanced Segmentation或者其他方法都比较麻烦,这个时候我们可以复制一个profile,然后在这个profile中用过滤功能把我们想要的部分单独拆分出来。
同样非常简单的设置,如图14所示。
图14
同样的方法,在Include only的选项中选择traffic to the subdirectories,可以实现只保留某一个网站目录的流量。
Bonus:过滤掉不属于网站的被误记的流量
最后,给大家一个Bonus。
不知道你的网站出没出现这样的情况,你的Google Analytics的ID,被别人拿去放到他的网站中间去了!这真是让人苦笑不得的问题。但实际上,我还真就遇到了。大家访问这个网址:http://cfma.jimdo.com/,看看是不是页面上有跟我博客http://www.chinawebanalytics.cn/一样的GA ID!
因为这个网站经常好几天没有任何流量,因此一段时间后我才发现这个问题。
这个问题完全可以通过GA Filter来解决,我们排除掉访问这个域的流量即可,设置如图15。
图15
请注意,由于用的是预置过滤,因此不支持正则表达式。
好了,如果大家对Filter的一些功能有了感觉,这么长文章的辛苦也就不白费了。现在是大家的时间了,请大家留言,或者提出自己的问题,非常欢迎!
今天听宫鑫老师讲课,提到通过设置过滤可以在GA的付费关键字报告中得到用户的原搜索词(大意如此,还没有下载录音核实)。举例:用户搜索“电子商务网站分析”,触发了我在GAW中关键字“网站分析”的广告,但是在GA的付费关键字报告中只有“网站分析”这个关键字的显示。请问如何设置过滤可以得到用户搜索的“电子商务网站分析”这个词?谢谢。
请问如果想过滤某一个国家的ip,除了用正则排除ip段以外,有没有更简单的方法?谢谢
很实用的文章,好好学习一下!
请问如果想过滤某一个国家的ip,除了用正则排除ip段以外,有没有更简单的方法?谢谢
______________________
Custom filter –Exclude
Filter Field-Vistor Country
Filter Pattern-china
按上面的设置就是排除中国的访问
@Vodka 一般搜索里面都有 search这个单词做查询URI,要获得用户在站内搜索中的关键词在GA top content和content by title 报告里面都有,分别输入在两个报告里面左下角的Filter Page Title“search”和“搜索”即可获得用户录入的关键词
但我们在GA中看到的流量可能都是来自Google / organic,我们如何区分流量是来自文本搜索还是图片或是视频搜索呢?这个实际上通过filter的组合能够实现(不过这个很高深了,放在以后说)
_______________________________
这个似乎没必要费心思用filter来实现,使用_addOrganic()更简单一些,比如:pageTracker._addOrganic("images.google", "q");
@阿石 感谢回复!不过我的问题不是查询站内搜索词,而是在GA的付费关键字报告中同时显示竞价词条和搜索词条,如:用户在google中搜索“china web analytics",触发了我的”web analytics"广告,用户点击进入网站后,在GA报告中只会显示竞价词条“web analytics",而我还想在报告中看到搜索词条”china web analytics"。
不过这已经不是问题了,我在“advanced web metrics with google analytics”这本书中已经找到答案了。希望这个过滤的设置能够出现在Sidney的下一篇文章中,我觉得是个很实用的设置。
好的!会放到下一篇文章中。这个实用!
关于正则表达式的电子书免费下载,可以不用翻墙了。
Regular Expressions for Google Analytics eBook
http://www.lunametrics.com/blog/resources/
Vodka said:
@阿石 感谢回复!不过我的问题不是查询站内搜索词,而是在GA的付费关键字报告中同时显示竞价词条和搜索词条,如:用户在google中搜索“china web analytics",触发了我的”web analytics"广告,用户点击进入网站后,在GA报告中只会显示竞价词条“web analytics",而我还想在报告中看到搜索词条”china web analytics"。
不过这已经不是问题了,我在“advanced web metrics with google analytics”这本书中已经找到答案了。希望这个过滤的设置能够出现在Sidney的下一篇文章中,我觉得是个很实用的设置。
应该是用的高级的filter功能 这里篇幅有限 原理是先提前referral 网站里面的kw= 后面的字符串 (就是用户搜索结果页面的url里面的kw= 后面的一串uf8 编码或者bgk ) 再赋值给新的url 在里面写utm_term=(这里写提取到的前面的值) 这样 用户搜索的词就可以在 paid的 keywords list里面看了
宫鑫的课讲的很不错的 这都讲了
博主写的不错,学习中!o(∩_∩)o
星哥,这内部访问IP排除,你说的那个IP段屏蔽对我们医院来说是实现不了的,我们主要就是针对深圳地区的用户,除非我们把办公室搬到深圳以外的地方,嘿嘿。
另外我想问下,我昨天MSN上跟你说的那个GA代码自定义(因为我们使用的商务通是挂靠在别人服务器上,客服页面无法写入代码),后来跟处男和另外一个朋友看了下,我们的代码弄不了自定义,郁闷了,我今天早上上班就在想两个问题,你帮我参考下哈:
1、GA不能实现自定义,那个过滤器那里有个过滤(包含仅来自相应域的流量),这个可否统计到这个第三方客服软件的点击情况呢?还有在这个客服软件的停留时长(因为有的人是误点,如果咨询的话会有个时间段的)?
2、像我们这种统计咨询的网站,有时候用户直接从我们网站点击到客服上面(因为客服是第三方),那么是否这种情况视为退出或跳出,是不是可以看为页面跳出或退出率高的页面,就是咨询率较高的页面呢?
期待星哥回答,嘿嘿。
已经邮件回复,请查看。
第五招试了下好像不行,我是用的自定义过滤器,包括主机名subdomain\.domain\.com才统计到数据。。。
同意楼上的 onlyseg
经过验证,第5招确实是不行的。我也是按照高级过滤器中的subdomain\.domain\.com的方式来实现二级域名profile的独立统计。
另,第四招我试验后,新profile的数据只有原来的一半,不解中,请不吝赐教,谢谢。
谢谢你的回复。关于第五招,我再仔细检查下,可能有问题。
第四招,profile数据只有一半很奇怪,我这边没有出现,是不是有别的过滤影响?能提供一些其他的信息吗?谢谢!
谢谢,刚才遇到一个问题,客户对位于子目录的部分进行了推广活动,他想了解除了推广,网站其他部分的进展。 看google的帮助文件和这篇文章,对Filter、Advanced Segmentation作了了解,最后用后面的功能给他们出了一份报表。很赞的功能。
星哥好:
我们站下有十多个二级频道,每个频道都分别安装了GA的跟踪代码,
有一部分用户访问我们多个频道被重复计算,这样我们想知道整站的UV数据而又不丢失这部分用户的PV数据
不知使用GA过滤设置可不可以实现?
哈哈,星哥这名字有趣!掐指一算,也真是老了……
当然,可以,最简单的方法是建立多个复制的Profile,然后一个个做包含型的过滤。在Google中搜索“Google Conversion University”,里面有一个视频专门讲这个内容。
TOP Content内容中,有以下URI
/pro/view/32331504
/pro/view/32331503
/pro/view/32331502
……
/sale/p5V5
/sale/a5J5
/sale/d9D5
……
我想将这两组页面合并在两个页面显示(比如 /pro/view 和 /sale),我想过以下几种方法:
1. 在_trackPageview(opt_pageURL) 中增加参数(opt_pageURL = /pro/view; opt_pageURL /sale)对页面进行标识,
用此方法后发现,/pro/view和/sale的PV数偏小.
2. 在Pofile中使用Filter,选择custom filter 中的 Search and Replace,用正则表达式将^/pro/view/.* 替换为/pro/view , 将^/sale/.*替换为/sale
用此方法后发现,TOP Content中/pro/view 和 /sale 这两个页面的 Unique PV有很大偏差.
请问Unique PV发生了什么变化?
Google Analytics,原来还有这么多功能!
好文章,研究一下!
又学到了,星哥的博客真是个好地方啊,相见恨晚呐
一个网站只有一个www域名,生成跟踪代码时选择的是“单个域名(默认)”,该站统计的流量和Adsense均正常。
另一个网站拥有多个子域名,所以在生成跟踪代码时选择了“一个域名包含多个子域名”。相对于单个域名的跟踪代码,这个站的代码多了一行“_gaq.push(['_setDomainName', '.example.com']);”。这个代码统计的流量报告是正常的,但是始终统计不到Adsense的数据(当然,前提是我根据Adsense后台的渠道统计报告,确定该站肯定是有Adsense数据的)。请问这种情况是由于什么原因造成的?该如何解决?
谢谢!
搜索个WA有关的东西,总能找到宋星的文章。。温故而知新呐。
鑫老师的GA分析博文很是受用,是学习的好教材,这段时间一直在看着学习;
刚好讲到了过滤器这篇东西,有个问题想请假一下您。
如果我建立的这个new profile目的是收集网站推介流量。那么我应该如何设置?
在自定义过滤器中应该选择 “包含”-“引荐链接” ,那么“过滤模式”里面写什么? 是refferal么?
请鑫老师解答一下,谢谢!
请教下 如何用google analytics实现weblog expert的某IP或者某网页的过滤功能?
比如只查看某IP的访问记录 访问过某张网页的客户记录?
回复bluehost:GA的过滤设置可以实现,自己把玩一下就能明白,很容易。:)
过滤自己的访问其实还有别的办法.
修改本地的hosts文件,屏蔽掉对www.google-analytics.com这个服务器的访问.
近期整理一篇博文. 讲讲hosts文件的妙用.
回复何苦:很好的主意!的确是可以用的方法。期待你的文章。
很想知道怎么区分gg图片搜索和购物搜索的流量,能写篇文章吗?
不错,在宋星老师这里学到很多东西
你好,想跟你请教下如果只是想配置包含某个特定词语的特定URL集,应该怎么写过滤器呢?比如http://q.aceona.com/topics_999000001275880174603394/celebrity_999000001334822330900544.shtml
这个URL中包含了celebrity,如果想设置只包含这个词的所有URL的访问,过滤器应该怎么设置呢?
先谢过了哈
宋老师你好,我想请教一下要过滤的动态网的IP地址段怎么查询
我刚遇到了Google Analytics的ID被别人拿去放到他的网站中间去了,有些设置过滤器不管用,没想到疑难问题都能在宋老师这里找到答案,太崇拜您了!
按照步骤操作的设置三和四,没效果啊。混乱中
GA如何抓取HASH #后的参数