前端數(shù)據(jù)埋點(diǎn)之錯誤警告:頁面中代碼運(yùn)行產(chǎn)生的錯誤,可能會導(dǎo)致用戶關(guān)鍵操作流程被中斷,為了避免大量用戶受到影響,我們需要獲取生產(chǎn)環(huán)境的錯誤數(shù)據(jù),這樣才能便于開發(fā)者及時進(jìn)行修復(fù)。
通常來講代碼中的錯誤會包含以下幾大類:一、全局錯誤,即未被捕獲的錯誤;二、局部錯誤,即通過、、等捕獲的錯誤;三、接口請求錯誤,即在二次封裝請求API中進(jìn)行請求和接收響應(yīng)時的錯誤;四、組件級錯誤,即使用Vue/React組件時發(fā)生的錯誤。 頁面停留埋點(diǎn)事件主要是記錄前一頁瀏覽時間。前端埋點(diǎn)頁面埋點(diǎn)平臺推薦
前端埋點(diǎn)和后端埋點(diǎn)的區(qū)別?
在實(shí)際過程中,有些埋點(diǎn)是不用特意區(qū)分前后端的,用戶的一個埋點(diǎn)事件在前端埋點(diǎn)或后端埋點(diǎn)都可以實(shí)現(xiàn),但是需要注意的是,在實(shí)際埋點(diǎn)上報(bào)、數(shù)據(jù)收集等過程中會有數(shù)據(jù)丟失的情況,從這個角度來看的話,其實(shí)后端埋點(diǎn)要比前端埋點(diǎn)更有優(yōu)勢,前端埋點(diǎn)會因?yàn)橐恍┚W(wǎng)絡(luò)問題、適配問題等等容易出現(xiàn)上報(bào)異常造成數(shù)據(jù)丟失且丟失后排查困難,因?yàn)榍岸讼嚓P(guān)的是沒有記錄相關(guān)操作的,只負(fù)責(zé)上報(bào),上報(bào)成功與否沒有記錄。
而如果是后端埋點(diǎn),無論是自己的數(shù)據(jù)系統(tǒng)還是第三方數(shù)據(jù)系統(tǒng)都是可以通過自己系統(tǒng)本身相關(guān)的數(shù)據(jù)庫查詢或記錄日志等操作進(jìn)行埋點(diǎn)數(shù)據(jù)的校驗(yàn)排查,所以針對一些比較重要的埋點(diǎn),還是建議以后端埋點(diǎn)為主,必要時通過記錄日志或記入數(shù)據(jù)庫等方式對相關(guān)數(shù)據(jù)進(jìn)行二次記錄以便進(jìn)行數(shù)據(jù)核實(shí)。 前端埋點(diǎn)和前端監(jiān)控工具如何搭建如何自定義上報(bào)埋點(diǎn)數(shù)據(jù)?查看上報(bào)字段信息,點(diǎn)擊SDK發(fā)布頁中的點(diǎn)位列表,來獲取要上報(bào)的字段信息。
代碼埋點(diǎn)的實(shí)現(xiàn)原理比較簡單,主要是初始化 SDK 之后,在某個事件發(fā)生時調(diào)用 - track: 或 - track:withProperties: 等相關(guān)接口,將觸發(fā)的事件和屬性保存到數(shù)據(jù)模型中(SDK 中使用的是 NSDictionary 類型的數(shù)據(jù)模型)。
并將數(shù)據(jù)模型轉(zhuǎn)化為 JSON 串,存儲到本地?cái)?shù)據(jù)庫中。然后,按照發(fā)送策略將數(shù)據(jù)發(fā)送到指定的服務(wù)端。例如:我們想統(tǒng)計(jì) App 里面某個按鈕的點(diǎn)擊次數(shù),可以在這個按鈕對應(yīng)的點(diǎn)擊方法里面調(diào)用 SDK 提供的接口來采集事件。
webfunny前端埋點(diǎn)系統(tǒng)采用了代碼埋點(diǎn)方案、集數(shù)據(jù)集采+分析一體化輕量級系統(tǒng)。
代碼埋點(diǎn)的使用場景,先來看下代碼埋點(diǎn)的優(yōu)缺點(diǎn),盡量揚(yáng)長避短。
優(yōu)點(diǎn):原理簡單,學(xué)習(xí)成本較低;使用較為靈活,能夠根據(jù)業(yè)務(wù)特性自定義時機(jī)、屬性、事件,定制化獲取數(shù)據(jù)。缺點(diǎn):埋點(diǎn)成本高,每一個控件的埋點(diǎn)都需要添加相應(yīng)的代碼,不僅工作量大,而且限定了必須是技術(shù)人員才能完成;版本更新前后,容易發(fā)生數(shù)據(jù)紊亂;需要企業(yè)長期且穩(wěn)定地完善埋點(diǎn),并不斷根據(jù)業(yè)務(wù)來更新。
根據(jù)上述的優(yōu)缺點(diǎn)可以知道:代碼埋點(diǎn)使用較為靈活,但是成本較高。因此,比較好在全埋點(diǎn)、可視化全埋點(diǎn)等埋點(diǎn)方案無法解決問題時,或者更強(qiáng)調(diào)自定義的場景時來使用。 為了更靈活的定制上報(bào)數(shù)據(jù),并減輕服務(wù)器的壓力,在所需埋點(diǎn)不多的情況下,常用「代碼埋點(diǎn)」的方式。
前端埋點(diǎn)的3種主流方案:
一、無痕埋點(diǎn)(全埋點(diǎn))方案,利用瀏覽器或APP自帶的監(jiān)控方式,對用戶的瀏覽頁面、點(diǎn)擊等行為進(jìn)行收集,一般用于粗顆粒度的數(shù)據(jù)分析,例如公司的slardar:數(shù)據(jù)噪聲大不管有用沒有;數(shù)據(jù)都會被收集,無法定制化埋點(diǎn);無法采集到指定事件和業(yè)務(wù)屬性;可供DA使用的信息較少;接入簡單,幾乎無侵入,不需要額外的開發(fā)成本;用戶操作行為收集非常完整,幾乎不會遺漏。
二、代碼埋點(diǎn)方案,前端開發(fā)人員在代碼中自定義監(jiān)控和收集:工作量大,而且對代碼侵入性很大,后期維護(hù)也不是很方便;可以精確埋點(diǎn),具備明確的事件標(biāo)識;業(yè)務(wù)屬性非常豐富;埋點(diǎn)觸發(fā)方式可以靈活定義;DA使用更方便和精確。
三、埋點(diǎn)sdk方案,sdk向外暴露上報(bào)埋點(diǎn)的接口,監(jiān)控和收集過程前端開發(fā)人員無感知。業(yè)務(wù)開發(fā)只需關(guān)注事件標(biāo)識、業(yè)務(wù)屬性等;兼顧無痕埋點(diǎn)優(yōu)點(diǎn)和代碼埋點(diǎn)的優(yōu)勢。 埋點(diǎn)無論是項(xiàng)目后期的復(fù)盤,還是明確業(yè)務(wù)價(jià)值,還是產(chǎn)品價(jià)值的挖掘,都具備很重要的意義。前端埋點(diǎn)框架平臺如何選擇
代碼埋點(diǎn)優(yōu)點(diǎn)傳遞多樣化自定義屬性、自定義事件,傳遞比較豐富的數(shù)據(jù)到服務(wù)端。前端埋點(diǎn)頁面埋點(diǎn)平臺推薦
無埋點(diǎn)又叫全埋點(diǎn),無埋點(diǎn)不是不需要埋點(diǎn),而是全部埋點(diǎn),前端的任何事件都被綁定上一個標(biāo)識,所有的事情都被記錄下來,只是不需要工程師在業(yè)務(wù)代碼里面插入侵入式的代碼。通過定期上傳記錄文件,配合文件解析,解析出我們需要的數(shù)據(jù)并生成可視化報(bào)告供專業(yè)人員分析。
無埋點(diǎn)技術(shù)的關(guān)鍵是:操作可視化配置工具,保存配置,SDK基礎(chǔ)代碼如何根據(jù)配置上報(bào)行為。
無埋點(diǎn)的優(yōu)點(diǎn):由于采集的是全量數(shù)據(jù),所以產(chǎn)品迭代過程中是不需要關(guān)注埋點(diǎn)邏輯的,也不會出現(xiàn)漏埋、誤埋等現(xiàn)象無埋點(diǎn)的缺點(diǎn):無埋點(diǎn)采集全量數(shù)據(jù),給數(shù)據(jù)傳輸和服務(wù)器增加壓力無法靈活的定制各個事件所需要上傳的數(shù)據(jù) 前端埋點(diǎn)頁面埋點(diǎn)平臺推薦
上海觀縱科技有限公司是一家服務(wù)型類企業(yè),積極探索行業(yè)發(fā)展,努力實(shí)現(xiàn)產(chǎn)品創(chuàng)新。是一家有限責(zé)任公司企業(yè),隨著市場的發(fā)展和生產(chǎn)的需求,與多家企業(yè)合作研究,在原有產(chǎn)品的基礎(chǔ)上經(jīng)過不斷改進(jìn),追求新型,在強(qiáng)化內(nèi)部管理,完善結(jié)構(gòu)調(diào)整的同時,良好的質(zhì)量、合理的價(jià)格、完善的服務(wù),在業(yè)界受到寬泛好評。公司擁有專業(yè)的技術(shù)團(tuán)隊(duì),具有webfunny前端監(jiān)控,webfunny前端埋點(diǎn),全鏈路應(yīng)用性能監(jiān)控,Argus-IT運(yùn)維監(jiān)控等多項(xiàng)業(yè)務(wù)。觀縱科技順應(yīng)時代發(fā)展和市場需求,通過**技術(shù),力圖保證高規(guī)格高質(zhì)量的webfunny前端監(jiān)控,webfunny前端埋點(diǎn),全鏈路應(yīng)用性能監(jiān)控,Argus-IT運(yùn)維監(jiān)控。