用戶身份標(biāo)識與賬號體系實踐
一、業(yè)務(wù)背景
通常在系統(tǒng)研發(fā)的過程中,需要不斷適配各種業(yè)務(wù)場景,擴(kuò)展服務(wù)的領(lǐng)域和能力,一般會將構(gòu)建的產(chǎn)品矩陣劃分出多條業(yè)務(wù)線,以便更好地管理;
由于各個業(yè)務(wù)線的數(shù)據(jù)入口和管理策略的不同,這樣從不同路徑下沉淀的數(shù)據(jù),可能因為系統(tǒng)邊界問題從而被孤立;如果用戶數(shù)據(jù)被分裂,會因為數(shù)據(jù)不全面給分析決策帶來誤導(dǎo);
比較經(jīng)典的場景,用戶從應(yīng)用端完成注冊之后,通常不會過多提供自身信息,由于業(yè)務(wù)需要不斷豐富用戶畫像,所以用戶數(shù)據(jù)通常會被調(diào)度到獨立的管理系統(tǒng)中,通過不同的觸點反饋進(jìn)行信息擴(kuò)展,比如采集埋點數(shù)據(jù),線下接觸,營銷電話等;

這種情況從操作上是有明顯感知的場景,顯然用戶在應(yīng)用庫中的數(shù)據(jù)和在管理庫是存在很大差異的,在真實的情況中用戶可能在不同的應(yīng)用和場景中會產(chǎn)生重復(fù),必然會導(dǎo)致用戶數(shù)據(jù)難以統(tǒng)一維護(hù);
二、唯一標(biāo)識
用戶的行為數(shù)據(jù)在當(dāng)下的互聯(lián)網(wǎng)產(chǎn)品中,是極其具有分析價值的,不同的應(yīng)用端不管是否處于登錄狀態(tài),在產(chǎn)品中產(chǎn)生的數(shù)據(jù)都是有記錄的手段,進(jìn)而在數(shù)據(jù)層面分析識別;

這些編號最大的特點就是具有唯一性,可以標(biāo)識用戶在不同終端不同狀態(tài)的操作信息,而當(dāng)這些數(shù)據(jù)沉淀到系統(tǒng)時,會根據(jù)端口和操作類型進(jìn)行存儲,不同的終端下其數(shù)據(jù)唯一標(biāo)識也不相同;
從數(shù)據(jù)分析的角度上來看,顯然不希望用戶的行為信息被分裂并且各自孤立,這樣對多終端多狀態(tài)下的用戶行為數(shù)據(jù)進(jìn)行全域關(guān)聯(lián),是行之有效的方式,其基本原理涉及到ID的映射技術(shù);
三、Id映射
基于上述的業(yè)務(wù)情況,在產(chǎn)品矩陣中提供用戶身份的全局統(tǒng)一標(biāo)識至關(guān)重要,用戶實體在不同業(yè)務(wù)線所產(chǎn)生的行為數(shù)據(jù),通過唯一序列號進(jìn)行識別,這樣進(jìn)行用戶分析時看到的畫像比較全面;

在當(dāng)下的互聯(lián)網(wǎng)產(chǎn)品中,基于手機(jī)號創(chuàng)建應(yīng)用賬號的模式已經(jīng)是常見功能,手機(jī)號注冊之后,再通過手機(jī)號去關(guān)聯(lián)相應(yīng)的終端ID,從而使各種孤立的數(shù)據(jù)被鏈接起來;
其實現(xiàn)的原理并不復(fù)雜,首先需要提供一套映射庫,當(dāng)新的手機(jī)號被系統(tǒng)識別采集時,在映射庫中新建一條數(shù)據(jù),手機(jī)號和對應(yīng)的唯一ID,此后其他路徑的數(shù)據(jù),如果手機(jī)號相同則綁定在該ID下面;
四、數(shù)據(jù)關(guān)聯(lián)
在ID映射機(jī)制下,雖然各個業(yè)務(wù)線數(shù)據(jù)相對孤立,數(shù)據(jù)之間不會產(chǎn)生直接影響,但是實際上已經(jīng)被唯一ID串聯(lián)起來,這樣將ID關(guān)聯(lián)的數(shù)據(jù)進(jìn)行綜合分析,準(zhǔn)確性會提高很多;

不管從任何路徑或渠道下采集的數(shù)據(jù),如果存在手機(jī)號的維度,或者手機(jī)號相關(guān)聯(lián)的序列號標(biāo)識,判斷該手機(jī)號是否存在全局映射ID,沒有則在映射庫中創(chuàng)建對應(yīng)關(guān)系,如果有則直接綁定即可;
在執(zhí)行數(shù)據(jù)的全局調(diào)度和分析時,則通過映射庫的標(biāo)準(zhǔn)關(guān)系,基于ID標(biāo)識將全部業(yè)務(wù)線的數(shù)據(jù)進(jìn)行查詢和統(tǒng)籌分析,從而生成相對全面的數(shù)據(jù)檔案,以及標(biāo)準(zhǔn)的分析邏輯;下面給出一個參考性的結(jié)構(gòu)設(shè)計:
這里存在數(shù)據(jù)關(guān)聯(lián)的邏輯,ID標(biāo)識與手機(jī)號都是唯一的且一對一,但是手機(jī)號與終端的序列號可能存在一對多,甚至是多對多;賬號與應(yīng)用中產(chǎn)生的行為數(shù)據(jù),雖然追求準(zhǔn)確性,但是精確度不會過度要求;
這種情況下就需要執(zhí)行相應(yīng)的業(yè)務(wù)策略,比如同一個手機(jī)號可能登錄過不同手機(jī)中的相同應(yīng)用,手機(jī)中的應(yīng)用也可能被多個賬號登錄過,此時則需要基于策略做關(guān)聯(lián)上的取舍,可能是賬號登錄時長,或者登錄前后的時段,無法一概而論;
五、注冊登錄
以手機(jī)號作為賬號主體為例,開放的應(yīng)用并不會明顯區(qū)別注冊和登錄,以此簡化操作避免阻斷掉用戶,在通過手機(jī)號登錄時,如果是未注冊的用戶直接進(jìn)行信息初始化即可;

- 用戶在登錄表單中,輸入手機(jī)號并獲取驗證碼;
- 在登錄服務(wù)中,生成并維護(hù)驗證碼的時效;
- 驗證碼需要借助對接的第三方短信平臺推送到用戶手機(jī)中;
- 登錄表單填充驗證碼之后提交登錄信息進(jìn)行驗證;
- 當(dāng)?shù)卿涷炞C成功之后,如果用戶未注冊則初始化賬號體系;
- 賬號體系校驗和維護(hù)之后,通過異步方式關(guān)聯(lián)ID標(biāo)識;
- 最后需要給用戶端返回Token身份令牌,作為賬號識別;
注冊登錄集成在一起的復(fù)用接口比較復(fù)雜,但是以最短的路徑讓用戶快速使用產(chǎn)品,通過行為數(shù)據(jù)采集分析,從而可以精準(zhǔn)識別用戶需求,進(jìn)行正確的引導(dǎo)和營銷,發(fā)揮出數(shù)據(jù)的真正價值;

這里給出一份賬號管理的結(jié)構(gòu)設(shè)計參考,通常情況下用戶的主表維度會圍繞可登錄的賬號來設(shè)計,而涉及到信息采集的數(shù)據(jù)會寫入用戶檔案表,由于不同業(yè)務(wù)場景對信息依賴不同,所以在用戶注冊之后會引導(dǎo)各種數(shù)據(jù)采集的頁面;
用戶身份識別和賬號作為系統(tǒng)非?;A(chǔ)的核心能力,在設(shè)計的時候既要有用戶體驗,同時要重視數(shù)據(jù)的安全性;作為核心能力在前期設(shè)計的時候就需要一定的前瞻性,做好可能性的規(guī)劃和結(jié)構(gòu)預(yù)留,避免后續(xù)的迭代跨度過大。
六、參考源碼
編程文檔:https://gitee.com/cicadasmile/butte-java-note
應(yīng)用倉庫:https://gitee.com/cicadasmile/butte-flyer-parent



























