前言
本篇為《一週數據埋點之旅》的第一篇,通過閱讀本篇,你將獲得以下三方面的知識:
- 【埋點】小科普
- 數據流程
- 數據埋點知識
- 怎麼埋點?
- 埋點資料
埋點:數據分析的第一步
大數據,從龐雜的數據背後挖掘、分析用戶的行為習慣和喜好,找出更符合用戶“口味”的產品和服務,並結合用戶需求有針對性地調整和優化自身,正是大數據的價值。而這資訊的彙集、分析就繞不開“埋點”.
小科普:「埋點」
埋點就是在有需要的位置採集相應的資訊,就如同公路上的攝像頭,可以採集到車輛的屬性,比如:顏色、車牌號,車型等資訊,還可以採集到車輛的行為,比如:有沒有闖紅燈,有沒有壓線,車速多少,司機有沒有在駕駛中接聽電話等,如果攝像頭分佈是理想狀態,那麼通過疊加不同位置的攝像頭所採集的資訊,完全可以還原出某一輛車的路徑、目的地,甚至推測出司機的開車習慣、是否是老司機等資訊。
那麼,每一個埋點就像攝像頭,採集用戶行為數據,將數據進行多維度的交叉分析,可真實還原出用戶使用場景,挖掘用戶需求,從而提升用戶全生命週期的最大價值。
一、數據流程
數據生產-數據採集-數據處理-數據分析和挖掘-數據驅動/用戶回饋-產品優化/迭代。
數據採集,顧名思義採集相應的數據,是整個數據流的起點,採集的全不全、對不對,直接決定數據廣度和品質,影響後續所有的環節。
在數據採集失效性、完整性不好的公司,經常會有業務方發現數據發生的大幅度變化,追其所以時發現是數據採集的問。而另一方面,採集什麼數據才能有效的得到數據分析結論,才能有效的進行推薦,就需要提前規劃埋點。
當前數據採集普遍遇到的幾個問題:
- 即時性,對於工具性產品在無網條件下的數據,無法即時上報;
- 完整性,由於用戶隱私協議&歐盟通用數據保護條例的,部分數據無法採集;
- 異常,android_id、idfa、idfv 隨版本升級變化或無法獲取。
二、數據埋點
接下來用5w2h的思路來看埋點。
1. 埋點是什麼?
數據埋點是數據採集的一種重要方式,主要用來記錄和收集終端用戶的操作行為,其基本原理是在App/H5/PC等終端部署採集的SDK代碼,當用戶的行為滿足某種條件的時候,比如進入某個頁面、點擊某個按鈕等,會自動觸發記錄和存儲,然後這些數據會被收集並被傳輸到終端提供商,或者是通過後端採集用戶使用服務過程中的請求數據。
一個典型的埋點採集處理流程如下圖所示:
所謂“埋點”,是數據採集領域(尤其是用戶行為數據採集領域)的術語,指的是針對特定用戶行為或事件進行捕獲、處理和發送的相關技術及其實施過程。比如用戶某個icon點擊次數、觀看某個視頻的時長等等。
埋點的技術實質,是先監聽軟體應用運行過程中的事件,當需要關注的事件發生時進行判斷和捕獲。
特別注意需要明確事件發生時間點、判別條件,這裏如果遇到不清楚的,需要和開發溝通清楚,避免採集數據與理想存在差異。例如:期望採集某個app的某個廣告的有效曝光數,有效曝光的判別條件是停留時長超過1秒且有效加載出廣告內容。
2. 埋點是誰的工作?
現在公司通常都會有數據產品經理或業務線數據分析師,結合版本迭代過程進行埋點規劃。如果是程式碼埋點,還需要開發完成相應的埋點程式碼。
3. 在什麼時間點&在哪里埋點呢?
埋點是目的導向。
在產品規劃時就要思考數據埋點問題,如果在產品外發後再考慮怎麼埋點,就會導致前期版本用戶的數據無法收集,想要看某個數據時就會非常無奈,只有等到新版本完善來彌補。
思考要埋哪些點、埋點的形式,需要緊密結合產品迭代的方向、運營需求,並和數據開發等進行充分溝通以確認:
- 埋點能夠得到想要的數據解決/支持;
- 能夠得到當前版本的複盤情況;
- 後續版本的數據支撐。
通常的溝通過程以 埋點文檔為載體;數據埋點評審為終結。
當前版本的複盤情況:
- 新版本功能使用情況,是否符合預期;
- 新功能上線後對其他功能點的影響?是否為整體均有積極作用;
- 版本運營活動目標群體的特徵獲取;
- 新增商業化目標的監測……
後續版本的數據支撐:
- 規劃方向的用戶行為分析
- 畫像特徵分析
4.埋點的用途
終端提供商在收集到埋點數據之後,通過大數據處理、數據統計、數據分析、數據挖掘等加工處理,可以得到衡量產品狀態的一些基本指標,比如活躍、留存、新增等大盤數據,從而洞察產品的狀態。此外更重要的是隨著數據挖掘等技術的興起,埋點採集到的數據在以下方面的作用也越來越凸顯:
驅動決策:ABtest、漏斗優化、用戶增長、bug修復、精准行銷、流失用戶預警
驅動產品智能:智能推薦(千人千面)、場景化提示(私人助理)等
驅動安全:風險識別
三、怎麼埋點呢?
從位置上分為前端埋點和後端埋點,從形式上分為顯性埋點和隱性埋點,從路徑上又可以分為路徑埋點和獨立埋點,從需求上分為業務埋點和監測埋點。
由於埋點的主要操作過程是以終端的交互介面為基礎,制定數據採集的方案,其他的埋點分類也只是從不同的角度來進行埋點設計。前端埋點是當前主要採用的埋點方式,下麵主要對前端埋點進行闡述。
1.前端埋點
前端埋點是在用戶端(APP、Web、客戶端)等嵌入數據採集程式碼,比如友盟等均採用的是前端埋點,比如通過嵌入一段程式碼就就可以對網頁數據的訪問數據進行採集。相比於後端埋點,前端埋點能方便收集到用戶在介面上的行為數據,比如用戶點了哪個按鈕、頁面之間的跳轉次序、停留時長等,這些數據是後面進行數據分析的主要來源。
前端埋點技術有以下三類:
程式碼埋點
程式碼埋點是直接將採集SDK集成在終端,然後不斷在此基礎上添加調整採集方案,是目前主流的埋點採集方案,其優缺點如下:
優點:
高度定制、控制精准、採集的數據豐富準確
缺點:
首先是每當有採集需求,需要開發人員不斷添加採集代碼,工作量大;
其次變更採集策略,需要發佈新版本,代價巨大,存在滯後效應;
最後由於採集程式碼常駐終端,不斷將採集的用戶行為數據進行記錄和上報,對於終端尤其是移動終端來說還有耗電、消耗數據流量等負載,此外在數據上報傳輸的過程中也存在丟失數據的風險。
可視化埋點
由於程式碼埋點需要終端開發人員來執行採集方案,對業務的功能開發侵入性較高。有的公司開發出了可視化埋點技術,只需要產品與運營人員通過GUI介面進行滑鼠簡單點擊,就可以隨時增加、取消、調整採集數據的位置和方式,此種埋點方式避開了終端開發人員的介入,由需求人員直接執行採集,減輕了需求傳遞過程中的資訊損耗和誤解,另外可視化埋點技術往往由服務端直接下發採集的配置檔,而不用跟隨版本發佈,從而加快了數據採集的流程。
具體實現方式參考:
具體實現是SDK定時做介面截圖,在截圖的同時從介面UI的根對象開始遍曆所有的視覺化子對象,得到其層級關係。根據截圖和UI元素的可視化資訊重新渲染頁面,識別可埋點的控件。當產品人員在後臺管理端的截屏畫面上點擊可埋點控件,設定事件關聯方面的配置,伺服器保存這些配置,客戶端在獲取到這些配置資訊以後,按照新配置採集數據。
無埋點
無埋點與可視化埋點原理基本一致,區別在於無埋點是先遍曆所有的控件和操作行為的組合情況,然後將這些組合情況交給埋點後臺,由數據分析人員選擇對哪些組合的埋點數據進行分析,其優缺點如下:
優點:
收集數據全面,無漏報
缺點:
採集數據量巨大,增加了終端流量消耗和服務器存儲負擔。
埋點的上報時機相對呆板,不能靈活的根據特定的場景進行特殊設置
前端埋點的注意事項:
頁面和控件標示上報要從頂層進行合理的設計,層次感要明顯
埋點數據的漏報和重複上報如何衡量
前端埋點不僅可以處理不需要和服務器交互的曝光和點擊事件,也可以將與伺服器交互的結果,比如關注成功、分享成功、優惠券領取成功等原屬於後端埋點裏的事件放在前端來上報。
2.後端埋點
後端埋點為了避免前端埋點的以下問題:
前端埋點需要對採集的數據壓縮、暫存,為減少移動端的數據流量,除一些需要即時上報的重要事件不限制網路環境,其他事件一般只在wifi情況下上報,因此數據會有延遲,丟數據等弊端,而在後端採集數據,由於數據是在內網傳輸,數據傳輸的即時性強,丟失數據的風險小。
前端埋點採集程式由於需要常駐,監測即時和延遲埋點上報,不可避免的帶來額外的耗電。
前端埋點若要新增或調整採集方案,需要開發人員修改客戶端代碼,然後發版之後才能解決,受發佈週期的影響較大,而且通常用戶的版本更新並不會及時,這將導致新方案不能及時覆蓋所有用戶。雖然現在部分埋點管理後臺也支持熱配置更新,但功能一般都很弱,只支持一些基礎的埋點事件熱更新部署,
注意:
很多時候並不把後端埋點獨立出來,而是混合在前端埋點中,等用戶和服務器端的交互返回結果之後,將結果進行上報。
對一下需要精確採集的數據,比如代金券發放等,實施的時候儘量採用後端埋點,除非後端無法採集到所需要的數據,前端埋點只是用來參考。此外也可以將業務資料庫代金券領取數據同步到數據倉庫中進行分析。
3.其他埋點
路徑埋點和獨立埋點
這部分的埋點根據業務對路徑的追蹤需求和SDK的開發能力,可為每個事件設計上下文的路徑資訊,路徑資訊的組成一般由頁面、控件、行為三部分組成,而路徑的深度也不宜太深,一般小於五層。
顯性埋點和隱性埋點
顯性和隱性是從用戶有感和無感來區分的,有感事件是用戶的主動事件,比如展示和點擊事件;無感事件主要用來處理後臺的數據請求和拉取,用以監控和服務器的數據交互是否正常等,無感事件中常用的是掃描採集,比如app啟動之後,掃描各設置開關的狀態資訊進行上報等
業務埋點和監測埋點
業務埋點是從業務需求的角度而言,比如產品需要統計某個頁面的曝光和點擊,演算法人員需要的推薦項點擊率等;而監測埋點是從業務的流程上來講的,一般是指隱性的(比如伺服器交互的內容拉取情況、本地潛在資訊的生成情況等),此外業務埋點中的關鍵部分也可以用作監測埋點。
四、埋點資料/知識
可視化埋點參考:
產品經理如何做數據埋點:
為什麼要關心資料來源?談談埋點數據的陷阱
前端埋點的那些事: