基於無埋點技術的使用者行為分析
用戶行為分析從狹義來看是用戶的行為資料分析,但是廣義來說這一個詞包含用戶分析,用戶行為的結果分析,用戶的行為分析。用戶行為的結果和用戶的行為分析是不一樣的,一個是結果,一個是過程。現在國內市場上關於用戶行為分析的產品分為基於前臺資料的用戶行為分析和基於後臺資料的用戶行為分析。基於前臺技術的用戶行為分析側重於用戶的行為分析,而基於後臺技術的用戶行為分析側重於用戶行為的結果分析。這兩類產品可以說是有一定的片面性,完成的只是用戶行為分析的一部分。基於這個現狀來談談全面的用戶行為分析應該怎麼做。這篇文章主要會從資料來源和資料收集方式兩個角度來說。
一用戶行為資料來源
資料是用戶行為分析的大前提,一切的分析都始於資料,巧
僅僅使用前臺資料,還是上面那個例子,雖然能夠識別出用戶是來自A-B-F-D下單的,但是要想分析這個路徑帶來的用戶有多大價值,在之後這個用戶有沒有回來,他之後有在我們產品消費了多少,像這種復雜的分析,依賴前臺資料也是做不到的。
如果想分析用戶結果是依靠什麼行
怎麼把來自前臺和後臺的用戶資料關聯起來?這是需要解決的問題。
二用戶行為資料收集技術
用戶行為資料收集技術主要有兩種:埋點和無埋點。先來科普先這兩種技術方式,以及說明下應該怎麼選擇。
埋點
所謂埋點就是為了資料分析的需求在原本的復雜的代碼邏輯之上在加上N行獲取資料的代碼。比如如果想獲取某商品的點擊數量,就得在點擊事件的中搜集點擊的商品資料,發出包含商品名稱和點
埋點的優勢:
1)埋點最大的優勢就是資料都是手動編碼產生的,靈活性比較大,可以更好得支援一些擴展資料。
2)埋點由於是按照埋點邏輯進行的預處理,所以對之後的分析友好,分析效果也比較好。
埋點的劣勢:
1)埋點最重要的前提條件是必須十分清楚目標,即需要收集什麼樣的資料必須提前確定。所以埋點最容易出現的問題就是漏埋,一般來說在發布前一定要經過謹慎的校驗和測試,因為一旦版本發布出去而資料採集出了問題。
2)在產品的迭代過程中,如果代碼再迭代的時候忽略了埋點邏輯的更改,從而導致後續的分析邏輯不準,甚至導致產品bug。更甚於對於產品迭代比較快的場景,埋點就是一個定時炸彈。
無埋點
埋點技術和無埋點技術都需要在原有的業務代碼上進行改動。無埋點就是通過編程語言自身的特點來完成資料收集的自動化過程。比如前臺無埋點其實就是通過監聽JS事件,把頁面上發生的所有事件都採集下來。後臺無埋點實現比較復雜,但是說起來很簡單,其實就是將網絡資料進行旁路反解析,前後端互動的資料肯定都會經過網絡,所以網絡中應該包含了絕大多數業務資料。
無埋點的優勢:
1) 相對於埋點方式帶來的收益就是正好就是埋點容易產生的問題,由於採集的是全量資料,所以產品迭代過程中是不需要關注埋點邏輯的,也不會出現漏埋、誤埋等現象。
2)無埋點方式因為收集的是全量資料,可以大大減少運營和產品的試錯成本,試錯的可能性高了,可以帶來更多啟發性的資訊。
3)最後一點,也是最清楚的一點,就是減少了因為人員流動帶來的溝通成本。
無埋點的缺陷,也是無埋點存在的一些質疑點:
1)適用大部門,通用的場景,有少部分需要埋點的場景覆蓋不了。
2)無埋點採集全量資料,給資料傳輸和服務器增加壓力
根據前面關於埋點和無埋點的科普,我們都明白其實兩個方式都有其自身的優勢和缺陷,知乎和其他技術部落格上關於這兩個討論點的文章也有很多,有人在批埋點,有人在批無埋點。關於技術,我們還是理性看待吧,它們兩個不是你死我活的關係,通過我們調研的得到的情況是,目前沒有方案能夠完美解決無埋點問題,但是我們致力於研究最大限度通過通用方式解決埋點問題,儘量減少埋點代碼,埋點代碼越少,出錯的可能性就越低。我們選擇使用前臺無埋點和後臺無埋點技術相結合的方式來獲取用戶資料。
三如何利用無埋點打通前後臺數據
當前的分析手段,都需要進行大量埋點以及關聯才能做到前臺和後臺資料打通,有沒有可能通過無埋點將前後臺數據自動關聯打通?
前臺無埋點弊端
前端無埋點針對資料分析比較簡單需求是很合適的,如果是僅僅分析頁面跳轉,轉化率、或者控制元件點擊等行為,前端無埋點完全能夠勝任。但是如果要做細粒度的分析,僅僅靠前端無埋點可能存在困難,最關鍵的原因就是前臺採集技術再先進也還是有些資料難以採集到,比如客戶的下單金額等資料,這些資料很多都是以html形式傳到前臺,在不同的技術實現中,前臺所展示的金額資料可能僅僅是展示資料,並不會再傳至後臺。所以導致如果想要做一些按照客單價分群的行為,就很難僅僅依靠前端無埋點技術來實現。
後臺無埋點的引入
在典型的前後臺互動的程式中,資料最通用的來源,我們發現是wired data。Wired data應該包含了90%以上的細粒度的業務資料,只是這些資料是以不同格式存在於wired data中,這裡面的難度就是設計一種資料處理方案,能夠通用的將存在於wired data的資料利用起來,這是後臺無埋點的實現關鍵。
前後臺數據自動打通
前後臺無埋點的關聯點就在於cookie,在使用者請求中埋入特殊的sessionid和uid。後臺的資料採集wired data中如使用者資訊,通過sessionid和uid關聯之後,就可以知道某次下單業務是哪個用戶操作的,在頁面上有何種行為。我們採用這種方式實現了前後資料的自動關聯。