傳送 User-ID

使用者 ID 是您指派給個別使用者的專屬 ID。 本指南說明如何將使用者 ID 傳送至 Google Analytics,以便連結不同工作階段、裝置和平台的使用者行為。

如要進一步瞭解 User-ID 功能,請參閱「評估跨平台活動」一文。如要瞭解如何為應用程式設定使用者 ID,請參閱「設定使用者 ID」。

user_id 參數是設定參數,而非自訂使用者屬性或標準事件參數。user_id 是保留的系統參數,專門用於識別跨裝置和工作階段的已驗證使用者。請勿將其設為自訂使用者屬性 (例如在 gtag.js 的 user_properties 物件中,或在 Google 代碼管理工具代碼的「使用者屬性」部分),也不要在 Analytics UI 中將其註冊為自訂維度。同樣地,請勿將其做為個別事件的事件層級參數傳遞。請改用下列方法,將 user_id 設為設定參數。


事前準備

傳送使用者 ID 前,請務必完成下列事項:

傳送 User-ID

您為 user_id 傳送的值取決於使用者狀態:

  • 使用者從未登入:請勿傳送 user_id 參數。
  • 使用者已登入:傳送使用者 ID。
  • 使用者已登入,然後登出:傳送 null。

步驟 1:更新資料層

將使用者 ID 傳送至 Analytics 之前,請先在網站的資料層中提供 user_id。

您可以在載入網頁期間或網頁載入後 (例如使用者登入時) 更新資料層。每次呼叫 dataLayer.push 時,任何相關聯的代碼管理工具代碼都會收到更新後的 user_id。

重點:為確保 user_id 與初始網頁瀏覽事件和所有後續事件相關聯,您必須在網頁上的 Google 代碼管理工具容器片段「上方」(之前) 宣告資料層並推送 user_id。如果 user_id 是在 GTM 程式碼片段「之後」推送,則代碼在容器載入事件觸發時,將無法使用該變數。

if (/* your logic for determining if the user is signed in */) {
  dataLayer.push({
    'user_id': 'USER_ID'
  });
} else if (/* your logic for determining if the user signed out */) {
  dataLayer.push({
    'user_id': null
  });
} else {
  // Do nothing if the user never signed in.
}
  1. 將註解替換為檢查使用者是否已登入,以及使用者是否已登入但隨後登出。
  2. 如果使用者已登入,請將 USER_ID 替換為他們的使用者 ID。
  3. 使用者登出時,請將 user_id 設為 null。請勿傳送空字串 ("")、空白字串 (" "),或引號內的字詞 "null" 或 "NULL"。

步驟 2:建立資料層變數

  1. 在 Google 代碼管理工具中,按一下「變數」。
  2. 在「使用者定義的變數」部分,按一下「新增」。
  3. 依序按一下「變數設定」>「資料層變數」。
  4. 在頂端輸入變數名稱。
  5. 在「資料層變數名稱」欄位中,輸入使用者 ID 變數的名稱 (例如「user_id」)。
  6. 按一下「儲存」。

步驟 3:修改 Google 代碼

最後,修改「設定」代碼,讓與該代碼相關聯的所有事件都使用資料層變數:

  1. 在代碼管理工具中,按一下「標記」選單項目「Tags」(代碼)。
  2. 選取 Google 代碼。
  3. 在「Configuration settings」(配置設定) 部分下方,新增一列並加入下列參數:
    • 參數:user_id
    • 值:選取您建立的資料層變數。
  4. 按一下「儲存」。
  5. 按一下「提交」,發布變更。

Google Analytics 如何使用 User-ID

將 user_id 值傳送至 Google Analytics 後,系統會用於:

  • 整合使用者歷程:連結已登入使用者在不同工作階段、裝置和平台上的活動。
  • 改善使用者人數:提供更準確、不重複的使用者指標。
  • 啟用分析功能:
    • 根據登入狀態分析活動:使用「已使用 User-ID 登入」等維度,在標準報表中建立比較項目,或在「探索」中建立區隔。
    • 支援使用者多層檢視探索技巧,可讓您細查個別使用者的活動時間軸。

重要注意事項

  • 請勿為 User-ID 建立自訂維度:請勿將 user_id 註冊為以使用者為範圍的自訂維度。這是重要的最佳做法。這樣做會建立不必要的高基數維度,嚴重影響報表成效,導致資料歸入「(其他)」列,並耗用自訂維度配額。內建的 User-ID 功能會處理使用者拼接。詳情請參閱「User-ID 的最佳做法」一文。

  • 將 user_id 設為配置設定,而非使用者屬性或事件參數: 由於 user_id 是保留的系統參數,因此只能做為配置或設定參數 (使用 gtag() config 或 set 指令,或 Google 代碼管理工具的 Google 代碼配置設定)。請勿將其設為自訂使用者屬性、在 user_properties 設定物件中傳遞,或在個別事件中做為事件層級參數傳送。

  • 標準報表與探索中的 Direct ID 顯示設定:為維護隱私權及管理基數,原始 user_id 值無法做為標準報表或大多數探索 (例如任意形式) 的標準維度。不過,您可以在「使用者多層檢視」探索範本中,查看已登入使用者的原始 user_id (位於「有效使用者 ID」欄)。

  • 存取原始使用者 ID:如需使用原始 user_id 值進行分析,建議使用 GA4 BigQuery Export。匯出的資料中提供 user_id 欄位。

為確保系統使用 User-ID 資料,且資料會顯示在使用者多層檢視中,請確認資源的報表識別資訊設為「混合」或「觀測」。