Google分析做使用者行為研究初探:加入使用者ID / How to Send User IDs to Google Analytics
Google分析可以保存相當多網頁操作記錄,並且以簡單、美觀的儀表板呈現。很多數位學習系統都直接整合Google分析,例如Moodle。但是Google分析預設會將使用者匿名、模糊處理,這樣子研究分析時就無法分辨是哪一位受試者的操作。我們其實可以將系統中明確的使用者ID加入Google分析中,成為Google分析的一個自訂維度。以後就可以根據使用者ID來分析使用者行為了。
Google分析中自訂的使用者ID / Custom User ID Dimension in Google Analytics
Google分析提供了「自訂維度」的功能,可以讓我們將使用者ID視為一個新增的維度,然後每次呼叫Google分析時都一併傳送使用者ID維度的資料。
本篇的做法主要來自於「Tutorial: How to send user IDs to Google Analytics」,主要操作都在YouTube影片上。但是這個設定稍嫌繁瑣,比起慢慢播放的影片,我還是比較喜歡像是說明書的圖文解說。所以我就重新整理成這一篇的內容。
總之,要在Google分析中加入使用者ID的做法主要分成三個步驟,加入完成之後我們還可以用自訂報表來檢視各別使用者的操作。以下先來說明如何設定吧。
1. 自訂維度: Custom User ID / Custom Dimension: Custom User ID
首先,請進入你的Google分析頁面。
在管理中,選擇指定的帳戶與資源。
在「自訂定義」底下找到「自訂維度」。
按下「新增自訂維度」。
在新增自訂維度表單中設定如下:
- 名稱:Custom User ID (可以改成自己想要的名稱)
- 範圍:使用者
- 有效:(打勾)
然後按下「建立」按鈕。
這時候會取得維度的範例程式碼。以JavaScript為例,範例程式碼可能是:
var dimensionValue = 'SOME_DIMENSION_VALUE';
ga('set', 'dimension1', dimensionValue);
這邊要特別注意「dimension1」的這個參數。如果你之前尚未建立過的自訂維度,那麼這裡都會是預設的「dimension1」。如果你建立過其他自訂維度,這時候可能就會變成「dimension2」。這會影響到我們後面設定使用者ID的程式碼,請自行注意。
讓我們按下「完成」按鈕吧。
自訂維度中出現了「Custom User ID」,這個步驟算是完成了。
2. 啟用User-ID功能 / Enable User-ID Feature
除了自訂維度之外,你還可以啟用User-ID功能。這也能夠讓Google分析記錄使用者ID。User-ID的設定位置藏的很隱祕,在「資源 > 追蹤資訊 > User-ID」裡面。請進入之後啟用所有功能吧。
雖然這篇教學並沒有提到如何啟用User-ID,但是在下面的追蹤程式碼裡面卻用到了這個功能,所以我特別找找看怎麼設定。
3. 設定追蹤程式碼 / Setup Tracking Code
接下來就要修改系統使用Google分析的程式碼。
跟原本追蹤程式碼不一樣的地方,在於我們要加入一個customUserId的變數,然後將之輸入到追蹤程式碼中:
<script type="text/javascript">
var customUserId = "USER_ID"; // 輸入系統的使用者ID
// 標準的Google分析追蹤程式碼
(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-XXXXXX-Y', {'userId': customUserId}); // 如果有開啟User-ID功能
ga('require', 'displayfeatures');
ga('set', 'dimension1', customUserId); // 加入自訂維度customUserId
ga('send', 'pageview');
</script>
我只是簡化了這篇教學的程式碼而已。
其中上面的customUserId被設定為寫死的參數,而且這是JavaScript程式碼,這要怎麼跟後端程式語言(如PHP)結合呢?這時候我們就要把後端程式碼適時地安插到JavaScript中。舉例來說,如果系統在PHP中將使用者ID記錄在$_SESSION["user_id"]中,那麼這裡的寫法就可以換成:
var customUserId = "<?php echo $_SESSION["user_id"]; ?>";
將Google分析程式碼設定完成,並且上傳到伺服器之後,我們就可以讓Googlep分析自己蒐集資料了。
確認使用者ID記錄到Google分析 / Check Custom User ID in Google Analytics
經過上面步驟設定之後,到底有沒有成功呢?這有點難說,因為Google分析的資料一般來說不會立即顯示,我們很難立即確認自己設定的是否正確。有一說法是說Google分析蒐集的資料至少要等3個小時才能正常顯示,但我覺得可能是24小時比較可信。
如果照上面的步驟設定之後,你的Google分析應該會自動保存使用者ID的資訊了。接下來讓我們看看要怎麼使用它。
使用次要維度 / Secondary Dimension
因為使用者ID被記錄在自訂維度「Custom User Id」當中,所以我們可以在任何報表裡面使用這個維度,進一步細切資料。在此以「行為 > 網站內容 > 所有網頁」為例,我們來看看熱門網址中有那些使用者觀看。
在所有網頁下面的列表可以看到時常被瀏覽的網頁,但我們想看更細的資訊。
點下「次要維度」,選擇「自訂維度 > Custom User ID」。
這時候就會多一欄「Custom User ID」,可以將網頁裡面有瀏覽的使用者資訊進行細分。
使用自訂報表 / Custom Report
前者的做法是以其他維度為主、使用者ID為副的檢視方式。如果我們想要以使用者ID維度為主的檢視,那就要用「自訂報表」功能。
請切換到「自訂」中,進入「總覽」,在自訂報表列表中按下「+新增自訂報表」。
報表設定中,除了名稱之外,我們主要要設定的內容有3項:
- 類型:無格式資料表。這種類型輸出的報表最單純、也最容易自訂。
- 維度:請新增「自訂維度 > Custom User ID」。
- 指標:這裡必須選擇一個可以輸出數值的指標,我們先以最簡單的「行為 > 入站」作為示範。
報表其他資料設定完成,按下「儲存」。
這樣就能產生一個以Custom User ID為主,統計「入站」指標的報表了。
結語 / Conclusion
Google分析是一個易用難精的工具。乍看之下會覺得Google分析功能複雜、記錄詳細,好像什麼想要的分析都能做,但實際上真的想要分析的時候,卻常常不知如何下手。Google分析只要嵌入簡單的追蹤程式碼就能蒐集資訊,不過要如何活用裡面的資料,則不是一件簡單的事情。
我在多年前就已經在各個系統裡面嵌入Google分析的追蹤程式碼,「布丁布丁吃什麼?」blog也有使用Google分析,但是至今我還是覺得自己很不會用這個工具,覺得它相當難以駕馭。
最近在閱讀Google分析的相關教學時,才赫然發現它能夠做的事情出乎我意料之外的多。除了這篇所提到使用者ID記錄之外,它還能記錄我們自己定義的事件(event)。有興趣的讀者可以參考這一篇[Google Tag Manager教學]Event事件追蹤-分析網站連結點擊量,簡直什麼都使用者活動能記錄,實在太過強大。
如果這樣看來,現今數位學習流行的巨量資料儀表板這個議題,其實也可以使用Google分析來做。關鍵技術包括:
- 使用者ID識別:可以用本篇所講的方法來記錄。
- 事件追蹤:可以參考Google Tag Manager教學。
- 自訂儀表板:使用Google數據分析(Data Studio),可參考將GA套用Data Studio套版,自訂Dashboard與報表更視覺化這篇的介紹。
我嘗試用Data Studio建立一個簡單的表格,的確很快就可以做一個自己想要的報表出來,其實還蠻簡單的。Data Studio操作資料的邏輯比較像是資料庫,跟Google分析的多維度報表不同,熟悉資料庫操作的人會覺得親近許多。
此外,Google分析不只用在網頁上,還能應用在Android或iOS等系統中。如果熟悉Google分析的話,還能免費參加Google分析認證考試GAIQ。想成為網頁行為分析大師的話,Google分析應該是一項相當直得投資的技能。未來應該還有很多機會跟Google分析打交道,請各位先進多多指教了。