PC客戶端數(shù)據(jù)埋點分享
編輯導(dǎo)語:移動互聯(lián)網(wǎng)時代,PC互聯(lián)網(wǎng)的客戶端埋點幾乎很少有能直接拿出來用的一套方案,因此,作者基于其經(jīng)驗進(jìn)行了分享,我們一起來看看吧。
一、起因
移動互聯(lián)網(wǎng)時代,無論是Android、iOS還是小程序,都有很多成熟的解決方案,無需花費很多的時間去處理埋點的事情,而且基于第三方提供的SDK進(jìn)行埋點,在數(shù)據(jù)處理和分析上也有很大的優(yōu)勢。
但是在之前的PC互聯(lián)網(wǎng)時代,除了網(wǎng)頁端有百度統(tǒng)計、谷歌分析等,客戶端的埋點似乎沒有一套能拿出來可供大家討論的解決方案,我就基于我的工作經(jīng)驗和理解,給大家分享一下PC客戶端的埋點。
二、PC客戶端的埋點一般統(tǒng)計什么?
首先,在PC上,我們得知道我們需要統(tǒng)計些什么內(nèi)容。
一個PC客戶端,無論是工具類的還是內(nèi)容類的,我們都希望知道我們提供的服務(wù)的效果。那么,我們從一個客戶端安裝、運(yùn)行到最終被卸載來看看。
就拿產(chǎn)品使用較多的工具“Axure RP”來舉例吧。如果“Axure RP”是我們自己的軟件,首先我們需要知道被安裝了,之后,我們關(guān)注激活情況,也就是使用,到最后,被卸載了,這一整個環(huán)節(jié),構(gòu)成了一個生命周期。
重點來了,對于這個生命周期,所有你想知道的關(guān)于“Axure RP”的情況你都可以統(tǒng)計到。
1. 軟件的安裝
在PC客戶端安裝的過程中,流程一般是這樣的:
- 運(yùn)行安裝包
- 彈出安裝界面提供給用戶操作
- 執(zhí)行安裝過程-寫注冊表、啟動項、計劃任務(wù)等
- 執(zhí)行安裝過程-創(chuàng)建安裝的文件夾(3和4可以交換)
在這個環(huán)節(jié),我們一般需要知道:
- 安裝包被運(yùn)行了
- 在安裝界面用戶做了哪些操作
- 我們的安裝過程是否正常執(zhí)行
- 我們最終是否安裝成功
在PC上,只要我們的安裝包運(yùn)行起來了,無論是彈出安裝界面、寫注冊表還是創(chuàng)建文件,這些都是安裝包可以控制的,所以我們能通過安裝包進(jìn)程,將整個安裝環(huán)節(jié)的所有數(shù)據(jù)記錄下來發(fā)送到我們的后臺并記錄下來(這里要重點記住,由于安裝是一次性的動作,所以統(tǒng)計一定要發(fā)實時的)。
2. 軟件的使用
軟件的使用,包括啟動軟件、使用功能和退出軟件。
在PC上,軟件的啟動有很多種方式,例如開機(jī)自啟動、計劃任務(wù)、手動點擊快捷方式,我們繼續(xù)以“Axure RP”舉例,當(dāng)我們裝上了“Axure RP”后,會在桌面、開始菜單中,創(chuàng)建快捷方式(有些程序會在任務(wù)欄上也創(chuàng)建),同時,會將后綴名為“rp”的文件默認(rèn)打開方式調(diào)整為“Axure RP”。
對于啟動,我們就有了三種方式:桌面快捷方式、開始菜單快捷方式和默認(rèn)軟件打開,所以我們需要統(tǒng)計軟件是否被啟動了,是如何啟動的。
對于使用功能,當(dāng)軟件運(yùn)行起來后,其進(jìn)程就會啟動,這個時候就跟移動端的應(yīng)用類似,我們需要統(tǒng)計一系列事件,每個功能的使用情況、功能狀態(tài)、付費、登錄等一系列信息。
區(qū)別于移動端的是,在PC上一般這些統(tǒng)計都是做單點統(tǒng)計,例如統(tǒng)計彈窗的彈出、功能的點擊、某個狀態(tài),對于相互關(guān)聯(lián)的一組事件統(tǒng)計是比較復(fù)雜的,需要定義結(jié)構(gòu)體,在一條統(tǒng)計中包含很多組字段信息,因為沒有成熟的SDK集成,所以基本都要自己定義埋點,復(fù)用性較差。
這部分統(tǒng)計分為公共統(tǒng)計和專用統(tǒng)計。公共統(tǒng)計就是基本信息,常用的是用戶標(biāo)識、用戶基本信息、計算機(jī)硬件信息和其他的可復(fù)用的;專用統(tǒng)計就是針對你的功能,你想了解哪些情況,針對性進(jìn)行埋點統(tǒng)計。
對于軟件退出,這就比較簡單了,是正常退出還是異常退出?軟件使用了多久退出?
3. 軟件的卸載
軟件卸載的流程包括啟動卸載程序、用戶操作、刪除注冊表及文件等操作、完成卸載。
在這個過程中,我們主要關(guān)注兩方面的信息,一方面是用戶怎么卸載的?是主動使用卸載程序,還是通過一些管理軟件進(jìn)行卸載?
另一方面是用戶為什么要卸載,這個時候我們可以在卸載的界面中給用戶提供選擇,以獲取用戶的反饋。
三、該怎么埋點?
1. 埋點的分類
(1)時效性
PC客戶端一般情況下都比較復(fù)雜,子功能很多,可統(tǒng)計的內(nèi)容很多,為了節(jié)省帶寬,我們不可能每次都實時將數(shù)據(jù)傳輸回來,而且很多時效性不是很強(qiáng)的功能沒有必要實時上報。
①實時統(tǒng)計
當(dāng)功能觸發(fā)時或達(dá)到一定條件,立即將統(tǒng)計回傳,一般情況下用于時效性比較強(qiáng)的功能,例如活躍統(tǒng)計、營收類統(tǒng)計,我們需要實時分析并調(diào)整策略。
②延時統(tǒng)計
統(tǒng)計不立即回傳,將統(tǒng)計積累,達(dá)到一定的條件或者一定的時間,統(tǒng)一將這部分統(tǒng)計回傳,一般情況用于時效性不強(qiáng)的功能,例如采集設(shè)備信息、獲取某些功能的狀態(tài)、常規(guī)功能的統(tǒng)計。
這部分統(tǒng)計使用范圍比較廣,一般都是隔日發(fā)送,有一天的延遲,統(tǒng)計的信息晚一天不會對分析產(chǎn)生較大的影響。
(2)埋點的作用
①常規(guī)的基礎(chǔ)統(tǒng)計
每次統(tǒng)計都需要發(fā)送,可以理解為公用統(tǒng)計,這部分統(tǒng)計是將幾乎所有的統(tǒng)計都需要的部分包括進(jìn)來,封裝成一個統(tǒng)一的部分,每次發(fā)送統(tǒng)計都會帶上這些內(nèi)容,方便管理,節(jié)省后續(xù)埋點時間。
②功能統(tǒng)計
針對特定功能,當(dāng)功能被使用或者生效的時候,我們需要統(tǒng)計效果或者狀態(tài),可以理解為專用統(tǒng)計,不同于移動端,PC一般沒有第三方提供的SDK,需要每個專用統(tǒng)計自己埋點,維護(hù)大量的統(tǒng)計內(nèi)容,不過在一個公司內(nèi)部,可以統(tǒng)一設(shè)計規(guī)范,方便維護(hù)。
(3)數(shù)據(jù)類型
①結(jié)構(gòu)體
統(tǒng)計連貫的事件,各項信息之間的關(guān)聯(lián)很重要。
②計數(shù)
統(tǒng)計某個行為發(fā)生的次數(shù)。
③字符串
統(tǒng)計內(nèi)容。
④整形
統(tǒng)計數(shù)值,也可用來統(tǒng)計狀態(tài)。
⑤布爾型
統(tǒng)計需要判斷的類型,一般使用場景較少,為了方便計算,大部分被整形和字符串替代。
2. 數(shù)據(jù)埋點實例
(1)軟件安裝
場景:統(tǒng)計安裝過程中的信息。
(2)軟件的使用
場景:軟件啟動后,用戶使用了分享功能,將自己做的原型分享到了云端,最后用戶關(guān)閉了軟件。
要注意的是,軟件啟動和關(guān)閉,看需要是可以調(diào)整的,如果你只是想知道是不是啟動了,來判斷活躍,那么僅僅需要啟動的時候發(fā)送個整型的值標(biāo)識即可。
如果想知道更詳細(xì)的信息,比如啟動方式、啟動時間等等,可以定義結(jié)構(gòu)體,將這一刻更多的信息發(fā)送回來,可靈活定義。
(3)軟件卸載
卸載跟軟件安裝類似,這里就不贅述了。
在這里,如果希望收集用戶的卸載原因,可以定義一個字符串,將用戶填寫的內(nèi)容上報,這種形式的數(shù)據(jù)如果太多,不太利于分析,所以看產(chǎn)品情況可靈活設(shè)置。
本文由 @山有木兮 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于 CC0 協(xié)議
您好!樓主請問一下統(tǒng)計主Key填寫的A1,A2,F(xiàn)1,F(xiàn)2的這些代表什么,開發(fā)根據(jù)埋點獲取的數(shù)據(jù)是如何反饋的,這個能幫講講嗎?應(yīng)該是另外一張表吧。