web前端埋點及數(shù)據(jù)上報

一、簡介

前端埋點即在產(chǎn)品客戶端獲取用戶行為和使用情況的一種監(jiān)控方式浙垫。通過埋點可以獲取到用戶行為數(shù)據(jù)算行,借助這些數(shù)據(jù)梧油,我們可以從用戶角度出發(fā),升級迭代產(chǎn)品州邢,使其更加貼近用戶使用習慣儡陨,提升產(chǎn)品使用體驗與用戶留存率,使產(chǎn)品在市場上更具競爭力量淌。

二骗村、原理

用戶在使用互聯(lián)網(wǎng)產(chǎn)品時,在產(chǎn)品客戶端會留下諸如瀏覽呀枢、點擊胚股、滑動等交互行為,使用埋點程序對這些行為進行監(jiān)控和采集裙秋,將采集到的行為數(shù)據(jù)上報給服務器信轿,達到監(jiān)控與分析的目的。

目前web端產(chǎn)品常需要前端埋點來監(jiān)控采集的數(shù)據(jù)內容主要分為三類:

1.?數(shù)據(jù)類残吩,常用基本數(shù)據(jù)指標如:PV,UV倘核,每個頁面的停留時間泣侮,在頁面觸發(fā)了何種功能行為,訪問來源等等紧唱,對基本數(shù)據(jù)進行挖掘與分析活尊,還能生成用戶畫像隶校,行為軌跡等高級數(shù)據(jù)。

常用埋點基本指標:

2.性能類蛹锰,常用性能指標如:頁面渲染時間深胳、用戶與產(chǎn)品交互動效完成時間、網(wǎng)絡請求響應完成時間等等铜犬。

常用埋點性能指標:

3.異常類舞终,如:靜態(tài)資源加載錯誤,程序執(zhí)行報錯癣猾。

三敛劝、方案

前端埋點方案主要分為三類:

1. 無痕埋點:

比較早的埋點方式,通過監(jiān)聽瀏覽器全局事件來收集用戶數(shù)據(jù)纷宇,所以頁面上所有的用戶點擊等操作行為都會被收集上報夸盟。

例如:

可以看出該方案埋點簡單明了,與業(yè)務代碼無耦合像捶,收集的用戶行為數(shù)據(jù)也比較全上陕,但是數(shù)據(jù)量比較大,無用數(shù)據(jù)太多拓春,給服務器增加了很大的壓力释簿,也無法進行定制化,只能收集常用的基本數(shù)據(jù)痘儡,一般用于粗顆粒度的數(shù)據(jù)分析辕万。

目前無痕埋點主要采取第三方sdk的方式接入,如:百度統(tǒng)計沉删,雖然是粗粒度數(shù)據(jù)分析渐尿,但也比較全面了。

2. 可視化埋點

通過一個可視化界面進行圈點等方式直接對業(yè)務頁面進行埋點矾瑰,這種可視化工具類似于dreamweaver, 所見即所得砖茸,通過可視化交互的方式在頁面上的元素(按鈕,鏈接等)進行埋點配置注入殴穴。

主要原理是在目標產(chǎn)品項目中嵌入開啟可視化功能的SDK凉夯,通過WebSocket的方式和服務器、前端進行相互通信采幌,SDK會定時收到服務器下發(fā)的頁面請求劲够;然后會上報頁面快照和界面因子信息到服務器,服務器收到信息后會根據(jù)界面因子信息對頁面的每個元素進行分析休傍,根據(jù)控件的類型來標記哪些頁面元素是可以被埋點的征绎;最后將可埋點信息交給前端渲染,此時磨取,前端Web頁面上展示就的就是可以埋點的頁面人柿。

目前市場上已經(jīng)有比較成熟的可視化埋點方案產(chǎn)品柴墩,如:

神策數(shù)據(jù):https://www.sensorsdata.cn/product/analysis.html

諸葛IO:https://docs.zhugeio.com/quickstart/

以上兩種埋點方案主要依靠第三方sdk提供的服務,sdk供應商雖然能提供盡可能全面的埋點數(shù)據(jù)凫岖,但想達到完全的定制化江咳,獲取更復雜的業(yè)務埋點數(shù)據(jù)還是有一定距離。

3. 手動埋點

產(chǎn)品開發(fā)人員根據(jù)業(yè)務分析需求在產(chǎn)品源代碼層進行埋點哥放。完全地滿足定制化埋點需求歼指,支持各種場景的業(yè)務需要,精準可控婶芭。但缺點也很明顯东臀,埋點代碼侵入性大,容易與業(yè)務代碼耦合犀农,后期維護成本較高惰赋,一般公司自建埋點平臺系統(tǒng)會采用這種方式。


四呵哨、埋點數(shù)據(jù)上報

前端埋點收集到的數(shù)據(jù)需要上報給服務端赁濒,目前較為常用的方案為三種。

1.?傳統(tǒng)XHR請求

優(yōu)點:可以靈活地設置請求頭屬性孟害,post請求可以發(fā)送大體量數(shù)據(jù)拒炎,滿足特定場景的埋點需求。

缺點:數(shù)據(jù)量大的請求占用帶寬資源多挨务,增加服務器壓力击你。頁面銷毀時的監(jiān)控埋點大概率上報失敗。

2. Image對象

利用圖標對象的src屬性發(fā)送get請求上報數(shù)據(jù)

優(yōu)點:上報數(shù)據(jù)的請求不需要接收響應谎柄,可靈活跨域丁侄,src請求體量小,速度快朝巫,頁面銷毀時的監(jiān)控埋點會等上報請求發(fā)送完畢鸿摇,再執(zhí)行頁面卸載。

缺點:無法發(fā)送大體量數(shù)據(jù)劈猿,頁面銷毀時有監(jiān)控埋點會讓頁面關閉速度變慢拙吉,影響用戶體驗。

3.?Beacon API

Beacon api 是w3c新引入的補充性api揪荣,就是用來解決web頁面在觸發(fā)卸載銷毀事件unload期間會中斷所有異步xhr請求的問題筷黔。這個API給navigator對象增加了一個sendBeacon()方法。這個方法接收一個URL和一個數(shù)據(jù)有效載荷參數(shù)仗颈,并會發(fā)送一個POST請求佛舱。可選的數(shù)據(jù)有效載荷參數(shù)有ArrayBufferView、Blob名眉、DOMString、FormData實例凰棉。它會保證頁面在已經(jīng)關閉的情況下也會發(fā)送請求损拢。

不過它也有缺點:

1.只支持post請求,并且發(fā)送的數(shù)據(jù)量不會像正常xhr的post數(shù)據(jù)量那么大撒犀,最大數(shù)據(jù)量大小是由客戶端(用戶瀏覽器)版本決定的福压,chrome@70版本測試大概15MB左右。

2.因為是新補充的api或舞,會存在瀏覽器兼容性問題荆姆,如圖:

綜上,埋點數(shù)據(jù)上報在上報輕量級的數(shù)據(jù)時可以采取image src屬性進行上報映凳,特定場景需要采集大量級的數(shù)據(jù)可以改用普通post請求方式胆筒,在需要監(jiān)測用戶關閉瀏覽器時上報數(shù)據(jù),首選采用beaconApi方式诈豌,若用戶的當前瀏覽器不支持該方法仆救,可降級為image方案。目前很多大廠已采用這種混合式埋點方案矫渔,例如:



附錄

1. web性能:

https://developer.mozilla.org/zh-CN/docs/Web/Performance

2. BeaconAPI:

https://developer.mozilla.org/zh-CN/docs/Web/API/Beacon_API

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末彤蔽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子庙洼,更是在濱河造成了極大的恐慌顿痪,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件油够,死亡現(xiàn)場離奇詭異蚁袭,居然都是意外死亡,警方通過查閱死者的電腦和手機叠聋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門撕阎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人碌补,你說我怎么就攤上這事虏束。” “怎么了厦章?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵镇匀,是天一觀的道長。 經(jīng)常有香客問我袜啃,道長汗侵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮晰韵,結果婚禮上发乔,老公的妹妹穿的比我還像新娘。我一直安慰自己雪猪,他們只是感情好栏尚,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著只恨,像睡著了一般译仗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上官觅,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天纵菌,我揣著相機與錄音,去河邊找鬼休涤。 笑死咱圆,一個胖子當著我的面吹牛,可吹牛的內容都是我干的滑绒。 我是一名探鬼主播闷堡,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼疑故!你這毒婦竟也來了杠览?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤纵势,失蹤者是張志新(化名)和其女友劉穎踱阿,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钦铁,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡软舌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了牛曹。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片佛点。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖黎比,靈堂內的尸體忽然破棺而出超营,到底是詐尸還是另有隱情,我是刑警寧澤阅虫,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布演闭,位于F島的核電站,受9級特大地震影響颓帝,放射性物質發(fā)生泄漏米碰。R本人自食惡果不足惜窝革,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吕座。 院中可真熱鬧虐译,春花似錦、人聲如沸吴趴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽史侣。三九已至,卻和暖如春魏身,著一層夾襖步出監(jiān)牢的瞬間惊橱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工箭昵, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留税朴,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓家制,卻偏偏與公主長得像正林,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子颤殴,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內容