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