[Google Analytics] 如何正確地將 Referrer Spam 移除

前言

有鑑於有些朋友有 Google Analytics 被 Spam 污染資料的困擾,因此無法正確地解讀數據,因此想來寫一下關於如何讓 Spam 的資料,不要再在 Google Analytics 出現而影響數據分析。

簡述 Spam

首先,Spam 的種類其實滿多的,除了有 Referrer Spam、還有 Language Spam、Crawler Spam…其實真的沒有一個真的完美的方式來根除這些對數據分析來說的無效流量,我們只能儘可能使用有效的方式,降低我們常常要維護的頻率。

以 Referrer 為例,在 Google Analytics 報表中的 客戶開發 → 所有流量 → 參照連結網址,就可以看到所有的 Referrer 推薦網站(也就是在別人的網站有一個連結,是連到你的網站,那麼當有人點擊了此連結,這樣的流量,就會被歸為 Referrer了),如下圖:

上圖中,都是好的流量,當然上圖只是流量的一小部份,其它我自己判斷的可能無效流量有來自 ipv6.google.com、keywords-monitoring-success 等,就是所謂的 Referrer Spam,就要想辦法排除,那麼為什麼會有無效的流量呢?以 Referral Spam 為例,原因方法很多種,主要是因為有人(或網路機器人)可能取得你網站的 tracking ID(UA-XXXXXX-Y),然後透過 API 的方式,直接傳送資料(例:Pageview)至你的帳戶,進而擾亂了你的資料,但實際上跟本完全沒有實際造訪過你的網站。

Spam 流量的目的是什麼?

可以慶幸的是,這些 Spam 流量並不會影響我們的 SEO,但他們卻可以從中受益(金錢),也可能有某些特殊目的(例如選舉),來創造很多例如 Language Spam 流量,近期最有名的應該是 Secret.ɢoogle.com You are invited! Enter only with this ticket URL. Copy it. Vote for Trump!

我們非常難去阻止這些 Spam 的行為,但至少我們要避免這些數據在我們的 Google Analytics 報表中呈現進而汙染我們的資料。以下提供幾個方式:

方法一:開啟 Google 內建的「排除所有來自已知漫遊器和自動尋檢程式的匹配」

如下圖,Google 有內建收集一些已知的網路機器人或爬蟲或一些 Spam,在 管理 → 資料檢視 → 檢視設定 → 將漫遊器篩選項目勾選即可,這樣一來,就可以自動排除掉一些不必要的流量了。

方法二:使用 篩選器(Filters) 去排除 Referrer Spam

管理 → 資料檢視 → 篩選器 → 新增篩選器 ,直接建立一個排除參照網址的方式,如下圖:

在上圖中的 篩選器模式,可使用正規表示式,例如我輸入以下:

// 表示 spamsite1.com 的子網域或 spamsite2.com 子網域都會被過濾掉。
.*.spamsite1.com|.*.spamsite2.com

這個方法的缺點,就是只要你一有發現新的網域你想排除的話,都要來重建,也就是要不定期的來維護這個篩選器,算是比較人工的方式。

方法三:使用 篩選器(Filters) 去 Include 主機名稱(hostname)

讓我們先看下圖瞭解一下:一樣在 客戶開發 → 所有流量 → 參照連結網址 的報表中,只是我們多顯示了一個次要維度:主機名稱

會發現在 free-share-buttons.blogspot.com 的主機名稱是 (not set),為什麼?而我還看過來源是 website-analyzer.info,而它的主機名稱是 4webmasters.org,其實這些都不是正常的流量,以一般的情況來說,主機名稱都應該要是你的網址,以我的為例,應該就是 carlos-studio.com

至於為什麼會有 (not set) 的情況,其實是因為可能使用了 Google Analytics 的 Measurement Protocol 的方式來傳送資料,這種方式並不會有 hostname 的記錄,大部份的 Spam 都會過此種方式來汙染你的資料。

Measurement Protocol 可讓您透過任何連上網路的裝置將資料傳送至 Analytics (分析)。

所以這時我們就可以透過使用 篩選器(Filter) 中的 Include hostname 的方式,來確保在主機名稱中,僅包含我們所指定的網址,例如下圖以我的 blog 為例( 輸入任意的篩選器名稱 → 篩選器類型選預先定義 → 只包含 → 主機名稱獲得的流量 → 等於 → 輸入你自己的主機名稱 ):

此方法三雖然相較於方法二,比較自動化一點,但仍然無法根除,因為有的來源即使主機名稱沒有問題,但來源網址經查還是屬於 Spam,所以沒辦法,在你沒有其它資源可使用的情況下,就只能使用「方法一」、「方法二」、「方法三」合併一起使用,即設定兩個 Filter,然後定期的維護。

另外雖有第三方資源,可以自動化的幫你整合過濾掉 Spam,例如 Referrer Spam Blocker,但我沒用過,也不太建議,不是說不好,只是這種第三方資源,除非真的超重要,通常會擔心哪一天它要收費了、或它突然不支援了、而又要花時間研究…諸多考量之下,所以通常我不太用。

但難到沒辦法永久根除嗎?以下要介紹另一種長久之計,我參考了 how-can-handle-google-analytics-referrer-spam 這篇文章所使用的方式,是使用 Google Tag Manager 的方式,所以前提是你必須要透過 Google Tag Manager 的方式來載入 GA 的程式碼。這裡假設你已經有使用 Google Tag Manager 了。

方法四:建立 「自訂維度」,並在 Google Tag Manager 介面中設定

先闡述以下步驟的所有目的:當使用者有真正的造訪我們的網站的時候,我們要多傳送一個值(意義上有點像是”密碼”)到 Google Analytics 中,之後我們就可以只要建立一個篩選器(Filter)來過濾只要包含此值(密碼)的流量即可,就可以確保在報表中所呈現的流量幾乎都是正常好的流量了。

因為像其它 Spam 所傳送的流量,有的可能是透過 Measurement Protocol 或並非真的造訪你的網站,所以不可能傳送你所設定的值(密碼),我自己實驗過,覺得是還滿好的方式。

以下是建立的流程:

Step 1:我們要建立一個自訂維度,而在此自訂維度中,設定一個值,在 Google Analytics 的「管理 → 資源 → 自訂定義 → 自訂維度」中,如下圖:

Step 2:按下「新增自訂維度」

Step 3:輸入以下資料,名稱可自行輸入自己可識別的名稱;範圍選 Hit, Hit 的意思是只要你每次傳送資料一次,即為一個 Hit,例如一個 Pageview,就會產生一次的 Hit;將「有效」勾選。按下”建立”,如下圖:

Step 4:會產生下圖的程式碼,如果你沒有使用 Google Tag Manager ,那麼以下的程式碼,就要自行想辦法整合至自己的網站中了,如果有使用 Google Tag Manager,那麼可以直接按下「完成」按鈕。

Step 5:接下來一樣在「管理 → 資源 → 自訂定義 → 自訂維度」中,就可以看到所建立的自訂維度,以下圖為例,請記得所建的 索引編號,此例為 1,這個索引編號,會在 Google Tag Manager 中使用到:

Step 6:登入 Google Tag Manager 的後台介面,「Variables → User-Defined Variables → NEW」

Step 7:建立一個常數,值為 1 (這個數字,就是上一步的索引編號,這樣才可以對應。)。下圖的第2步,可輸入你自己可識別的名稱,第3步選常值,第4步就是該常數的值(1)

Step 8:再建立第二個常數,如下圖,名稱一樣可自己訂一個可識別的名稱,至於「值」的部份,在此我輸入 autospamfilter,你可以自行輸入任意的字串,如果想要複雜一點,可使用 Base 64 做 encode,讓那些 Spam不容易猜到。

Step 9:看下圖目前所建立的兩個常數:

Step 10:將上述所建立的兩個常數,加進自訂維度,分別是索引、維度值,如下圖:

Step 11:按下 Publish 按鈕,即可完成在 Google Tag Manager 中的設定。

Step 12:回到 Google Analytics 介面,新增 Filter 如下:主要在 篩選器欄位要選擇我們先前建立的自訂維度名稱,即 Analytics Key,而在 篩選器模式中直接輸入我們先前在 Google Tag Manager 中建立的常數值,即為 autospamfilter,如下圖:

以上整個的設定流程就算完成了。

我覺得這個方式還滿有效的,至少可以大幅降低你要時常維護篩選器(Filters)的頻率。

若有任何問題,歡迎在底下留言討論。

 

參考資料:

How can I handle Google Analytics referrer spam?

Ultimate Guide to Getting Rid of All the Spam in Google Analytics.

Common Google Analytics Spam Questions – Answered

您可在此處留言

avatar

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

  Subscribe  
Notify of