OneID:建構跨平台用戶統一身份識別體系
摘要:OneID 把裝置、帳戶與聯絡方式等標識建模為節點,把可驗證的關聯關係建模為邊,再透過連通關係識別同一位用戶。
關鍵要點
- OneID 將設備、帳戶和聯絡方式等標識建模為節點,將可驗證的關聯關係建模為邊,再通過連通關係識別同一用戶。
- 高可信強關聯可以直接合併身份,低可信弱關聯應在多個證據達到閾值後再合併,以控制誤合併風險。
- 完整實施鏈路包括日誌接入、標識標準化、關聯計算、統一身份生成和雙向身份查詢。
- 跨平台身份歸屬需要同時建立資料授權、敏感標識保護、存取控制和可審計的合併規則。
一、什麼是 OneID
1.1 多設備時代的用戶識別挑戰
在數碼化時代,用戶在多個設備、多個平台留下足跡。同一用戶可能使用手機、平板、電腦等多種設備存取服務,在不同渠道註冊不同的帳號,產生大量分散的用戶標識資料。這些標識——手機號碼、設備 ID、電郵、IP 位址等——如同散落的拼圖碎片,難以拼湊出完整的用戶畫像。
如何準確識別「這是同一個用戶」,成為企業數碼化營運的核心挑戰。OneID 應運而生,它是一種基於連通圖原理的用戶統一標識體系,能夠將分散的用戶標識智能關聯,為每個自然人分配唯一的數碼身份。
1.2 核心原理:連通圖與併查集演算法
OneID 的理論基礎源於圖論中的連通圖原理。其核心思想是將分散的用戶標識抽象為圖中的節點,通過標識間的關聯關係構建邊,最終將屬於同一自然人的所有標識聚合為一個連通分量。
這個過程中,併查集演算法(Union-Find)發揮著關鍵作用。這是一種高效的資料結構演算法,用於處理元素分集合問題,支援快速查找和合併操作。通過併查集演算法,系統能夠快速判斷兩個標識是否屬於同一連通分量,並將相關聯的標識合併到同一個用戶集合中。
graph TD
subgraph 現實世界
A[自然人A]
B[自然人B]
C[自然人C]
end
subgraph 連通圖抽象
D[節點1(手機號碼138xxxx5678)]
E[節點2(設備ID=imei123)]
F[節點3(電郵user#example.com)]
G[節點4(手機號碼139xxxx1234)]
H[節點5(設備ID=imei456)]
I[節點6(MAC地址=aa:bb:cc:dd:ee:ff)]
J[節點7(IP=192.168.1.100)]
K[節點8(JA3=ja3hash123)]
%% 第一個連通分量(自然人A)
D -- "強關聯:登入綁定" --> E
E -- "強關聯:同設備" --> F
%% 第二個連通分量(自然人B)
G -- "強關聯:登入綁定" --> H
H -- "弱關聯:同IP" --> J
%% 孤立分量(自然人C)
K[節點9(MAC地址=ff:ee:dd:cc:bb:aa)]
end
A -->|對應| D
A -->|對應| E
A -->|對應| F
B -->|對應| G
B -->|對應| H
B -->|對應| J
C -->|對應| K1.3 核心概念
| 概念 | 說明 | 業務含義 |
|---|---|---|
| 節點(Node) | 單個用戶標識,如手機號碼、設備 ID、電郵 | 用戶標識的最小單元,每個節點有唯一 ID 和類型標識 |
| 邊(Edge) | 兩個標識間的關聯關係,如設備登入手機號碼 | 描述標識間的關聯性,包含關聯強度(強關聯/弱關聯) |
| 連通分量 | 通過邊直接或間接關聯的所有節點集合 | 代表一個自然人,屬於同一用戶的所有標識 |
| OneID | 為每個連通分量分配的唯一標識 | 該自然人的統一的數碼身份,關聯所有屬於他的標識 |
1.4 關聯規則:強關聯與弱關聯
標識間的關聯分為兩種強度,不同的關聯強度決定了合併策略:
| 關聯類型 | 定義 | 觸發場景 | 合併策略 |
|---|---|---|---|
| 強關聯 | 確定性關聯,可明確屬於同一用戶 | 手機號碼與帳號綁定、設備 ID 登入帳號、電郵綁定帳號 | 直接合併至同一連通分量 |
| 弱關聯 | 概率性關聯,可能屬於同一用戶 | 同一 IP 下的多設備、相同 JA3 指紋、短時間內同網絡環境出現 | 需多個弱關聯驗證(如共同出現≥5次)才合併 |
1.5 連通分量計算流程
OneID 的生成遵循以下流程:
- 節點初始化:每個用戶標識作為獨立節點,初始各自獨立
- 邊的載入:載入所有有效關聯邊,強關聯邊必載入,弱關聯邊僅載入滿足規則的
- 分量合併(併查集演算法):
遍歷所有邊,對每條邊的源節點和目標節點執行合併
4. 強關聯邊:強制合併兩個節點所在的分量
5. 弱關聯邊:僅當共同出現次數達到閾值時才合併
6. 合併後用根節點 ID 標記該連通分量
7. OneID 分配:基於連通分量的根節點 ID,通過雜湊編碼生成唯一 OneID,確保同一分量始終生成相同的 OneID
1.6 特殊場景處理
用戶多設備場景
用戶用手機和電腦登入同一帳號時,手機與帳號生成強關聯邊,電腦與帳號生成強關聯邊,三者合併為同一連通分量,生成唯一 OneID。
設備多用戶場景
家庭共用平板時,多人登入同一設備。系統根據使用時長判斷主用戶(如使用 60% 時長的用戶)和關聯用戶(使用 40% 時長的用戶),在輸出層標記設備歸屬,確保用戶行為資料的準確歸屬。
二、為什麼需要 OneID
2.1 業務痛點
| 痛點 | 說明 | 影響 |
|---|---|---|
| 用戶識別碎片化 | 同一用戶多設備、多帳號無法關聯 | 無法獲得完整用戶視圖,決策依據不完整 |
| 跨平台追蹤困難 | 用戶在 APP、小程式、官網等渠道行為割裂 | 漏斗分析失真,轉化路徑不清晰 |
| 重複行銷問題 | 同一用戶收到多次相同行銷推送 | 用戶體驗差,行銷資源浪費 |
| 風控識別盲區 | 虛假身份、批量註冊難以有效識別 | 業務風險增加,損失難以追回 |
2.2 OneID 的業務價值
| 價值維度 | 說明 |
|---|---|
| 用戶全景視圖 | 整合多源標識,構建完整的用戶畫像,深入瞭解用戶行為軌跡 |
| 精準行銷投放 | 準確識別用戶,避免重複行銷,提升轉化率和用戶體驗 |
| 風險行為識別 | 快速識別異常行為模式,有效防範虛假註冊、帳號盜用等風險 |
| 服務體驗提升 | 跨平台、跨渠道識別用戶,提供無縫一致的服務體驗 |
三、OneID 實作方案
3.1 整體架構
OneID 體系採用分層架構設計,通過「標識節點 → 關聯邊 → 連通分量 → OneID 映射」的資料流轉實現用戶統一標識。
| 層級 | 功能 | 說明 |
|---|---|---|
| ODS 層 | 原始資料接入 | 接入用戶註冊登入日誌、行為日誌、CDN 存取日誌等 |
| DWD 層 | 標識標準化 | 清洗原始資料,生成標準化的用戶標識節點 |
| DWS 層 | 關聯建模 | 構建標識間關聯邊,計算連通分量,生成 OneID |
| ADS 層 | 查詢服務 | 提供雙向查詢能力,支援「OneID 查標識」和「標識查 OneID」 |
3.2 資料表結構設計
ODS 層:原始資料接入
ods_user_register_login_df(註冊登入日誌表)
| 欄位名 | 欄位說明 | 範例 |
|---|---|---|
| log_id | 日誌唯一 ID | log_123456 |
| user_id | 用戶帳號 ID | user_789 |
| phone | 用戶註冊手機號碼 | 138xxxx5678 |
| 用戶聯絡電郵 | user@example.com | |
| device_id | 設備唯一標識 | device_abc123 |
| imei | 設備 IMEI 號碼 | imei_1234567890 |
| mac | 設備 MAC 位址 | aa:bb:cc:dd:ee:ff |
| ip | 登入 IP 位址 | 192.168.1.100 |
| login_type | 登入方式 | PASSWORD、SMS |
| event_time | 事件發生時間 | 2025-07-22 08:30:00 |
ods_user_behavior_df(用戶行為日誌表)
| 欄位名 | 欄位說明 | 範例 |
|---|---|---|
| log_id | 日誌唯一 ID | log_456789 |
| user_id | 登入用戶 ID | user_789 |
| device_id | 設備唯一標識 | device_abc123 |
| action | 行為類型 | VIEW、CLICK、PURCHASE |
| page | 頁面名稱 | HOME、DETAIL |
| ip | 存取 IP 位址 | 192.168.1.100 |
| event_time | 事件發生時間 | 2025-07-22 09:15:00 |
ods_cdn_access_df(CDN 存取日誌表)
| 欄位名 | 欄位說明 | 範例 |
|---|---|---|
| log_id | 日誌唯一 ID | log_789012 |
| url | 存取的 URL 位址 | https://example.com/index.html |
| ip | 存取來源 IP | 192.168.1.100 |
| ja3 | JA3 TLS 指紋 | ja3_hash_123456 |
| ja4 | JA4 TLS 指紋 | ja4_hash_789012 |
| user_agent | 用戶代理字串 | Mozilla/5.0… |
| device_id | 設備標識 | device_abc123 |
| request_time | 請求時間 | 2025-07-22 10:00:00 |
DWD 層:標識節點標準化
dwd_user_identity_node_df(用戶標識節點表)
| 欄位名 | 欄位說明 | 範例 |
|---|---|---|
| node_id | 標識節點唯一 ID(UUID) | node_8f7e6d5c-4b3a-2109-8765-4321abcdef |
| identity_value | 標準化標識值(手機號碼已脫敏) | 138****5678、imei123456 |
| identity_type | 標識類型(PHONE/DEVICE/EMAIL/IP/JA3) | PHONE |
| user_id | 關聯的用戶帳號 ID | user_789 |
| source | 資料來源(REGISTER_LOGIN/BEHAVIOR/CDN_ACCESS) | REGISTER_LOGIN |
| is_valid | 標識是否有效(已驗證/未驗證) | true |
| first_seen_time | 該標識首次出現時間 | 2025-07-01 08:00:00 |
| last_seen_time | 該標識末次出現時間 | 2025-07-22 09:30:00 |
DWS 層:連通圖建模
dws_user_identity_edge_df(用戶標識關聯邊表)
| 欄位名 | 欄位說明 | 範例 |
|---|---|---|
| edge_id | 關聯邊唯一 ID | edge_1a2b3c4d-5e6f-7g8h-9i0j-1k2l3m4n5o6p |
| source_node_id | 源節點 ID | node_8f7e6d5c… |
| target_node_id | 目標節點 ID | node_1a2b3c4d… |
| relation_type | 關聯類型(STRONG 強關聯/WEAK 弱關聯) | STRONG |
| relation_reason | 關聯原因說明 | 登入綁定、同設備、同 IP |
| start_time | 關聯生效時間 | 2025-07-22 10:00:00 |
| end_time | 關聯失效時間 | 9999-12-31 23:59:59 |
dws_user_oneid_component_df(用戶 OneID 連通分量表)
| 欄位名 | 欄位說明 | 範例 |
|---|---|---|
| oneid | 統一用戶標識(雜湊編碼生成) | oneid_8f7e6d5c |
| node_id | 連通分量內的節點 ID | node_8f7e6d5c… |
| identity_value | 節點對應的標識值 | 138****5678、imei123456 |
| identity_type | 標識類型 | PHONE、DEVICE |
| user_id | 關聯的用戶帳號 ID | user_789 |
| is_primary | 是否為主標識(手機號碼/用戶 ID 為主標識) | true |
| join_time | 節點加入連通分量的時間 | 2025-07-22 11:00:00 |
ADS 層:查詢服務
ads_user_oneid_to_identity_df(OneID → 標識映射表)
| 欄位名 | 欄位說明 | 範例 |
|---|---|---|
| oneid | 統一用戶標識 | oneid_8f7e6d5c |
| identity_type | 標識類型 | PHONE、DEVICE、EMAIL |
| identity_value | 標識值(已標準化) | 138****5678、imei123456 |
| is_primary | 是否為主標識 | true、false |
| join_time | 標識加入 OneID 的時間 | 2025-07-22 11:00:00 |
| is_valid | 標識是否有效 | true、false |
ads_user_identity_to_oneid_df(標識 → OneID 映射表)
| 欄位名 | 欄位說明 | 範例 |
|---|---|---|
| identity_value | 標識值(已標準化) | 138****5678、imei123456 |
| identity_type | 標識類型 | PHONE、DEVICE |
| oneid | 對應的 OneID | oneid_8f7e6d5c |
| relation_type | 關聯類型 | STRONG、WEAK |
| is_primary | 是否為主標識對應的 OneID | true、false |
3.3 核心處理邏輯
標識標準化處理
從原始日誌中提取各類用戶標識,進行標準化處理:
-- 範例:從註冊登入日誌提取並標準化用戶標識
-- 手機號碼脫敏處理
CASE
WHEN identity_type = 'PHONE'
THEN CONCAT(SUBSTR(phone, 1, 3), '****', SUBSTR(phone, 8, 4))
ELSE identity_value
END AS identity_value
處理邏輯:
- 手機號碼:脫敏顯示(保留前3位和後4位)
- 電郵:保留完整格式用於關聯
- 設備 ID:標準化處理,去除空格等無效字元
- IP 位址:保留原始格式用於網絡環境關聯
關聯邊構建
根據業務規則構建標識間的關聯邊:
-- 範例:基於同一 user_id 的強關聯邊構建
SELECT
a.node_id AS source_node_id,
b.node_id AS target_node_id,
'STRONG' AS relation_type,
'登入綁定同一 user_id' AS relation_reason
FROM dwd_user_identity_node_df a
JOIN dwd_user_identity_node_df b
ON a.user_id = b.user_id
AND a.node_id < b.node_id -- 避免重複邊
關聯邊類型:
- 強關聯邊:同一 user_id 的所有標識、同設備的多個標識
- 弱關聯邊:同 IP 的多設備、相同 JA3 指紋的多標識
連通分量計算
使用併查集演算法計算連通分量:
-- 範例:併查集 UDF 計算連通分量
SELECT
node_id,
UnionFindUDF(node_id, edge_list) AS component_id
FROM tmp_user_edge_list
基於連通分量生成 OneID:
-- 範例:基於雜湊編碼生成 OneID
SELECT
CASE
WHEN user_id IS NOT NULL
THEN CONCAT('oneid_', TOLOWER(HEX(HASH_CODE(user_id))))
ELSE CONCAT('oneid_', TOLOWER(HEX(HASH_CODE(component_id))))
END AS oneid
雙向查詢實作
OneID 查標識(正向查詢)
-- 查詢指定 OneID 關聯的所有標識
SELECT identity_type, identity_value, is_primary, is_valid
FROM ads_user_oneid_to_identity_df
WHERE oneid = 'oneid_8f7e6d5c';
標識查 OneID(反向查詢)
-- 根據標識查詢對應的 OneID
SELECT oneid, relation_type, is_primary
FROM ads_user_identity_to_oneid_df
WHERE identity_type = 'PHONE'
AND identity_value = '138****5678';
四、OneID 能解決什麼問題
4.1 風控領域
OneID 通過關聯用戶的各類標識,能夠精準識別風險行為:
| 應用場景 | 識別邏輯 | 業務價值 |
|---|---|---|
| 爬蟲用戶識別 | OneID 關聯大量設備和 IP,行為規律(固定間隔存取、無互動) | 快速識別並攔截爬蟲流量 |
| 批量註冊檢測 | 一個 OneID 對應多個新註冊帳號,註冊資訊相似(相似暱稱、同一 IP) | 防範虛假註冊和羊毛黨行為 |
| 公用設備識別 | OneID 關聯多個不同身份的用戶標識,使用時間分散 | 識別公用設備和帳號風險 |
| 帳號盜用預警 | 正常用戶的 OneID 突然關聯陌生設備或 IP | 及時發出風險預警,保護帳號安全 |
4.2 行銷領域
OneID 助力實現精準行銷,提升行銷效率:
| 應用場景 | OneID 作用 | 業務價值 |
|---|---|---|
| 用戶畫像構建 | 整合用戶在不同平台、設備上的行為資料 | 構建完整用戶畫像,精準定位目標用戶 |
| 避免重複行銷 | 多個帳號對應同一 OneID 時統一管理 | 防止重複推送,節省行銷成本,提升用戶體驗 |
| 行銷成效評估 | 追蹤 OneID 在活動前後的行為變化 | 評估行銷活動真實效果,優化投放策略 |
4.3 用戶營運領域
OneID 幫助提升用戶營運效率和精細化程度:
| 應用場景 | OneID 作用 | 業務價值 |
|---|---|---|
| 高價值用戶識別 | 分析 OneID 關聯的消費金額、活躍度、忠誠度 | 精準識別高價值用戶,提供專屬服務 |
| 流失風險預警 | 監控 OneID 對應的登入頻率、互動行為變化 | 及時預警用戶流失,採取挽留措施 |
| 產品體驗優化 | 分析用戶使用的設備、操作習慣 | 針對性優化產品功能和介面佈局 |
| 行為資料歸屬 | 追蹤用戶多台設備的歷史行為資料 | 準確歸屬用戶行為,精細化用戶標籤和演算法特徵 |
4.4 安全審計領域
OneID 可追蹤完整的用戶操作軌跡:
| 應用場景 | OneID 作用 | 業務價值 |
|---|---|---|
| 安全事件調查 | 快速定位用戶的所有操作紀錄(設備、時間、內容) | 為安全事件調查提供完整證據鏈 |
| 內部風險監控 | 監控員工 OneID 的異常登入和操作行為 | 及時發現內部操作風險,保障資料安全 |
4.5 服務優化領域
OneID 能夠顯著提升服務品質:
| 應用場景 | OneID 作用 | 業務價值 |
|---|---|---|
| 客服效率提升 | 快速獲取用戶的歷史諮詢紀錄、購買紀錄 | 無需用戶重複說明,提高問題解決效率 |
| 跨平台服務統一 | 統一管理用戶在 APP、小程式、官網等服務請求 | 確保服務連貫性,增強用戶滿意度 |
4.6 客戶體驗領域
OneID 支援無縫的客戶體驗:
| 應用場景 | OneID 作用 | 業務價值 |
|---|---|---|
| 無縫體驗 | 識別用戶在不同渠道的身份,保持服務連續性 | 用戶無需重複登入或提供資訊 |
| 個性化服務 | 基於完整用戶畫像提供個性化推薦和服務 | 提升用戶滿意度和黏性 |
| 一致性互動 | 確保用戶在不同平台獲得一致的體驗 | 強化品牌形象,提升用戶信任 |
4.7 業務決策支援
OneID 為業務決策提供資料支援:
| 應用場景 | OneID 作用 | 業務價值 |
|---|---|---|
| 用戶增長分析 | 準確計算真實用戶數量和增長趨勢 | 為增長策略提供準確資料基礎 |
| 渠道歸因分析 | 追蹤用戶在不同渠道的完整轉化路徑 | 優化渠道投放策略,提升 ROI |
| 產品優化決策 | 基於完整用戶行為資料優化產品功能 | 資料驅動的產品迭代決策 |
五、資料私隱與安全
5.1 資料脫敏原則
| 資料類型 | 脫敏規則 | 範例 |
|---|---|---|
| 手機號碼 | 保留前3位和後4位,中間4位脫敏 | 138****5678 |
| 電郵 | 保留電郵域名,用戶名稱部分脫敏 | u***@example.com |
| IP 位址 | 最後一段脫敏 | 192.168.1.* |
| 設備標識 | 保留格式,關鍵部分雜湊處理 | imei_****1234567890 |
5.2 資料安全保障
- 最小必要原則:僅收集業務必需的標識資訊,不收集無關資料
- 加密儲存:敏感資料採用加密方式儲存,防止資料洩漏
- 存取控制:嚴格的權限管理和存取審計,防止未授權存取
- 資料保留:遵循資料保留期限,逾期資料自動清理
5.3 用戶權利
用戶對自己的資料享有以下權利:
- 查詢權:查詢系統中的本人資料
- 更正權:要求更正不準確的個人資訊
- 刪除權:在符合法規前提下要求刪除個人資料
六、總結
OneID 作為一種基於連通圖原理的用戶統一標識體系,通過智能關聯分散的用戶標識,為每個自然人構建完整的數碼身份。它不僅解決了多設備、多平台時代的用戶識別難題,更為風控、行銷、營運、服務等多個業務領域提供了堅實的資料基礎。
在技術實作上,OneID 採用了連通圖原理、併查集演算法、雜湊編碼等成熟技術方案,確保了系統的準確性、高效性和穩定性。同時,通過完善的資料脫敏和私隱保護機制,在實現業務價值的同時充分保護用戶私隱。
隨著數碼化程度的不斷深入,OneID 將在用戶增長、精準行銷、風險防控、服務優化等領域發揮越來越重要的作用,成為企業數碼化營運的核心基礎設施。
常見問題
問:OneID 和用戶 ID 有什麼分別?
答:用戶 ID 是業務系統的帳號標識,OneID 是跨系統、跨設備的統一身份標識,能夠關聯同一用戶的所有標識。
問:OneID 會洩漏用戶私隱嗎?
答:OneID 本身不包含任何用戶個人資訊,僅是一個雜湊生成的唯一編碼,無法反向推導用戶原始資訊。
問:OneID 是即時生成的嗎?
答:OneID 通常採用 T+1 批次處理方式生成,確保資料處理的穩定性和準確性。
問:一個用戶會有多個 OneID 嗎?
答:正常情況下,一個自然人只有一個 OneID。極端場景下,例如完全無關聯的設備使用,可能存在多個,但會持續優化關聯規則以減少此類情況。
問:OneID 如何處理共用設備場景?
答:通過使用時長、登入頻率等權重判斷主用戶和關聯用戶,確保行為資料準確歸屬。
問:強關聯和弱關聯有什麼分別?
答:強關聯是確定性關聯,例如同一帳號的設備,可以直接合併;弱關聯是概率性關聯,例如同一 IP 的設備,需要多個驗證才合併。
問:OneID 會失效嗎?
答:OneID 本身長期有效,但關聯的標識可能因長期不活躍而失效,以確保資料的時效性。
問:OneID 能跨平台使用嗎?
答:可以。只要是同一資料體系內的平台,OneID 可以跨平台識別同一用戶。
問:如何保證 OneID 的唯一性?
答:通過雜湊編碼基於連通分量根節點生成,確保同一分量始終生成相同的 OneID。
關於通智雲
跨平台身份識別是私域精細化營運的前提,屬於通智雲關注的增長技術領域。通智雲(TENGENCE)是 AI 時代的企業增長引擎,專注公域引流獲客與私域轉化成交。