首頁(yè)技術(shù)文章正文

埋點(diǎn)介紹及用途[大數(shù)據(jù)培訓(xùn)]

更新時(shí)間:2019-10-16 來(lái)源:黑馬程序員 瀏覽量:

一、什么是埋點(diǎn)?

數(shù)據(jù)埋點(diǎn)是數(shù)據(jù)采集的一種重要方式,主要用來(lái)記錄和收集終端用戶的操作行為,其基本原理是在App/H5/PC等終端部署采集的SDK代碼,當(dāng)用戶的行為滿足某種條件的時(shí)候,比如進(jìn)入某個(gè)頁(yè)面、點(diǎn)擊某個(gè)按鈕等,會(huì)自動(dòng)觸發(fā)記錄和存儲(chǔ),然后這些數(shù)據(jù)會(huì)被收集并被傳輸?shù)浇K端提供商,或者是通過(guò)后端采集用戶使用服務(wù)過(guò)程中的請(qǐng)求數(shù)據(jù)。

一個(gè)典型的埋點(diǎn)采集處理流程如下圖所示:

1571210106795_數(shù)據(jù)埋點(diǎn).jpg


二、埋點(diǎn)的用途

終端提供商在收集到埋點(diǎn)數(shù)據(jù)之后,通過(guò)大數(shù)據(jù)處理、數(shù)據(jù)統(tǒng)計(jì)、數(shù)據(jù)分析、數(shù)據(jù)挖掘等加工處理,可以得到衡量產(chǎn)品狀態(tài)的一些基本指標(biāo),比如活躍、留存、新增等大盤數(shù)據(jù),從而洞察產(chǎn)品的狀態(tài)。此外更重要的是隨著數(shù)據(jù)挖掘等技術(shù)的興起,埋點(diǎn)采集到的數(shù)據(jù)在以下方面的作用也越來(lái)越凸顯:

驅(qū)動(dòng)決策:ABtest、漏斗優(yōu)化、用戶增長(zhǎng)、bug修復(fù)、精準(zhǔn)營(yíng)銷、流失用戶預(yù)警

驅(qū)動(dòng)產(chǎn)品智能:智能推薦(千人千面)、場(chǎng)景化提示(私人助理)等

驅(qū)動(dòng)安全:風(fēng)險(xiǎn)識(shí)別

三、埋點(diǎn)的分類

從位置上分為前端埋點(diǎn)和后端埋點(diǎn),從形式上分為顯性埋點(diǎn)和隱性埋點(diǎn),從路徑上又可以分為路徑埋點(diǎn)和獨(dú)立埋點(diǎn),從需求上分為業(yè)務(wù)埋點(diǎn)和監(jiān)測(cè)埋點(diǎn)。

由于埋點(diǎn)的主要操作過(guò)程是以終端的交互界面為基礎(chǔ),制定數(shù)據(jù)采集的方案,其它的埋點(diǎn)分類也只是從不同的角度來(lái)進(jìn)行埋點(diǎn)設(shè)計(jì)。前端埋點(diǎn)是當(dāng)前主要采用的埋點(diǎn)方式,下面主要對(duì)前端埋點(diǎn)進(jìn)行闡述。【推薦了解大數(shù)據(jù)培訓(xùn)課程

1、前端埋點(diǎn)

前端埋點(diǎn)是在用戶端(APP、Web、客戶端)等嵌入數(shù)據(jù)采集代碼,比如友盟等均采用的是前端埋點(diǎn),比如通過(guò)嵌入一段代碼就就可以對(duì)網(wǎng)頁(yè)數(shù)據(jù)的訪問(wèn)數(shù)據(jù)進(jìn)行采集。相比于后端埋點(diǎn),前端埋點(diǎn)能方便收集到用戶在界面上的行為數(shù)據(jù),比如用戶點(diǎn)了哪個(gè)按鈕、頁(yè)面之間的跳轉(zhuǎn)次序、停留時(shí)長(zhǎng)等,這些數(shù)據(jù)是后面進(jìn)行數(shù)據(jù)分析的主要來(lái)源。

前端埋點(diǎn)技術(shù)有以下三類:

(1)代碼埋點(diǎn)

代碼埋點(diǎn)是直接將采集SDK集成在終端,然后不斷在此基礎(chǔ)上添加調(diào)整采集方案,是目前主流的埋點(diǎn)采集方案,其優(yōu)缺點(diǎn)如下:

優(yōu)點(diǎn):

高度定制、控制精準(zhǔn)、采集的數(shù)據(jù)豐富準(zhǔn)確。

缺點(diǎn):

首先是每當(dāng)有采集需求,需要開發(fā)人員不斷添加采集代碼,工作量大;

其次變更采集策略,需要發(fā)布新版本,代價(jià)巨大,存在滯后效應(yīng);

最后由于采集代碼常駐終端,不斷將采集的用戶行為數(shù)據(jù)進(jìn)行記錄和上報(bào),對(duì)于終端尤其是移動(dòng)終端來(lái)說(shuō)還有耗電、消耗數(shù)據(jù)流量等負(fù)載,此外在數(shù)據(jù)上報(bào)傳輸?shù)倪^(guò)程中也存在丟失數(shù)據(jù)的風(fēng)險(xiǎn)。

(2)可視化埋點(diǎn)

由于代碼埋點(diǎn)需要終端開發(fā)人員來(lái)執(zhí)行采集方案,對(duì)業(yè)務(wù)的功能開發(fā)侵入性較高。有的公司開發(fā)出了可視化埋點(diǎn)技術(shù),只需要產(chǎn)品與運(yùn)營(yíng)人員通過(guò)GUI界面進(jìn)行鼠標(biāo)簡(jiǎn)單點(diǎn)擊,就可以隨時(shí)增加、取消、調(diào)整采集數(shù)據(jù)的位置和方式,此種埋點(diǎn)方式避開了終端開發(fā)人員的介入,由需求人員直接執(zhí)行采集,減輕了需求傳遞過(guò)程中的信息損耗和誤解,另外可視化埋點(diǎn)技術(shù)往往由服務(wù)端直接下發(fā)采集的配置文件,而不用跟隨版本發(fā)布,從而加快了數(shù)據(jù)采集的流程。

具體實(shí)現(xiàn)方式參考:

具體實(shí)現(xiàn)是SDK定時(shí)做界面截圖,在截圖的同時(shí)從界面UI的根對(duì)象開始遍歷所有的可視化子對(duì)象,得到其層級(jí)關(guān)系。根據(jù)截圖和UI元素的可視化信息重新渲染頁(yè)面,識(shí)別可埋點(diǎn)的控件。當(dāng)產(chǎn)品人員在后臺(tái)管理端的截屏畫面上點(diǎn)擊可埋點(diǎn)控件,設(shè)置事件關(guān)聯(lián)方面的配置,服務(wù)器保存這些配置,客戶端在獲取到這些配置信息以后,按照新配置采集數(shù)據(jù)。

(3)無(wú)埋點(diǎn)

無(wú)埋點(diǎn)與可視化埋點(diǎn)原理基本一致,區(qū)別在于無(wú)埋點(diǎn)是先遍歷所有的控件和操作行為的組合情況,然后將這些組合情況交給埋點(diǎn)后臺(tái),由數(shù)據(jù)分析人員選擇對(duì)哪些組合的埋點(diǎn)數(shù)據(jù)進(jìn)行分析,其優(yōu)缺點(diǎn)如下:

優(yōu)點(diǎn):

收集數(shù)據(jù)全面,無(wú)漏報(bào)

缺點(diǎn):

采集數(shù)據(jù)量巨大,增加了終端流量消耗和服務(wù)器存儲(chǔ)負(fù)擔(dān)。

埋點(diǎn)的上報(bào)時(shí)機(jī)相對(duì)呆板,不能靈活的根據(jù)特定的場(chǎng)景進(jìn)行特殊設(shè)置

前端埋點(diǎn)的注意事項(xiàng):

頁(yè)面和控件標(biāo)示上報(bào)要從頂層進(jìn)行合理的設(shè)計(jì),層次感要明顯

埋點(diǎn)數(shù)據(jù)的漏報(bào)和重復(fù)上報(bào)如何衡量

前端埋點(diǎn)不僅可以處理不需要和服務(wù)器交互的曝光和點(diǎn)擊事件,也可以將與服務(wù)器交互的結(jié)果,比如關(guān)注成功、分享成功、優(yōu)惠券領(lǐng)取成功等原屬于后端埋點(diǎn)里的事件放在前端來(lái)上報(bào)。

2、后端埋點(diǎn)

后端埋點(diǎn)為了避免前端埋點(diǎn)的以下問(wèn)題:

前端埋點(diǎn)需要對(duì)采集的數(shù)據(jù)壓縮、暫存,為減少移動(dòng)端的數(shù)據(jù)流量,除一些需要實(shí)時(shí)上報(bào)的重要事件不限制網(wǎng)絡(luò)環(huán)境,其它事件一般只在wifi情況下上報(bào),因此數(shù)據(jù)會(huì)有延遲,丟數(shù)據(jù)等弊端,而在后端采集數(shù)據(jù),由于數(shù)據(jù)是在內(nèi)網(wǎng)傳輸,數(shù)據(jù)傳輸?shù)募磿r(shí)性強(qiáng),丟失數(shù)據(jù)的風(fēng)險(xiǎn)小。

前端埋點(diǎn)采集程序由于需要常駐,監(jiān)測(cè)實(shí)時(shí)和延遲埋點(diǎn)上報(bào),不可避免的帶來(lái)額外的耗電。

前端埋點(diǎn)若要新增或調(diào)整采集方案,需要開發(fā)人員修改客戶端代碼,然后發(fā)版之后才能解決,受發(fā)布周期的影響較大,而且通常用戶的版本更新并不會(huì)及時(shí),這將導(dǎo)致新方案不能及時(shí)覆蓋所有用戶。雖然現(xiàn)在部分埋點(diǎn)管理后臺(tái)也支持熱配置更新,但功能一般都很弱,只支持一些基礎(chǔ)的埋點(diǎn)事件熱更新部署。

注意:

很多時(shí)候并不把后端埋點(diǎn)獨(dú)立出來(lái),而是混合在前端埋點(diǎn)中,等用戶和服務(wù)器端的交互返回結(jié)果之后,將結(jié)果進(jìn)行上報(bào)。

對(duì)一下需要精確采集的數(shù)據(jù),比如代金券發(fā)放等,實(shí)施的時(shí)候盡量采用后端埋點(diǎn),除非后端無(wú)法采集到所需要的數(shù)據(jù),前端埋點(diǎn)只是用來(lái)參考。此外也可以將業(yè)務(wù)數(shù)據(jù)庫(kù)代金券領(lǐng)取數(shù)據(jù)同步到數(shù)據(jù)倉(cāng)庫(kù)中進(jìn)行分析。

3、其它埋點(diǎn)

路徑埋點(diǎn)和獨(dú)立埋點(diǎn)

這部分的埋點(diǎn)根據(jù)業(yè)務(wù)對(duì)路徑的追蹤需求和SDK的開發(fā)能力,可為每個(gè)事件設(shè)計(jì)上下文的路徑信息,路徑信息的組成一般由頁(yè)面、控件、行為三部分組成,而路徑的深度也不宜太深,一般小于五層。

顯性埋點(diǎn)和隱性埋點(diǎn)

顯性和隱性是從用戶有感和無(wú)感來(lái)區(qū)分的,有感事件是用戶的主動(dòng)事件,比如展示和點(diǎn)擊事件;無(wú)感事件主要用來(lái)處理后臺(tái)的數(shù)據(jù)請(qǐng)求和拉取,用以監(jiān)控和服務(wù)器的數(shù)據(jù)交互是否正常等,無(wú)感事件中常用的是掃描采集,比如app啟動(dòng)之后,掃描各設(shè)置開關(guān)的狀態(tài)信息進(jìn)行上報(bào)等

業(yè)務(wù)埋點(diǎn)和監(jiān)測(cè)埋點(diǎn)

業(yè)務(wù)埋點(diǎn)是從業(yè)務(wù)需求的角度而言,比如產(chǎn)品需要統(tǒng)計(jì)某個(gè)頁(yè)面的曝光和點(diǎn)擊,算法人員需要的推薦項(xiàng)點(diǎn)擊率等;而監(jiān)測(cè)埋點(diǎn)是從業(yè)務(wù)的流程上來(lái)講的,一般是指隱性的(比如服務(wù)器交互的內(nèi)容拉取情況、本地潛在信息的生成情況等),此外業(yè)務(wù)埋點(diǎn)中的關(guān)鍵部分也可以用作監(jiān)測(cè)埋點(diǎn)。

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!