前端數(shù)據(jù)埋點(diǎn)

數(shù)據(jù)埋點(diǎn),是一種常用的數(shù)據(jù)采集方法。埋點(diǎn)是數(shù)據(jù)的來(lái)源,采集的數(shù)據(jù)可以幫助業(yè)務(wù)人員分析網(wǎng)站或者App的使用情況、用戶(hù)行為習(xí)慣等,是后續(xù)建立用戶(hù)畫(huà)像、用戶(hù)行為路徑等數(shù)據(jù)產(chǎn)品的基礎(chǔ)。
前端的埋點(diǎn)方式主要分為代碼埋點(diǎn)、可視化埋點(diǎn)、無(wú)埋點(diǎn)三種。
1.代碼埋點(diǎn)
代碼埋點(diǎn)主要由App研發(fā)工程師手工在程序中寫(xiě)代碼實(shí)現(xiàn),通過(guò)觸發(fā)某個(gè)動(dòng)作后程序自動(dòng)發(fā)送數(shù)據(jù)。優(yōu)點(diǎn):具有很強(qiáng)的靈活性,可以控制發(fā)送的時(shí)機(jī)和發(fā)送方式等。缺點(diǎn):人力成本較高,需要研發(fā)工程師手工開(kāi)發(fā)程序,有時(shí)候還要依賴(lài)App發(fā)版來(lái)生效。
要實(shí)現(xiàn)在不修改代碼的前提下新增埋點(diǎn),我們調(diào)研了可視化埋點(diǎn)和無(wú)埋點(diǎn)兩種方式。
2.無(wú)埋點(diǎn)
無(wú)埋點(diǎn)綁定頁(yè)面的各個(gè)控件,當(dāng)事件觸發(fā)時(shí)就會(huì)調(diào)用相關(guān)的接口上報(bào)數(shù)據(jù)。優(yōu)點(diǎn):不需要埋點(diǎn),方便、快捷、省事。缺點(diǎn):傳輸數(shù)據(jù)量比較大,需要消耗一定的數(shù)據(jù)存儲(chǔ)資源。
其中,無(wú)埋點(diǎn)(又稱(chēng)全埋點(diǎn))會(huì)收集用戶(hù)在應(yīng)用里的所有行為,并上報(bào)所有相關(guān)的數(shù)據(jù),由此產(chǎn)生大量無(wú)用數(shù)據(jù)。
3.可視化埋點(diǎn)
而可視化埋點(diǎn)的方式為:通過(guò)埋點(diǎn)平臺(tái)圈選所需埋點(diǎn)的頁(yè)面元素,進(jìn)行埋點(diǎn)上報(bào)屬性的配置與發(fā)布,由采集 SDK 同步埋點(diǎn)配置,并根據(jù)配置自動(dòng)進(jìn)行用戶(hù)行為數(shù)據(jù)的采集和發(fā)送。
可視化埋點(diǎn)的基本思路:以點(diǎn)擊事件為例,Web 可視化埋點(diǎn)一般會(huì)提供一個(gè) SDK,SDK 會(huì)在 document 上面監(jiān)聽(tīng) click 事件,借助于事件委托的特性,可以捕獲到頁(yè)面上任意元素的 click 事件及元素的信息。同時(shí) Web 可視化埋點(diǎn)會(huì)提供一個(gè)平臺(tái),該平臺(tái)通過(guò) iframe 嵌入需要進(jìn)行埋點(diǎn)配置的網(wǎng)頁(yè),然后通過(guò) postMessage 來(lái)進(jìn)行平臺(tái)與目標(biāo)頁(yè)面的通信。
當(dāng)然,可視化埋點(diǎn)也并不是無(wú)所不能,也存在一些局限性:業(yè)務(wù)屬性數(shù)據(jù),例如,訂單號(hào)、金額、商品數(shù)據(jù)量等,通常要調(diào)用后臺(tái)的接口,可視化埋點(diǎn)在這方面的支持有限;
就目前技術(shù)來(lái)講,可視化埋點(diǎn)并不能使數(shù)據(jù)采集達(dá)到最完美的狀態(tài);雖然它可以提升效率,但滿(mǎn)足不了所有場(chǎng)景的數(shù)據(jù)采集。從使用角度來(lái)說(shuō),如果是急于需要使用數(shù)據(jù),人力資源又緊張的情況下,可視化埋點(diǎn)就是最后的選擇。如果緊急度不高,且人手充足的情況下,則可考慮代碼埋點(diǎn)。
