談?wù)勅齻€(gè)層次的ID mapping
編輯導(dǎo)讀:ID就是代表一個(gè)用戶實(shí)體的一串兒序列號(hào),本文作者針對(duì)ID mapping展開(kāi)了三個(gè)層次的分析,希望對(duì)大家有幫助。
今天跟大家談一個(gè)話題,就是ID mapping。
談之前,先拋一個(gè)問(wèn)題出來(lái),什么是ID。在這里我們今天要談的范疇中,給ID下一個(gè)定義,ID就是代表一個(gè)用戶實(shí)體的一串兒序列號(hào)。在這個(gè)定義下,我們就發(fā)現(xiàn)手機(jī)號(hào)是一個(gè)用戶ID,身份證號(hào)是一個(gè)用戶ID,郵箱是一個(gè)用戶ID,微信號(hào)也是一個(gè)用戶ID。只不過(guò)這些ID的生命周期不同,精度也不同。
比如,身份證號(hào)一個(gè)人一生一般只有一個(gè)且終生不變,而手機(jī)號(hào),郵箱號(hào),微信號(hào)則存在停用和轉(zhuǎn)贈(zèng)的可能,可見(jiàn)如果使用手機(jī)號(hào)來(lái)代表一個(gè)人則可能存在一定的誤差,而這就引出了第二個(gè)概念,mapping。
介紹mapping之前我們來(lái)看這樣一個(gè)現(xiàn)實(shí)的案例。
A公司為了滿足用戶在不同場(chǎng)景下的需求開(kāi)發(fā)了多條產(chǎn)品線,其中包含,小程序,APP和網(wǎng)站。同時(shí),在線下通過(guò)多種渠道接觸用戶挖掘用戶需求,獲得的信息回流到了企業(yè)的CRM系統(tǒng)中,最終我們發(fā)現(xiàn)A企業(yè)從多個(gè)觸點(diǎn)獲取到大量的用戶行為信息,但存在一個(gè)問(wèn)題,由于各個(gè)系統(tǒng)相對(duì)孤立,同一個(gè)用戶在不同的系統(tǒng)中被使用獨(dú)立ID進(jìn)行標(biāo)識(shí),在進(jìn)行數(shù)據(jù)分析和決策時(shí),每個(gè)用戶的畫(huà)像是片面的,只有孤立域中的畫(huà)像。
用戶的行為是斷裂的,因?yàn)橥粋€(gè)用戶在不同系統(tǒng)間操作時(shí)被采用了不同的ID進(jìn)行標(biāo)識(shí)。同時(shí)企業(yè)總體的用戶統(tǒng)計(jì)數(shù)也是不準(zhǔn)確的。mapping的提出正是為了解決這個(gè)案例中提到的問(wèn)題。 ID Mapping是將用戶關(guān)聯(lián),使得物理世界中一個(gè)真實(shí)的用戶在互聯(lián)網(wǎng)世界中也采用一個(gè)統(tǒng)一的ID進(jìn)行關(guān)聯(lián)。
關(guān)于ID mapping的實(shí)現(xiàn),我們可以分成兩大步驟,第一步是ID的標(biāo)識(shí),第二步則是ID的關(guān)聯(lián)。
一、ID標(biāo)識(shí)
如何標(biāo)識(shí)一個(gè)用戶又可以分成兩種場(chǎng)景,第一是用戶匿名狀態(tài)下,第二是用戶登錄狀態(tài)下。在用戶登錄狀態(tài)下一般使用業(yè)務(wù)ID來(lái)對(duì)用戶進(jìn)行標(biāo)識(shí),如身份證號(hào)、userID、手機(jī)號(hào)等等。而在用戶匿名狀態(tài)下,則需要通過(guò)設(shè)備ID來(lái)對(duì)用戶進(jìn)行標(biāo)識(shí),根據(jù)用戶使用的設(shè)備和系統(tǒng)的差異,標(biāo)識(shí)的方式也不相同,一般來(lái)說(shuō)可分為以下4類。
1.網(wǎng)頁(yè),網(wǎng)頁(yè)一般使用cookie ID作為匿名ID來(lái)使用,cookie ID的生成規(guī)則是基于時(shí)間戳、隨機(jī)數(shù)、屏幕的寬高和UA操作系統(tǒng)版本號(hào)進(jìn)行生成的。cookie ID是64位字符串,使用cookie ID的風(fēng)險(xiǎn)在于一旦cookie 被清除或者用戶更換了瀏覽器,那么cookie ID也會(huì)改變。
2.Android系統(tǒng),Android設(shè)備獲取設(shè)備唯一ID的方案有多種,如獲取IMEI,WIFI或藍(lán)牙的MAC地址都可以??紤]到易獲得性,可以使用Android ID作為設(shè)備ID。Android ID 的位數(shù)為16位,Android ID會(huì)因?yàn)锳PP簽名不同和設(shè)備賬號(hào)不同而生成不同的值。需要注意的是Android 8.0 以下 Android ID不會(huì)改變,Android 8.0以上用戶通過(guò)OTA方式升級(jí)app Android ID不會(huì)變,但如果卸載之后重新安裝 Android ID會(huì)發(fā)生改變。
3.iOS系統(tǒng),iOS系統(tǒng)一般采用IDFA或IDFV作為設(shè)備ID。IDFA和IDFV分別是iOS生態(tài)為廣告主和開(kāi)發(fā)商設(shè)計(jì)的兩套ID規(guī)范。分別可供有廣告的APP和同應(yīng)用開(kāi)發(fā)廠商進(jìn)行使用,前者同一個(gè)設(shè)備下不同APP共享,后者同一個(gè)開(kāi)發(fā)商下不同的APP共享。需要注意的是,用戶是可以通過(guò)設(shè)置刷新來(lái)不斷更新IDFA的。當(dāng)然,蘋果這么做也是為了方便用戶清除個(gè)人的歷史痕跡,包含自己的隱私。而在蘋果的新規(guī)出臺(tái)后,APP在獲取IDFA的值時(shí)也需要用戶完成手動(dòng)確認(rèn)后才可以。
4.微信小程序,微信小程序可以使用OPEN ID作為用戶的匿名ID。
二、ID mapping
第二步是關(guān)聯(lián),根據(jù)用戶關(guān)聯(lián)解決的不同問(wèn)題,可以將用戶關(guān)聯(lián)分為3個(gè)層次,分別是一對(duì)一關(guān)聯(lián),一對(duì)多關(guān)聯(lián)和全域關(guān)聯(lián)。
1.一對(duì)一關(guān)聯(lián)解決的是用戶登錄前后的關(guān)聯(lián)問(wèn)題,其核心思路是將設(shè)備的匿名ID和用戶的登錄ID進(jìn)行關(guān)聯(lián),同時(shí)每個(gè)設(shè)備ID和登錄ID只進(jìn)行一次成功關(guān)聯(lián),也就是說(shuō)當(dāng)設(shè)備甲已經(jīng)和用戶A關(guān)聯(lián)后,若用戶B在設(shè)備甲上登錄并使用,設(shè)備甲不會(huì)再和用戶B進(jìn)行關(guān)聯(lián)。同樣的,用戶A登錄設(shè)備乙時(shí)也不會(huì)再進(jìn)行關(guān)聯(lián)。
2.一對(duì)多關(guān)聯(lián)解決的是用戶登錄多個(gè)設(shè)備的關(guān)聯(lián)問(wèn)題,在一對(duì)一的關(guān)聯(lián)方案下,雖然可以將用戶登錄前后的行為打通。但實(shí)際上,一個(gè)用戶可能在網(wǎng)頁(yè),手機(jī),平板等多個(gè)終端使用同一個(gè)產(chǎn)品。為了將用戶使用多設(shè)備,多終端的數(shù)據(jù)打通,一對(duì)多的關(guān)聯(lián)方案應(yīng)運(yùn)而生。
一對(duì)多的關(guān)聯(lián)方案核心是一個(gè)用戶登錄ID可以和多個(gè)設(shè)備的匿名ID相關(guān)聯(lián)。也就是說(shuō)當(dāng)用戶分別在設(shè)備甲、乙、丙上登錄用戶賬號(hào)后,系統(tǒng)會(huì)將設(shè)備甲、乙、丙和用戶A關(guān)聯(lián)成為同一個(gè)獨(dú)立的用戶實(shí)體。從而使得多個(gè)終端的行為數(shù)據(jù)得以打通。在關(guān)聯(lián)時(shí)同樣要注意的是,若設(shè)備乙已經(jīng)和用戶B關(guān)聯(lián)過(guò),那么用戶A再登錄設(shè)備乙時(shí)不會(huì)再進(jìn)行關(guān)聯(lián)。即一個(gè)用戶可能關(guān)聯(lián)多個(gè)設(shè)備,但一個(gè)設(shè)備不會(huì)關(guān)聯(lián)多個(gè)用戶。
3.前兩種關(guān)聯(lián)方式解決的是同一業(yè)務(wù)系統(tǒng)下的用戶關(guān)聯(lián)問(wèn)題。但實(shí)際上,一家企業(yè)可能在不同時(shí)期不同環(huán)境下存在多條產(chǎn)品線和業(yè)務(wù)系統(tǒng)。
這些系統(tǒng)中用戶使用不同ID進(jìn)行登錄,這就引出了用戶關(guān)聯(lián)的第三個(gè)層次,全域關(guān)聯(lián)。全域關(guān)聯(lián)的核心是打通不同業(yè)務(wù)系統(tǒng)中的數(shù)據(jù),在關(guān)聯(lián)邏輯上使用到了圖論中的連通圖概念,可以簡(jiǎn)單理解,A和B產(chǎn)生了關(guān)聯(lián),B和C產(chǎn)生了關(guān)聯(lián),則A、B、C之間兩兩進(jìn)行了關(guān)聯(lián),這種關(guān)聯(lián)方式與前兩種關(guān)聯(lián)方式最大的不同是,前兩種方式以登錄ID作為唯一樞紐ID,其他ID圍繞登錄ID進(jìn)行關(guān)聯(lián),而全域關(guān)聯(lián)將每個(gè)ID都作為聯(lián)通的樞紐,最大程度上關(guān)聯(lián)所有業(yè)務(wù)系統(tǒng)中的ID。
下圖是一個(gè)形象的例子。
在上圖中分別通過(guò)Unionid,loginid,Phone將屬于不同系統(tǒng)的各類語(yǔ)義ID進(jìn)行了關(guān)聯(lián)。值得注意的是,除了以上關(guān)聯(lián)外還需要根據(jù)業(yè)務(wù)特性定義唯一的業(yè)務(wù)ID,定義唯一業(yè)務(wù)ID的目的是將關(guān)聯(lián)的各類用戶ID關(guān)聯(lián)到一個(gè)用戶實(shí)體上,而在前兩種關(guān)聯(lián)方式上因?yàn)閳?chǎng)景較為簡(jiǎn)單默認(rèn)使用了登錄id作為業(yè)務(wù)id進(jìn)行使用了。
三、需要注意
進(jìn)行IDmapping的方案設(shè)計(jì)時(shí),可以根據(jù)自身的業(yè)務(wù)情況選擇合適的ID mapping方案,除此之外還有一些特別需要注意的問(wèn)題。
1.對(duì)歷史事件的影響,ID mapping成功后勢(shì)必會(huì)導(dǎo)致一些用戶的合并從而使得事件分析的情況出現(xiàn)一定的差異,比如原來(lái)由于未關(guān)聯(lián)而存在的用戶A1和用戶A2關(guān)聯(lián)成同一個(gè)用戶A,這時(shí)需要對(duì)歷史的事件和用戶屬性進(jìn)行合并,實(shí)時(shí)合并在大量查詢時(shí)會(huì)影響效率,T+1的方式合并時(shí)則會(huì)對(duì)當(dāng)日查詢精度產(chǎn)生一定影響,選擇哪種方案可視業(yè)務(wù)需求而定。
2.對(duì)用戶屬性的合并影響,在合并用戶屬性時(shí)可以根據(jù)業(yè)務(wù)需要選擇多種邏輯覆蓋,如以較早的時(shí)間戳為準(zhǔn)先到先得,或以較晚的時(shí)間戳為準(zhǔn)后來(lái)居上,再或者對(duì)不同id設(shè)定優(yōu)先級(jí),優(yōu)先級(jí)較高的id覆蓋優(yōu)先級(jí)較低的id攜帶的屬性都是可以選擇的合并邏輯。
四、總結(jié)
總結(jié)一下,ID mapping的意義在于將互聯(lián)網(wǎng)中的用戶映射成為一個(gè)真實(shí)的用戶實(shí)體,從而幫助企業(yè)完善用戶畫(huà)像和進(jìn)行用戶行為路徑的分析。進(jìn)行ID mapping時(shí),分為ID 標(biāo)識(shí)和ID關(guān)聯(lián)兩個(gè)步驟,每個(gè)步驟根據(jù)業(yè)務(wù)場(chǎng)景的差異各有多種方案可以選擇。
關(guān)聯(lián)完成并非結(jié)束,關(guān)聯(lián)用戶的目的是為了獲得更為準(zhǔn)確的數(shù)據(jù)幫助企業(yè)進(jìn)行決策,因此對(duì)于歷史事件和用戶屬性的合并邏輯同樣不能忽視。
本文由 @Beam 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自Unsplash,基于CC0協(xié)議。
數(shù)據(jù)庫(kù)里一切都是以ID為中心衍生出一切數(shù)據(jù)關(guān)聯(lián)的。特別是傘結(jié)構(gòu)哈哈。你懂的
之前就想到多系統(tǒng)之間用戶ID關(guān)聯(lián)問(wèn)題,但是沒(méi)系統(tǒng)性學(xué)過(guò),這次學(xué)到了更專業(yè)的知識(shí)
這可真的是幫助我增長(zhǎng)好多自己不知道的東西,之前真的沒(méi)有聽(tīng)說(shuō)過(guò)ID關(guān)聯(lián),真的是又get到一個(gè)新的概念。