如果你有多個網站服務,每個服務又是各自在不同網域上,就會遇到一個棘手的問題,無法確切的追蹤使用者數據。或許你現在還沒遇到,但我來舉個例子讓你理解問題怎麼發生。

情境假設,你今天操作 google ads 的 landing page 是 example.com,但是使用者後續造訪頁面是 buyservice.com,你的 buyservice.com 上 google analytics 數據就會有問題,會在報表看到使用者的 參考來源 會是 example.com,而不是 google ads ,這樣就會無法正確估算 example.com 帶給 buyservice.com 的廣告效益。

這是因為 google analytics 數據是依賴 cookie 做定位使用者 (Client-ID),但是 cookie 有個限制, 同一個 cookie 只能在同 domain 下共同享有,所以跨網域就會斷掉追蹤數據,但還好 google analytics 有提供 跨網域追蹤 功能,讓我們解決這個問題。後面就來嘗試跨網域追蹤設定。

官方教學: 設定跨網域追蹤 (analytics.js)

google analytics 追蹤碼修改

需要找出你的 google analytics 設定追蹤碼,再針對 ga('create', 'UA-XXXXXXX-Y', '你的網址') 修改,需要改為 auto,並在後面加上 {‘allowLinker’: true} 參數,後面再加上 ` ga(‘require’, ‘linker’);` ,並加上 ga('linker:autoLink', ['相對應的 domain'] ),這樣就完成了設定。

傳統追蹤碼

  • example.com 修改追蹤碼
  ga('create', 'UA-XXXXXXX-Y', 'example.com');
  對這段程式碼進行下列變更 (紅色粗體文字是需要變更的部分)ga('create', 'UA-XXXXXXX-Y', 'auto', {'allowLinker': true});
  ga('require', 'linker');
  ga('linker:autoLink', ['buyservice.com'] );
  • buyservice.com 修改追蹤碼
ga('create', 'UA-XXXXXXX-Y', 'auto', { allowLinker: true });
ga('require', 'linker');
ga('linker:autoLink', ['example.com']);

tag manager 追蹤碼

如果你是用 tag manager 設定 google analytics 的話,在 google analaytics 追增設定內的欄位設定(Field),再增加 allowLinker 值 true,自動連結網址就填上要連動的網域。這樣就完成 tag manager 的設定了。記得 tag manager 的改動要提交更新。

google analytics cross domain tagmanager
google analytics cross domain tagmanager

google analytics 設定排除參照連結

當一個網站到另一個網站時,google analytics 會自動建立新的工作階段,如果要跨多個網域追蹤單一工作階段,要把相對應網域加進參照連結網址排除清單。

google analytics cross domain setting
google analytics cross domain setting

網址參數 _ga

完成設定之後,就可以測試看看效果如何,下方是完成設定的 demo ,如果你點擊連結 go to https://thawing-stream-74537.herokuapp.com/ 後,會發現網址多一段參數 ?_ga=2.189459235.924386874.1564911255-1438900564.1564911255 ,這就是 google analytics 傳遞 client_id 的參數,依賴這參數可以讓工作階段在跨網域下不中斷。

共用 google analytics 追蹤代碼

如果你是分開兩個 google analytics 帳戶,還是會無法延續追蹤資訊,只能共用 clientid ,但這意義不大,因為通常 clientid 都會設定成會員 id,所以網站通常都會共用 client_id,所以我們要再多額外開一個檢視資料,產生一組新的追蹤代碼,讓兩個互相跨 domain 網站共用。

這樣就發現我們把 utm 的追蹤資訊延續下去了,一般狀況沒設定 cross domain 共享 client_id 的話,會變成兩個 session,因為 cookie 無法共享,但這樣對於追蹤來說,就有非常大的幫助,我們不用在擔心數據掉落的問題。

報表檢視增加 domain

如果在檢視報表時,沒有顯示 domain 的話,會不方便直觀分辨網址的 domain 問題,因為 google analytics 預設不顯示 domain,我們要在設定增加顯示,以便我們觀看數據。

點選篩選器 => 自訂 => 進階,分別在前兩個 選擇主機名稱 內容填上 (.*),這代表我們要取全部的 domain name,請求 URI 則是 填上 (.*),取用全部請求網址,後面 輸出至 -> 建構函式 再分別選擇 URI,內容填上 $A1$B1,取用前面兩個條件拿到全部值。

  • google analytics 篩選器設定
    google analytics cross domain setting
    google analytics cross domain setting
  • 檢視報表
    google analytics cross domain view data
    google analytics cross domain view data

這樣就完成了整個設定,達到了跨網域追蹤的功能!

心得

雖然這跨網域追蹤一直以來都存在著,以前擔任行銷時,可惜沒有使用到這個功能,公司網址包含 blog 的話大概有 6 個,如果都有設定的話,就更能了解轉換的流程。以往都只能在站內連結上加上 utm,被動地去追蹤數據,但假設是 google ads 進來的流量,但到第二個 domain 成效歸屬就被認為是站內連結,模糊了數據的焦點。