運用Universal Analytics和Google Tag Manager進行用戶級別的跟踪

Photo of author
Written By CMO

我們在進行數字分析的時候是否會遇到這樣的麻煩?用戶可能同時會在兩個設備上登錄並使用你的網站,同一個用戶又可能在不同時間使用不同設備來使用你的網站。這是數字分析中最難的問題之一。本篇我們將通過實例給出一種跟踪方法。

這是一個需要不依靠Cookie解決的問題
這是一個需要不依靠Cookie解決的問題

前提準備條件

首先你需要將你現有的Google Analytics升級到Universal Analytics。如果你已經是UA了,那我們可以接著進行設置。如果你還在舊版本的GA,那請看這裡,升級GA到UA。 User ID功能實際上是UA區別於GA的重大突破,這是Web Analytics從傳統跟踪過渡到新手段的重要進步。我們曾在很早之前說先不要急著升級到UA,考慮到dc.js還不支持。現在這個顧慮已經沒有了,因為UA已經支持dc.js了。你可以放心地升級。

另外,你需要有自己的用戶管理系統。說得直白點就是訪客可以進行登錄。

最後,你需要一個Google Tag Manager(GTM)的賬號。

準備完成後,我們就開始。

在GA後台的工作

在Admin界面中選擇網站的PROPERTY->Tracking Info->User-ID。 Google會問你是否同意他們的隱私協議和使用條件。這裡要注意,你不可以將用戶的個人訊息(電話,姓名,電郵)上傳給GA。後果是被刪號!這裡HubSpot One數字行銷建議大家僅僅通過UserID字符串來標記用戶。同意之後,GA會告訴你部署UserID的簡單方法。也就是加一行代碼。這裡的{{USER_ID}}是你自己的用戶管理系統中的用戶ID。你把這個用於標記用戶身份的唯一的值傳給GA之後,GA便會通過它來識別各個設備中用戶身份了。這裡的’&uid’是指Universal Analytics裡面tracker對象的一個域’&uid’也可以用’userId’,沒區別。每次讀取一個頁面的時候只要調用:

ga(‘set’, ‘&uid’, {{12345678}});

所有的行為就被記錄到這個用戶賬簿上。在調用GA跟踪代碼時你也可以在Create階段設置UserID,如:

ga(‘create’, ‘UA-XXXX-Y’, {‘userId’: ‘12345678’});

不過這樣的話,在某些調用Ajax的情況下就不會在之後起作用。 (假設調用Ajax之後用戶完成了登錄,此時應該再Set一下。)

Session Unification在這裡是指會話的合併。如果開啟(默認開啟),在一次訪問中只要出現登錄狀態,這次訪問的所有行為都會歸為此用戶行為。

最後是要新建一個視圖,這個視圖會開啟一些新的報表。

需要注意的是,GA並不會在用戶瀏覽器的Cookie中儲存任何UserID訊息(受隱私政策約束),而且GA報表不會告訴你誰是誰,而僅僅在於誰和誰其實是一個人。為了更好地了解誰是誰,我們需要進一步做GA的設定。這裡用到的就是Custom Definitions。

在Admin中的PROPERTY->Custom Definitions裡點Custom Dimensions。之後新建一個“MemberID”(為了區別UserID)。把Scope設為User。這就會在用戶的Cookie添加這個字段了。我們先不用考慮如何給它賦值。先留著,我們先講GTM端的工作。

在GTM後台的工作

我們簡單介紹下GTM,GTM主要有Tag、Rule和Marco構成。即標籤、規則和宏。宏是一些約定或自定義的變量,標籤在滿足規則時觸發。

我們先建一個規則,這個規則是所有頁面。就是說所有頁面都會自動觸發我們需要的標籤。如下圖所示:

用正則表達式選取所有頁面
用正則表達式選取所有頁面

然後新建一個標籤。標籤的類型選擇Universal Analytics。這裡要在Tracking ID填入你的Property ID。如果你想看訪客的年齡性別興趣愛好也把

Enable Display Advertising Features勾上。 Track Type選擇PageView。然後去More Settings裡選擇Fields to Set。如果你想跟踪100%頁面作為樣本就填入siteSpeedSampleRate和100。下面說重點了:

  1. 添加(Add Field)一個字段&uid,值就是{{MemberID}}這裡的MemberID是一個宏。我們稍後再建。
  2. 再添加一個字段dimension1(記不記得我們剛剛在GA自定義過?),值也是{{MemberID}}。
  3. 在右上角有一個Firing Rules,把我們前面建好的規則設置好。

保存這個標籤。我們再回頭來建一個MemberID。如果你的用戶管理系統會為每個登陸後的頁面產生帶UserID的URL,如:

https://hubspot.one/? uid =12345678

那可以按下圖的例子新建這個宏:

新建宏獲取MemberID
新建宏獲取MemberID

如果不是這樣的話你可以使用Data Layer Variable,再請你的開發人員把MemberID通過JavaScript傳遞給這個宏,記得要放在GTM標籤和<body>之間:

<body>
<script>
dataLayer = [{
‘memberID’: ‘12345678’
}];
</script>
<!– Google Tag Manager –>

<!– End Google Tag Manager –>
利用Data Layer獲取Macro值
利用Data Layer獲取Macro值

這樣我們就大功告成了。製作這個版本並發布這個版本吧。最後要提醒一句,別忘了加GTM代碼到你的網頁中哦!

工作原理

當登錄用戶訪問頁面時MemberID宏將獲得用戶的ID並把值傳遞給&uid(GA默認域)和MemberID(自定義域)。這樣每個訪問,每次頁面瀏覽都會有它的主人。你可以辨識訪客究竟是誰,她到底用哪些設備訪問你的網站等這些以前無法獲取的訊息,從而更好地優化體驗提高轉化。

除此之外你還可以獲取更多訊息,也可以通過GA的一個叫Data Import的功能通過關鍵域MemberID把更多的用戶訊息導入GA。比如用戶是同過什麼搜索關鍵字註冊你的網站的,用戶是從哪個網站點擊來成為你的會員的。不過千萬不要透露用戶隱私哦! !

如何做得更簡單呢?

我們經常可以看到某某網站上有“歡迎你回來,某某”。其實這裡我們可以利用前端顯示的用戶名進行抓取。我們可以使用一種叫做DOM Element類型的宏獲取特定id元素內的文字並返回給GA,從而繞過Data Layer。具體的方法就不再贅述。但需要注意的是UA標籤要分成兩種規則狀態來寫,因為當用戶名為空時,我們並不希望覆蓋原來的用戶名。