京東科技埋點數據治理和平臺建設實踐

来源:https://www.cnblogs.com/jingdongkeji/archive/2023/10/30/17797456.html
-Advertisement-
Play Games

本文核心內容聚焦為什麼要埋點治理、埋點治理的方法論和實踐、奇點一站式埋點管理平臺的建設和創新功能。讀者可以從全局角度深入瞭解埋點、埋點治理的整體思路和實踐方法,落地的埋點工具和創新功能都有較高的實用參考價值。 ...


導讀

本文核心內容聚焦為什麼要埋點治理、埋點治理的方法論和實踐、奇點一站式埋點管理平臺的建設和創新功能。讀者可以從全局角度深入瞭解埋點、埋點治理的整體思路和實踐方法,落地的埋點工具和創新功能都有較高的實用參考價值。遵循埋點治理的方法論,本文作者團隊已在實踐中取得優異成效,在同行業內有突出的創新功能,未來也將繼續建設數智化經營能力,持續打造更好的服務。

一、埋點治理背景

1.1 埋點數據的價值

隨著線上流量紅利高峰逐漸達到瓶頸,在精細化運營、數智化運營的大背景下,越來越多的公司開始認識到數據的重要性,並將其打造成為公司的核心資產,以數據為中心驅動業務發展。而埋點數據作為企業內部最重要的兩大來源(埋點數據、業務數據)之一,其重要性不言而喻。

埋點是一種常用的數據採集方法。基於業務需求或產品需求,在應用頁面中植入數據採集代碼,監聽用戶各種行為事件(頁面瀏覽、關閉,元素曝光、點擊等),然後將採集的數據上報至服務端,服務端分別下發到大數據平臺和搜索、推薦等各業務系統。通過分析數據,追蹤用戶行為和應用使用情況,推動產品優化或指導運營;通過實時的獲取用戶點擊、瀏覽、停留等行為作為關鍵特征提供給搜索、推薦、廣告等系統,來提升智能分發的轉化和用戶體驗。

埋點數據上能影響業務運營數據分析、智能推薦、AB實驗的準確性,下能影響數據倉庫結構設計和數據採集團隊的維護成本。

1.2 業內主流埋點方式的對比

從技術層面上,埋點分為代碼埋點、可視化埋點、無埋點/全埋點。目前國內主要的第三方數據分析服務商和大型公司內部普遍支持。代碼埋點又衍生出了聲明式埋點、無痕埋點、服務端埋點等豐富的埋點方式。

通過多種埋點方式組合,可以在不同場景業務中靈活使用。比如在頁面中元素或頁面事件使用前端代碼埋點;在Debug鏈路長的搜推代碼中使用服務端埋點;產品運營等非研發使用可視化埋點。

1.3 為什麼要治理埋點數據

然而隨著業務的迭代變更,部分埋點數據失去效用。為了確保數據的質量、效率、安全、標準及易用性,需要對埋點數據進行治理。不僅是存量數據的治理,新增數據更是要保證從源頭開始就是正確的。在埋點數據的生命周期內,每個環節制定原則性的管理方法和具體的落地措施。一個穩定的治理鏈路是埋點治理的基石。

從平臺視角來看,埋點治理要解決的問題如下:

質量問題:最重要,大部分公司的數據部門啟動數據治理的起因就是數據質量存在問題。例如數倉的及時性、準確性、規範性,以及數據應用指標的邏輯一致性等。

成本問題:互聯網行業數據膨脹速度非常快,大型互聯網公司在大數據基礎設施上的成本投入占比非常高,而且隨著數據量的增加,成本也將繼續攀升。

效率問題:在數據開發和數據管理過程中都會遇到一些影響效率的問題,多是靠“盲目”地推人力在做。

安全問題:業務部門特別關註用戶數據,一旦泄露,對業務的影響非常之大,甚至能左右整個業務的生死。

標準問題:當公司業務部門比較多的時候,各業務部門、開發團隊的數據標準不一致,數據打通和整合過程中存在很多問題。

從業務視角來看,埋點治理要解決的問題如下:

埋點數據“全”: 因整體協助鏈條非常長,許多時候在需要做數據分析時,才發現頁面有部分功能漏報埋點,產品需求未涉及等。

埋點數據“準”:需求開發測試階段,往往重點關註業務邏輯,對於埋點上報這些輔助非同步流程,設計評估不准確。會存在因驗證不充分而導致數據不准確的情況。

埋點數據“快”: 推薦演算法主要依賴數據驅動,埋點數據需要及時上報並反饋,推薦等智能應用系統才能根據用戶當前行為給出精準的策略決策。

埋點數據“統一”:智能場景往往要通過多個業務線交叉數據作為輸入特征或演算法畫像,每個業務線如沒有統一標準規範,數據處理計算邏輯複雜且迭代維護成本很高。

埋點數據“鏈路長”:埋點數據從生產到使用,涉及運營、產品、研發、測試、數據分析師或演算法工程師多個環節(如下圖),問題溝通排查鏈路長。

埋點數據“歷史長”:頁面埋點隨需求迭代更新較快,歷史埋點設計文檔缺少統一管理,不利於長期維護。

二、埋點治理實踐

為解決上述問題,幾經探索總結經驗後,本文作者團隊為埋點治理制定了全面的標準制度。遵循相應的制度,使得埋點治理工作有序有效開展。

2.1 制定全鏈路標準

作者團隊制定了一套覆蓋數據生產到使用,全鏈路的數據標準方法,從埋點數據定義、採集、驗證、指標定義到數據生命周期管理都建立了相應環節的標準化的研發規範,發佈了《埋點流程規範標準》。

2.2 制定埋點流程規範

作者團隊制定了完整的埋點上報規範規程,並郵件通知各部門產研按流程,照規範上報數據。上報流程為埋點方案設計、埋點方案配置、埋點開發/測試、數據存儲/服務、數據應用五個環節,每個環節都要通過必要的步驟才可繼續向下執行。

2.3 建設一站式埋點管理平臺

奇點埋點管理平臺是科技內部統一的埋點平臺,覆蓋埋點數據定義、採集、生產、驗證、基礎指標應用、數據質量監控治理等埋點全生命周期。做到了埋點元數據統一管理,埋點信息查詢簡易化、埋點上報驗證一鍵化、埋點數據質量追蹤可視化。

2.4 成立組織保執行

通過和數據技術產品部門合作,在兩個部門領導的支持下,作者團隊成立了埋點治理盤古項目及埋點數據管理委員會。平臺研發部團隊是採集埋點數據工具的產研方,數據倉庫體系是由數據技術部負責建設,所以以這兩個團隊作為核心,並由這兩個團隊負責聯合各個業務線團隊,一起完成數據治理各個環節工作和流程的保障。

奇點團隊作為埋點數據採集和管理的主力,負責數據採集SDK,數據上報、清洗、存儲、查詢,埋點管理平臺等。

2.5 宣導埋點和數據文化

過去由於數據文化的缺失,很多業務方意識不到規範埋點的重要性。未正確錄入頁面埋點信息、使用低版本採集SDK,造成了大量不符合標準的數據。組織培訓會和埋點規範宣講,推動數據合理規範上報,也是埋點治理的重點工作之一。

三、埋點治理階段性成果

作者團隊提供的數據採集服務範圍除了京東科技下金融科技、京東雲、數字城市等全部業務線外,還擴展到了京東物流等兄弟部門。

奇點針對金融業務深耕多年,對數據的安全性、穩定性、實時性有多種保障方案,已是業務運營過程中不可或缺的重要環節。奇點管理平臺現已實現埋點管理、數據分析一體化。在埋點數據上報查詢、數據監控、數據計算可視化展示等各個環節都有相應的管理工具。

3.1 埋點驗證工具

過去驗證上報數據是否準確,需要測試人員申請資料庫表許可權,然後手寫SQL查詢數據。為此作者團隊做了埋點驗證工具,既可以掃碼查看本機實時數據、查看所有上報實時數據,也可以一鍵檢測上報數據是否符合規範。該工具為測試人員節省了大量時間,也為埋點治理,推動用戶規範錄入起了輔助作用。奇點服務端使用Lua腳本併發處理,而不是傳統的Web服務,處理請求速度更快,減少了伺服器資源使用。實時數據存放在ES中,相比MYSQL資料庫能容納更多的數據量,查詢速度更快。

3.2 埋點驗證工具

作者團隊在客戶端數據上報、服務端數據轉換、數據發送、落倉等每步都加入了監控,保證整條鏈路數據質量。監控定時檢查計算數據上報的成功率、緩存率、丟失率,數據加工清洗後的留存率、落倉率等,一旦數據浮動超過設定的閾值,會自動發告警郵件給奇點研發人員。有了數據監控,能及時發現、高效處理數據量問題,降低數據損失,節省人力,極大提升了數據質量。

3.3 實時數據一站式看板

過去作者團隊只關註埋點範圍的研發業務,平臺升級後,用戶錄入埋點信息後可通過看板即時查看PV、UV、點擊率等指標實時數據。對於用戶來說,省去了從各種庫表取數分析的步驟;對於埋點治理來說,不但降本增效,推動用戶規範錄入頁面信息,而且指標計算結果比各個業務方自己分析更加準確。

四、奇點埋點對比行業創新功能

4.1 埋點可視化展示

查看某個頁面的埋點信息,通常採用分頁列表的方式,詳細數據要跳轉到看板瀏覽。這種方式雖然羅列出了頁面所有埋點,但是每個埋點的錄入人不同,埋點多了之後具體每個埋點表示什麼含義其他人並不清楚。

為此作者團隊研發了埋點可視化工具,完美解決了上述問題。只要輸入頁面URL,選擇合適的設備大小,頁面哪些元素有埋點就呈現出來。每個坑位的埋點ID,點擊曝光的數據只要點擊一下浮框即可見。埋點可視化工具還支持查看實時上報的日誌和彙總的實時數據。

埋點可視化展示通過數據採集腳本-奇點 JS SDK 自動載入可視化插件實現,使用postMessage 和addEventListener('message'),實現埋點可視化工具和所查看頁面的數據雙向發送與接收,從而實時展示埋點數據和埋點日誌。為減少載入SDK的頁面開銷,作者團隊做了優化處理,只有在可視化工具中打開頁面才會載入該插件。

4.2 H5與原生App全鏈路數據打通

類似京東金融這樣使用Native和WEB技術開發的混合應用,之前H5頁面和原生頁面的數據,使用了不同的SDK採集,用戶在兩端頁面間跳轉,數據是斷裂的,只能分開統計,不能從整體上統計分析用戶行為。採用歸因統計的方法能關聯部分兩端的數據,但會導致數據統計不准確,不但增加數據分析人力、物力成本,不可靠的數據還會使運營無法精準投放廣告,從而影響最終收益;

如今奇點團隊實現了H5頁面和原生頁面數據打通,包括以下打通點:

訪次打通: 訪次是指用戶在當前設備中累計訪問次數,在京東金融 App 中,用戶每次重新打開或者切後臺超過 2 分鐘後,訪問的次數就會加1。可以根據訪次來統計用戶活躍度。

訪序打通: 訪序是指用戶在當前訪次內,頁面的訪問順序,H5和原生頁面打通後,頁面的訪序是連續的,可以更精準的查看用戶訪問頁面路徑。

來源埋點: 來源埋點是指上一個頁面用戶點擊點最後一個埋點ID。根據來源埋點,可以精准定位上一個頁面觸發點。數據打通後,可以確定當前頁面的熱點來源。

首訪埋點: 首訪埋點是指用戶打開App時首次點擊的坑位埋點,根據首訪埋點可以定位到進入某一 H5 或原生頁面起始點。

上一個頁面 URL 或原生頁面 CTP: 為了精準分析用戶行為軌跡,奇點會採集上一個頁面 URL 或原生頁面CTP,數據打通後,會形成閉環,即使是後退操作也會記錄後退的前一個頁面,從而可以更好的進行路徑分析、頁面可達分析、用戶丟失率分析。

其他採集欄位打通: 為了統一口徑,統一指標,打通的欄位還包含以下欄位:設備 ID、手機品牌、手機型號、App 名稱、App 版本。

兩端打通前:

兩端打通後:

數據打通的收益是巨大的,下麵是一個實際使用案例-小金庫頁面流量來源歸因分析:

4.3 頁面ID自動匹配上報

過去統計PV時,根據訪問頁面的URL作為唯一標識,這個URL需要在奇點管理平臺錄入後方可進行計算。然而這種方式存在很大的缺陷。當遇到以下場景,根據哪個URL來計算,邊界並不清晰。

  • URL中帶參數,例如/path1/path2?param=value。不同參數可能代表同一個頁面,也可能是不同的頁面;
  • 動態路由,例如/path1/path2/:path3/,某個path是動態的,如果這個path是數字ID,是無法在奇點管理平臺全部錄入的;
  • Hash路由,例如/path1/path2/#/route1 / route2。如今前端單頁面盛行,不同業務方做出的網站大相徑庭,hash值不同,有的希望統計成一個頁面,也有想統計成不同的頁面;
  • 以上場景混合的情況。

針對此問題,作者團隊提出了使用pageId代替URL的方案。即業務方在奇點管理平臺錄入時指定URL的哪部分是動態的還是固定的,並生成唯一頁面的ID。在訪問頁面時,當前頁面的鏈接與錄入的動態規則做計算,找到最匹配的pageId後上報數據,最終使用pageId做數據統計,極大的提高了指標計算正確率。

為保證此方案的穩健性,作者團隊也做了很多細節把控。比如為防止拉取CDN pageId JSON文件失敗,增加了重試機制,在未獲取到文件時先將上報數據緩存在本地。比如沒有匹配成功的URL另做打標處理。還有監控站點更新頁面,同步生成最新的配置關係等等。

五、未來規劃

在埋點數據治理方向,奇點團隊聯合數據團隊通過一系列方案實現自動化治理埋點數據。例如對不規範數據打標,使數據不進入數據分析模型層;各端統一使用頁面唯一ID的上報方式;不規範錄入信息的頁面自動認領到頁面站點下;向未錄入頁面的用戶定向推送郵件等方式持續提升數據質量。

在平臺能力建設方向,首先從精細化運營角度還要持續建設可視化埋點及與頁面活動搭建平臺打通提供組件化埋點能力,提升埋點開發效率。其次從埋點生命周期管理角度,奇點平臺提供的埋點設計管理、代碼掃描、埋點驗證、埋點指標看板一系列工具要更好流程化整合,提升產、運、研等各方的協同效率。最後從智能化建設角度,對於流量數據看板增加智能分析、智能預測能力,提升數據應用效率。通過埋點數據作為基石,賦能業務場景,更好地服務支撐公司整體的數智化經營能力建設。

作者:京東科技 奇點研發組 轉載請註明來源


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 什麼是模塊? 將模塊視為代碼庫。模塊是一個包含一組函數的文件,您想要在應用程式中包含這些函數。 創建一個模塊 要創建一個模塊,只需將要包含在其中的代碼保存在擴展名為 .py 的文件中: 示例:將以下代碼保存在名為 mymodule.py 的文件中: def greeting(name): print ...
  • docker部署是主流的部署方式,極大的方便了開發部署環境,保持了環境的統一,也是實現自動化部署的前提。 1 項目的目錄結構 package: 點擊打包,生成 xxx-SNAPSHOT.jar target目錄: 打包生成目錄,生成的jar存放位置 Dockerfile: 跟項目根目錄同級 2 創建 ...
  • RSA演算法是一種非對稱加密演算法,由三位數學家`Rivest`、`Shamir`和`Adleman`共同發明,以他們三人的名字首字母命名。RSA演算法的安全性基於大數分解問題,即對於一個非常大的合數,將其分解為兩個質數的乘積是非常困難的。RSA演算法是一種常用的非對稱加密演算法,與對稱加密演算法不同,RSA算... ...
  • 可能有幾種原因導致這種情況。以下是一些常見的問題和可能的解決方法: 證書驗證問題: 當你使用mitmproxy抓包時,它通常會生成自簽名的SSL證書,以便進行中間人攻擊檢查。但在Python中使用requests庫時,預設情況下,它會驗證SSL證書的有效性。你需要禁用SSL驗證,以便使用mitmpr ...
  • 背景 由於我個人電腦是2020款m1,16G,256G。一方面,平時除了運行多個瀏覽器,還有coding 編輯器等等,記憶體確實很緊張。其次呢,m1 是ARM的架構,所以構建的鏡像是無法在X86的機器上運行的。所以我嘗試將docker引擎和client分開。 第一步:下載二進位docker 客戶端文件 ...
  • Tabby是一個開源免費軟體,支持Windows、macOS和Linux系統。它提供了一個高度可定製的終端界面,可以通過多種方式添加、切換和關閉終端標簽頁。能與 Linux 伺服器輕鬆傳輸文件,支持多種主題,界面炫酷,插件豐富。它還支持通過插件擴展其功能,例如增強的滾動條、批量複製和粘貼等功能。 ...
  • 1. Groovy 1.1. Java編程語言的一個超集 1.2. Gremlin Console的一個特性是能和Groovy配合使用 1.2.1. Gremlin Console會自動地迭代結果 1.3. 從技術上說,Gremlin Console就是Groovy互動式解釋器(read-eval- ...
  • 抄襲轉載的太多,請認準原文鏈接:xtrabackup 的介紹與使用 前言 在網上找到教程都是複製粘貼抄襲的,而且還是陳舊資料,不得不說,當前中文互聯網環境真是每況愈下。 如果你在網上找 xtrabackup 的教程,大概率會為你介紹 innobackupex。但在最新的 2.4 版本中,innoba ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...