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