關(guān)注互聯(lián)網(wǎng)尤揣,關(guān)注硅谷堂。想了解更多關(guān)于互聯(lián)網(wǎng)崗位知識(shí)的信息柬祠,關(guān)注微信公眾號(hào):硅谷堂(ID:guigutang)或下載“硅谷堂”APP北戏。
本文作者葉玎玎,GrowingIO 的聯(lián)合創(chuàng)始人漫蛔,他也是連續(xù)創(chuàng)業(yè)者嗜愈,是企業(yè)協(xié)作工具風(fēng)車(chē)的聯(lián)合創(chuàng)始人,十多年的工程開(kāi)發(fā)經(jīng)歷和多年的項(xiàng)目管理經(jīng)驗(yàn)莽龟,現(xiàn)在負(fù)責(zé)核心工程開(kāi)發(fā)和技術(shù)實(shí)施蠕嫁。本文是他對(duì)于互聯(lián)網(wǎng)創(chuàng)業(yè)公司數(shù)據(jù)采集和分析的一些思索和心得。
過(guò)去的六七年我一直在企業(yè)服務(wù)領(lǐng)域創(chuàng)業(yè)毯盈,使用過(guò)不少分析工具:GA剃毒、Mixpanel、Heap 等等奶镶,功能很強(qiáng)大,但是總感覺(jué)少了點(diǎn)什么陪拘。我們看到了 PV / UV 這樣的概覽性指標(biāo)厂镇,但是它們沒(méi)法指導(dǎo)我們做的更好。
在通過(guò)這些粗糙的數(shù)據(jù)得到用戶做了什么后左刽,還要看到他們是怎么做的捺信,明白他們?yōu)槭裁醋觥N覀冃枰獙?shí)時(shí)欠痴、全量的用戶行為數(shù)據(jù)迄靠,通過(guò)對(duì)用戶行為整體流程的分析,找到轉(zhuǎn)化的關(guān)鍵節(jié)點(diǎn)以及用戶流失的核心原因喇辽,以此幫助我們對(duì)癥下藥掌挚,找到可執(zhí)行的指標(biāo),落實(shí)為優(yōu)化行動(dòng)菩咨。
今天吠式,我想分享的就是我們?cè)谶@方面的一些探索與解決方案陡厘。
一、用戶行為分析的巨大需求
純從數(shù)據(jù)組成的角度來(lái)說(shuō)特占,一個(gè)完善的閉環(huán)數(shù)據(jù)源主要是分成三大塊:第一塊是用戶行為數(shù)據(jù)糙置,第二塊是服務(wù)端日志數(shù)據(jù),第三塊是交易 Transaction 數(shù)據(jù)是目。
其中谤饭,除了交易數(shù)據(jù)會(huì)經(jīng)常被存儲(chǔ)在離線數(shù)據(jù)庫(kù)中,通過(guò) ETL 來(lái)獲取分析以外懊纳,行為數(shù)據(jù)和日志數(shù)據(jù)很多時(shí)候都是近似的揉抵,完備的用戶行為數(shù)據(jù)基本能覆蓋絕大多數(shù)的服務(wù)端日志數(shù)據(jù),同時(shí)里面包含著很多日志數(shù)據(jù)里面所缺乏的信息长踊。
從技術(shù)發(fā)展角度來(lái)說(shuō)功舀,最近幾年發(fā)展最快的可以說(shuō)是前端,每個(gè)月都會(huì)有很多新的東西出現(xiàn)身弊,整體趨勢(shì)是往單頁(yè)應(yīng)用發(fā)展辟汰,追求用戶體驗(yàn)。同時(shí)阱佛,還有移動(dòng)端應(yīng)用帖汞,也產(chǎn)生著大量的行為數(shù)據(jù),這些都不會(huì)跟服務(wù)端有過(guò)多交互凑术。
所以翩蘸,從應(yīng)用提供商來(lái)說(shuō),我們需要知道屏幕前的人是怎么使用我們的產(chǎn)品的淮逊,洞悉用戶行為背后的價(jià)值催首。
GrowingIO 目前有近千家客戶在使用,我總結(jié)了一下客戶經(jīng)常問(wèn)我們的分析需求泄鹏,大致可以分成三個(gè)場(chǎng)景:
第一個(gè)場(chǎng)景是:我做了一次活動(dòng)郎任,我寫(xiě)了一篇文章,我想知道到底效果如何备籽,有沒(méi)有給我?guī)?lái)足夠的流量舶治,也就是市場(chǎng)營(yíng)銷(xiāo)效果衡量。我們有些客戶车猬,每年有上百萬(wàn)的市場(chǎng)預(yù)算在 SEM 上霉猛,但是卻完全不知道這些錢(qián)花出去到底帶來(lái)了多少回報(bào)。
第二個(gè)場(chǎng)景是用戶激活流程是否合理珠闰,辛辛苦苦導(dǎo)入了流量惜浅,這些流量有沒(méi)有轉(zhuǎn)化為用戶,注冊(cè)流里面每一步轉(zhuǎn)化了多少伏嗜,流逝了多少赡矢,沒(méi)有轉(zhuǎn)化的去了哪里杭朱。再在這個(gè)基礎(chǔ)上,我們應(yīng)該怎么優(yōu)化吹散,優(yōu)化后的效果是怎樣的弧械,這周的轉(zhuǎn)化率比起上周是否有進(jìn)步,差別是怎么引起的等等空民。
第三個(gè)場(chǎng)景是這些注冊(cè)的用戶刃唐,有沒(méi)有留下來(lái)成為一個(gè)忠誠(chéng)用戶甚至付費(fèi)用戶。留下來(lái)的用戶界轩,是因?yàn)槭裁戳粝聛?lái)的画饥。是否存在一個(gè)魔法數(shù)字,可以去極大的提高用戶留存浊猾,比如:
LinkedIn 發(fā)現(xiàn)在第一周增加5 個(gè)社交關(guān)系的用戶留存度很高抖甘;
Facebook 發(fā)現(xiàn)在第一周增加10 個(gè)好友的用戶留存度很高;
Twitter 發(fā)現(xiàn)在第一周有30 個(gè) followers的用戶留存度很高葫慎;
Dropbox 發(fā)現(xiàn)在第一周安裝兩個(gè)以上操作系統(tǒng)的用戶留存度很高衔彻。
這些都是在留存分析中發(fā)現(xiàn)的魔法數(shù)字。
二偷办、復(fù)雜而易錯(cuò)的傳統(tǒng)分析方法
歸根結(jié)底艰额,所有的分析最終都是為了商業(yè)服務(wù),而商業(yè)是為人服務(wù)的椒涯。所以柄沮,用戶行為分析就是我們需要建立一套基于用戶行為的分析體系,在了解用戶“誰(shuí)”做了“什么”废岂,“怎么”做的之外,進(jìn)而明白是“為什么”做湖苞,對(duì)癥下藥拯欧,轉(zhuǎn)化成為優(yōu)化行動(dòng)。
分析是一個(gè)長(zhǎng)時(shí)間優(yōu)化的過(guò)程袒啼,需要我們持續(xù)監(jiān)控?cái)?shù)據(jù)的變化哈扮。而數(shù)據(jù)指標(biāo)除了行為數(shù)據(jù)指標(biāo)外還有一類(lèi)纬纪,我們稱(chēng)之為虛榮指標(biāo)蚓再,比如 PV、UV 之類(lèi)流量概覽性數(shù)據(jù)包各,這些指標(biāo)看到了也就看到了摘仅,沒(méi)法指導(dǎo)我們做的更好。
用戶行為數(shù)據(jù)指標(biāo)則是另外一類(lèi)问畅,比如我們上面介紹的用戶獲取娃属、用戶激活六荒、用戶留存之類(lèi),了解這些行為后面都會(huì)對(duì)應(yīng)到一個(gè)優(yōu)化流程矾端,所以也叫做 Actionable Metric掏击,可執(zhí)行指標(biāo),這也是用戶行為數(shù)據(jù)的魅力秩铆。
那么接下來(lái)砚亭,我們要開(kāi)始跟蹤用戶行為了,一般可以分成以下七個(gè)步驟:
1.確定分析場(chǎng)景或目標(biāo)
確定一個(gè)場(chǎng)景殴玛,或者一個(gè)目標(biāo)捅膘。比如,我們發(fā)現(xiàn)很多用戶訪問(wèn)了注冊(cè)頁(yè)面滚粟,但是最終完成注冊(cè)的很少寻仗,那么我們的目標(biāo)就是提高注冊(cè)轉(zhuǎn)化率,了解為什么用戶沒(méi)有完成注冊(cè)凡壤,是哪一個(gè)步驟擋住用戶了署尤。
2.思考需要了解哪些數(shù)據(jù)
思考哪些數(shù)據(jù)我們需要了解,幫助我們實(shí)現(xiàn)這個(gè)目標(biāo)鲤遥。比如對(duì)于之前的目標(biāo)沐寺,我們需要拆解從進(jìn)入注冊(cè)頁(yè)面到完成注冊(cè)的每一個(gè)步驟的數(shù)據(jù),每一次輸入的數(shù)據(jù)盖奈,同時(shí)混坞,完成或者未成為這些步驟的人的特征數(shù)據(jù)。
3.確定誰(shuí)來(lái)負(fù)責(zé)收集數(shù)據(jù)钢坦?
誰(shuí)負(fù)責(zé)收集這些數(shù)據(jù)究孕,一般是我們工程師出馬。
4.什么時(shí)候評(píng)估和分析爹凹?
收集上來(lái)的數(shù)據(jù)如何分析厨诸,什么時(shí)候來(lái)評(píng)估采集到的數(shù)據(jù)。
5.如何給出優(yōu)化解決方案禾酱?
發(fā)現(xiàn)問(wèn)題后微酬,怎么來(lái)出解決方案。比如颤陶,是否在設(shè)計(jì)上改進(jìn)颗管,或者是否是工程上的 bug。
6.誰(shuí)負(fù)責(zé)實(shí)現(xiàn)解決方案滓走。
確定方案的實(shí)施責(zé)任人垦江。
7.如何評(píng)估解決方案的效果?
下一輪數(shù)據(jù)采集和分析搅方,回到第一步繼續(xù)迭代比吭。
知易行難绽族,這整個(gè)流程里,第 2 步到第 4 步是關(guān)鍵衩藤。目前傳統(tǒng)的服務(wù)商比如 GA吧慢、Mixpanel、友盟所采用的方式我稱(chēng)之為 Capture 模式赏表。通過(guò)在客戶端埋下確定的點(diǎn)娄蔼,采集相關(guān)數(shù)據(jù)到云端,最終在云端做呈現(xiàn)底哗。比如圖中這個(gè)示例岁诉,相信很多人應(yīng)該都有寫(xiě)過(guò)類(lèi)似的代碼。
Capture 模式對(duì)于非探索式分析來(lái)說(shuō)跋选,是一個(gè)非常行之有效的方法涕癣。然而,同時(shí)對(duì)參與整個(gè)流程的人也提出了非常高的要求:
缺點(diǎn)1:依賴(lài)經(jīng)驗(yàn)導(dǎo)向
Capture 模式非常依賴(lài)人的經(jīng)驗(yàn)和直覺(jué)前标。不是說(shuō)經(jīng)驗(yàn)和直覺(jué)不好坠韩,而是有時(shí)我們自己也不知道到底什么是好的,經(jīng)驗(yàn)反而會(huì)成為一個(gè)先入為主的負(fù)擔(dān)炼列,我們需要用數(shù)據(jù)來(lái)測(cè)試來(lái)證明只搁。
缺點(diǎn)2:溝通成本高
另外,一個(gè)有效的分析結(jié)果俭尖,依賴(lài)于數(shù)據(jù)的完整性和完備性氢惋。跟不少企業(yè)溝通后,不少的吐槽都是“連日志格式都統(tǒng)一不了”稽犁,更別提后續(xù)分析了焰望。這不是具體人的問(wèn)題,更多是協(xié)作溝通的問(wèn)題已亥。參與人越多熊赖,產(chǎn)品經(jīng)理、分析師虑椎、工程師震鹉、運(yùn)營(yíng)等等,每個(gè)人的專(zhuān)業(yè)領(lǐng)域又各不相同捆姜,出現(xiàn)誤解太正常了传趾。
曾經(jīng)跟我們的 CEO Simon 交流過(guò),他在 LinkedIn 帶領(lǐng)數(shù)據(jù)分析部門(mén)的時(shí)候娇未,LinkedIn 專(zhuān)門(mén)組建了一個(gè)多達(dá) 27 人的埋點(diǎn)團(tuán)隊(duì)墨缘,每天開(kāi)會(huì)星虹,就是為了統(tǒng)一埋點(diǎn)的格式和位置零抬,經(jīng)常一開(kāi)就是幾個(gè)星期镊讼。
缺點(diǎn)3:大量時(shí)間數(shù)據(jù)清洗和數(shù)據(jù)分析代碼侵入
另外,由于需求的多變性平夜,埋點(diǎn)分成多次加入蝶棋,缺乏統(tǒng)籌設(shè)計(jì)和統(tǒng)一管理,結(jié)果自然是無(wú)比骯臟忽妒。所以我們數(shù)據(jù)工程師還有個(gè)很大的工作是數(shù)據(jù)清洗玩裙,手動(dòng)跑 ETL 出報(bào)表。根據(jù)統(tǒng)計(jì)段直,絕大多數(shù)分析工作吃溅,百分之七十到八十的時(shí)間是在做數(shù)據(jù)清洗和手動(dòng) ETL,只有百分之二十左右在做真正有業(yè)務(wù)價(jià)值的事情鸯檬。
另外一方面决侈,作為一個(gè)有潔癖的工程師,最恨的就是大量的分析代碼侵入了我的業(yè)務(wù)代碼喧务,刪不敢刪赖歌,改不敢改,日積月累功茴,最終代碼庫(kù)整個(gè)就混亂了庐冯。
缺點(diǎn)4:數(shù)據(jù)漏采錯(cuò)踩
以上都還是好的,最最讓人抓狂的是坎穿,上線了展父,發(fā)現(xiàn)數(shù)據(jù)采集錯(cuò)了或者漏了,修正后玲昧,又得重新跑一遍流程犯祠,一個(gè)星期兩個(gè)星期有過(guò)去了。這也是為啥酌呆,數(shù)據(jù)分析工作是如此耗時(shí)一般以月計(jì)的原因衡载,非常低效。
三隙袁、無(wú)需埋點(diǎn)的數(shù)據(jù)分析原理
在經(jīng)歷了無(wú)數(shù)個(gè)痛苦的夜晚以后痰娱,我們決定要換個(gè)思路思考了,希望能最大限度的降低人為的錯(cuò)誤菩收,我們稱(chēng)之為 Record 模式梨睁。區(qū)別于 Capture 模式,Record 模式是用機(jī)器來(lái)替代人的經(jīng)驗(yàn)娜饵,自動(dòng)地采集用戶在網(wǎng)站或者應(yīng)用里的全量行為數(shù)據(jù)坡贺。因?yàn)樽詣?dòng)化,我們從分析流程的源頭開(kāi)始就控制了數(shù)據(jù)的格式。
所有數(shù)據(jù)遍坟,從業(yè)務(wù)角度出發(fā)拳亿,劃分為 5 種維度: Who,行為背后的人愿伴,具有哪些屬性肺魁;When,什么時(shí)候觸發(fā)的這個(gè)行為隔节;Where鹅经,城市地區(qū)瀏覽器甚至 GPS 等;What怎诫,也就是內(nèi)容瘾晃;How,是怎樣完成的幻妓⌒锇疲基于對(duì)信息的解構(gòu),保證了數(shù)據(jù)從源頭就是干凈的涌哲,再在此基礎(chǔ)上面胖缤,我們完全可以把 ETL 自動(dòng)化,需要什么數(shù)據(jù)可以隨時(shí)回溯阀圾。
回到之前流程的第 2 步到第 4 步哪廓,我們已經(jīng)把參與人從多方減少到基本就一方了,無(wú)論是產(chǎn)品經(jīng)理初烘、分析師還是運(yùn)營(yíng)人員涡真,都可以使用可視化工具來(lái)查詢(xún)和分析數(shù)據(jù),真正做到所見(jiàn)即所得肾筐。不僅是 PC哆料,還支持 iOS、Android 和 Hybrid吗铐,可以進(jìn)行跨屏的用戶分析东亦。
作為一家用戶行為分析工具提供商,GrowingIO要做的并不只是用于內(nèi)部唬渗,還需要適應(yīng)外部成千上萬(wàn)的網(wǎng)站和應(yīng)用典阵,所以在實(shí)現(xiàn)過(guò)程中我們做了很多探索:
自動(dòng)用戶行為采集
目前我們所接觸的 GUI 程序,無(wú)論是 Web App镊逝、iOS App 還是 Android App壮啊,都是基于兩個(gè)原則,樹(shù)形結(jié)構(gòu)和事件驅(qū)動(dòng)模型撑蒜。無(wú)論是 Web 上的 DOM 結(jié)點(diǎn)結(jié)構(gòu)歹啼,還是 App 上的 UI 控件結(jié)構(gòu)玄渗,都是構(gòu)建好的一顆完整的樹(shù)形結(jié)構(gòu)渲染在頁(yè)面或者屏幕上。所以通過(guò)對(duì)樹(shù)結(jié)構(gòu)的監(jiān)控和檢測(cè)狸眼,我們就可以非常方便地知道哪些結(jié)點(diǎn)發(fā)生了變化藤树,何時(shí)發(fā)生了變化,發(fā)生了什么變化份企。
同時(shí),當(dāng)用戶做了某個(gè)操作巡莹,比如鼠標(biāo)點(diǎn)擊司志、屏幕觸控,都會(huì)觸發(fā)一個(gè)事件降宅,綁定了該事件的回調(diào)函數(shù)就會(huì)被觸發(fā)開(kāi)始執(zhí)行骂远。基于此兩點(diǎn)認(rèn)識(shí)腰根,在 SDK 里面如何實(shí)現(xiàn)無(wú)埋點(diǎn)就比較清楚了激才。只要能在結(jié)點(diǎn)變化或者事件發(fā)生的時(shí)候觸發(fā)我們定義的函數(shù),那么我就知道事件發(fā)生的多重信息额嘿。
數(shù)據(jù)可視化
如何把采集到的數(shù)據(jù)和業(yè)務(wù)目標(biāo)匹配在一起瘸恼。我們的解決方案就是我們的可視化工具。剛才已經(jīng)提到任何一個(gè)原子數(shù)據(jù)册养,都被拆解成了 5 種不同分類(lèi)的維度东帅。所以,當(dāng)我們?cè)诳梢暬ぞ呃锩孀銎ヅ鋾r(shí)球拦,也就是對(duì)于不同維度信息的匹配靠闭。
比如一個(gè)鏈接的點(diǎn)擊,會(huì)匹配到內(nèi)容或者跳轉(zhuǎn)地址也就是 What坎炼,點(diǎn)擊行為也就是 How愧膀。還有其在頁(yè)面的定位信息,比如在樹(shù)形結(jié)構(gòu)中的層次位置谣光,是否帶一些 id檩淋、class 或者 tag,都是用來(lái)做數(shù)據(jù)匹配的信息萄金。我們開(kāi)發(fā)了一套智能匹配系統(tǒng)狼钮,通過(guò)對(duì)用戶真實(shí)行為的學(xué)習(xí),建立了一套規(guī)則引擎捡絮,用于元素匹配熬芜。
也正因?yàn)椴杉降氖侨繑?shù)據(jù),整個(gè)匹配系統(tǒng)有如基因進(jìn)化一般福稳,既有對(duì)過(guò)去歷史的記憶涎拉,也有順應(yīng)新結(jié)構(gòu)的演進(jìn)變化。
BI 商業(yè)分析
我們?cè)谙到y(tǒng)設(shè)計(jì)過(guò)程中,整個(gè) Data Pipeline 過(guò)程中鼓拧,數(shù)據(jù)進(jìn)過(guò)處理后半火,會(huì)根據(jù)優(yōu)先級(jí)不同,首先通過(guò) Spark Streaming 實(shí)時(shí)的處理已定義數(shù)據(jù)季俩,然后每過(guò)一段時(shí)間對(duì)匹配到的數(shù)據(jù)做離線預(yù)聚合钮糖,多維分析非常靈活。
用戶行為數(shù)據(jù)采集的目的是通過(guò)了解用戶過(guò)去做的行為酌住,用來(lái)預(yù)測(cè)未來(lái)發(fā)生的事情店归,無(wú)需埋點(diǎn),隨時(shí)回溯數(shù)據(jù)酪我,讓產(chǎn)品經(jīng)理一個(gè)人就可以搞定用戶行為分析的全部流程消痛。GrowingIO 希望能提供一個(gè)簡(jiǎn)單、迅速和規(guī)亩伎蓿化的數(shù)據(jù)分析產(chǎn)品秩伞,能極大地簡(jiǎn)化分析流程,提交效率欺矫,直達(dá)業(yè)務(wù)纱新。
而這一切的基礎(chǔ),就是我們從第一天開(kāi)始就一直在研發(fā)的無(wú)埋點(diǎn)智能全量數(shù)據(jù)采集穆趴,基于此優(yōu)化產(chǎn)品體驗(yàn)怒炸,實(shí)現(xiàn)精細(xì)化運(yùn)營(yíng),用數(shù)據(jù)驅(qū)動(dòng)用戶和營(yíng)收的增長(zhǎng)毡代。