安卓、微信和IOS是怎樣識別用戶的?

2 評論 9258 瀏覽 37 收藏 5 分鐘

文章從產品經理的角度出發,簡單對IOS、微信和安卓各自標識用戶的常用方法展開分享。

我們每天都在接觸新增用戶、日活、月活這些數據,不知大家是否也會有這樣的疑問:到底是通過什么方法,來判斷一個用戶是新用戶還是老用戶呢?換而言之,工程師是怎樣給每個用戶做標識的呢?本文從產品經理技術普及的角度,簡單介紹一下IOS、微信和安卓各自標識用戶的常用方法。

一、IOS標識用戶方法

由于蘋果公司用戶隱私保護機制的種種限制,需通過idfv和Keychain配合,才能實現Ios用戶唯一性識別。

IDFV(IdentifierForVendor)

IDFV是提供商標識用戶用的,每個設備在所屬同一個提供商的應用里,都有相同的值。準確點說,是通過BundleID的反轉的前兩部分進行匹配,如果相同就是同一個Vender,例如對于com.taobao.app1, com.taobao.app2 這兩個BundleID來說,就屬于同一個Vender,共享同一個idfv的值。idfv的值非常適合于作為內部用戶行為分析的主id,來標識用戶。

identifierForVendor是一種應用加設備綁定產生的標識符,相當于:

Z(identifierForVendor) = X(BundleID的反轉的前兩部分相同的應用) + Y(某設備)。

注意:如果用戶將屬于此提供商的所有App卸載,則idfv的值會被重置,即再重裝此提供商的App,idfv的值和之前不同。

Keychain

我們可以把Keychain理解為一個Dictionary,所有數據都以key-value的形式存儲,可以對這個Dictionary進行add、update、get、delete這四個操作。對于每一個應用來說,Keychain都有兩個訪問區,私有區和公共區。私有區是一個sandbox,本程序需存儲的任何數據對其它程序不可見。要想在公共區存儲數據,需要先聲明公共區的名稱,官方文檔管這個名稱叫“Keychain access group”。

蘋果限制了你只能同公司的產品共享Keychain數據,別的公司訪問不了你公司的Keychain。Keychain里保存的信息不會因為APP被刪除而丟失,所以在重裝APP后,keychain里的數據還能使用。

我們可以獲取idfv,保存到Keychain里面,這樣即時APP刪除再重新安裝,也可以從Keychain中讀取回來。使用group還可以可以保證同一個開發商的所有程序針對同一臺設備能夠獲取到相同的不變的UDID。

注意:刷機或重裝系統后,Keychain保存的值會丟失。

二,微信標識用戶方法

獲得了開放平臺認證的開發者帳號,可以綁定10個手機應用、10個網站、10個公眾號。同個開發賬號下的不同應用的同一個用戶的unionid是完全相同的。

unionid ——用戶統一標識。針對一個微信開放平臺帳號下的應用,同一用戶的unionid是唯一的。

openid ——普通用戶的標識,對當前開發者帳號唯一。一個openid對應一個公眾號。

獲取方法:https://mp.weixin.qq.com/wiki,微信網頁開發→微信網頁授權。

三,安卓標識用戶方法

安卓獲取設備唯一標識原本非常簡單(至少不會像IOS一樣各種限制),但是由于設備的多樣性導致各種情況都有可能出現。常見的標識方法有以下5種:

由于任何方法來標識用戶,都有失敗的可能,一般工程師在寫代碼的時候,會通過拼接,或者拼接后的結果計算出的MD5值來標識用戶,以保證效果。

寫在最后:作者產品出身,無一線代碼經驗,這些是從資料中梳理出來的一點皮毛,如有錯誤,感謝斧正。

 

本文由 @喬珊 原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖來自PEXELS,基于CC0協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 您好,小編,我現在只想查詢一下微信通訊錄里的iOS蘋果用戶,制作標簽。請問有什么方法?

    來自河北 回復
  2. 作者產品出身,無一線代碼經驗,這些是從資料中梳理出來的一點皮毛,如有錯誤,感謝斧正。這篇文章應該由項目經理或者程序員來寫比較合適吧

    回復