想看埋點數據?產品經理有必要了解的埋點知識(2)

5 評論 40419 瀏覽 330 收藏 11 分鐘

本文是數據埋點知識系列的第二篇文章,主要分享關于埋點數據的采集、傳輸、加工、存儲、應用和管理等內容。

正如上篇文章所提的,埋點是互聯網公司獲取數據信息的重要方式。數據的全流程一般涉及到采集、傳輸、加工、存儲、應用等過程。下面就將按照這個順序,對埋點全流程進行說明。最后,加入了一個埋點系統設計者對埋點管理過程的理解,期待同行的交流~

采集過程:

上文提到了埋點信息采集的方式,那么具體埋點信息采集的過程是怎么樣的呢?

以H5網頁某頁面曝光埋點為例子,先講一下網頁頁面展現的流程??驁D如下:

具體細節如下:

  1. 用戶點擊或輸入某頁面鏈接。
  2. APP客戶端或瀏覽器向服務器發送HTTP請求。該請求內容一般包括請求的URL、請求方法、請求報頭(一些必要的內容例如用戶cookie等)、請求內容。
  3. 服務器接受HTTP請求,進行解析,并將內容返回給客戶端或瀏覽器。返回內容一般包括返回狀態(是否成功,例如著名的404就是在這里進行添加的),返回具體內容(請求的網頁中包含的內容如圖片等),返回報頭(cookie等)
  4. 客戶端或瀏覽器對返回內容進行解析,并把內容展示給用戶。

這樣就完成了一個頁面的曝光展示。如果對該曝光事件加上埋點,前兩步是沒有影響的,在第三步:服務器在返回HTTP內容時,會加入一段與埋點相關的腳本代碼(如上文埋點方式部分所說,這段代碼可能是手動埋點寫入的,也可能是半自動或全自動埋點方式寫入的)。

客戶端或瀏覽器解析到這部分內容時,會向埋點日志接收服務器(以下簡稱埋點服務器)發送一個請求。這個請求中即帶有我們通過埋點想獲得的寶貴的數據信息。埋點服務器接受到請求后,會返回一個已接收的信息給客戶端。同時,埋點服務器會將這些信息傳輸到后續環節。如下圖:

這里再說一下和數據準確性有關的內容。在客戶端向埋點服務器發送信息的過程中,可能存在丟包,即數據發送失敗信息沒有傳輸過去的情況。該發送過程一般通過POST格式,發送JSON串信息,具體方式分兩種:一種是單條發送;一種是在本地打包成zip包,積累一定量后發送。兩種方式中,zip的丟包情況更嚴重些。所以PM在看數據時候,也應當清楚,數據會有一定誤差。(據作者實踐經驗,單條POST格式數據誤差一般不超過2%)

傳輸流程:

埋點數據產生之后,被埋點服務器接收,有些時候會進行解析操作,然后會通過消息訂閱通道例如kafka之類進行消息的分發,進入離線或實時的儲存中,用于后續的計算和分析。

加工和存儲過程:

加工:經過加工存儲這一步后,埋點數據基本可以從收集到的原材料狀態變為可以為業務服務的有用數據了。上文提到,埋點數據都是一條一條,是用戶觸發埋點對應事件時上傳的。

這些數據可能包括:用戶會話id,用戶id,當前頁面編碼,當前事件編碼,觸發時間,用戶設備id,ip信息等,這些零散的信息需要通過加工處理進行聚合,變成更加通用常用的數據,便于后續調用。

例如一些通用的處理:針對APP首頁曝光事件,選取當日首頁曝光事件上傳的數據條數,對用戶id去重并加和即可以得到當日的UV。

存儲:對于離線存儲來說,埋點原始數據會以表(類似excel表)的形式存儲于數據倉庫的原始數據層,經過上述處理過的數據,會以另外一張表的形式存儲于數據倉庫的匯總層。如果數據倉庫建設比較完善,通用的業務數據,直接從匯總層甚至更上層的應用層中取即可,而不必再去取原始層的埋點數據,省去了每次計算的工作量。

?應用過程:

任何需要用戶行為數據的場景,可能都能用到埋點信息。埋點數據可以用來計算頁面的UV/PV、控件的點擊PV/UV等基礎數據,按照不同維度進一步加工可得APP的日活月活;也可以計算頁面停留時間,流失率等;更為復雜一些,通過當前事件和上一事件間的關系(需要在埋點中定義),可以繪制出用戶的行為路徑圖,計算漏斗轉化率等等。

這些業務上的應用實現:

  1. 大一點的公司可能有自己的可視化工具,直連到數據倉庫應用層中已經加工聚合過的埋點數據并進行可視化展示;
  2. 有些公司可能需要BI人員使用tableau等可視化工具,寫SQL跑數據去處理數據倉庫中較為原始的埋點數據,然后得以展現。

如果是后者,需要BI人員的排期,則周期會比較長。

對于實時的數據源,還有開源的grafana、kibana等可視化工具可以利用進行展示,但使用門檻較高,PM等非技術人員上手比較困難。

埋點管理過程:

最原始的埋點管理方式是用文檔或表格記錄下來埋點的編碼命名、業務含義及其他必備信息,在埋點業務方內部共享即可。

但當公司的產品越做越多越做越大,相應的埋點就會越多(多達成千甚至上萬)。對互聯網規模企業,管理大量埋點往往也需要配套的工具:埋點信息管理系統。

埋點信息管理系統主要有的功能:

  • 提供埋點信息的錄入功能。
  • 記錄各埋點是否存在,進行埋點層級管理。因為埋點較多,往往需要按照APP-頁面-控件的層級進行分類、記錄和查詢。
  • 展示并可查詢某埋點的詳細信息。例如物理編碼信息和對應的業務含義信息,埋點的上線版本和時間,埋點管理員責任人,埋點信息儲存的數倉表名稱以及必要的埋點數據結構體(對個性化埋點可能出現的上傳數據中新加字段的解釋)。
  • 輔助功能。如埋點數據量的監控,埋點信息預覽,埋點數據通用分析及可視化展示等。

埋點管理是建立在埋點生成、傳輸、儲存等過程的基礎之上的。管理的重點和難點,在于大量埋點物理編碼(命名編碼)和業務含義的對應。這個對應是將不可讀的英文編碼字段和易于理解的漢語業務含義連接起來的過程。對應可能是一對多,多對一,甚至多對多的。

1.對應過程在手動埋點中,反應在PM與開發溝通及開發具體埋點行為中。首先PM需要根據業務含義,選擇要埋的點并取或生成一個物理編碼;之后開發按照這個對應關系,將物理編碼寫入到業務含義對應的頁面或事件上。這個過程是抽象且容易出錯的。

2.對應過程在全自動埋點中,反應在PM和開發溝通并“認領”自動埋點的行為中。PM需要向開發了解,已經存在的某物理編碼代表的是什么意思即其業務含義是什么,然后將這兩者關聯。往往還需要將IOS和安卓兩個不同的物理編碼關聯到同一業務含義上,因為這兩個物理編碼實際就是同一頁面或控件。這個過程,也是抽象易錯的。

抽象易錯,主要是因為需要憑腦中想象將兩種文字編碼級的內容進行關聯。上文提到的可視化埋點則可通過直觀的APP展現,顯示出物理編碼及業務含義,解決抽象的問題。伴隨著產品迭代埋點數目增長,似乎有效的可視化埋點是大公司做埋點管理有必要嘗試的方向。

相關閱讀:

想看埋點數據?產品經理有必要了解的埋點知識(1)

 

本文由 @Chase?原創發布于人人都是產品經理。未經許可,禁止轉載

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 大家期待已久的《數據產品經理實戰訓練營》終于在起點學院(人人都是產品經理旗下教育機構)上線啦!

    本課程非常適合新手數據產品經理,或者想要轉崗的產品經理、數據分析師、研發、產品運營等人群。

    課程會從基礎概念,到核心技能,再通過典型數據分析平臺的實戰,幫助大家構建完整的知識體系,掌握數據產品經理的基本功。

    學完后你會掌握怎么建指標體系、指標字典,如何設計數據埋點、保證數據質量,規劃大數據分析平臺等實際工作技能~

    現在就添加空空老師(微信id:anne012520),咨詢課程詳情并領取福利優惠吧!

    來自廣東 回復
  2. 很詳細很清晰,謝謝您的分享!

    來自上海 回復
  3. 物理編碼是什么樣子的,能舉個栗子說明一下嗎,謝謝~

    來自浙江 回復
    1. 比如用戶觸發了首頁曝光事件,埋點上報的數據中物理編碼可能是這樣的:
      page: woshipm_index ;event: pageview 這兩個組合起來如果能完全確定一個用戶事件,就可以認為是這個事件的物理編碼

      來自廣東 回復
  4. 很清晰,感謝分享~

    來自北京 回復