這個文章是直接介紹幾個實用的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的結合來實現,可以在這里找到一些線索:,這里不多說了。
設置二:改變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的一些功能有了感覺,這么長文章的辛苦也就不白費了。現在是大家的時間了,請大家留言,或者提出自己的問題,非常歡迎!