數據埋點:如何標識你的用戶
編輯導語:用戶標識可以助力于用戶行為的分析,而用戶賬號ID標識是用戶標識的有效方式。那么,針對沒有賬號體系的產品,用戶標識又可以如何操作?本篇文章里,作者就如何借用設備信息作為用戶標識進行了闡述和總結,一起來看一下。
選取合適的用戶標識對于提高用戶行為分析的準確性有非常大的影響,也是我們進行數據埋點時需要最優先考慮的問題。因此,我們在進行任何數據接入之前,都應當先確定如何來標識用戶。
很多同學看到這可能會有點納悶,如何標識用戶?難道不是通過用戶的賬號ID嗎?
你說得沒錯,不過用戶賬號是針對于有賬號體系的產品,而對于那些沒有賬號體系,例如官網、活動落地頁,或者需要分析游客行為這樣的場景下,我們怎么才能對不同的用戶進行標識呢?
我們很容易發現,任何用戶在獲取線上服務時,都需要通過設備。
所以,我們很自然地就會想到使用設備的一些信息來近似作為用戶標識。
那么,設備的哪些信息可以作為用戶標識呢?
一、如何獲取移動端設備唯一標識
移動端主要的設備就是手機,我們這里主要講如何獲得Android和iOS的設備ID。
1. 如何獲取Android設備的唯一標識
首先我們來看下Android的設備信息。
可以看到,上述Android的設備信息中,UDID是最靠譜的,但是Android ID是最容易獲取到的。
所以,一般市場上的策略,會使用 UUID。
但是App 卸載重裝 UUID 會變,為了保證設備 ID 不變,可以把UUID寫入.so的文件,這樣即使重裝APP也不會改變。
還有一種策略是使用 Android Id 作為設備 ID,雖然刷機、重裝系統或恢復出廠設置會改變,但是一般用戶不會這么操作。
2. 如何獲取iOS設備的唯一標識
iOS設備也有IMEI、MEID、MAC地址、UDID、UUID等設備信息,前幾個現在都禁止獲取了,而UUID是會變化的。
iOS也有一些獨有的設備信息。
所以總結起來,iOS好像沒有什么靠譜的標記用戶的方法,別急,牛逼的程序員們總是能想出各種騷操作。
現在iOS一般標記用戶的方式是獲取每臺設備的UUID,將其寫入keychain中進行固化,這樣即使用戶重裝APP,保存在keychain中的UUID也不會改變了。
二、如何獲取web端和微信小程序的設備唯一標識
說完移動設備的,我們再來看一下如何獲取web端和微信小程序的設備唯一標識。
web端其實也分為兩種訪問方式,PC端瀏覽器和移動端瀏覽器,但其實都是一樣的。
web端默認情況下使用 cookie_id,當用戶首次訪問網站時,我們會自動生成一串cookie數據,然后存貯在瀏覽器的 cookie 中。
cookie的生成規則可以是五段不同含義的字段拼接而成來保證唯一性,其中包括兩段時間戳,一段屏幕寬高,一段隨機數,一段 UA 值。
而微信小程序端,默認情況下使用 UUID,但是刪除小程序,UUID 會變。
為了保證設備 ID 不變,建議獲取并使用 openid。
如果選擇使用 openid 的話,要注意將獲取到openid之前用戶的操作暫存。
因為獲取 openid 是一個異步的操作,而冷啟動事件等會先發生,這時候這個冷啟動事件還沒有獲取到openid。
所以我們需要把先發生的操作暫存起來,等獲取到 openid 后拼接好再發送數據。
三、最后
讓我們最后來總結一下Android、iOS、web和小程序是如何獲取設備唯一標識的:
- Android有兩種方式,第一種是獲取UUID寫入.so文件固化成UDID,第二種是獲取Android ID。
- iOS是獲取UUID,然后寫入keychain中進行保存,然后每次從keychain中取用戶標識。
- web一般是生成cookie并存在設備的瀏覽器中。
- 微信小程序,可以使用UUID,但是用戶刪除小程序后會變化,建議使用openID。使用openID要注意冷啟動的時候,要暫存操作事件,獲取到openID后再上傳。
作者:Jarvan;公眾號:產品叨比叨
本文由 @Jarvan 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
冷啟動是啥
我也想問
從用戶認知的角度看,廣義的小程序啟動可以分為兩種情況,一種是冷啟動,一種是熱啟動。
冷啟動:如果用戶首次打開,或小程序銷毀后被用戶再次打開,此時小程序需要重新加載啟動,即冷啟動。
熱啟動:如果用戶已經打開過某小程序,然后在一定時間內(目前微信是30min)再次打開該小程序,此時小程序并未被銷毀,只是從后臺狀態進入前臺狀態,這個過程就是熱啟動。
從小程序生命周期的角度來看,我們一般講的「啟動」專指冷啟動,熱啟動一般被稱為后臺切前臺。