數據採集與分析的那些事——從數據埋點到AB測試

来源:https://www.cnblogs.com/163yun/archive/2018/10/09/9761757.html
-Advertisement-
Play Games

作者:網易有數鄭棟。 一、為什麼企業需要一套完善的用戶行為埋點和分析平臺 產品初創期間,需要分析天使用戶的行為來改進產品,甚至從用戶行為中得到新的思路或發現來調整產品方向;產品成長過程,通過對用戶行為的多角度(多維)分析、對用戶群體的劃分以及相應行為特征的分析和比較,來指導產品設計、運營活動,並對市 ...


作者:網易有數鄭棟。

 

一、為什麼企業需要一套完善的用戶行為埋點和分析平臺

 

產品初創期間,需要分析天使用戶的行為來改進產品,甚至從用戶行為中得到新的思路或發現來調整產品方向;產品成長過程,通過對用戶行為的多角度(多維)分析、對用戶群體的劃分以及相應行為特征的分析和比較,來指導產品設計、運營活動,並對市場渠道效果進行評估。

配合上A/B試驗平臺,可以加速產品的迭代,更快得到用戶的真實反饋。同時,這些數據沉澱下來,對業務的數據倉庫建設、數據智能應用等方面也能起到促進作用,比如做實時推薦,需要能更快獲得用戶儘可能多且明細的行為數據;做用戶分類、意願預測等機器學習業務,需要清洗過的規範化、結構化的數據做 訓練。

要想做用戶行為的分析,就需要有一套用戶行為數據採集、傳輸、處理、分析的基礎設施,而埋點和分析平臺就是在做這件事。業界大多產品都是通過嵌入到多個終端的 SDK 來採集用戶行為數據,而後續的傳輸、處理等過程對需求方是透明的,這樣可以以很低的成本,完成數據的採集、清洗、沉澱工作,為企業節省成本,提升數據驅動的效率。

在分析平臺上,用戶的行為定義會通過特定事件來標識,比如 “buttonClick”,“playMusic” 等。通常這些事件是開發人員通過調用 SDK 提供的API來設置的,除了確定事件的名稱外,還可以加入分析需要的自定義參數和取值,這個過程就是“埋點”工作。當然,還有一些工具/產品支持可視化埋點,這種方式不需要開發介入埋點,SDK會自動採集用戶在各個終端上的行為。

 

二、代碼埋點、可視化埋點和無埋點有哪些區別,在使用過程中該如何選擇?

 

可視化埋點是指開發人員除集成採集SDK外,不需要額外去寫埋點代碼,而是由業務人員通過訪問分析平臺的圈選功能來“圈”出需要對用戶行為進行捕捉的控制項,並給出事件命名。圈選完畢後,這些配置會同步到各個用戶的終端上,由採集SDK按照圈選的配置自動進行用戶行為數據的採集和發送。

無埋點是指開發人員集成採集SDK後,SDK便直接開始捕捉和監測用戶在應用里的所有行為,並全部發送到分析平臺,不需要開發人員添加額外代碼。在分析時,業務人員通過分析平臺的圈選功能來選出自己關註的用戶行為,並給出事件命名。之後便可以對特定用戶行為(事件)進行多維分析了。

可視化埋點和無埋點比較像,都不需要開發人員手工加代碼,也都需要業務人員進行所關註的用戶行為的圈選。兩者最大的不同是在用戶終端的表現上,可視化埋點只採集業務人員關註的用戶行為數據,而無埋點是會採集所有用戶的行為數據,通常情況下數據量後者比前者大很多。

也正是由於無埋點預設採集所有用戶行為數據,它能夠做到事件的回溯分析,即在業務人員新定義(圈選)事件後,就能去分析這個事件在前面一兩個月的數據情況,這也是可視化、代碼埋點支持不了的。但帶來的問題就是採集所有數據對應用的侵入會比較大,也會增大用戶端採集的數據量。當然,這可以通過一些策略,比如Wi-Fi下才發來緩解這些問題。

無埋點和可視化埋點都存在一個較大的缺陷,它們都是通過採集SDK去監測應用上控制項的觸發事件(用戶對控制項的操作),當產品UI在版本升級過程中發生變動,或者產品做了大的改版,一些行為的“埋點”會發生丟失。如控制項ID發生變化,而圈選的配置沒變,導致數據採集不到;或者和業務的實際需要發生不一致的變動,比如圈選控制項的作用發生了變化,但圈選配置沒改;這些問題會導致對產品某些方面的分析出現差錯,往往查起來還比較麻煩,在技術上完全解決也比較困難。

另外,可視化埋點和無埋點都針對的是客戶端數據採集,一些用戶行為數據在客戶端是採集不到的,或者客戶端採集的精準度不夠,比如支付,因為支付成功的判斷絕大多數場景都是在服務端做的,所以在客戶端做支付行為的埋點,誤差很大,這個時候就需要在服務端進行埋點。

在業務選擇時,建議在產品初期,產品形態還不太穩定、分析的複雜度還比較低的階段,採用無埋點或者可視化埋點,更快去做埋點,否則頻繁的產品改動,會讓開發人員大量時間花在瑣碎的埋點代碼維護上面。產品進入穩定期後,儘量採用代碼埋點方式,可以保證事件模型是穩定的,便於長期的數據監控、分析和數據沉澱。

 

三、實踐中做了些工作,來促進埋點工作的落地以便更好的維護和管理?

 

產品業務數據驅動的 workflow 往往是這樣的:

1、定義產品的階段性目標;

2、規劃和定義指標,包括產品、運營、市場的各項目標;

3、產品、運營等業務人員確定數據埋點需求;

4、開發人員進行埋點以及數據的上報等開發工作;

5、數據開發人員進行數據的清洗、寬表建設、指標計算等工作;

6、業務人員分析數據、發現產品問題或潛在機會;

7、繼續下一階段的產品、運營、市場等的改進工作。

 

用戶行為分析平臺的目標就是將其中4-6階段的工作變得簡單和自動化,把開發人員解放出來去做更多對業務有價值的工作。而1-3部分的工作,看起來不複雜,基於業務現狀去定義指標,排出埋點需求,和開發人員進行確認後就完成了。但這塊從實踐上來看,很多企業或者業務都做的不夠好。

 

埋點事件數量迅速膨脹,團隊可能大部分人都不知道某些埋點是做什麼的;或者業務人員定義了埋點需求,但開發人員埋點做錯了,好久都沒發現,導致分析過程出現錯誤解讀,影響決策。

 

這塊有幾件事情可以做:

l  指標管理系統,用來維護指標依賴的數據表、欄位以及計算方式,來統一開發、分析和解讀過程的口徑。

l  埋點管理系統,用來管理埋點的元數據,包括事件 Event 的命名、自定義欄位含義和特定取值等規範定義,埋點在產品端的位置或觸發場景,埋點工作流等,作為業務人員、開發者、分析師溝通的橋梁和基準。

l  埋點測試和校驗系統,提供 debug 工具方便開發人員快速進行埋點調試,以及使用事件定義的規範要求,線上上對埋點數據進行校驗,儘早發現不符合規範的數據,提高埋點工作的效率和準確性。

彙總就是:元數據管理系統 + 測試和校驗工具。

 

四、如何做好埋點工作和研發的協調和落地 ?

 

實踐中,很多開發人員不太願意做“埋點”的工作,覺得很瑣碎,而且隨著產品的發展,包袱有時候會越來越大,維護的工作量不小。

要讓埋點工作在研發比較好的落地,最能提升的地方還是在於如何簡化開發人員的工作,包括開發成本和溝通成本。

有完善的埋點管理系統,這樣研髮端可以依據進行開發,減少“口口相傳”帶來的低效和返工,也能統一口徑和進度流程。有高效易用的埋點測試、校驗系統,開發人員可以快速進行埋點debug,提高開發效率,也能讓業務方儘早介入需求校驗,而不是等應用真正發佈後才去校驗,去發現問題。

當然,最好能和開發人員持續分享數據是如何促進業務的發展,讓大家明白這些工作的價值,才能更重視,更認真對待這部份工作。

 

五、埋點數據採集與企業數據資產建設怎樣更好的合作?

 

用戶行為分析平臺在建設時,數據端會包含如下能力:

l  數據接入,要支持客戶端、Web、服務端等多終端的數據採集,如iOS、Android、微信小程式等,以及各種數據源甚至三方服務的數據適配。

l  數據傳輸,在用戶規模和數據規模增長過程中,要能保證數據傳輸服務的高可用,以及採集數據在傳輸過程的及時性。

l  數據建模/存儲,要能實時的進行數據清洗、建模和存儲落地。

 

這些能力,在互聯網業務的數據資產建設過程中,尤其是用戶、流量、產品相關領域,能起到基礎設施的作用。規範的數據採集,加上高效的傳輸、建模能力,是企業業務數據資產有效建設的前提。

建模後的數據,可以作為數據倉庫底層(ODS層)的寬表,和企業的其他業務數據整合,共同完善企業的數據資產建設。

另一方面,這些用戶端的結構化數據,加上實時建模和開放的能力,和機器學習演算法結合起來,無論是個性化推薦,還是精準營銷,又或是銀行、電商的風控,都可以發揮很大威力,為企業的智能驅動業務做好數據積累,掃清障礙。

 

拿DMP(用戶畫像)建設舉個例子:

企業在建設自己的DMP庫的過程中,常常會從常規的人口屬性等準靜態類標簽,以及像消費能力等從自身業務積累或三方合作得到的通用類標簽入手。這些標簽往往是泛業務的,針對具體業務而言,很多時候會需要用戶畫像標簽更貼近業務,比如電商業務場景下的母嬰用戶、電子產品發燒友、化妝品品牌喜好用戶等。這些標簽和用戶的發掘,需要對用戶的行為進行深度分析來獲取,這個工作便可以藉助用戶行為分析平臺的能力,如基於用戶行為模式和用戶業務屬性對用戶進行分群分析和比較,來發現和挖掘有價值的用戶標簽。

另一方面,用戶畫像的數據,也可以和分析平臺進行整合和集成,提升平臺各分析模型對不同用戶群的洞見能力,讓分析和指標的比較更有針對性,提升數據對業務的促進能力。

 

六、埋點及分析平臺和 A/B 試驗平臺如何更好的互相促進?

 

A/B測試產品是通過提供專業高效的試驗平臺,幫助產品進行產品決策的驗證和分析。常規使用流程如下:

接入 SDK -> 創建試驗版本 -> 設置變數、以及優化指標 -> 調節試驗流量 -> 運行試驗 -> 實時監控數據進行效果評估 -> 正式發佈

試驗平臺和分析平臺的SDK在很多功能上是重合的,在SDK實現上可以整合,減少業務應用接入太多SDK的負擔。

在數據採集、建模、分析層面,分析平臺可以作為 A/B 試驗平臺後端數據的承載,優化指標的效果評估就能覆蓋用戶的全量行為,無需業務及開發人員維護多個工具帶來的重覆埋點定義和開發工作。另外,在分析平臺積累的很多分析模型和指標,在A/B試驗平臺直接可以選取使用,無需在試驗平臺再進行設置,除減少業務人員工作外,還能保證統計口徑的一致。

反過來,A/B試驗平臺的一些對比試驗,以及特定灰度發佈的用戶群,也能整合到分析平臺,通過分群分析能力,將這些群體應用到各個分析模型進行針對性的分析,甚至試驗結束後,也能持續對這些用戶進行追蹤和分析,更好的洞察用戶。

 

七、如何打通產品多端的埋點數據?

 

這是個歸因的問題,一般提到賬號打通,就會有歸因的討論。

現在的分析產品在一般情況下,移動端會通過SDK生成唯一ID來標識用戶/設備。移動化發展早期,很多採集工具用過 mac address、IDFA、android_id、IMEI等從移動操作系統可以獲取的設備軟硬體信息來標識設備,但隨著操作系統的發展,很多信息獲取介面要麼被封禁,要麼已經失去了精準性。反倒是一開始就通過自己生成的ID來標識用戶的工具,受到的影響不大,基本保持了用戶/設備標識的穩定。

但這種方式存在一個問題,當用戶卸載、重裝或者刷機後,ID信息會丟失,導致生成新的用戶/設備ID。

 

我們採用過ID Mapping的技術來做過ID的打通:對每個用戶生成一個虛擬ID,對同一個用戶的多個設備和帳號進行映射,並綁定起來。

l  可以通過操作系統提供的一些穩定性稍差,但短時間還比較穩定的指標,如iOS的IDFA,來做mapping。

l  藉助分析產品的應用覆蓋率,如用戶是應用A和B的用戶,卸載並重新安裝B應用後,可以通過應用A的ID修複應用B的。

l  通過引入產品用戶賬號體系來做綁定,這種方式穩定性最強,但非登錄匿名用戶的問題不好解決。

l  通過IP、Wi-Fi信息、機器型號、甚至地理位置進行mapping,這種方式需要用戶授權更多數據獲取許可權,雖然是近似匹配,但當信息足夠多且發散(信息熵足夠大)時,也可以起到統一標識的作用。

 

通過這個虛擬ID實質上就打通了產品的多端數據。ID Mapping體系的建設工作量不小,Mapping後用戶標識如果需要發生調整,在基於事件的分析產品上需要對老數據進行重寫,比較複雜。所以對於一些強賬號體系的產品,可以退化到只用用戶賬號來做關聯,只有非登錄匿名用戶才用設備ID來標識,這往往是性價比比較高的方案。

推廣渠道歸因就方便了。

支持營銷效果評估的分析平臺會要求產品在平臺上生成推廣鏈接進行投放。用戶在點擊鏈接時,會從分析平臺的域下做跳轉再到目標頁,這樣就可以藉助瀏覽器的cookie機制進行匹配,對用戶來源進行歸因,但這種方式在移動端上面的表現不太好(iOS已經取消了SFSafariViewController多應用共用cookie的支持)。除此之外,也可以採用ID Mapping提到的近似匹配技術,很多廠商聲稱的設備指紋技術大多也是這種,不太精準,但是做定性分析是可以的。

 

歸因這塊,一些推廣渠道做了些工作,解決移動端溯源困難的問題:支持設備ID的回傳功能來方便產品歸因問題的解決。

產品方在投放鏈接的時候,遵照特定格式即可,比如

 https://xxx.com/aaaafD?idfa=__IDFA__&imei=__IMEI__

渠道在用戶點擊廣告鏈接後,會把設備ID如IDFA或IMEI加到鏈接的內容裡面,用戶激活後便可以通過相應ID匹配來歸因。

 

網易有數是網易旗下的企業級大數據可視化分析平臺,可點擊免費試用

 

網易雲免費體驗館,0成本體驗20+款雲產品!

 

更多網易研發、產品、運營經驗分享請訪問網易雲社區

 

相關文章:
【推薦】 爬蟲開發python工具包介紹 (1)
【推薦】 試水新的Angular4HTTPAPI


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 什麼是 Redis Redis 是一個使用 編寫的開源、支持網路協議、基於記憶體、可選持久性的鍵值對資料庫,它是一個 not only sql)資料庫,也就是常說的非關係型資料庫。從 2005 年開始,Redis 的開發由 Redis Labs 贊助,之前一直被 Pivotal 和 VMware 先後 ...
  • 事務的隔離級別其實是SQL語言的標準,這裡我就以自己比較常用的MySQL資料庫為例進行介紹。 關於關係型資料庫和非關係型資料庫的對比,我之前寫過一篇文章簡單地作了一些介紹,隔離級別是ACID原則中的第三點 Isolation隔離性的重要內容。 有興趣的讀者可以出門左轉,查看我之前的隨筆。 好了,先上 ...
  • orcl中months_between()函數用法如下: 格式:即MONTHS_BETWEEN(日期1,日期2) 例如: select months_between(to_date('2018-10-9','yyyy-mm-dd'),to_date('2017-10-09','yyyy-mm-dd' ...
  • ...
  • 在sql的優化中,會有同學提到一點:使用enum欄位類型,代替其他tinyint等類型。以前這也是不少人喜歡優化的,但是現在細想,是非常不合理的。 優點: 1.可以設置區間範圍,比如設置性別:1男2女3未知。如果這是出現一個非1、2、3類型的,一眼就是臟數據了。 缺點: 1.數據遷移的時候,他幾乎不 ...
  • 環境: create table rq (xm varchar2(10),age number,zw varchar(10),rzrq date);insert into rq values ('小崔',23,'運維工程師',(to_date('2017-07-02','yyyy-mm-dd'))) ...
  • 摘要: 下文通過sql函數的形式,獲取指定月份的總天數 實驗環境:sqlserver 2008 R2 製作思路: 1. 獲取指定月份的第一天, 2. 並採用dateadd向後加一個月形成一個新的日期 3. 將兩個日期相減,並返回之間的相差天數,作為指定月份的總天數,如下所示: 轉自:http://w ...
  • 入門概述 是什麼 Redis:REmote DIctionary Server(遠程字典伺服器) Redis:REmote DIctionary Server(遠程字典伺服器) 是完全開源免費的,用C語言編寫的,遵守BSD協議,是一個高性能的(Key/Value)分散式記憶體資料庫,基於記憶體運行並支持 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...