小談前端埋點

最近在公司做個小程序相關(guān)的前端埋點項目,之前也只是聽說過這個名詞稠屠,卻沒有深入的研究過峦睡,總結(jié)一下最近一周學(xué)到的東西翎苫。

目的

獲取用戶基本信息、行為以及跟蹤產(chǎn)品在用戶端的使用情況榨了,并以監(jiān)控數(shù)據(jù)為基礎(chǔ)煎谍,指明產(chǎn)品優(yōu)化的方向。

前端監(jiān)控類別

前端監(jiān)控可以分為三類:數(shù)據(jù)監(jiān)控龙屉、性能監(jiān)控和異常監(jiān)控呐粘。

數(shù)據(jù)監(jiān)控

數(shù)據(jù)監(jiān)控,就是監(jiān)聽用戶信息和行為转捕,常見的監(jiān)控項有:

  • PV(page view 頁面訪問量):即頁面瀏覽量或點擊量
  • UV(unique visitor 獨立訪客):指訪問某個站點或點擊某條新聞的不同 IP 地址的人數(shù)
  • 用戶在每一個頁面的停留時間
  • 用戶通過什么入口來訪問該網(wǎng)頁
  • 用戶在相應(yīng)的頁面中觸發(fā)的行為
  • 統(tǒng)計這些數(shù)據(jù)是有意義的作岖,比如我們知道了用戶來源的渠道,可以促進產(chǎn)品的推廣五芝,知道用戶在每一個頁面停留的時間痘儡,可以針對停留較長的頁面,增加廣告推送等等枢步。

性能監(jiān)控

性能監(jiān)控指的是監(jiān)聽前端的性能沉删,主要包括監(jiān)聽網(wǎng)頁或者說產(chǎn)品在用戶端的體驗。常見的性能監(jiān)控項包括:

  • 不同用戶醉途,不同機型和不同系統(tǒng)下的首屏加載時間
  • http 等請求的響應(yīng)時間
  • 靜態(tài)資源整體下載時間
  • 頁面渲染時間
  • 頁面交互動畫完成時間

這些性能監(jiān)控的結(jié)果矾瑰,可以展示前端性能的好壞,根據(jù)性能監(jiān)測的結(jié)果可以進一步的去優(yōu)化前端性能隘擎,比如兼容低版本瀏覽器的動畫效果殴穴,加快首屏加載等等。

異常監(jiān)控

由于產(chǎn)品的前端代碼在執(zhí)行過程中也會發(fā)生異常嵌屎,因此需要引入異常監(jiān)控推正。及時的上報異常情況,可以避免線上故障的發(fā)上宝惰。雖然大部分異持查牛可以通過 try catch 的方式捕獲,但是比如內(nèi)存泄漏以及其他偶現(xiàn)的異常難以捕獲尼夺。常見的需要監(jiān)控的異常包括:

  • Javascript 的異常監(jiān)控
  • 樣式丟失的異常監(jiān)控
  • 服務(wù)器請求的異常監(jiān)控

我們說完了前端監(jiān)控的三個分類尊残,現(xiàn)在就來聊聊怎么實現(xiàn)前端監(jiān)控葛圃。實現(xiàn)前端監(jiān)控哭尝,第一步肯定是將我們要監(jiān)控的事項(數(shù)據(jù))給收集起來捂寿,再提交給后臺混巧,最后進行數(shù)據(jù)分析宪赶。數(shù)據(jù)收集的豐富性和準確性會直接影響到我們做前端監(jiān)控的質(zhì)量睬塌,因為我們會以此為基礎(chǔ)德撬,為產(chǎn)品的未來發(fā)展指引方向嗅虏。

收集監(jiān)控數(shù)據(jù)我們是通過前端埋點來實現(xiàn)的扎阶,目前常見的前端埋點方法有三種:手動埋點汹胃、可視化埋點和無埋點婶芭。

前端埋點分類

我們說完了前端監(jiān)控的三個分類,現(xiàn)在就來聊聊怎么實現(xiàn)前端監(jiān)控着饥。實現(xiàn)前端監(jiān)控犀农,第一步肯定是將我們要監(jiān)控的事項(數(shù)據(jù))給收集起來,再提交給后臺宰掉,最后進行數(shù)據(jù)分析呵哨。數(shù)據(jù)收集的豐富性和準確性會直接影響到我們做前端監(jiān)控的質(zhì)量,因為我們會以此為基礎(chǔ)轨奄,為產(chǎn)品的未來發(fā)展指引方向孟害。

收集監(jiān)控數(shù)據(jù)我們是通過前端埋點來實現(xiàn)的,目前常見的前端埋點方法有三種:手動埋點戚绕、可視化埋點和無埋點纹坐。

手動埋點

手動埋點,也叫代碼埋點舞丛,即純手動寫代碼耘子,調(diào)用埋點 SDK 的函數(shù),在需要埋點的業(yè)務(wù)邏輯功能位置調(diào)用接口球切,上報埋點數(shù)據(jù)谷誓,像友盟百度統(tǒng)計等第三方數(shù)據(jù)統(tǒng)計服務(wù)商大都采用這種方案吨凑。

優(yōu)勢:

  1. 可自定義屬性捍歪,自定義事件
  2. 可以細化需求
  3. 相比其他埋點方式減少服務(wù)器壓力

缺陷:

  1. 工程量大的話,手動埋點會出現(xiàn)疏漏鸵钝,不方便審查糙臼。
  2. 需求變更要重新埋點,成本高恩商。
  3. 每次需求變更都要重新發(fā)布版本变逃,對線上系統(tǒng)穩(wěn)定性有一定危害

可視化埋點(這個有點復(fù)雜,先不討論怠堪,有興趣的伙伴可以和我討論)

通過可視化交互的手段揽乱,代替上述的代碼埋點。將業(yè)務(wù)代碼和埋點代碼分離粟矿,提供一個可視化交互的頁面凰棉,輸入為業(yè)務(wù)代碼,通過這個可視化系統(tǒng)陌粹,可以在業(yè)務(wù)代碼中自定義的增加埋點事件等等撒犀,最后輸出的代碼耦合了業(yè)務(wù)代碼和埋點代碼。缺點就是可以埋點的控件有限,不能手動定制或舞。

可視化埋點聽起來比較高大上隧膏,實際上跟代碼埋點還是區(qū)別不大。也就是用一個系統(tǒng)來實現(xiàn)手動插入代碼埋點的過程嚷那。比如國外比較早做可視化的是 Mixpanel,國內(nèi)較早支持可視化埋點的有TalkingData杆煞、諸葛 IO魏宽,2017年騰訊的 MTA 也宣布支持可視化埋點;相比于手動埋點更新困難决乎,埋點成本高的問題队询,可視化埋點優(yōu)化了移動運營中數(shù)據(jù)采集的流程,能夠支持產(chǎn)品運營隨時調(diào)整埋點构诚,無需再走發(fā)版流程蚌斩,直接把配置結(jié)果推入到前端,數(shù)據(jù)采集流程更簡化范嘱,也更方便產(chǎn)品的迭代送膳。

可視化埋點中多數(shù)基于Xpath的方案,XPath 是一門在 XML 文檔中查找信息的語言丑蛤,XPath 可用來在 XML 文檔中對元素和屬性進行遍歷叠聋。

無埋點

無埋點則是前端自動采集全部事件,上報埋點數(shù)據(jù)受裹,由后端來過濾和計算出有用的數(shù)據(jù)碌补。

優(yōu)點:

  1. 前端只要一次加載埋點腳本

缺點:

  1. 服務(wù)器性能壓力山大

采用無埋點技術(shù)的有主流的 GrowingIO神策棉饶。

總結(jié)

我們需要根據(jù)不同場景選擇不同的埋點方案厦章。本人比較傾向于無埋點和手動埋點結(jié)合。主要用無埋點獲取設(shè)備的基礎(chǔ)信息照藻,用手動埋點來讓開發(fā)者獲取自定義事件袜啃。例如對于簡單的獲取用戶信息,基本事件岩梳,可以使用無埋點解決囊骤;而對于需要攜帶大量運行時才可獲知的業(yè)務(wù)字段的埋點需求,就需要手動埋點來解決冀值。

參考: https://zhuanlan.zhihu.com/p/65834362

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末也物,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子列疗,更是在濱河造成了極大的恐慌滑蚯,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,222評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異告材,居然都是意外死亡坤次,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,455評論 3 385
  • 文/潘曉璐 我一進店門斥赋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缰猴,“玉大人,你說我怎么就攤上這事疤剑』蓿” “怎么了?”我有些...
    開封第一講書人閱讀 157,720評論 0 348
  • 文/不壞的土叔 我叫張陵隘膘,是天一觀的道長疑故。 經(jīng)常有香客問我,道長弯菊,這世上最難降的妖魔是什么纵势? 我笑而不...
    開封第一講書人閱讀 56,568評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮管钳,結(jié)果婚禮上钦铁,老公的妹妹穿的比我還像新娘。我一直安慰自己蹋嵌,他們只是感情好育瓜,可當(dāng)我...
    茶點故事閱讀 65,696評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著栽烂,像睡著了一般躏仇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上腺办,一...
    開封第一講書人閱讀 49,879評論 1 290
  • 那天焰手,我揣著相機與錄音,去河邊找鬼怀喉。 笑死书妻,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的躬拢。 我是一名探鬼主播躲履,決...
    沈念sama閱讀 39,028評論 3 409
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼聊闯!你這毒婦竟也來了工猜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,773評論 0 268
  • 序言:老撾萬榮一對情侶失蹤菱蔬,失蹤者是張志新(化名)和其女友劉穎篷帅,沒想到半個月后史侣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,220評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡魏身,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,550評論 2 327
  • 正文 我和宋清朗相戀三年惊橱,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箭昵。...
    茶點故事閱讀 38,697評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡税朴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出家制,到底是詐尸還是另有隱情掉房,我是刑警寧澤,帶...
    沈念sama閱讀 34,360評論 4 332
  • 正文 年R本政府宣布慰丛,位于F島的核電站,受9級特大地震影響瘾杭,放射性物質(zhì)發(fā)生泄漏诅病。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,002評論 3 315
  • 文/蒙蒙 一粥烁、第九天 我趴在偏房一處隱蔽的房頂上張望贤笆。 院中可真熱鬧,春花似錦讨阻、人聲如沸芥永。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,782評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽埋涧。三九已至,卻和暖如春奇瘦,著一層夾襖步出監(jiān)牢的瞬間棘催,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,010評論 1 266
  • 我被黑心中介騙來泰國打工耳标, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留醇坝,地道東北人。 一個月前我還...
    沈念sama閱讀 46,433評論 2 360
  • 正文 我出身青樓次坡,卻偏偏與公主長得像呼猪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子砸琅,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,587評論 2 350

推薦閱讀更多精彩內(nèi)容