想看埋點(diǎn)數(shù)據(jù)?產(chǎn)品經(jīng)理有必要了解的埋點(diǎn)知識(shí)(2)
本文是數(shù)據(jù)埋點(diǎn)知識(shí)系列的第二篇文章,主要分享關(guān)于埋點(diǎn)數(shù)據(jù)的采集、傳輸、加工、存儲(chǔ)、應(yīng)用和管理等內(nèi)容。
正如上篇文章所提的,埋點(diǎn)是互聯(lián)網(wǎng)公司獲取數(shù)據(jù)信息的重要方式。數(shù)據(jù)的全流程一般涉及到采集、傳輸、加工、存儲(chǔ)、應(yīng)用等過程。下面就將按照這個(gè)順序,對(duì)埋點(diǎn)全流程進(jìn)行說明。最后,加入了一個(gè)埋點(diǎn)系統(tǒng)設(shè)計(jì)者對(duì)埋點(diǎn)管理過程的理解,期待同行的交流~
采集過程:
上文提到了埋點(diǎn)信息采集的方式,那么具體埋點(diǎn)信息采集的過程是怎么樣的呢?
以H5網(wǎng)頁某頁面曝光埋點(diǎn)為例子,先講一下網(wǎng)頁頁面展現(xiàn)的流程。框圖如下:
具體細(xì)節(jié)如下:
- 用戶點(diǎn)擊或輸入某頁面鏈接。
- APP客戶端或?yàn)g覽器向服務(wù)器發(fā)送HTTP請求。該請求內(nèi)容一般包括請求的URL、請求方法、請求報(bào)頭(一些必要的內(nèi)容例如用戶cookie等)、請求內(nèi)容。
- 服務(wù)器接受HTTP請求,進(jìn)行解析,并將內(nèi)容返回給客戶端或?yàn)g覽器。返回內(nèi)容一般包括返回狀態(tài)(是否成功,例如著名的404就是在這里進(jìn)行添加的),返回具體內(nèi)容(請求的網(wǎng)頁中包含的內(nèi)容如圖片等),返回報(bào)頭(cookie等)
- 客戶端或?yàn)g覽器對(duì)返回內(nèi)容進(jìn)行解析,并把內(nèi)容展示給用戶。
這樣就完成了一個(gè)頁面的曝光展示。如果對(duì)該曝光事件加上埋點(diǎn),前兩步是沒有影響的,在第三步:服務(wù)器在返回HTTP內(nèi)容時(shí),會(huì)加入一段與埋點(diǎn)相關(guān)的腳本代碼(如上文埋點(diǎn)方式部分所說,這段代碼可能是手動(dòng)埋點(diǎn)寫入的,也可能是半自動(dòng)或全自動(dòng)埋點(diǎn)方式寫入的)。
客戶端或?yàn)g覽器解析到這部分內(nèi)容時(shí),會(huì)向埋點(diǎn)日志接收服務(wù)器(以下簡稱埋點(diǎn)服務(wù)器)發(fā)送一個(gè)請求。這個(gè)請求中即帶有我們通過埋點(diǎn)想獲得的寶貴的數(shù)據(jù)信息。埋點(diǎn)服務(wù)器接受到請求后,會(huì)返回一個(gè)已接收的信息給客戶端。同時(shí),埋點(diǎn)服務(wù)器會(huì)將這些信息傳輸?shù)胶罄m(xù)環(huán)節(jié)。如下圖:
這里再說一下和數(shù)據(jù)準(zhǔn)確性有關(guān)的內(nèi)容。在客戶端向埋點(diǎn)服務(wù)器發(fā)送信息的過程中,可能存在丟包,即數(shù)據(jù)發(fā)送失敗信息沒有傳輸過去的情況。該發(fā)送過程一般通過POST格式,發(fā)送JSON串信息,具體方式分兩種:一種是單條發(fā)送;一種是在本地打包成zip包,積累一定量后發(fā)送。兩種方式中,zip的丟包情況更嚴(yán)重些。所以PM在看數(shù)據(jù)時(shí)候,也應(yīng)當(dāng)清楚,數(shù)據(jù)會(huì)有一定誤差。(據(jù)作者實(shí)踐經(jīng)驗(yàn),單條POST格式數(shù)據(jù)誤差一般不超過2%)
傳輸流程:
埋點(diǎn)數(shù)據(jù)產(chǎn)生之后,被埋點(diǎn)服務(wù)器接收,有些時(shí)候會(huì)進(jìn)行解析操作,然后會(huì)通過消息訂閱通道例如kafka之類進(jìn)行消息的分發(fā),進(jìn)入離線或?qū)崟r(shí)的儲(chǔ)存中,用于后續(xù)的計(jì)算和分析。
加工和存儲(chǔ)過程:
加工:經(jīng)過加工存儲(chǔ)這一步后,埋點(diǎn)數(shù)據(jù)基本可以從收集到的原材料狀態(tài)變?yōu)榭梢詾闃I(yè)務(wù)服務(wù)的有用數(shù)據(jù)了。上文提到,埋點(diǎn)數(shù)據(jù)都是一條一條,是用戶觸發(fā)埋點(diǎn)對(duì)應(yīng)事件時(shí)上傳的。
這些數(shù)據(jù)可能包括:用戶會(huì)話id,用戶id,當(dāng)前頁面編碼,當(dāng)前事件編碼,觸發(fā)時(shí)間,用戶設(shè)備id,ip信息等,這些零散的信息需要通過加工處理進(jìn)行聚合,變成更加通用常用的數(shù)據(jù),便于后續(xù)調(diào)用。
例如一些通用的處理:針對(duì)APP首頁曝光事件,選取當(dāng)日首頁曝光事件上傳的數(shù)據(jù)條數(shù),對(duì)用戶id去重并加和即可以得到當(dāng)日的UV。
存儲(chǔ):對(duì)于離線存儲(chǔ)來說,埋點(diǎn)原始數(shù)據(jù)會(huì)以表(類似excel表)的形式存儲(chǔ)于數(shù)據(jù)倉庫的原始數(shù)據(jù)層,經(jīng)過上述處理過的數(shù)據(jù),會(huì)以另外一張表的形式存儲(chǔ)于數(shù)據(jù)倉庫的匯總層。如果數(shù)據(jù)倉庫建設(shè)比較完善,通用的業(yè)務(wù)數(shù)據(jù),直接從匯總層甚至更上層的應(yīng)用層中取即可,而不必再去取原始層的埋點(diǎn)數(shù)據(jù),省去了每次計(jì)算的工作量。
?應(yīng)用過程:
任何需要用戶行為數(shù)據(jù)的場景,可能都能用到埋點(diǎn)信息。埋點(diǎn)數(shù)據(jù)可以用來計(jì)算頁面的UV/PV、控件的點(diǎn)擊PV/UV等基礎(chǔ)數(shù)據(jù),按照不同維度進(jìn)一步加工可得APP的日活月活;也可以計(jì)算頁面停留時(shí)間,流失率等;更為復(fù)雜一些,通過當(dāng)前事件和上一事件間的關(guān)系(需要在埋點(diǎn)中定義),可以繪制出用戶的行為路徑圖,計(jì)算漏斗轉(zhuǎn)化率等等。
這些業(yè)務(wù)上的應(yīng)用實(shí)現(xiàn):
- 大一點(diǎn)的公司可能有自己的可視化工具,直連到數(shù)據(jù)倉庫應(yīng)用層中已經(jīng)加工聚合過的埋點(diǎn)數(shù)據(jù)并進(jìn)行可視化展示;
- 有些公司可能需要BI人員使用tableau等可視化工具,寫SQL跑數(shù)據(jù)去處理數(shù)據(jù)倉庫中較為原始的埋點(diǎn)數(shù)據(jù),然后得以展現(xiàn)。
如果是后者,需要BI人員的排期,則周期會(huì)比較長。
對(duì)于實(shí)時(shí)的數(shù)據(jù)源,還有開源的grafana、kibana等可視化工具可以利用進(jìn)行展示,但使用門檻較高,PM等非技術(shù)人員上手比較困難。
埋點(diǎn)管理過程:
最原始的埋點(diǎn)管理方式是用文檔或表格記錄下來埋點(diǎn)的編碼命名、業(yè)務(wù)含義及其他必備信息,在埋點(diǎn)業(yè)務(wù)方內(nèi)部共享即可。
但當(dāng)公司的產(chǎn)品越做越多越做越大,相應(yīng)的埋點(diǎn)就會(huì)越多(多達(dá)成千甚至上萬)。對(duì)互聯(lián)網(wǎng)規(guī)模企業(yè),管理大量埋點(diǎn)往往也需要配套的工具:埋點(diǎn)信息管理系統(tǒng)。
埋點(diǎn)信息管理系統(tǒng)主要有的功能:
- 提供埋點(diǎn)信息的錄入功能。
- 記錄各埋點(diǎn)是否存在,進(jìn)行埋點(diǎn)層級(jí)管理。因?yàn)槁顸c(diǎn)較多,往往需要按照APP-頁面-控件的層級(jí)進(jìn)行分類、記錄和查詢。
- 展示并可查詢某埋點(diǎn)的詳細(xì)信息。例如物理編碼信息和對(duì)應(yīng)的業(yè)務(wù)含義信息,埋點(diǎn)的上線版本和時(shí)間,埋點(diǎn)管理員責(zé)任人,埋點(diǎn)信息儲(chǔ)存的數(shù)倉表名稱以及必要的埋點(diǎn)數(shù)據(jù)結(jié)構(gòu)體(對(duì)個(gè)性化埋點(diǎn)可能出現(xiàn)的上傳數(shù)據(jù)中新加字段的解釋)。
- 輔助功能。如埋點(diǎn)數(shù)據(jù)量的監(jiān)控,埋點(diǎn)信息預(yù)覽,埋點(diǎn)數(shù)據(jù)通用分析及可視化展示等。
埋點(diǎn)管理是建立在埋點(diǎn)生成、傳輸、儲(chǔ)存等過程的基礎(chǔ)之上的。管理的重點(diǎn)和難點(diǎn),在于大量埋點(diǎn)物理編碼(命名編碼)和業(yè)務(wù)含義的對(duì)應(yīng)。這個(gè)對(duì)應(yīng)是將不可讀的英文編碼字段和易于理解的漢語業(yè)務(wù)含義連接起來的過程。對(duì)應(yīng)可能是一對(duì)多,多對(duì)一,甚至多對(duì)多的。
1.對(duì)應(yīng)過程在手動(dòng)埋點(diǎn)中,反應(yīng)在PM與開發(fā)溝通及開發(fā)具體埋點(diǎn)行為中。首先PM需要根據(jù)業(yè)務(wù)含義,選擇要埋的點(diǎn)并取或生成一個(gè)物理編碼;之后開發(fā)按照這個(gè)對(duì)應(yīng)關(guān)系,將物理編碼寫入到業(yè)務(wù)含義對(duì)應(yīng)的頁面或事件上。這個(gè)過程是抽象且容易出錯(cuò)的。
2.對(duì)應(yīng)過程在全自動(dòng)埋點(diǎn)中,反應(yīng)在PM和開發(fā)溝通并“認(rèn)領(lǐng)”自動(dòng)埋點(diǎn)的行為中。PM需要向開發(fā)了解,已經(jīng)存在的某物理編碼代表的是什么意思即其業(yè)務(wù)含義是什么,然后將這兩者關(guān)聯(lián)。往往還需要將IOS和安卓兩個(gè)不同的物理編碼關(guān)聯(lián)到同一業(yè)務(wù)含義上,因?yàn)檫@兩個(gè)物理編碼實(shí)際就是同一頁面或控件。這個(gè)過程,也是抽象易錯(cuò)的。
抽象易錯(cuò),主要是因?yàn)樾枰獞{腦中想象將兩種文字編碼級(jí)的內(nèi)容進(jìn)行關(guān)聯(lián)。上文提到的可視化埋點(diǎn)則可通過直觀的APP展現(xiàn),顯示出物理編碼及業(yè)務(wù)含義,解決抽象的問題。伴隨著產(chǎn)品迭代埋點(diǎn)數(shù)目增長,似乎有效的可視化埋點(diǎn)是大公司做埋點(diǎn)管理有必要嘗試的方向。
相關(guān)閱讀:
想看埋點(diǎn)數(shù)據(jù)?產(chǎn)品經(jīng)理有必要了解的埋點(diǎn)知識(shí)(1)
本文由 @Chase?原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
大家期待已久的《數(shù)據(jù)產(chǎn)品經(jīng)理實(shí)戰(zhàn)訓(xùn)練營》終于在起點(diǎn)學(xué)院(人人都是產(chǎn)品經(jīng)理旗下教育機(jī)構(gòu))上線啦!
本課程非常適合新手?jǐn)?shù)據(jù)產(chǎn)品經(jīng)理,或者想要轉(zhuǎn)崗的產(chǎn)品經(jīng)理、數(shù)據(jù)分析師、研發(fā)、產(chǎn)品運(yùn)營等人群。
課程會(huì)從基礎(chǔ)概念,到核心技能,再通過典型數(shù)據(jù)分析平臺(tái)的實(shí)戰(zhàn),幫助大家構(gòu)建完整的知識(shí)體系,掌握數(shù)據(jù)產(chǎn)品經(jīng)理的基本功。
學(xué)完后你會(huì)掌握怎么建指標(biāo)體系、指標(biāo)字典,如何設(shè)計(jì)數(shù)據(jù)埋點(diǎn)、保證數(shù)據(jù)質(zhì)量,規(guī)劃大數(shù)據(jù)分析平臺(tái)等實(shí)際工作技能~
現(xiàn)在就添加空空老師(微信id:anne012520),咨詢課程詳情并領(lǐng)取福利優(yōu)惠吧!
很詳細(xì)很清晰,謝謝您的分享!
物理編碼是什么樣子的,能舉個(gè)栗子說明一下嗎,謝謝~
比如用戶觸發(fā)了首頁曝光事件,埋點(diǎn)上報(bào)的數(shù)據(jù)中物理編碼可能是這樣的:
page: woshipm_index ;event: pageview 這兩個(gè)組合起來如果能完全確定一個(gè)用戶事件,就可以認(rèn)為是這個(gè)事件的物理編碼
很清晰,感謝分享~