android获取设备唯一标识_数据埋点:用户唯一标识
用戶唯一標識,是用戶唯一的身份ID,相同的身份ID,就會被當做是相同的一個用戶。
01 為什么要建設用戶唯一標識
如何區分某個用戶就是他這個用戶,而不是另一個用戶,在數據埋點中,是一個非常重要的事情。因為如果做不到用戶的唯一識別,那凡是涉及到用戶的數據都將是錯的(比如用戶量、新增用戶數、活躍用戶數等等)。所以建設用戶唯一標識,尤為重要。
02 基本概念
設計埋點字段的時候,有兩個字段是一定要包括的,即設備ID和用戶ID。這兩個字段應該納入通用字段,每個埋點的事件都必須要集成收集。
(1)設備ID
使用相應的算法,生成一個設備ID,以唯一識別用戶的終端設備。不同終端的設備ID,其生成算法規則不一樣,以下列舉不同終端的設備ID的生成規則:
AndroidApp
安卓系統歷經多次升級,對權限控制越來越嚴格,唯一識別手機的方法也在發生變化。下面整理一下安卓系統適合做設備唯一標識符的幾個標識符,以及其特性:
從表格中看出,IMEI是最適合做設備唯一標識的,奈何獲取IMEI需要授予權限且Android 10以后不再開放IMEI的權限。綜合起來,安卓系統中,應該按照IMEI ->OAID -> ANDROID_ID的順序生成設備ID。即先獲取IMEI號,獲取不到IMEI時獲取OAID,獲取不到OAID時,再獲取ANDROID_ID,然后使用相關算法生成設備ID。
IOS App
蘋果系統,可用于識別唯一設備的標識不多,如下圖。綜合起來,蘋果系統生成設備ID的標識符順序應該是IDFA -> IDFV ->UDID,即先獲取IDFA,獲取不到在獲取IDFV,獲取不到IDFV時,再獲取UDID,然后使用相關算法生成一個設備ID。
Web網站
Web網站,使用cookie_id作為設備ID,并存儲在瀏覽器的cookie中。
微信小程序
通常做法使用openid作為設備ID,當然也可以自己生產一個ID,作為設備ID。如果用過openid作為設備ID,需要注意微信小程序的冷啟動問題(獲取 openid 是一個異步的操作,所以會導致數據上報的時候,可能還沒獲取到openid,這就是導致設備ID為空)。
2)用戶ID
用戶ID,即用戶在業務產品注冊的用戶賬號。
收集到設備ID和用戶ID后,就要想辦法將設備ID和用戶ID關聯起來,也即用戶唯一標識建模,詳見下文。
03 用戶唯一標識建設
設計一個字段,比如就叫distinct_id(設備ID命名為device_id,用戶ID命名為user_id)這個字段用于識別唯一用戶。凡是統計用戶相關的數據時,都以distinct_id作為用戶的唯一區別標識。下面,以具體案例進行闡述。
步驟說明:
此時三個字段的映射關系為:
(1)后續修復
事件字段修復
小明換新手機后,在登錄前,系統給分配的dsitinct_id為d3,不符合實際情況,故要將在新手機上登錄前的dsitinct_id修復為d1。如下:
映射表修復
1)刪除d3與x2的映射關系
2)將x2添加到d1的device_id_list字段
本文由 @如琴留音 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
總結
以上是生活随笔為你收集整理的android获取设备唯一标识_数据埋点:用户唯一标识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 文本处理模块_Python
- 下一篇: python调用oracle数据库_py