GrowingIO用戶行為數據採集和分析實踐

本文作者葉玎玎,GrowingIO 的聯合創始人,他也是連續創業者,是企業協作工具風車的聯合創始人,十多年的工程開發經歷和多年的項目管理經驗,現在負責核心工程開發和技術實施。本文是他對於互聯網創業公司數據採集和分析的一些思索和心得。

過去的六七年我一直在企業服務領域創業,使用過不少分析工具:GA、Mixpanel、Heap 等等,功能很強大,但是總感覺少了點什麼。我們看到了PV/UV這樣的概覽性指標,但是它們沒法指導我們做的更好。在通過這些粗糙的數據得到用戶做了什麼後,還要看到他們是怎麼做的,明白他們為什麼做。我們需要實時、全量的用戶行為數據,通過對用戶行為整體流程的分析,找到轉化的關鍵節點以及用戶流失的核心原因,以此幫助我們對症下藥,找到可執行的指標,落實為優化行動。

今天,我想分享的就是我們在這方面的一些探索與解決方案。

一. 用戶行為分析的巨大需求

純從數據組成的角度來說,一個完善的閉環數據源主要是分成三大塊:第一塊是用戶行為數據,第二塊是服務端日誌數據,第三塊是交易 Transaction 數據。其中,除了交易數據會經常被存儲在離線資料庫中,通過 ETL 來獲取分析以外,行為數據和日誌數據很多時候都是近似的,完備的用戶行為數據基本能覆蓋絕大多數的服務端日誌數據,同時裡面包含著很多日誌數據裡面所缺乏的信息。

從技術發展角度來說,最近幾年發展最快的可以說是前端,每個月都會有很多新的東西出現,整體趨勢是往單頁應用發展,追求用戶體驗。同時,還有移動端應用,也產生著大量的行為數據,這些都不會跟服務端有過多交互。

所以,從應用提供商來說,我們需要知道屏幕前的人是怎麼使用我們的產品的,洞悉用戶行為背後的價值。

GrowingIO 從去年 12 月 8 號發布到現在已經過去幾個月了,目前有幾百家客戶在使用。我總結了一下客戶經常問我們的分析需求,大致可以分成三個場景:

  • 第一個場景是:我做了一次活動,我寫了一篇文章,我想知道到底效果如何,有沒有給我帶來足夠的流量,也就是市場營銷效果衡量。我們有些客戶,每年有上百萬的市場預算在 SEM 上,但是卻完全不知道這些錢花出去到底帶來了多少回報。?

  • 第二個場景是用戶激活流程是否合理,辛辛苦苦導入了流量,這些流量有沒有轉化為用戶,註冊流裡面每一步轉化了多少,流逝了多少,沒有轉化的去了哪裡。再在這個基礎上,我們應該怎麼優化,優化後的效果是怎樣的,這周的轉化率比起上周是否有進步,差別是怎麼引起的等等。

  • 第三個場景是這些註冊的用戶,有沒有留下來成為一個忠誠用戶甚至付費用戶。留下來的用戶,是因為什麼留下來的。是否存在一個魔法數字,可以去極大的提高用戶留存,比如:?LinkedIn 發現在第一周增加 5 個社交關係的用戶留存度很高;?Facebook 發現在第一周增加 10 個好友的用戶留存度很高;?Twitter 發現在第一周有 30 個 followers 的用戶留存度很高;?Dropbox 發現在第一周安裝兩個以上操作系統的用戶留存度很高。?這些都是在留存分析中發現的魔法數字。

二. 複雜而易錯的傳統分析方法

歸根結底,所有的分析最終都是為了商業服務,而商業是為人服務的。所以,用戶行為分析就是我們需要建立一套基於用戶的行為的分析體系,在了解用戶「誰」做了「什麼」,「怎麼」做的之外,進而明白是「為什麼」做,對症下藥,轉化成為優化行動。

分析是一個長時間優化的過程,需要我們持續監控數據的變化。而數據指標除了行為數據指標外還有一類,我們稱之為虛榮指標,比如 PV、UV 之類流量概覽性數據,這些指標看到了也就看到了,沒法指導我們做的更好。用戶行為數據指標則是另外一類,比如我們上面介紹的用戶獲取、用戶激活、用戶留存之類,了解這些行為後面都會對應到一個優化流程,所以也叫做 Actionable Metric,可執行指標,這也是用戶行為數據的魅力。

那麼接下來,我們要開始跟蹤用戶行為了,我們要怎麼開始呢。一般可以分成以下七個步驟:

1.確定分析場景或目標

確定一個場景,或者一個目標。比如,我們發現很多用戶訪問了註冊頁面,但是最終完成註冊的很少,那麼我們的目標就是提高註冊轉化率,了解為什麼用戶沒有完成註冊,是哪一個步驟擋住用戶了。

2.思考需要了解哪些數據

思考哪些數據我們需要了解,幫助我們實現這個目標。比如對於之前的目標,我們需要拆解從進入註冊頁面到完成註冊的每一個步驟的數據,每一次輸入的數據,同時,完成或者未成為這些步驟的人的特徵數據。

3.確定誰來負責收集數據?

誰負責收集這些數據,一般是我們工程師出馬。

4.什麼時候評估和分析?

收集上來的數據如何分析,什麼時候來評估採集到的數據。

5.如何給出優化解決方案?

發現問題後,怎麼來出解決方案。比如,是否在設計上改進,或者是否是工程上的 bug。

6.誰負責實現解決方案。確定方案的實施責任人。

7.如何評估解決方案的效果?下一輪數據採集和分析,回到第一步繼續迭代。

知易行難。這整個流程里,第 2 步到第 4 步是關鍵。目前傳統的服務商比如 GA、Mixpanel、友盟所採用的方式我稱之為 Capture 模式。通過在客戶端埋下確定的點,採集相關數據到雲端,最終在雲端做呈現。比如圖中這個示例,相信在座的各位應該都有寫過類似的代碼。

Capture 模式對於非探索式分析來說,是一個非常行之有效的方法。然而,同時對參與整個流程的人也提出了非常高的要求:

缺點1:依賴經驗導向

Capture 模式非常依賴人的經驗和直覺,不是說經驗和直覺不好,而是有時我們自己也不知道到底什麼是好的,經驗反而會成為一個先入為主的負擔,我們需要用數據來測試來證明。

缺點2:溝通成本高

另外,一個有效的分析結果,依賴於數據的完整性和完備性。跟不少企業溝通後,不少的吐槽都是「連日誌格式都統一不了」,更別提後續分析了。這不是具體人的問題,更多是協作溝通的問題。參與人越多,產品經理、分析師、工程師、運營等等,每個人的專業領域又各不相同,出現誤解太正常了。曾經跟我們的 CEO Simon 交流過,他在 LinkedIn 帶領數據分析部門的時候,LinkedIn 專門組建了一個多達 27 人的埋點團隊,每天開會,就是為了統一埋點的格式和位置,經常一開就是幾個星期。

缺點3:大量時間數據清洗和數據分析代碼侵入

另外,由於需求的多變性,埋點分成多次加入,缺乏統籌設計和統一管理,結果自然是無比骯髒。所以我們數據工程師還有個很大的工作是數據清洗,手動跑 ETL 出報表。根據統計,絕大多數分析工作,百分之七十到八十的時間是在做數據清洗和手動 ETL,只有百分之二十左右在做真正有業務價值的事情。另外一方面,作為一個有潔癖的工程師,最恨的就是大量的分析代碼侵入了我的業務代碼,刪不敢刪,改不敢改,日積月累,最終代碼庫整個就混亂了。

缺點4:數據漏采錯踩

以上都還是好的,最最讓人抓狂的是,上線了,發現數據採集錯了或者漏了,修正後,又得重新跑一遍流程,一個星期兩個星期有過去了。這也是為啥,數據分析工作是如此耗時一般以月計的原因,非常低效。

三. 無需埋點的數據分析原理

在經歷了無數個痛苦的夜晚以後,我們決定要換個思路思考了,希望能最大限度的降低人為的錯誤,我們稱之為 Record 模式。區別於 Capture 模式,Record 模式是用機器來替代人的經驗,自動地採集用戶在網站或者應用里的全量行為數據。因為自動化,我們從分析流程的源頭開始就控制了數據的格式。

所有數據,從業務角度出發,劃分為 5 種維度: Who,行為背後的人,具有哪些屬性;When,什麼時候觸發的這個行為;Where,城市地區瀏覽器甚至 GPS 等;What,也就是內容;How,是怎樣完成的。基於對信息的解構,保證了數據從源頭就是乾淨的,再在此基礎上面,我們完全可以把 ETL 自動化,需要什麼數據可以隨時回溯。

回到之前流程的第二步到第四步,我們已經把參與人從多方減少到基本就一方了,無論是產品經理、分析師還是運營人員,都可以使用可視化工具來查詢和分析數據,真正做到所見即所得。不僅是 PC,還支持 iOS、Android 和 Hybrid,可以進行跨屏的用戶分析。

作為一家用戶行為分析工具提供商,GrowingIO要做的並不只是用於內部,還需要適應外部成千上萬的網站和應用,所以在實現過程中我們做了很多探索:

? 自動用戶行為採集

目前我們所接觸的 GUI 程序,無論是 Web App、iOS App 還是 Android App,都是基於兩個原則,樹形結構和事件驅動模型。無論是 Web 上的 DOM 結點結構,還是 App 上的 UI 控制項結構,都是構建好的一顆完整的樹形結構渲染在頁面或者屏幕上。所以通過對樹結構的監控和檢測,我們就可以非常方便地知道哪些結點發生了變化,何時發生了變化,發生了什麼變化。同時,當用戶做了某個操作,比如滑鼠點擊、屏幕觸控,都會觸發一個事件,綁定了該事件的回調函數就會被觸發開始執行。基於此兩點認識,在 SDK 裡面如何實現無埋點就比較清楚了。只要能在結點變化或者事件發生的時候觸發我們定義的函數,那麼我就知道事件發生的多重信息。

? t數據可視化

如何把採集到的數據和業務目標匹配在一起。我們的解決方案就是我們的可視化工具。剛才已經提到任何一個原子數據,都被拆解成了 5 種不同分類的維度。所以,當我們在可視化工具裡面做匹配時,也就是對於不同維度信息的匹配。比如一個鏈接的點擊,會匹配到內容或者跳轉地址也就是 What,點擊行為也就是 How。還有其在頁面的定位信息,比如在樹形結構中的層次位置,是否帶一些 id、class 或者 tag,都是用來做數據匹配的信息。我們開發了一套智能匹配系統,通過對用戶真實行為的學習,建立了一套規則引擎,用於元素匹配。也正因為採集到的是全量數據,整個匹配系統有如基因進化一般,既有對過去歷史的記憶,也有順應新結構的演進變化。

? BI 商業分析

我們在系統設計過程中,整個 Data Pipeline 過程中,數據進過處理後,會根據優先順序不同,首先通過 Spark Streaming 實時的處理已定義數據,然後每過一段時間對匹配到的數據做離線預聚合,多維分析非常靈活。

用戶行為數據採集的目的是通過了解用戶過去做的行為,用來預測未來發生的事情,無需埋點,隨時回溯數據,讓產品經理一個人就可以搞定用戶行為分析的全部流程。GrowingIO 希望能提供一個簡單、迅速和規模化的數據分析產品,能極大地簡化分析流程,提交效率,直達業務。而這一切的基礎,就是我們從第一天開始就一直在研發的無埋點智能全量數據採集,基於此優化產品體驗,實現精細化運營,用數據驅動用戶和營收的增長。

___________________________

GrowingIO 是新一代基於用戶行為的數據分析產品,如果你是以下三種人,請立即關注我們,免費註冊:

如果你是數據工程師,卻在「不務正業」地搭建BI、配置埋點代碼:免費註冊,立刻減少無效加班;

如果你是產品經理,卻不知道如何分解KPI:免費註冊,三步就能洞悉留存曲線、精確識別用戶行為;

如果你是業務負責人,苦於收入增長乏力:免費註冊,讓我們告訴你怎樣就能讓客戶高效下單。

_________________________

獲取更多數據分析乾貨,請關注微信公眾號GrowingIO。

推薦閱讀:

3小時的Python學習成果展示(附源碼)
如何理解用戶行為事件?
如何看待APP採集用戶數據?
如何分析國內知名採集工具的優缺點?
嚴重數據傾斜文本分類,比如正反比1:20~100,適合什麼model,查准一般要做到多少可以上線?

TAG:GrowingIO | 互联网数据分析 | 数据采集 |