[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

[Google Analytics] 功勞歸屬模式 (Attribution Models)

什麼是功勞歸屬模式?

簡單來說,就是可以將訪客轉介過來的推薦網站 (referring websites),計算出貢獻多少收益,或是開發多少潛在客戶等。如果聯盟網站(affiliate)是行銷活動的重要部分,那麼此功能就很重要。

先看看下圖:

假設一位訪客在達成轉換(可以是成為顧客、訂閱用戶或潛在客戶)之前造訪了4次外部的網站,如果沒有功勞歸屬功能的話,所有推薦網站都會被視為有同等的貢獻:假設圖中顯示的路徑是先使用 Google 搜尋,接著抵達社群網站,然後點擊橫幅廣告到某個聯盟網站,最後點擊你的聯盟網站的某個連結到你的站內,最後完成轉換,那這四個網站會被視為同等重要。

功勞歸屬功能可以讓你決定各個推薦網站的不同比重,也就是網站為訪客最後的消費行為出了多少力,占總收益的比例又有多少。

而在 Google Analytics 的免費版與專業版(每年15萬美金)中,都可以自訂模式。只是專業版多了一個「數據導向」模式,讓你不必再手動比較或從不同模式中選擇,這個模式會替你自動計算各個管道的功勞。

參考

官網:歸屬模式總覽

書籍:透視數據下的商機 – 運用 Google Analytics 發掘商業洞見

[Google Analytics] 一些定義

指標(Metrics)與維度(Dimensions)

指標是一個數字,例如網站的訪客數、收益金額、或者新產生的潛在客戶數量等等。
維度是文字資料,例如熱門網頁清單、最有效的廣告活動名稱、銷售第一的產品等等。

點擊數據(data hit)

指的是每位訪客與網站互動時所送出的數據。常見的數據類型包括「事件(event)」、「交易」、「社群豆動」。如果一位訪客在網站上瀏覽了 8 個網頁(即 8 個瀏覽量)、下載了一份 PDF 文件(假設有設定 1 次事件)、消費 1 次(假設有 1 次交易,該次交易有購買 2 項商品)、最後在 FB 粉絲團按讚,就會蒐集到 13 筆點擊數據( 8 pageviews + 1 event tracking + transaction(3) + 1 按讚 = 13)。

數據總量

行為 → 總覽,預設上會列出過去30天的瀏覽量(a);行為 → 事件 → 總覽:會列出事件總數(b)。(a) + (b) 即為數據總量,這個數字必須少於1000萬,才不會超過 GA 服務條款的限制(免費版每月上限1000萬,專業版則是每個月10億筆)。

訪客瀏覽過的所有網頁網址

行為 → 網站內容 → 所有網頁:這部份列出了訪客瀏覽過的所有網頁網址。

 

[Google Analytics] 品質健檢計分卡

品質健檢計分卡:GA的檢查項目,以及可算出數據的品質分數。

品質分數 = 加權後總得分 / 加權比重總和 X 綠燈狀態分數

狀態:綠色10分、黃色5分、紅色0分。
綠色表示照預定計劃進行中,不須採取行動;
黃色表示部分進行中,或者進行得不順利,需要採取行動;
紅色表示尚未進行或者根本尚未導入,需要採取行動。

加權比重:分數可分為:0.0、0.25、0.5、0.75、1.0、2.0(此主要用為交易追蹤)。

[Google Analytics] 篩選器(filters)

預先定義(Predefined filters) 包含了三個部份:

  • 選取篩選器類型:「只包含」或「排除」
  • 選擇來源或目標:「來自 ISP 網域的流量」、「來自 IP 位址的流量」、「子目錄獲得的流量」、「主機名稱獲得的流量」
  • 選擇運算式:「等於」、「開頭為」、「結尾為」、「包含」

[Google Analytics] 搜尋字詞排除清單

GA 有一個功能叫「搜尋字詞排除清單 (Search Term Exclusion List)」,功能在於當使用者搜尋某個關鍵字時(例:uivacation),而 uivacation 這個詞有設定在「搜尋字詞排除清單」裡面的話,該流量就會歸類至「直接流量(Direct)」當中;若沒有設定,該流量預設會是算在「自然搜尋(Organic)」當中。

設定的地方在:管理 → 資源 → 追蹤資訊 → 搜尋字詞排除清單,如下圖:

Screen Shot 2015-09-04 at 3.59.05 PM

至於這功能的用意,在於有些使用者可能不記得網站的網址,而記得品牌名稱,就會直接在搜尋引擎當中,輸入品牌名稱,然後進到那個網站,此時就可以利用「搜尋字詞排除清單」的功能,將這類流量歸類為「直接流量(Direct)」。

[Google Analytics] 啟用網站管理員工具資料

如果您將 GA 網站資源與「網站管理員工具」網站建立關聯,即可在 GA 報表中查看「網站管理員工具」資料,也可以將「網站管理員工具」直接與 GA 的報表建立關聯。

  • 管理→資源設定

Screen Shot 2015-04-15 at 3.35.44 PM

點選編輯:

Screen Shot 2015-04-15 at 3.36.42 PM

選擇一個你要建立關聯的網站。以上圖示所列出的網址,是已經有在”網站管理員工具“裡新增過的網站才會出現。若要新增,可直接點選”將網站新增至網站管理員工具“按鈕。

建立好後,會如下圖所示:

Screen Shot 2015-04-15 at 3.52.06 PM

最後按下儲存即可完成建立關聯了。

[Google Analytics] 設定加強連結歸屬

加強連結歸屬的功能預設上是關閉的。那麼加強連結歸屬又是什麼?要如何開啟呢?以及它的好處是?

什麼是加強連結歸屬

是一種加強版的連結追蹤功能。

啟用的好處

依據官方說法:

  • 如果某個特定網頁內,有多個連結,連到同樣的另一個網頁,您可以分別查看這些連結的相關資訊。
    舉例來說,如果某個網頁上有兩個連結連到「與我們聯絡」網頁,您可以分別查看與這兩個連結相關的點擊資訊。
  • 方便您瞭解某個網頁元素是否會連到多個不同的實際連結網頁。
    舉例來說,如果網頁上有 [搜尋] 按鈕,就可能連到多個不同的實際連結網頁。
  • 方便您追蹤由 JavaScript 驅動的按鈕、選單和動作。

在網頁上加入加強連結歸屬標記

在完全不做任何修改的狀態下,我們一般會載入如下的js:

  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-xxxxxxxx-x', 'auto');
  ga('send', 'pageview');

這時,只要再增加一行即可,如下紅色文字所示:

ga('create', 'UA-xxxxxxxx-x', 'auto');
ga('require', 'linkid', 'linkid.js');
ga('send', 'pageview');

為了盡可能確保連結歸屬正確,網頁上的每個連結都應該要有一個專屬的元素編號。也就是每個連結都要有 id 這個屬性。

啟用報表中的加強連結歸屬

更新追蹤程式碼後,請在資源設定中啟用加強連結歸屬:

  • 管理→資源設定

如圖:預設上是關閉的:

Screen Shot 2015-04-13 at 1.11.08 PM

請按一下後,使之啟用:

Screen Shot 2015-04-13 at 1.11.30 PM

最後在網頁最下方按下儲存即可。


在官網有以下說法:(這也是為什麼預設上會是關閉的原因,但我還是決定要啟用試試。)

加強連結歸屬提供更詳盡的報表,對於連到同一個實際連結網頁的點擊,則會列明網頁上實際產生該點擊的元素。這些額外詳情會延緩報表產生的速度,因此,建議您只在需要這些資料時才啟用這個選項。如果不再需要這些資料,則可以隨時停用這個選項。

 

文章參考:加強連結歸屬