安卓、微信和IOS是怎樣識(shí)別用戶的?
文章從產(chǎn)品經(jīng)理的角度出發(fā),簡(jiǎn)單對(duì)IOS、微信和安卓各自標(biāo)識(shí)用戶的常用方法展開(kāi)分享。
我們每天都在接觸新增用戶、日活、月活這些數(shù)據(jù),不知大家是否也會(huì)有這樣的疑問(wèn):到底是通過(guò)什么方法,來(lái)判斷一個(gè)用戶是新用戶還是老用戶呢?換而言之,工程師是怎樣給每個(gè)用戶做標(biāo)識(shí)的呢?本文從產(chǎn)品經(jīng)理技術(shù)普及的角度,簡(jiǎn)單介紹一下IOS、微信和安卓各自標(biāo)識(shí)用戶的常用方法。
一、IOS標(biāo)識(shí)用戶方法
由于蘋(píng)果公司用戶隱私保護(hù)機(jī)制的種種限制,需通過(guò)idfv和Keychain配合,才能實(shí)現(xiàn)Ios用戶唯一性識(shí)別。
IDFV(IdentifierForVendor)
IDFV是提供商標(biāo)識(shí)用戶用的,每個(gè)設(shè)備在所屬同一個(gè)提供商的應(yīng)用里,都有相同的值。準(zhǔn)確點(diǎn)說(shuō),是通過(guò)BundleID的反轉(zhuǎn)的前兩部分進(jìn)行匹配,如果相同就是同一個(gè)Vender,例如對(duì)于com.taobao.app1, com.taobao.app2 這兩個(gè)BundleID來(lái)說(shuō),就屬于同一個(gè)Vender,共享同一個(gè)idfv的值。idfv的值非常適合于作為內(nèi)部用戶行為分析的主id,來(lái)標(biāo)識(shí)用戶。
identifierForVendor是一種應(yīng)用加設(shè)備綁定產(chǎn)生的標(biāo)識(shí)符,相當(dāng)于:
Z(identifierForVendor) = X(BundleID的反轉(zhuǎn)的前兩部分相同的應(yīng)用) + Y(某設(shè)備)。
注意:如果用戶將屬于此提供商的所有App卸載,則idfv的值會(huì)被重置,即再重裝此提供商的App,idfv的值和之前不同。
Keychain
我們可以把Keychain理解為一個(gè)Dictionary,所有數(shù)據(jù)都以key-value的形式存儲(chǔ),可以對(duì)這個(gè)Dictionary進(jìn)行add、update、get、delete這四個(gè)操作。對(duì)于每一個(gè)應(yīng)用來(lái)說(shuō),Keychain都有兩個(gè)訪問(wèn)區(qū),私有區(qū)和公共區(qū)。私有區(qū)是一個(gè)sandbox,本程序需存儲(chǔ)的任何數(shù)據(jù)對(duì)其它程序不可見(jiàn)。要想在公共區(qū)存儲(chǔ)數(shù)據(jù),需要先聲明公共區(qū)的名稱(chēng),官方文檔管這個(gè)名稱(chēng)叫“Keychain access group”。
蘋(píng)果限制了你只能同公司的產(chǎn)品共享Keychain數(shù)據(jù),別的公司訪問(wèn)不了你公司的Keychain。Keychain里保存的信息不會(huì)因?yàn)锳PP被刪除而丟失,所以在重裝APP后,keychain里的數(shù)據(jù)還能使用。
我們可以獲取idfv,保存到Keychain里面,這樣即時(shí)APP刪除再重新安裝,也可以從Keychain中讀取回來(lái)。使用group還可以可以保證同一個(gè)開(kāi)發(fā)商的所有程序針對(duì)同一臺(tái)設(shè)備能夠獲取到相同的不變的UDID。
注意:刷機(jī)或重裝系統(tǒng)后,Keychain保存的值會(huì)丟失。
二,微信標(biāo)識(shí)用戶方法
獲得了開(kāi)放平臺(tái)認(rèn)證的開(kāi)發(fā)者帳號(hào),可以綁定10個(gè)手機(jī)應(yīng)用、10個(gè)網(wǎng)站、10個(gè)公眾號(hào)。同個(gè)開(kāi)發(fā)賬號(hào)下的不同應(yīng)用的同一個(gè)用戶的unionid是完全相同的。
unionid ——用戶統(tǒng)一標(biāo)識(shí)。針對(duì)一個(gè)微信開(kāi)放平臺(tái)帳號(hào)下的應(yīng)用,同一用戶的unionid是唯一的。
openid ——普通用戶的標(biāo)識(shí),對(duì)當(dāng)前開(kāi)發(fā)者帳號(hào)唯一。一個(gè)openid對(duì)應(yīng)一個(gè)公眾號(hào)。
獲取方法:https://mp.weixin.qq.com/wiki,微信網(wǎng)頁(yè)開(kāi)發(fā)→微信網(wǎng)頁(yè)授權(quán)。
三,安卓標(biāo)識(shí)用戶方法
安卓獲取設(shè)備唯一標(biāo)識(shí)原本非常簡(jiǎn)單(至少不會(huì)像IOS一樣各種限制),但是由于設(shè)備的多樣性導(dǎo)致各種情況都有可能出現(xiàn)。常見(jiàn)的標(biāo)識(shí)方法有以下5種:
由于任何方法來(lái)標(biāo)識(shí)用戶,都有失敗的可能,一般工程師在寫(xiě)代碼的時(shí)候,會(huì)通過(guò)拼接,或者拼接后的結(jié)果計(jì)算出的MD5值來(lái)標(biāo)識(shí)用戶,以保證效果。
寫(xiě)在最后:作者產(chǎn)品出身,無(wú)一線代碼經(jīng)驗(yàn),這些是從資料中梳理出來(lái)的一點(diǎn)皮毛,如有錯(cuò)誤,感謝斧正。
本文由 @喬珊 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自PEXELS,基于CC0協(xié)議
您好,小編,我現(xiàn)在只想查詢一下微信通訊錄里的iOS蘋(píng)果用戶,制作標(biāo)簽。請(qǐng)問(wèn)有什么方法?
作者產(chǎn)品出身,無(wú)一線代碼經(jīng)驗(yàn),這些是從資料中梳理出來(lái)的一點(diǎn)皮毛,如有錯(cuò)誤,感謝斧正。這篇文章應(yīng)該由項(xiàng)目經(jīng)理或者程序員來(lái)寫(xiě)比較合適吧