如何設計出一個高效的埋點管理系統?


01

爲什麼要做埋點管理系統?

備註:如果您已經知道爲什麼要做埋點管理系統了,可以直接跳去第三節看埋點管理系統的建設過程。如果還沒有很好的瞭解過埋點管理系統,建議從頭開始讀起,本文章小長,但是一定有乾貨哦,建議好好讀完!


如果你是一名數據分析師,是否有過這樣的經歷,當你需要查詢APP產品埋點數據的時候,你不得不經常找數據產品經理去確認是否已有埋點,埋了哪些字段,是否已有上報數據等,常常這些埋點事件元信息分散在多個產品經理手上,信息散亂,分析師使用埋點數據之前溝通成本極高,影響數據使用的效率……

不僅如此,我們還會遇到埋點數據異常,追溯埋點歷史問題過程也是非常的漫長,需要數據產品經理去跟業務產品經理確認埋點需求的版本,然後數據產品經理確認埋點設計需求的批次,然後給到開發,開發同事再去查找問題……

以上種種問題場景相信大家都經歷過,且一直是困擾着我們的痛點。

埋點場景的痛點我總結爲以下5點:

  1. 埋點需求及埋點設計文檔管理散亂,產品,開發,測試協同溝通效率低下,嚴重影響工作效率

  2. 埋點事件元信息管理散亂,常是分佈在多個產品經理手上,分析師使用埋點數據時需要查詢埋點需求及埋點事件的元信息這個過程鏈路長,溝通成本非常高,埋點元信息使用查詢極其不便利

  3. 若出現埋點數據異常問題,若開發同事需要追溯埋點歷史數據,則更是需要有當時的埋點需求批次和埋點設計文檔作爲輔助,這時候的埋單需求文檔和埋點元信息的統一管理,對於歷史問題追溯問題的效率有極其大的幫助。

  4. 非可視化測試,驗收埋點難度太大。

    每次都要跑去數據庫了查詢,對於沒有寫SQL基礎的業務經理來說,驗收埋點數據的效率就會比埃及地下。

  5. 數據校驗流程混亂,版本管理難度大,開發同學常常要自己開發一個後臺管理功能來管理埋點發布或下線的版本

02

埋點管理系統是什麼?

有沒有比較好的方法解決以上問題呢,答案是有的!就是我們下面要介紹的埋點管理系統。埋點管理系統是做什麼用的?埋點管理系統爲啥在數據產品體系中相對少聽到,爲什麼業內也沒有非常出名和成熟的產品?

埋點管理系統本質是解決數據採集及數據使用場景問題的業務系統,業務方則是數據產品、數據開發工程師、數據分析師等數據團隊的人員。

在業務尚處於快速發展的階段,數據團隊的領導更多關注的是爲業務團隊提供數據產品,而通過給數據團隊提供數據工具來提升數據服務的效率,這個問題一般是在數據團隊的服務能力相對穩定和成熟之後纔會去落地。也就是當大家的KPI都是在滿足業務的數據需求的時候,只要有可替代的方案,領導會更願意暫時用着替代方案去解決這個問痛。

比較常見的例子,數據分析師在業務處於快速發展的階段就大概率只讓你取數,未必讓你真正的去做業務數據分析的活兒。等數據取數這類需求達到一定的數量,老闆纔會想着去開發可視化類的取數工具,幫助數據分析師從大量的數據查詢和報表開發的工作解脫出來,去做更加有價值的業務專題分析的工作。

回到主題,埋點管理系統也常常會等到埋點需求非常多,從埋點需求產出端到埋點需求使用方都感覺到這個合作流程已經影響了整體的工作效率的時候,埋點管理系統纔會被老闆想到,這個工具是否可以替代原本的零散和低效的協同模式來提高大家的工作效率。所以,埋點管理系統本身是一個提升數據同事工作效率的工具。

埋點管理系統能解決問題主要有以下5點:

  1. 通過統一管理應用產品及埋點設計,解決了埋點需求及埋點設計管理散亂,產品團隊、開發團及測試團隊,數據應用團隊的協同溝通效率低下問題。

  2. 通過統一管理埋點事件的元信息,解決了數據應用場景中需要高頻及便利的查詢查詢埋點事件元信息問題。

  3. 通過統一的埋點需求管理及事件元信息管理,解決了開發同事在遇到埋點數據異常需要追溯歷史埋點。

  4. 通過可視化抓包,解決了埋點數據驗收的重度依賴數據庫查詢的相對低效的方法。

  5. 通過可視化對比校驗和發佈/下線能力,解決了開發同事單獨管理埋點需求的版本及發佈場景問題,並有明確的數據校驗流程,從而間接提升數據質量的管理。

03

如何設計埋點管理系統?

01

業務流程確認

說了埋點管理系統能解決的問題,接下來聊聊埋點管理系統長啥樣,如何才能設計出解決我們以上問題的埋點管理系統。在此之前,我們先了解埋點場景的業務流程:

圖一:埋點業務流程圖1


接下來將按照埋點涉及的角色和流程節點兩個維度一起闡述:

在需求階段:業務團隊跟數據產品團隊提出埋點需求,數據產品團隊會根據用戶的當期及未來的統計需求,確認增加哪些埋點,並通過拆解埋點需求指標,輸出埋點設計文檔;而後,產品團隊跟大數據開發團隊進行埋帶設計需求的評審,評審通過之後再上線開發。

埋點開發階段:開發團隊同事按照數據產品經理提供的已評審過的埋點設計文檔進行開發;開發自測完成後會提測給測試同事,測試同事按照埋點設計文檔進行功能和數據的測試;測試通過後,數據產品經理將進行埋點驗收,產品經理不但要按照埋點設計文檔驗收事件及事件參數的完整性,也要去數據哭驗收埋點數據的準確性。

埋點應用階段:埋點上線後,數據分析團隊就可以直接去按照埋點設計文檔去數據庫查詢提取埋點數據進行分析應用了。這個過程,分析師一般需要先跟產品經理先過一遍新上的埋點設計文檔後再開始使用數據。

埋點回收階段:埋點也是有生命週期的,有開始時間也會有結束時間。若產品已經下線,且後期將長期不再需要使用這些用戶行爲數據了,基於海量數據存儲成本和資源浪費力的角度考量,企業會願意將這類埋點下線。一般並不會直接下線,標識上可以下線的標識後,一般過3-6個月依然不再被範圍調用,則執行下線。


02

系統功能確認

業務流程確認了,我們就在對應的業務流程上增加產品功能模塊去承載每個業務流程節點的需求,如下圖:

圖二:埋點業務流程圖2


03

系統功能架構

通過埋點業務流程的梳理,得出了多個系統功能模塊,拆解出來的埋點系統功能結構如下圖:

圖三:埋點管理系統功能結構圖


在功能結構圖中提到了應用、埋點需求、事件、屬性等對象,在展開闡述每個功能模塊之前,我們先了解一下埋點管理系統裏涉及到的全部管理對象及對象之間的關係。

圖四:埋點事件模型圖


埋點管理系統一共涉及到四個對象,分別是應用、埋點需求批次、埋點事件、事件屬性。他們之間的關係是自上而下的邏輯關係。比如在系統的埋點需求管理模塊,篩選出一個應用名稱,則對應展示的是選中的應用下面的所有埋點需求清單,選中單個埋點需求批次的時候,對應展現的就是這個批次下面的所有埋點事件。瞭解到此,下面我將分別展開介紹每個模塊的功能:

1)應用管理

應用管理功能主要是承載業務團隊新增一個APP/小程序/H5/web端等業務產品對象,我們需要在系統裏先創建一個新的埋點產品對象,然後纔有後續增加的埋點需求及事件元信息等。這個模塊包含應用新增、刪除、編輯等基礎功能。產品團隊需要負責的埋點產品都可以放在這裏統一管理。

圖五:應用管理列表圖


2)埋點需求管理

埋點需求管理功能主要承載集中管理業務團隊提過來給產品團隊的埋點需求文檔,這裏可以創建需求、編輯需求、下鑽需求、下線需求等。在這裏,需求按照批次來進行管理,每一個埋點需求都有一個唯一的批次號,掛載到對應的應用及版本上,並且點擊單個埋點需求批次號,可以直接下鑽到該埋點需求下的全部事件列表。

圖六:埋點需求管理列表圖


3)事件管理

事件管理功能則承載來所有埋點需求拆解出來需要開發的埋點事件元信息,這裏可以創建事件、編輯事件、下鑽事件、搜索事件、下線事件等。事件是埋點拆解的最小對象單元,在這裏每個事件都要掛載在對應的埋點需求批次上,系統裏沒有獨立自自己遊蕩的事件。這樣所有的應用、埋點需求批次和事件都有了映射關係。當需要使用埋點數據時,先來埋點管理系統查找埋點需求批次,這種清晰的映射關係在查詢埋點元信息時提供了高效的途徑。

圖七:埋點需求管理列表圖


4)屬性管理

屬性管理功能模塊承載的是常用的有共性的屬性。一個個獨立的屬性常用屬性,比如用用戶ID、用戶客戶端系統、在線時長等屬性,可以在屬性管理這裏完成註冊。在用戶新建事件時,可以直接引用已註冊完成的屬性綁定到事件上,減少用戶填寫事件屬性信息時的大量重複填寫工作。

5)埋點校驗

走到這裏,埋點已經開發完成了,到了測試、驗收、上線的環節。這裏的埋點校驗包含兩部分,可視化抓包測試及開發環境和測試環境的信息對比。完成這兩個環節之後,開發同事纔可以把埋點發布到正式環境。


可視化抓包測試

可視化抓包功能頁主要提供給產品經理和測試同學可以現場抽樣測試事件數據,檢查上報的屬性是否已經完整,屬性值是否準確。

圖八:埋點數據實時抓包圖


對比與同步:

在線對比和發佈功能頁則是承載了開發童鞋對比生產環境和測試環境埋點元信息的差異之處,幫助快速確認已經進行了變更處理之處。及支持開發童鞋在線可視化發佈埋點事件,便捷高效。

圖九:埋點需求對比及同步功能圖


6)埋點監控

埋點監控功能承載的則是埋點管理系統全部埋點事件的及任務運行的結果監控。包括展示全部埋點應用統計數、埋點需求統計數、事件統計數、有效在線事件統計數、異常的埋點事件數、未處理的埋點需求/事件數等,是統計和展示整個系統管理對象及對象運行情況的監控功能模塊。方便參與埋點工作的同事瞭解整體產品的埋點任務運行情況,和及時發現埋點上報數據的異常情況。也是埋點管理系統的一個必不可少的模塊。



總結


以上從埋點管理系統的定位和解決的痛點問題,及系統的建設過程給大家闡述一遍,希望能幫助大家在對埋點管理系統及建設有個相對完整的認識。

最後,總結幾點系統建設過程中的思考及注意事項分享給大家:

1、埋點管理系統是一個服務於數據團隊但涉及合作團隊較多的系統。在不同公司,可能埋點業務流程不一樣,而我這裏分享的是我經歷過的埋點工作場景中協同效率比較高效的埋點業務流程,希望能提供參考借鑑。

2、埋點需求批次跟應用版本號不完全保持一致,不要當作是形同對象而相互替代。因爲很可能在後期版本增加早期發版的產品功能的埋點。如果當作同一個問題處理,將導致埋點需求管理能力可擴展性太弱,很快整個系統都陷入了管理瓶頸。

3、埋點管理系統真實可以提升業務、產品、開發、數據分析多個團隊的協同效率,用起來非常爽,能早建設儘早建設。



往期推薦

終於有人將埋點講明白了

任務延遲原因及保證數倉任務及時產出方案【文末送書名單公佈】

用Python爬取了《掃黑風暴》數據,並將其可視化分析後,終於知道它爲什麼這麼火了~

什麼樣的工作方式值得推薦?



- THE END-


關注+星標,不迷路。分享乾貨

每月都會送幾波新書,白嫖不香嗎?


請長按掃碼加小編,回覆: 數據可視化
進羣一起學習交流吧

▲長按掃

-今日互動-


你get到了嗎?歡迎文章下方留言互動




如果感覺對你有幫助的話


                   
                   
                   
來個「 轉發朋友圈 」和「 在看 」,一起見證你的努力和成長,是對我們最大的支持!


本文分享自微信公衆號 - DataScience(DataScienceTeam)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章