自建運營分析系統(tǒng):埋點&運營分析產(chǎn)品設(shè)計
本文以公司自建的運營分析系統(tǒng)為討論對象,對系統(tǒng)的產(chǎn)品架構(gòu)設(shè)計及技術(shù)方案選型進行了分析以及要點說明。
目前市面上關(guān)于流量分析的產(chǎn)品已經(jīng)做到非常標準化了,如GrowingIO、諸葛IO、神策數(shù)據(jù)等,通用的用戶分析、轉(zhuǎn)化分析、留存分析等功能已經(jīng)非常完善了,但是在公司實際應(yīng)用過程中,運營人員總會有各種個性化的需求是市面上通用功能無法滿足的。也是基于這個原因,不少公司會自建運營分析系統(tǒng),本文會詳細描述下之前我所在的公司運營分析系統(tǒng)的產(chǎn)品架構(gòu)設(shè)計及技術(shù)方案選型,希望能夠給到各位一些參考。
一、現(xiàn)狀和問題
1.1 埋點方案重構(gòu)
我們公司埋點方案做得早,最早的時候只有代碼埋點,而且PC/M和APP的埋點上報方式不同:APP端是使用appsflyer實現(xiàn)的【事件級】上報機制,PC/M端是基于頁面【元素級】上報機制。
這兩者有什么區(qū)別?
簡單來說,事件是有業(yè)務(wù)含義的,比如【首頁廣告位點擊事件】,指的是用戶在網(wǎng)站首頁點擊“XX廣告位”圖片的行為,這樣上報上來的數(shù)據(jù)是可以直接指導分析的;
頁面元素的上報是冷冰冰的元素采集,同樣是廣告位點擊,頁面元素上報會通過在廣告欄位的代碼埋點對每個廣告圖的點擊、曝光等行為進行上報,在分析【首頁廣告位點擊事件】時,分析師需要找到首頁–廣告位–廣告圖、取其中的點擊行為數(shù)據(jù)進行分析。
也就是說【事件級】是組裝好的業(yè)務(wù)數(shù)據(jù),【元素級】是未組裝的數(shù)據(jù),【元素級】雖然很靈活,但在數(shù)據(jù)應(yīng)用的效率、存儲成本、業(yè)務(wù)接受度上,【事件級】都要更優(yōu)。
目前GrowingIO、神策數(shù)據(jù)等廠商都使用【事件級】的埋點方案作為分析系統(tǒng)的基礎(chǔ),要打造運營分析系統(tǒng),首先第一步就要改造埋點方案。
1.2? 產(chǎn)品架構(gòu)規(guī)劃
此前由于運營部門已經(jīng)購買了GrowingIO,因此提到IT的需求都是一些零散的個性化需求,簡單來說就是個性化報表,主要特點是:業(yè)務(wù)邏輯復雜+開發(fā)周期長,業(yè)務(wù)體驗特別差。
因為都是零散的個性化需求,缺少了對【邏輯層】的規(guī)劃,所以報表都是直接從【數(shù)據(jù)層】開發(fā)落地到【應(yīng)用層】。
系統(tǒng)產(chǎn)品架構(gòu)規(guī)劃如下圖所示:
因此,我們認為運營分析系統(tǒng)的功能建設(shè)有兩個重點:
- 邏輯層:事件管理要與業(yè)務(wù)數(shù)據(jù)解耦,支持多租戶(滿足不同站點或業(yè)務(wù)模塊的事件邏輯隔離)
- 應(yīng)用層:事件分析是GrowingIO中使用率超過80%的功能,是用戶分群及其他分析功能的基礎(chǔ)
二、建設(shè)方案及計劃
2.1? 埋點方案的選擇
目前常用的埋點方案有三種,代碼埋點、可視化埋點以及全埋點(也叫無埋點)。
關(guān)于這三者之間的區(qū)別在不少的文章中都有過闡述,這里用一個商超的例子做說明。
假如網(wǎng)站就是一個大型商超,那么有三種方式可以獲取用戶數(shù)據(jù):
第一種,在需要監(jiān)控的店鋪內(nèi)、貨柜上安置攝像頭,可以完整監(jiān)控用戶在店鋪停留了多久、瀏覽哪些品類、試用哪些產(chǎn)品等等詳細的用戶行為;
第二種,在商超中各個主道、樓道位置預(yù)留攝像頭監(jiān)控位,當需要監(jiān)控特定主道或樓道時打開攝像頭開關(guān)就可以記錄商超用戶行為軌跡,雖然無法記錄用戶在店鋪內(nèi)都具體瀏覽了什么買了什么東西,但可以知道用戶沿著哪個方向進行購物、進入了哪些店鋪、每個店鋪的人流量等;
第三種,還是預(yù)留攝像頭監(jiān)控位,但是每個攝像頭都是開啟狀態(tài),全年無休地監(jiān)控每個主干道和樓道的人流情況;
以上三種,分別對應(yīng)的就是代碼埋點、可視化埋點及全埋點。
如果說商超是網(wǎng)站,那商超里的店鋪就是實際產(chǎn)生的業(yè)務(wù)交易行為。
- 代碼埋點的優(yōu)勢明顯,它能夠獲取到店鋪內(nèi)的業(yè)務(wù)交易行為以及行為雙方的交易媒介、交易細節(jié)等,缺點是店鋪數(shù)量多、埋點成本高;
- 可視化埋點的優(yōu)點在于靈活、低成本,根據(jù)需要分析的具體問題再打開“攝像頭”,缺點是無法獲取交易的細節(jié);
- 全埋點對比可視化埋點,優(yōu)勢是全量獲取了商超用戶的購物行為,事后根據(jù)用途再調(diào)取監(jiān)控視頻,缺點是無法獲取交易細節(jié),并且冗余了很多用不上的“監(jiān)控視頻”。
三種埋點方式的優(yōu)劣勢總結(jié)如下:
根據(jù)以上的例子說明,可以想見最高效合理的方案應(yīng)該是“代碼埋點”+“全埋點”/“可視化埋點”,通過全埋點或可視化埋點進行網(wǎng)站整體的流量分析、再通過代碼埋點重點分析個別頁面的業(yè)務(wù)細節(jié)。
在評估了數(shù)據(jù)量以及成本等因素之后,我們選擇的是在現(xiàn)有代碼埋點的基礎(chǔ)上再開發(fā)一套全埋點,用以支撐運營高頻且非固化的埋點需求(例如活動、社區(qū)等頁面)。
2.2? 技術(shù)方案選型
技術(shù)選型的內(nèi)容比較細也比較乏味,這里只是簡單闡述一下。
事件分析的方案在我們立項之初討論了兩套,一種是基于全量基礎(chǔ)數(shù)據(jù)的內(nèi)存計算(選型為presto),這個方案簡單粗暴,瓶頸在于服務(wù)器內(nèi)存,同時一旦數(shù)據(jù)量過大、并發(fā)過多,都會造成前端用戶體驗很差;
另一種是基于kylin的預(yù)計算,優(yōu)點是固化查詢維度數(shù)量后基于構(gòu)建后的數(shù)據(jù)cube查詢效率非???,缺點是存儲了大量冗余數(shù)據(jù)、不支持維度太多的場景。
基于GrowingIO的使用情況調(diào)研,我們認為用戶的分析維度不會太多,最終選擇更加穩(wěn)定kylin預(yù)計算方案,整體技術(shù)架構(gòu)如下:
結(jié)語
關(guān)于代碼埋點、全埋點、數(shù)據(jù)分析的方案還有很多細節(jié)可以展開進行分享,由于篇幅原因這次就先總體介紹一下,下次有機會再將里面的細節(jié)展開跟大家做分享,希望大家對于文章內(nèi)容中存在疑問、錯誤的地方也予以指正,對看到這里的各位表示由衷感謝。
本文由 @LinKiD 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
Hi LinKiD,我是GIO的產(chǎn)品經(jīng)理,有興趣聊一下嗎? WeChatID:tanrunyang