酷播亮新聞
最棒的知識補給站

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

產品經理入行寶典,12週特訓,22名產品大牛全程帶班,200+名企內推,100%保障就業! 了解詳情

文章從產品經理的角度出發,簡單對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協議

如有侵權請來信告知:酷播亮新聞 » 安卓、微信和IOS是怎樣識別用戶的?