一文讀懂代碼埋點、全埋點、可視化埋點 | 5000字淺顯易懂解析
↑點擊關(guān)注↑開啟精益成長

隨著數(shù)據(jù)正式成為第五大生產(chǎn)要素,其在當(dāng)今社會扮演的角色地位不言而喻。數(shù)據(jù)運營也已經(jīng)不再局限于某一個崗位,而是每一位運營、市場等營銷人員必備的思維和工作方式。
由此,易觀數(shù)科推出「數(shù)據(jù)運營系列」文章,將系統(tǒng)介紹“理數(shù)——收數(shù)——看數(shù)——用數(shù)”的數(shù)據(jù)運營閉環(huán),旨在幫助大家快速落地數(shù)據(jù)運營,掌握數(shù)據(jù)驅(qū)動增長的科學(xué)工作方式。該系列文章將在易觀數(shù)科公眾號每周四持續(xù)發(fā)布,歡迎大家關(guān)注。
上一篇文章《如何搭建一套完整的指標體系?2個模型+1個原則》中,我們系統(tǒng)介紹了指標體系搭建的方法論,也由此完成了我們數(shù)據(jù)運營閉環(huán)中的“理數(shù)”環(huán)節(jié)。數(shù)據(jù)事先理清和規(guī)劃完畢后,我們便可有條不紊地進入到“收數(shù)”環(huán)節(jié)。
說到“收數(shù)”便離不開數(shù)據(jù)采集,說到數(shù)據(jù)采集便離不開埋點。
講埋點的文章那么多,我們?yōu)槭裁催€要寫它?首先,這不是一篇純技術(shù)文章,而是從一個非技術(shù)人員的角度,希望通過淺顯的語言描述,讓運營同學(xué)能快速了解概念。
此外,目前市面的埋點文章,要么沒有進行系統(tǒng)性的知識梳理,要么不夠客觀存在偏向性。而我們則希望讓大家透過表象,通過系統(tǒng)的講解和梳理,了解埋點的真正含義。
1
First Point
認識埋點
埋點是指在應(yīng)用的特定流程中,通過技術(shù)手段收集用戶發(fā)生的行為信息,從而通過后續(xù)分析的手段還原用戶的場景,以指導(dǎo)產(chǎn)品功能改進、驗證客戶服務(wù)的質(zhì)量等。
對于目前移動互聯(lián)網(wǎng)時代的應(yīng)用,從用戶行為的形式劃分,常見的有:瀏覽頁面、點擊按鈕、手勢滑動、長按等;或從功能劃分,常見的有:驗證行為、交易行為、加入清單、搜索等功能行為。
針對不同行為的埋點采集,從埋點在應(yīng)用中的位置也可以區(qū)分成客戶端埋點、服務(wù)端埋點等,從實現(xiàn)手段上劃分,可分為:代碼埋點、可視化埋點、全埋點等。
也許你還分不清集成和埋點。為了進行埋點,像易觀方舟通常都會提供一個代碼包,可以理解為一個工具包,里面包含常用的工具。想埋點就要先有這個工具包,也就是集成SDK。然后根據(jù)里面的說明書,再使用這個工具包制作出各種東西,也就是埋點。
1.1 為什么需要埋點?
互聯(lián)網(wǎng)產(chǎn)品在研發(fā)時往往不會專門記錄用戶身份和行為數(shù)據(jù),也不會包含專業(yè)的數(shù)據(jù)分析功能。但有時為了分析用戶產(chǎn)生某些動作或不產(chǎn)生某些動作的深層原因,就需要詳細的用戶數(shù)據(jù)進行分析。這個時候就需要用到專業(yè)的用戶分析工具以及埋點了。
數(shù)據(jù)獲取是任何一個數(shù)據(jù)平臺的起始動作。對于互聯(lián)網(wǎng)產(chǎn)品來說,用戶行為的捕捉及獲取是重中之重。如果沒有準確、全面的用戶身份和行為數(shù)據(jù)作為輸入,在后續(xù)分析中得到準確洞察的可能性就會存在不確定性,營銷閉環(huán)也會缺少過程數(shù)據(jù)依據(jù),精細化運營更難以開展。
1.2 埋點的原理
對基于用戶行為的數(shù)據(jù)平臺來說,發(fā)生在用戶界面的,能獲取用戶信息的觸點就是用戶數(shù)據(jù)的直接來源,而建立這些觸點的方式就是埋點。
當(dāng)這些觸點獲取到用戶行為、身份數(shù)據(jù)后,會通過網(wǎng)絡(luò)傳輸?shù)椒?wù)器端進行后續(xù)的處理。
埋點從準確性角度考慮,分為客戶端埋點和服務(wù)端埋點。
客戶端埋點,即客戶操作界面中,在客戶產(chǎn)生動作時對用戶行為進行記錄,這些行為只會在客戶端發(fā)生,不會傳輸?shù)椒?wù)器端;
服務(wù)端埋點,通常是在程序和數(shù)據(jù)庫交互的界面進行埋點,這時的埋點會更準確地記錄數(shù)據(jù)的改變,同時也會減小由于網(wǎng)絡(luò)傳輸?shù)仍蚨鴰淼牟淮_定性風(fēng)險。
從分析的角度出發(fā),數(shù)據(jù)越準確、越全面就越能達到理想狀態(tài);但在實際生產(chǎn)過程中卻不得不考慮數(shù)據(jù)獲取可行性等問題。
由于數(shù)據(jù)分析工具的最終用戶可能是企業(yè)內(nèi)部的各種角色,如工程師、產(chǎn)品運營、市場甚至其他業(yè)務(wù)人員;大家會在不同時間,在產(chǎn)品不同的模塊中,以不同的規(guī)則向產(chǎn)品中注入自己關(guān)心的采集代碼。遵循傳統(tǒng)方式,常見工作流程如下:

團隊內(nèi)部還會使用Excel表格來搜集各個團隊的埋點需求,然后再交給工程師。
實際上,即使是赫赫有名的數(shù)據(jù)分析服務(wù)商Mixpanel,在很長一段時間內(nèi)也只能將這種工作流程作為它所建議的最佳實踐,甚至不得不花篇幅在文檔中心提供了幾種不同風(fēng)格的文檔,以此幫助大家熟悉這種工作流程。
2
Second Point
傳統(tǒng)埋點的不足
一遍又一遍的迭代,使行為采集和埋點管理這兩個動作構(gòu)成了上圖中的工作流閉環(huán),但這個閉環(huán)卻存在幾個明顯的弊端。因此,在實際工作中傳統(tǒng)埋點有很多讓大家非常苦惱的地方,例如:
人力成本增加,即需要投入對業(yè)務(wù)和技術(shù)都具備一定專業(yè)水平的人專門負責(zé)
溝通成本增加,即前期需要同多方協(xié)作
犯錯成本增加,即發(fā)現(xiàn)錯漏無法快速事后補救
管理成本增加高,即跨版本后,廢點會造成代碼垃圾也會影響性能
實際工作過程中,部分企業(yè)一方面強調(diào)數(shù)據(jù)獲取的重要性,另一方面卻依然沒有真正把重心投入進來。
對行業(yè)從業(yè)者來說,數(shù)據(jù)獲取及管理,從來不是一個做到某種程度就夠用的問題,而是只要數(shù)據(jù)業(yè)務(wù)還在發(fā)展,就要不斷通過自行迭代,去探索更好的獲取及管理方式的問題。
3
Third Point
3種主流的埋點方式
聊完“埋點”這個大的概念,其細分概念隨即出現(xiàn),如“無埋點”、“全埋點”、“無痕埋點”、“無碼埋點”、“可視化埋點”等等。
而站在用戶的角度,如果仍然對這些概念不甚了解,那么結(jié)合業(yè)務(wù)做好數(shù)據(jù)采集就難以展開,選擇適合自己團隊和業(yè)務(wù)的埋點方法也無法進行......
接下來將系統(tǒng)介紹我們在數(shù)據(jù)采集工作中所有可能遇到的埋點方式,重點介紹代碼埋點、全埋點、可視化埋點的優(yōu)劣及適用場景。
3.1 代碼埋點
代碼埋點是最經(jīng)典的幫助工程師了解用戶是如何使用產(chǎn)品的埋點方式。因為是工程師人工將埋點結(jié)合到代碼邏輯中,理論上只要是客戶端種的操作,再復(fù)雜也能采集到。
常見的如:頁面停留時間,頁面瀏覽深度,視頻播放時長,用戶鼠標軌跡,表單項停留及終止等等。尤其是一些非點擊的、不可視的行為,非代碼埋點實現(xiàn)不可。

所以如果我們需要對埋點有更加精準的控制力,那么代碼埋點是最好的選擇。
當(dāng)然弊端也是很明顯的,前文說描述的那些苦惱幾乎全是代碼埋點相關(guān)的。例如數(shù)據(jù)采集周期長、人力成本高等。
3.2 全埋點
全埋點,一些國內(nèi)的團隊也稱“無埋點”、“無痕埋點”以及“自動埋點”。是一種對全自動埋點方式的探索,而且從名字看仿佛是個一勞永逸的解決方案,那我們先看看什么是全埋點。
客戶端埋點一般分為訪問級、頁面級、頁內(nèi)行為級:
用戶訪問一個網(wǎng)站或啟動一個移動應(yīng)用時幾乎所有的廠商都會自動采集上報用戶的訪問;
當(dāng)用戶訪問不同頁面時,有一部分廠商就會選擇不默認自動采集,而將其作為一個選項交給用戶;
而對于用戶在某一個頁面內(nèi)詳細的操作行為,只有極少數(shù)廠商支持自動采集上報。
實現(xiàn)了后兩種自動采集的廠商,通常會說自己是全埋點。但頁內(nèi)行為級的采集也還可以進一步探討其采集的范圍。最常見的就是自動采集可交互元素和自動采集所有元素的差別:
可交互元素包含:鏈接、表單項(如按鈕、輸入框等)、HTML的對象級元素等;
不可交互元素就太多了,絕大多數(shù)的頁面元素都屬于此類。
由于實際上網(wǎng)頁和移動應(yīng)用中的大家可以看得到的界面很多都并不是標準元素,所以實際上界面上很多看似可交互的元素也都是無法自動采集上報的。這一點不可不謂之遺憾。
不過我們還是來看看全埋點的優(yōu)點。

首先,全埋點確實會自動采集非常多的數(shù)據(jù),而且未來在使用數(shù)據(jù)的時候就可以從數(shù)據(jù)庫中直接查詢,不會面臨我想看的時候因為沒有埋點采集而獲取不到的情況。這是非常受分析師喜愛的方式,因此經(jīng)常會聽到“能采集就盡量都采集,后續(xù)分析總能用得到”。
其次,埋點是比較耗時的工作,需要業(yè)務(wù)方提供方案,工程師進行埋點,測試團隊進行測試。而由于實際工作中埋點數(shù)量比較多,每次發(fā)布新功能或新活動都需要新的埋點,所以埋點不但費時,而且錯誤率也難以控制。
有了全埋點,數(shù)據(jù)用不用都先收回來,由于都是程序自動完成,業(yè)務(wù)人員想要A而工程師埋成B這種錯誤也幾乎不存在。
然而任何事務(wù)都有它的兩面性。
第一,全埋點的“全”并非真的全部。基本的電腦瀏覽器和移動應(yīng)用中頁面內(nèi)常見的用戶操作包括鼠標行為、鍵盤行為和手指行為。例如網(wǎng)頁端常見的鼠標點擊、鼠標滑動、屏幕滾動、鍵盤錄入、光標選取甚至靜止等;移動端除了類似點擊的按下,還有多指開合、拉動、用力按下等。
但這些操作并不會都被“埋點”,能埋點的通常僅限點擊或者按下,這顯然是遠遠不夠的,甚至我們都不能稱之為全埋點。
第二,全埋點的“全”以采集上報的數(shù)據(jù)量為代價,隨著數(shù)據(jù)量上升導(dǎo)致客戶端崩潰的概率也會上升。尤其是移動端,更多的數(shù)據(jù)量意味著更多的電量、流量和內(nèi)存消耗。從這個角度來看,想做到真正的“全”在現(xiàn)階段也是很難。
第三,即使全部行為數(shù)據(jù)可以被接收回來,具體分析時的二次梳理和加工也無法避免,甚至痛苦。因為機器無法在采集時能按照我們想要的方式對全部事件進行有意義的命名,甚至無法保證采集上來的事件都正好是正確的。于是前期埋點時節(jié)省下來的人力成本,這個時候又都搭進去了。
第四,現(xiàn)階段全埋點對于用戶身份信息和行為附帶的屬性信息也幾乎無能為力。
那么這個功能到底是我需要的嗎?這其實是個度的問題。關(guān)于這個問題,需要結(jié)合實際情況,如果你更需要隨機探索過去點擊行為的趨勢,那么這個功能就合適,否則還有更好的選擇。
3.3 可視化埋點
代碼埋點的缺點對于網(wǎng)站還好,但對于移動應(yīng)用來講無疑是格外低效的。為了解決這個問題,在一部分廠商選擇全埋點的同時也有大量廠商選擇了一種所見即所得埋點的道路,即可視化埋點。

可視化埋點的好處是可以直接在網(wǎng)站或移動應(yīng)用的真實界面上操作埋點,而且埋點之后立即可以驗證埋點是否正確。此外,將埋點部署到所有客戶端也是幾乎實時生效的。
因為可視化埋點的這些好處,分析的需求方,業(yè)務(wù)人員,沒有權(quán)限觸碰代碼或者不懂得編程的人都可以非常低的門檻獲取到用于分析的數(shù)據(jù)。可謂是埋點的一大進步。
可視化埋點的部署原理也很簡單。
支持可視化埋點的SDK會在被監(jiān)測的網(wǎng)站或移動應(yīng)用被訪問時向服務(wù)器校驗是否有新的埋點,如果發(fā)現(xiàn)更新的埋點,則會從服務(wù)器下載并且立即生效。這樣就能確保服務(wù)器收到最新的埋點后,所有客戶端都能在下一次訪問時得到部署了。
易觀方舟可視化埋點技術(shù)不僅能感知事件,即在定位埋點目標時能使用位置、屬性等方式精確定位到事件觸發(fā)元素;還能獲取事件屬性,即能靈活地獲取與該事件相關(guān)的信息;還能多環(huán)境支持,例如安卓/IOS/JS等平臺、原生頁面/Hybrid模式(App內(nèi)嵌入網(wǎng)頁的)、以及mPaaS/React Native等架構(gòu)。

可視化埋點和全埋點有著對埋點和分析全然不同的追求:
可視化埋點的理念是提升原工作流程的效率——依然要梳理需求、設(shè)計埋點;
全埋點則是將工作流都進行了簡化——反正數(shù)據(jù)會被采集回來,這兩步的必要性就容易被忽視。
這里不能說孰優(yōu)孰略,因為事先嚴謹?shù)挠媱澓褪潞蟀l(fā)散的探索都是分析中的不同角度。況且這兩種埋點也完全不是排他的,完全可以同時使用。
但不可否認的是,可視化埋點局限性也很多:
第一,可視化埋點也只是針對點擊可見元素的,其中可見元素最常見的就是點擊行為了。對于點擊操作的埋點也確實是目前可視化埋點的主攻點。但從實際情況看,復(fù)雜頁面、不標準頁面、動態(tài)頁面都給可視化埋點增加不可用的風(fēng)險,一旦遇到就只能代碼埋點。
第二,對于點擊操作附帶的業(yè)務(wù)屬性,雖然也可通過進一步選取屬性所在元素來獲取屬性信息,但國內(nèi)除了易觀方舟外,其他廠商支持得好的就比較少了。
第三,為了確保埋點準確性,可視化埋點也逐步整合了更為復(fù)雜的高級設(shè)置,例如:“同頁面”、“同版本”、“同層級”、“同文本”……。但加上了這些復(fù)雜設(shè)置的可視化埋點,還是那個為提效而生的可視化埋點嗎?
4
Fourth Poin
如何選擇不同類型的埋點
綜上,我們系統(tǒng)介紹了目前主流的三種埋點方式。至于如何選擇不同類型的埋點,易觀數(shù)科總結(jié)出一張“埋點對比表”,通過對比這三類埋點的優(yōu)缺點,根據(jù)自身的業(yè)務(wù)需求,選擇最適合的埋點方式。

例如,當(dāng)業(yè)務(wù)需要特別高的精度,不能有出錯的空間,但對時間的要求不是很嚴格,就可以采用代碼埋點。
例如,數(shù)據(jù)采集需求不要求特別高的精度,比如說有一萬條數(shù)據(jù),我們能夠容忍1%或者2%的差錯,而且我們還想知道歷史數(shù)據(jù)的話,就可以采用全埋點。
例如,想知道更多的屬性、更多的信息,但不想通過代碼埋點,且希望能馬上生效。那么就可以采用可視化埋點。
通過我們總結(jié)出的這張“埋點對比表”,便可以幫助大家更快地根據(jù)自身業(yè)務(wù)的具體需求采用更合適的埋點方式。再結(jié)合易觀方舟的數(shù)據(jù)采集能力,即可更方便、更快捷、更準確地獲取數(shù)據(jù)。
+
往期「數(shù)據(jù)運營」系列文章


關(guān)于「數(shù)據(jù)運營系列」文章,你還想了解和學(xué)習(xí)哪些內(nèi)容?歡迎在留言區(qū)評論或者私信,我們下周四見~(PS:易大妹祝大家520“情人”節(jié)快樂)
點擊「閱讀原文」體驗讓你大幅提效的數(shù)據(jù)運營產(chǎn)品
