[Google Analytics] 簡單三步驟,一次搞懂GA的跨網域追蹤 (Cross-Domain Tracking)

google-analytics-cross-domain-tracking_feature

簡介
簡單三步驟,馬上設定好GA跨網域追蹤!當你有兩個以上的網域想綁在一起分析,跨網域追蹤就是你的最佳與唯一解答;最常見的例子像是第三方購物車和電商網站等。本篇文章不只告訴你跨網域追蹤的最佳設定方法,還會藉此機會詳述GA的基本原理,廢話不多說,趕快進入文章吧,保證物超所值!

段落:
ㄧ、步驟1:在追蹤碼中加入 Linker
二、步驟2:設定參照連結網址排除清單
三、步驟3:建立資料檢視並添加篩選器
四、跨網域追蹤的帳戶架構

 


 

如果你需要的是子網域追蹤(sub-domain tracking),並正在使用 analytics.js 的追蹤程式碼,你不需為了追蹤子網域進行任何額外設定。

 

在開始之前,先來大致解釋一下這三個步驟分別是要解決哪些問題:

  1. 第一個步驟(設定Linker)是為了讓網域之間可以共享client ID
  2. 第二個步驟(設定參照排除)是要讓網域彼此不把對方視為參照連結
  3. 第三個步驟(添加篩選器)是為了在報表中能分辨出不同網域的URL

 

ㄧ、步驟1:在追蹤碼中加入 Linker

假設我們要做跨網域追蹤的兩個網域名稱為 abc.comxyz.com。首先,我們要讓 abc.com 和 xyz.com 的追蹤資料都傳送給同一個資源(property);想當然爾,要達到這個目標,就必須將同一組GA追蹤碼貼在這兩個網域裡,或者是說,讓這兩個網域的GA追蹤碼都指向同一個追蹤ID(tracking ID)。

然而,事情不可能這麼簡單就結束。abc.com 和 xyz.com 還無法互相溝通,這會使得它們無法比對出共同的使用者。當某位使用者瀏覽 abc.com時,abc.com 會為他取一個「名字」,但當他連去 xyz.com 時,xyz.com 也會為他取另一個「名字」;xyz.com 雖然知道他來自 abc.com,但並不知道他在那裡被取了什麼「名子」。所以,當我們把 abc.com 和 xyz.com 的資料合起來看的時候,我們會發現同一個人卻擁有兩個「名字」,一個是 abc.com 給的,一個是 xyz.com 給的。


所謂「名字」,其實就是一個GA的 cookie。GA藉由在不同使用者的 cookie 上存放不同的值,它就能分辨來自不同使用者的流量。

這個 cookie 的名稱是_ga,在GA裡稱為”Client ID”(客戶 ID)。如果你使用 Chrome,你可以在「設定>進階>內容設定>Cookie>所有 Cookie 和網站資料」中看到各個網站在你的瀏覽器存放的 cookie;在GA中,你可以透過「目標對象>使用者多層檢視」看到所有到過網站的使用者的 Client ID。

 

GA會將user A視為兩個不同的使用者
使用者在不同網域會被給予不同的 Client ID,造成GA將同一位使用者視為兩位

 

如果 abc.com 和 xyz.com 使用同一組GA追蹤碼,但未設定好跨網域追蹤的話,當某位使用者瀏覽了 abc.com,abc.com 會給他一個 Client ID,當他連到 xyz.com 的時候,xyz.com 又會給他另一個 Client ID;此時,GA會將這位使用者在兩個網域的瀏覽行為視為兩個不同的使用者。

要解決這個問題,我們必須在追蹤碼中加入 Linker

若 abc.com 網域用 Linker 指定 xyz.com,使用者從 abc.com 導向 xyz.com 時,他在 abc.com 的 Client ID 就會跟隨他一同被帶過去 xyz.com,讓 xyz.com 也用同一組 Client ID 來識別他。透過兩個網域互相用 Linker 指定對方,他們就可以共用同一套 Client ID,完成跨網域追蹤最重要的一個步驟。

 

設定Linker後,所有網域都能共用一套Client ID來識別每一位使用者
設定 Linker 後,Client ID 會跟隨使用者連到其他網域,讓其他網域也能共用一套 Client ID 來識別每一位使用者

 

Linker 要怎麼設定呢?你必須在GA原始追蹤碼中找到以下這一段:

ga('create', 'UA-XXXXXXX-Y', 'example-1.com');
ga('send', 'pageview');

並將它替換成以下這一段

ga('create', 'UA-XXXXX-Y', 'auto', {allowLinker: true});
ga('require', 'linker');
ga('linker:autoLink', ['xyz.com']);
ga('send', 'pageview');

{allowLinker: true}:允許其他網域 link 自己
ga('require', 'linker');:載入 Linker API
ga('linker:autoLink', ['xyz.com']);:指定 link 到 xyz.com(此例為 abc.com 用的 code;若是 xyz.com,這邊的欄位裡就要填 abc.com。若要設定三個網域以上的跨網域追蹤,要把 link 的其他網域都放上去)

 

當設定完成後,使用者從 abc.com 連到 xyz.com 時,就會發現URL最後面會多一段”?_ga=xxxxxxxxxx”

URL截圖

沒錯!Linker 就是用這個方法將使用者的 Client ID 從一個網域帶到另一個網域。如果你可以成功在跨網域互連的時候看到URL後面多出的這一段 Client ID,也就表示你的Linker設定成功囉!

想要看 Linker 的更詳細說明,請前往這裡這裡

 

二、步驟2:設定參照連結網址排除清單

完成 Linker 的設定之後,接下來還要完成兩個也很重要的步驟,才能讓報表中的跨網域資料更準確和整潔。

在GA的「客戶開發>所有流量>參照連結網址」中,我們可以看到使用者都是從哪些網站連過來的,例如,當使用者從 youtube.com 點入 abc.com 時,他的參照連結就顯示”youtube.com”。

然而,當這位使用者接著從 abc.com 連向 xyz.com 的時候,他的參照連結會變成 abc.com,而且會被GA視為一次新的進站,開啟一個新的工作階段。

什麼?Nonono,這絕對不是我們想要看到的結果。既然我們都已經要把 abc.com 和 xyz.com 視為同一個網域來追蹤,我們就不會希望在參照連結報表裡面還看到 abc.com 或 xyz.com,因為在跨網域追蹤裡面,這都算是網域內的互連。

幸好,我們可以透過設定參照連結網址排除清單來解決這件事。在GA中找到「管理員>資源>追蹤資訊>參照連結網址排除清單」,並將所有需設定跨網域追蹤的網域名稱都加上去,就算設定完成了。

 

參照連結網址排除清單
管理員->資源->追蹤資訊->參照連結網址排除清單

 

將網域加入這個清單會發生什麼事呢?凡是從這個排除清單上的網域連過來的流量,GA都會將它視為直接(direct)流量,因此,完成這個設定後,當參照連結原本是 youtube.com 的流量從 abc.com 連到 xyz.com 時,他的參照連結不會很不合理地從 youtube.com 變成 abc.com,因此也不會開啟一個新的工作階段。

想看更多排除參照連結網址的資訊,請點這裡

 

三、步驟3:建立資料檢視並添加篩選器

在GA的行為報表中,網頁名稱的欄位並不會顯示網域名,例如abc.com/home就會只顯示”/home”,abc.com/apple/banana就只會顯示”/apple/banana”。

省略網域名雖然簡潔易懂,但當我們使用跨網域追蹤時,因為有多個網域,會造成一個麻煩:我們不知道該網頁是屬於哪一個網域。舉例來說,若有abc.com/home和xyz.com/home兩個網頁,這兩者在GA報表中卻都會顯示為”/home”,如此一來我們便無法分辨這個”/home”到底指的是 abc.com 還是 xyz.com。

要克服這個問題,比上面兩個步驟都容易,只要在「管理員>資料檢視>篩選器」中進行一些設定,跨網域追蹤就大功告成了。

找到資料檢視的篩選器後,請進行以下設定:

設定篩選器
照以上設定篩選器,讓報表內顯示網域名稱

然後按下「儲存」,登愣!我們就可以在GA報表中看到網域名稱啦!是不是很神奇?這樣在分析資料時就不會看著一堆霧煞煞的網頁名稱了。

跨網域追蹤三步驟就到這告一段落,但先別急著走,還有一件非常非常重要的事還沒有提醒大家,趕快來看最後一段的 last but not least 吧!

 

四、跨網域追蹤的帳戶架構

完成上面三個步驟,跨網域追蹤就算圓滿地設定好了。最後,讓我們把這個主題拉到帳戶架構的層級來看,探討一下要怎麼用最正確的方式讓跨網域追蹤的資料與各別網域的追蹤資料共存?

通常,我們都會希望在做跨網域追蹤的同時,同時保留各自網域的追蹤資料;有兩種方法可以完成這件事:

  1. 在跨網域追蹤的資源下,爲每個網域創建各別的資料檢視,並在資料檢視內利用篩選器將其他網域的流量排除
  2. 為每個網域各別創建資源;也就是說,各別網域除了要將資料傳給跨網域追蹤的那個資源外,還要傳給自己專屬的那個資源

 

兩種跨網域追蹤的帳戶架構比較
兩種跨網域追蹤的帳戶架構比較

 

請記得,一個資源搭配一個追蹤ID,且參照連結排除清單是在資源層級設定。

採用第二種方法會是一個比較好的選擇。為什麼呢?因為在第一種方法之下,全部的資料檢視必須共用跨網域追蹤的排除參照連結設定,且每個網域都在參照連結的排除清單上;這會導致在各別網域專屬的資料檢視中,來自其他網域的流量全部會變成(direct)/(none),嚴重扭曲了原本的追蹤資料。

所以,第二種方法雖然稍微麻煩一點點點,但它才是最一勞永逸的方案。很多人會有「其實兩種方法都行得通耶,那應該是都可以吧……」的想法;要小心,只要多想一步,就會發現其實第一種方法暗藏著危險的漏洞。

最後一個小提醒,用第二種方法時,同一頁面要貼上多個追蹤ID的話要使用Tracker呦!本篇教學文到此正式結尾,若有任何問題請在下方留言,小弟我會盡快回覆。謝謝各位的閱讀,相信大家之後聽到要做「跨網域追蹤」的時候,都能擁有一種「這沒什麼,a piece of cake 啦」的自信!

 

參考資料
設定跨網域追蹤 – Analytics (分析)說明
Linker | Analytics for Web (analytics.js) | Google Developers
How to Quickly (and Correctly) Track Google Analytics Across Multiple Domains – Moz

office hour PD 腸粉專屬 Office Hour

對以上的教學有些疑問?
文章讀完了,但自己設定時卻不斷卡關?
挑食消化道限時提供免費諮詢服務!
趕快來聊聊!
contact
contact
(或私訊粉絲專頁)

PD另外提供廣告代操、追蹤碼安裝與除錯、網站分析專業顧問等服務,歡迎來信詢問合作細節

office hour 請 PD 喝杯咖啡

產出高品質的內容其實不容易
您的支持與肯定會是 PD 支持下去的最大動力!
PD 的文章有幫助到您嗎?
不如考慮請辛苦的 PD 喝杯咖啡吧!
contact
contact
謝謝您❤