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