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

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

google analytics cross domain tracking

這是因為 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 設定排除參照連結

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

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 帳戶,還是會無法延續追蹤資訊,只能共用 client_id ,但這意義不大,因為通常 client_id 都會設定成會員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 view data

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

心得

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