終于有人將埋點講明白了
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,從單純的展示型到運營型,再到現(xiàn)在的數(shù)字化運營階段,數(shù)據(jù)變得越來越重要,不僅可以進行輔助策略,還可以實現(xiàn)自動化的個性化運營。而數(shù)據(jù)價值的起點就是埋點,只有合理地埋點,規(guī)范地上報,數(shù)據(jù)才會產(chǎn)生價值。本文我們就來了解埋點體系。
數(shù)據(jù)埋點概述
一般我們把數(shù)據(jù)分為生產(chǎn)端數(shù)據(jù)和消費端數(shù)據(jù)。生產(chǎn)端數(shù)據(jù)很容易獲得,一般都是通過系統(tǒng)的數(shù)據(jù)庫,比如在電商的商品后臺中添加商品的操作就是生產(chǎn)端數(shù)據(jù)。生產(chǎn)端數(shù)據(jù)基本上都是監(jiān)控類的。而產(chǎn)生更多的業(yè)績價值的數(shù)據(jù)往往都是消費端數(shù)據(jù),比如用戶在電商App上進行點贊、評論、收藏、下單和支付等行為的數(shù)據(jù)就是消費端數(shù)據(jù)。消費端數(shù)據(jù)需要采集,埋點技術(shù)就是一種常見的采集這些數(shù)據(jù)的技術(shù)。
01什么是埋點
通常我們說的埋點,實際上是埋點技術(shù)。埋點技術(shù)是一種數(shù)據(jù)采集技術(shù),特指針對用戶行為或時間進行捕獲、處理和上報的相關(guān)技術(shù)及其實施過程。
互聯(lián)網(wǎng)發(fā)展到今天,埋點技術(shù)已經(jīng)越來越成熟,有非常多的第三方SDK可以方便公司快速建立埋點體系,挖掘數(shù)據(jù)價值。然而第三方埋點技術(shù)經(jīng)常會遇到數(shù)據(jù)泄露的問題,而且可能由于一些限制導(dǎo)致業(yè)務(wù)訴求不能完全滿足,因此大型企業(yè)大概率會選擇自建埋點系統(tǒng)。
02埋點的意義
我們經(jīng)常會說數(shù)據(jù)價值,會思考如何讓業(yè)務(wù)數(shù)據(jù)產(chǎn)生價值。數(shù)據(jù)產(chǎn)生價值的前提是數(shù)據(jù)源可信任,而埋點的意義就是解決數(shù)據(jù)源可靠性的問題。
如果說數(shù)據(jù)倉庫是兵工廠,各種數(shù)據(jù)產(chǎn)品是槍炮,那么埋點就是鋼和鐵;如果說數(shù)據(jù)倉庫是地基,各種數(shù)據(jù)產(chǎn)品是高樓大廈,那么埋點就是磚和石。如果埋點做不好,一切上層依賴都將會事倍功半。
03埋點的類型
埋點類型有三種:Web埋點、App埋點和接口埋點。本文主要介紹產(chǎn)品思維層面出發(fā)需要了解的大致原理。
1、Web埋點
Web埋點主要是通過先在頁面中注入一段JavaScript代碼,然后對收集的數(shù)據(jù)進行上報的技術(shù)。
互聯(lián)網(wǎng)的發(fā)展從Web 1.0到Web 2.0,再到今天的移動互聯(lián)網(wǎng),埋點技術(shù)也從無到有,從簡單到復(fù)雜,服務(wù)廠商也從群雄爭霸到“剩”者為王。Web埋點技術(shù)也經(jīng)歷了網(wǎng)頁信息、增加Cookie、增加事件三個階段,使得Web埋點越來越成熟。這里我們主要從產(chǎn)品角度理解Web埋點。
在大數(shù)據(jù)運營之前,Web埋點主要關(guān)注的是各種指標和漏斗分析法。重要的指標有頁面訪問次數(shù)、頁面用戶數(shù)、頁面停留時長和跳出率。漏斗分析法主要是指有遞進關(guān)系的頁面之間用戶的流失率。Web埋點的意義更多的是優(yōu)化頁面,提高用戶留存。在大數(shù)據(jù)運營之后,Web埋點更多地開始關(guān)注事件,同時上報用戶信息,這樣就可以對用戶的興趣點進行挖掘。
2、APP埋點
App埋點技術(shù)是通過在代碼中加入特殊的代碼或者引入一個SDK,對App中的信息進行收集的一種技術(shù)。
App代表了移動互聯(lián)網(wǎng)時代的到來,從這一天開始,埋點技術(shù)就進入了大數(shù)據(jù)時代,并不是App帶動了大數(shù)據(jù)時代,而是App的興起正好和大數(shù)據(jù)技術(shù)的普及相伴隨。
伴隨著大數(shù)據(jù)的到來,App埋點已經(jīng)不僅僅關(guān)注頁面優(yōu)化帶來的用戶留存提升,而更加關(guān)注數(shù)據(jù)的全面性。在這個時代,數(shù)據(jù)就是價值,數(shù)據(jù)的全面性帶來的是用戶價值的深度挖掘。同時Web時代的版本更新優(yōu)化已經(jīng)被更成熟的A/B測試系統(tǒng)取代。我們再也不用更新一個版本之后再獲取數(shù)據(jù),而是可以在一定范圍內(nèi)灰度上線,測試效果之后再上線。
所以App埋點是埋點價值的升華,也是大數(shù)據(jù)時代挖掘數(shù)據(jù)價值的起點。
3、接口埋點
我們常說的埋點主要是指Web埋點和App埋點,但實際上還有一種埋點——接口埋點。這種埋點不同于其他埋點的地方在于,它不是通過數(shù)據(jù)庫系統(tǒng)直接存儲,而是通過日志系統(tǒng)存儲,然后通過ETL保存到數(shù)據(jù)倉庫。
接口埋點的意義主要是用于實時接口監(jiān)控,可以讓我們快速發(fā)現(xiàn)接口的異常情況。運維的報警系統(tǒng)很多都是通過接口埋點實現(xiàn)的。
如何做好埋點
接下來我們介紹如何做好埋點。
1、目標搜集
埋點是數(shù)據(jù)價值的起點,而目標收集又是埋點的起點。目標收集的關(guān)鍵要義在于必要的全面,也就是說,需要的數(shù)據(jù)都要進行埋點,但并不是埋點越全越好。
目標收集主要從兩個角度思考,一個是用戶信息(包含瀏覽器信息),一個是目標及事件。
用戶信息主要是指用戶的身份與硬件環(huán)境信息。身份信息包括未登錄的唯一碼、登錄后的唯一碼、聯(lián)合登錄信息等,硬件環(huán)境信息包括操作系統(tǒng)、硬件設(shè)備碼和經(jīng)緯度等。在沒有用戶信息的時代,大家只能進行全站的調(diào)整和信息呈現(xiàn),而用戶信息的收集讓智慧營銷、千人千面成為可能。
目標及事件主要是指頁面中的元素及元素觸發(fā)的事件。元素要進行分級收集,主要遵從三個級別:頁面、模塊和元素。模塊是有可能分級的,但是在埋點系統(tǒng)里一般我們不做分級上報,只對最子級的模塊進行上報,在服務(wù)器端存儲模塊層級關(guān)系。比如微信一級模塊是“微信”“通訊錄”“發(fā)現(xiàn)”和“我”。在“微信”里面還有“加號”“搜索”“消息列表”和“小程序”這些二級模塊。然而當(dāng)我們點擊了“搜索”時,對于模塊上報來講,不需要記錄“微信”這個一級模塊,只需要上報“搜索”這個二級模塊就可以了。
其實目標收集有一個很好的簡單要義:誰對什么做了什么。這里的“誰”就是用戶,“對什么”中的“什么”就是目標,“做什么”就是事件。在做埋點的時候,一定要記住這個要義。
接下來,介紹埋點所謂的必要和全面。全面就是埋點要盡可能全面,因為只有這樣,當(dāng)我們想到用某些數(shù)據(jù)進行機器學(xué)習(xí)的時候,才可以不用再去埋點,也不會損失歷史數(shù)據(jù)的價值。全面有兩個概念,一是埋的點位要全,二是一個點位的上傳信息要全面。
關(guān)于埋的點位要全,這就需要依賴交互設(shè)計圖了。在交互設(shè)計圖中,任何有交互的元素都是需要考慮是否要進行埋的點。決定是否埋的依據(jù)是這個元素的交互是否有業(yè)務(wù)意義,如果有就需要進行埋點。此外,在用戶行為產(chǎn)生結(jié)果的邏輯代碼中也需要進行埋點。這樣就可以保證埋點的全面性。
埋點上報的信息如何做到全面呢?以事件驅(qū)動。用事件作為埋點的點,需要上傳的信息包括事件本身和觸發(fā)事件的用戶信息,以及觸發(fā)元素本身所在實體(對于客觀世界物體的抽象)的信息。比如我們在使用電商的時候,會收藏一個商品,那么點擊收藏按鈕的這個點擊事件就是我們要埋的點。收藏是我們的動作,所以我們的唯一識別碼、操作系統(tǒng)、經(jīng)緯度坐標等信息就需要上報,同時點擊的是商品的收藏按鈕,所以商品的唯一標識碼也需要上報。
接下來我們討論一下必要。是不是所有的事件及其相關(guān)信息都需要上報呢?答案是否定的,特別是在用戶量級很大的應(yīng)用中,每多上報一種信息,就代表多很多的流量費用和存儲費用。所以只有能夠產(chǎn)生業(yè)務(wù)意義的事件及相關(guān)信息才需要上報。比如,App中經(jīng)常出現(xiàn)的自動切換的控件,這種切換事件一般不上報,因為并沒有什么業(yè)務(wù)價值。
以UI設(shè)計為底、以業(yè)務(wù)價值為依據(jù)、以事件為起點、以“要義”為目標進行埋點,就可以保證目標收集的必要和全面。
2、字典管理
做了埋點,只是保證了有信息,距離產(chǎn)生價值還有一個很重要的步驟,那就是字典管理。
字典管理的第一個要點是埋有所編。一個埋點對應(yīng)一個標識信息,這樣每一個埋點就相當(dāng)于有了一個身份。這個標識信息既可以在后續(xù)的數(shù)據(jù)分析中發(fā)揮重要價值,也方便在埋點管理平臺中進行管理。
字典管理的第二個要點是便于檢索。在給模塊起名的時候要遵從全路徑原則,也就是頁面→模塊→最子級模塊→元素→事件。例如,對淘寶首頁男裝分類下的更多熱賣的每一個商品的點擊進行埋點,那么這個埋點的合理名稱是“首頁_男裝分類_更多熱賣_商品_點擊”。當(dāng)然每個人因為習(xí)慣不同,會有一個符合自己系統(tǒng)的編碼名稱。
這里介紹一下編碼的職責(zé)原則。首先埋點編碼是由技術(shù)部門完成的,而不是業(yè)務(wù)部門。埋點的技術(shù)部門需要建立一套完整的、適用于全公司的埋點規(guī)范。如果業(yè)務(wù)側(cè)的產(chǎn)品經(jīng)理想申請埋點,只需要將埋點的點位和邏輯需求寫清楚,然后到埋點的技術(shù)管理部門申請。埋點的技術(shù)管理部門依據(jù)制定好的規(guī)則,對新增的頁面、模塊、元素及事件進行編碼,然后更新埋點文檔。測試人員根據(jù)埋點文檔對業(yè)務(wù)側(cè)的產(chǎn)品經(jīng)理提出的需求進行確認。測試通過的埋點在埋點管理系統(tǒng)中狀態(tài)變更為驗證通過,待版本發(fā)布后,埋點狀態(tài)變更為有效。業(yè)務(wù)側(cè)產(chǎn)品經(jīng)理也可以通過埋點信息上報后的數(shù)據(jù)邏輯對埋點進行業(yè)務(wù)驗證。
3、埋點管理平臺
埋點管理平臺,顧名思義,就是對于埋點的管理系統(tǒng)。實際上字典管理就是埋點管理平臺的一部分,除了字典管理之外,埋點管理平臺還包括埋點可視化管理、埋點狀態(tài)監(jiān)控及埋點測試幾個模塊。接下來我們會對剩下的模塊進行說明。
01 埋點可視化管理模塊
埋點可視化管理模塊主要負責(zé)對埋點進行可視化管理??梢钥吹皆谙聢D中,左側(cè)是一個App的展示,而在右側(cè)有一系列埋點信息,并用線和目標元素進行連接。
可視化埋點示例圖
這樣產(chǎn)品在對埋點進行設(shè)計的時候,就可以所見即所得地設(shè)計,從而極大減少設(shè)計上的遺漏。同時,可視化管理模塊也是埋點測試的基礎(chǔ)。
02 埋點狀態(tài)監(jiān)控模塊
埋點狀態(tài)監(jiān)控模塊主要負責(zé)對埋點的存活狀態(tài)、未知埋點發(fā)現(xiàn)及數(shù)據(jù)異常進行提醒。埋點的存活主要是針對已經(jīng)確定的埋點進行監(jiān)控,而是否存活主要是通過測試人員進行回歸測試來判斷。未知埋點發(fā)現(xiàn)主要是通過上報數(shù)據(jù)進行分析,如果出現(xiàn)了未知的埋點標識數(shù)據(jù),則進行提醒,方便反向跟蹤問題。數(shù)據(jù)異常提醒模塊主要從數(shù)據(jù)本身的閾值異常以及上下游埋點比例的閾值進行監(jiān)控。隨著機器學(xué)習(xí)的引入,數(shù)據(jù)異常的判斷進入智能化階段,錯報的概率大大降低,同時監(jiān)控的時效性大大提升。
03 埋點測試模塊
這個模塊很少有企業(yè)真的做到,但是卻是埋點管理平臺能夠得到升華的點。埋點測試模塊主要提供給測試人員使用,因為它與可視化管理模塊的聯(lián)動可以讓產(chǎn)品經(jīng)理也很容易上手,進行埋點測試。也就是這個模塊支持在測試的時候,可視化模塊可以同步顯示應(yīng)用顯示的頁面。在應(yīng)用上觸發(fā)埋點的時候,可視化模塊在接收到數(shù)據(jù)時可以高亮顯示對應(yīng)的埋點標簽。所以埋點測試模塊就是埋點測試人員和產(chǎn)品經(jīng)理最想要的模塊。下圖是埋點管理系統(tǒng)主要模塊的結(jié)構(gòu)圖。
埋點管理系統(tǒng)主要模塊的結(jié)構(gòu)圖
如果你們企業(yè)做出了上面的埋點管理平臺,那么要恭喜你了,你們已經(jīng)走到埋點的專業(yè)級別了,你們的數(shù)據(jù)價值之路已經(jīng)有了最好的磚和石。
埋點技術(shù)
下面來講一下主流的埋點技術(shù),這里僅從產(chǎn)品經(jīng)理需要了解的原理角度進行講解。
01JavaScript埋點
JavaScript埋點是主要應(yīng)用于Web應(yīng)用的埋點,通過在頁面的底部加入一段JavaScript代碼來完成埋點。一般在頁面上顯示為一個GIF小圖標,圖標的來源是一個JavaScript文件地址。
JavaScript埋點一般支持自定義事件的收集,這樣就可以充分地對用戶的行為進行收集。
JavaScript埋點也會應(yīng)用Cookie技術(shù),對用戶身份進行標識,但是如果用戶清除了Cookie,會導(dǎo)致用戶身份丟失。
02APP埋點
App埋點算是站在了一個很高起點的埋點技術(shù)。因為有了JavaScript埋點的技術(shù)和運營沉淀,App埋點在很短的時間內(nèi)就發(fā)展到了很成熟的階段。App埋點主要分成兩種方式,有埋點技術(shù)和無埋點技術(shù)。
1 )有埋點技術(shù)
在App剛火熱的時候,還沒有無埋點技術(shù),都是以有埋點技術(shù)來實現(xiàn)的。
有埋點技術(shù)就是在邏輯代碼中插入一條自己需要的埋點代碼進行數(shù)據(jù)上報。這樣的埋點技術(shù)可以根據(jù)業(yè)務(wù)需求精準埋點,但是也帶來了一個問題:埋點管理問題。公司越大,部門劃分越細,同時伴隨人員的流動,一旦規(guī)則或者埋點人員的認知不同,就會導(dǎo)致埋點丟失或者改變。而我們之前說過,埋點是數(shù)據(jù)價值的起點,這樣會給后續(xù)的所有分析及模型帶來影響。
所以有埋點技術(shù)成為了一種大家質(zhì)疑的技術(shù),無埋點技術(shù)也在大家對有埋點技術(shù)的痛苦掙扎中應(yīng)運而生。但是無埋點技術(shù)就真的是天堂嗎?實際上,這樣的問題并不是技術(shù)問題,而是管理問題。埋點技術(shù)暴露出來的問題也是因為管理體系的缺失導(dǎo)致的。
2) 無埋點技術(shù)
無埋點技術(shù)可以說是踏著七色云彩來到這個世上的,也是各大埋點平臺鼓吹的埋點技術(shù)。
無埋點技術(shù)的好處是,通過引入SDK,接下來就會自動完成埋點,這樣就可以規(guī)避很多人工錯誤。這樣看來,是不是大家都應(yīng)該使用無埋點技術(shù)呢?是不是無埋點技術(shù)就沒有缺點了呢?
實際上在對業(yè)務(wù)數(shù)據(jù)要求高的場景下,無埋點技術(shù)還是有一些缺點的:
- 采集的標準化使非標準化采集成為不可能;
- 只能監(jiān)控部分事件,并不能上報所有事件信息;
- 由于目前App開發(fā)的復(fù)雜性上升,無埋點技術(shù)并不能兼容所有的場景;
- 標準化上報導(dǎo)致很多業(yè)務(wù)無效的信息也進行了上報,大量的無效信息上報在流量大的場景下會帶來巨大的流量及處理資源的浪費;
- 無法獲取業(yè)務(wù)邏輯內(nèi)的信息跟蹤。
埋點技術(shù)的選擇
我們已經(jīng)知道了有埋點技術(shù)和無埋點技術(shù)的優(yōu)缺點,那么如何選擇埋點技術(shù)呢?接下來針對不同的場景,進行埋點技術(shù)的推薦。
- 公司剛啟動,技術(shù)人員少,人員流動大,公司初步擴張中,尚未進入精細化運營階段。只要符合其中一點,就可以選擇無埋點技術(shù)。
- 項目在天使階段之后的融資階段,業(yè)務(wù)復(fù)雜度高,App應(yīng)用的技術(shù)多樣。符合這些點中的一點,就不要用無埋點技術(shù)了。當(dāng)然,在融資階段,使用私有化部署的無埋點技術(shù)也還是可以的。
- 公司流量巨大,業(yè)務(wù)復(fù)雜度高。當(dāng)公司進入這個階段的時候,就需要有埋點和無埋點技術(shù)聯(lián)合使用。對無埋點技術(shù)也要進行一定的修改,上報階段要通過后臺配置項進行配置上報。這個階段就需要按照4.2.3節(jié)提到的,建設(shè)自己的埋點管理平臺了。
有埋點和無埋點技術(shù)都是為了數(shù)據(jù)采集而存在的,而且各有優(yōu)劣,企業(yè)在不同階段,產(chǎn)品在復(fù)雜度不同的情況下,根據(jù)自身的需要進行選擇。效用最大化是組織的目的,所以不要在某一點上進行過度開發(fā),避免產(chǎn)生不必要的浪費。
關(guān)于作者:李凱東,某視頻媒體的大數(shù)據(jù)負責(zé)人,前京東數(shù)據(jù)中臺應(yīng)用數(shù)據(jù)平臺部負責(zé)人、京東商城算法專家委員會核心委員,阿里天池數(shù)據(jù)科學(xué)家。
本書摘編自《數(shù)據(jù)產(chǎn)品經(jīng)理:實戰(zhàn)進階》,經(jīng)出版方授權(quán)發(fā)布。