前端监控与前端埋点方案

news2025/2/1 14:34:03

前端监控与前端埋点方案

https://blog.csdn.net/sinat_36521655/article/details/114650138

​ 用户行为数据可以通过前端数据监控的方式获得,除此之外,前端还需要实现**性能监控和异常监控。**性能监控包括首屏加载时间、白屏时间、http请求时间和http响应时间。异常监控包括前端脚本执行报错等。

前端监控的目的是:

获取用户行为以及跟踪产品在用户端的使用情况,并以监控数据为基础指明产品优化的方向

前端监控可以分为三类:数据监控、性能监控和异常监控。

「前端监控的种类」

(1) 数据监控

数据监控,顾名思义就是监听用户的行为。常见的数据监控包括:

  • PV/UV:PV(page view),即页面浏览量或点击量。UV:指访问某个站点或点击某条新闻的不同IP地址的人数
  • 用户在每一个页面的停留时间
  • 用户通过什么入口来访问该网页
  • 用户在相应的页面中触发的行为

统计这些数据是有意义的,比如我们知道了用户来源的渠道,可以促进产品的推广,知道用户在每一个页面停留的时间,可以针对停留较长的页面,增加广告推送等等。

(2) 性能监控

性能监控指的是监听前端的性能,主要包括监听网页或者说产品在用户端的体验。常见的性能监控数据包括:

  • 不同用户,不同机型和不同系统下的首屏加载时间
  • 白屏时间
  • http等请求的响应时间
  • 静态资源整体下载时间
  • 页面渲染时间
  • 页面交互动画完成时间

这些性能监控的结果,可以展示前端性能的好坏,根据性能监测的结果可以进一步的去优化前端性能,比如兼容低版本浏览器的动画效果,加快首屏加载等等。

(3) 异常监控

此外,产品的前端代码在执行过程中也会发生异常,因此需要引入异常监控。及时的上报异常情况,可以避免线上故障的发上。虽然大部分异常可以通过try catch的方式捕获,但是比如内存泄漏以及其他偶现的异常难以捕获。常见的需要监控的异常包括:

  • Javascript的异常监控
  • 样式丢失的异常监控

「前端埋点方案」

实现前端监控的步骤为:**前端埋点和上报、数据处理和数据分析。**首要的步骤就是前端埋点和上报,也就是数据的收集阶段。数据收集的丰富性和准确性会影响对产品线上效果的判别结果。

​ 埋点,它的学名是事件追踪(Event Tracking),主要是针对特定用户行为或业务过程进行捕获、处理和发送的相关技术及实施过程。埋点是数据领域的一个专业术语,也是互联网领域的一个俗称。

​ 埋点是产品数据分析的基础,一般用于推荐系统的反馈、用户行为的监控和分析、新功能或者运营活动效果的统计分析等。

​ 埋点包含两个重要概念:事件(event),属性(param)

  • 事件(event):应用中发生了什么,例如用户操作、系统事件或系统错误。以你拍一产品为例,包含以下事件:enter_page(进入页面)、leave_page(离开页面)
  • 属性(param):为了描述用户群细分而定义的属性,例如语言偏好或地理位置。以“进入课后练习”事件为例,它包含如下事件属性:enter_from(从哪个页面来),class_id(课程id)等。
  • 属性值(value):属性的维度,即行为触发时的具体维度。例如:enter_from:home(主页)、system(系统)等。

常见埋点事件

事件上报时机描述
页面停留当前页面切换或者页面卸载时记录前一页浏览时间
pv进入页面时页面访问次数,uv只需要根据deviceId过滤
交互事件用户交互事件触发时比如点击、长按等
逻辑事件符合逻辑条件时比如登陆、跳转页面等

常见埋点属性

属性描述
uid用户id,若用户未登陆,则返回特定标识id
url当前事件触发页面的url
eventTime触发埋点的时间戳
localTime触发埋点时的用户本地时间,使用标准YYYY-MM-DD HH:mm:ss格式表示,方便后期直接使用字符串查询
deviceType当前用户使用的设备类型,比如apple、三星、chrome等
deviceId当前用户使用的设备id
osType当前用户使用的系统类型,比如windows、macos、ios、android等
osVersion当前用户使用的系统版本
appVersion当前应用版本
appId当前应用id
extra自定义数据,一般是序列化的字符串,且数据结构应保持稳定

​ 目前常见的前端埋点方法分为三种:代码埋点、可视化埋点和无痕埋点。

(1) 代码埋点

​ 代码埋点,就是以嵌入代码的形式进行埋点,比如需要监控用户的点击事件,会选择在用户点击时,插入一段代码,保存这个监听行为或者直接将监听行为以某一种数据格式直接传递给server端。此外比如需要统计产品的PV和UV的时候,需要在网页的初始化时,发送用户的访问信息等。

代码埋点的优点:

  • 可以在任意时刻,精确的发送或保存所需要的数据信息。

缺点:

  • 工作量较大,每一个组件的埋点都需要添加相应的代码

(2) 可视化埋点

​ 通过可视化交互的手段,代替代码埋点。将业务代码和埋点代码分离,提供一个可视化交互的页面,输入为业务代码,通过这个可视化系统,可以在业务代码中自定义的增加埋点事件等等,最后输出的代码耦合了业务代码和埋点代码。

​ 可视化埋点听起来比较高大上,实际上跟代码埋点还是区别不大。也就是用一个系统来实现手动插入代码埋点的过程。

缺点:

  • 可视化埋点可以埋点的控件有限,不能手动定制。

(3) 无埋点

​ 无埋点并不是说不需要埋点,而是全部埋点,前端的任意一个事件都被绑定一个标识,所有的事件都别记录下来。通过定期上传记录文件,配合文件解析,解析出来我们想要的数据,并生成可视化报告供专业人员分析因此实现“无埋点”统计。

​ 从语言层面实现无埋点也很简单,比如从页面的js代码中,找出dom上被绑定的事件,然后进行全埋点。

无埋点的优点:

  • 由于采集的是全量数据,所以产品迭代过程中是不需要关注埋点逻辑的,也不会出现漏埋、误埋等现象

缺点:

  • 无埋点采集全量数据,给数据传输和服务器增加压力
  • 无法灵活的定制各个事件所需要上传的数据

「性能数据采集方案」

目前性能指标数据大部分来源于 window.performance API。

Performance.timing

在这里插入图片描述

常见性能指标

指标名描述
FP页面首次绘制时间
FCP页面首次有内容绘制的时间
FMP页面首次有效绘制时间,FMP >= FCP
TTI页面完全可交互时间
FID页面加载阶段,用户首次交互操作的延时时间
MPFID页面加载阶段,用户交互操作可能遇到的最大延时时间
LOAD页面完全加载的时间(load 事件发生的时间)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/104367.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件设计师

1.在项目初期的需求并不明确,需要不断同用户进行交流与沟通,分布获取功能要求,在这种情况要采用敏捷开发方法最适合,比如极限编程 2.设计模式包括:创建型,结构型,行为型三大类别。 创建型模式…

UnRaid添加镜像源加速应用安装的正确方法

文章目录0、前言1、寻找适合你网络的最优镜像源1.1、首先点击下图示红框处进入UnRaid的终端1.2、输入如下代码检测每一个镜像源的速度:2、更改镜像源方法2.1、修改Go文件方法2.2、用户自定义脚本方式2.2.1、安装User Scripts插件2.2.2、在User Scripts插件中添加更改…

【自动驾驶环境感知项目】——基于Paddle3D的点云障碍物检测

文章目录1. 自动驾驶实战:基于Paddle3D的点云障碍物检测1.1 环境信息1.2 准备点云数据1.3 安装Paddle3D1.4 模型训练1.5 模型评估1.6 模型导出1.7 模型部署效果1. 自动驾驶实战:基于Paddle3D的点云障碍物检测 项目地址——自动驾驶实战:基于P…

已经拍好的视频怎么加水印?视频加水印方法大分享

现在不管是网课视频,还是一些视频博主自制的vlog,我们都可以在这些视频里面看到水印,它不仅可以防止他人盗用视频,还可以作为自己形象的宣传,吸引流量。不过现在还是有很多小伙伴不知道怎么给视频添加水印。别急&#…

js将图片url转化为base64

将以下代码复制封装于xxx.js文件中&#xff0c;放置在项目文件夹utiles下 /*** 把url转换为 canvas对象* param url 网络图片地址必须服务器设置允许跨域* returns {Promise<any>}*/ export default function urlToCanvas (url) {return new Promise((resolve) > {var…

2022卡塔尔世界杯 | 我与足球的爱恨情仇

超燃世界杯&#xff0c;决战卡塔尔⚽我与足球在生活上的交集一、小学二、中学三、大学&#x1f4bb;我与足球在技术上的碰撞一、与足球有关的题目训练二、使用Java代码做一个足球小游戏&#x1f3c6;2022卡塔尔世界杯冠军 —— 阿根廷yyds一、球队比赛过程二、热门球员介绍三、…

小学生C++编程基础 课程6(共9题)

Go C编程 第1课 神奇的魔笔 Go C编程 第1课 神奇的魔笔_dllglvzhenfeng的博客-CSDN博客_goc编程作品 GoC2018下册 第2课&#xff08;C画图&#xff09; GoC2018下册 第2课&#xff08;C画图&#xff09;_dllglvzhenfeng的博客-CSDN博客 Go C 编程 第3课 魔法自动机 Go C 编程…

C++:类和对象:继承

前言&#xff1a; 继承时面向对象额三大特性之一&#xff1a; 在面向对象中&#xff0c;有些类与类之间存在特殊关系&#xff0c;下级别的类除了拥有上一级别的共性&#xff0c;还有自己的特性&#xff0c;这个时候我们就需要考虑利用继承的技术减重复代码。 1&#xff1a;继承…

Redisson分布式锁

Redisson分布式锁 Redisson 是什么&#xff1f; Redisson是一个Java库&#xff0c;它为Redis服务器提供分布式和可扩展的Java对象和服务&#xff08;Set、Multimap、SortedSet、Map、Lock、Semaphore、CountDownLatch、Publish/Subscribe、Bloom filter等&#xff09;。它允许…

工控安全-S7协议

文章目录一、西门子PLC系统构成二、S7协议结构三、TPKT协议四、COTP协议4.1 COTP连接包4.2 COTP功能包五、S7Comm协议5.1 头(Header)5.2 作业请求(Job)和确认数据响应(Ack_Data)5.2.1 建立通信(Setup communication [0xF0])5.2.2 读取值(Read Var [0x04])5.2.2.1 当PDU为JOB时5…

redis之分片集群

0. 前言 在海量的数据面前&#xff0c;单个 redis 实例的能力是有限的&#xff0c;无可能无限增大的内存&#xff0c;所以必须要构建分片集群&#xff0c;来横向拓展来支持保存更多的数据。 1. 分片集群是什么&#xff1f; 分片集群主要是将 redis 的数据划分成多份&#xf…

BHG Mall 聚焦消费者需求,“超级宠粉节”缔造营销新高度

“如何读懂消费者&#xff1f;”处在行业关键转型期的购物中心&#xff0c;面临着这一待解的难题。 有哪些业态、品牌、商品让消费者着迷又上瘾&#xff1f;购物中心需要培养和消费者之间的默契&#xff0c;购物中心不仅要引领消费趋势、满足消费需求&#xff0c;还要深度融入…

Java+SSM宠物销售网站(含源码+论文+答辩PPT等)

项目功能简介: 该项目采用的技术实现如下&#xff1a; 后台框架&#xff1a;Spring、SpringMVC、MyBatis UI界面&#xff1a;JSP、jQuery 数据库&#xff1a;MySQL 该系统主要分为前台和后台两大功能模块&#xff0c;共包含两个角色&#xff1a;用户、管理员。 具体的系统功能如…

高分子PEG:DBCO-PEG-OPSS,OPSS-PEG-DBCO,二苯并环辛烯PEG邻吡啶二硫

【产品描述】 DBCO-PEG-OPSS中DBCO试剂可以自动标记叠氮化物修饰的生物分子&#xff0c;而不需要使用有毒的铜催化剂。聚乙二醇化可以提高多肽和蛋白质的溶解性和稳定性&#xff0c;降低其免疫原性。它还可以抑制带电分子与修饰表面的非特定结合。西安凯新生物科技有限公司点击…

html5:notification(浏览器通知)

一、notification简介 Web Notifications是HTML5 的一个特性&#xff0c;目前我知道的有谷歌浏览器和windows edge对它进行了支持&#xff0c;用于向用户配置和显示桌面通知。 二、notification方法 2.1静态方法 这些方法仅在 Notification 对象中有效。 Notification.requ…

5 种有效的电子邮件营销技巧可增加您的转化率

关键词&#xff1a;电子邮件营销、转化率 电子邮件营销是一种非常常见的策略&#xff0c;可以将客户吸引到您的网站并增加转化率。 由于如此普遍&#xff0c;消费者平均每天会收到 78 封新电子邮件。您的电子邮件周围充满了噪音。 那么&#xff0c;您可以做些什么来让您的电子邮…

架构师必读 —— 逻辑模型(10)

以零基础思考摆脱障碍 我们已养成了惰性思考及在其延伸下不断堆叠的思考习惯。 因为以往的方式未出现过重大错误&#xff0c;所以总以为会万无一失。 但是&#xff0c;如果用堆叠式思考方式继续沿用上一年度的做法的话&#xff0c;不管过多少年也很难破旧立新。有时我们有必要重…

第3章 管理端(Vue)布局面的设计实现

1 导入“element-plus&#xff1a;Icon”组件 1.1“element-plus&#xff1a;Icon” 组件导入命令&#xff1a; npm install element-plus/icons-vue 1.2“element-plus&#xff1a;Icon” 组件配置&#xff1a; import { createApp } from vue//在vue-cli4&#xff08;4.5.…

关于A2B与DSP/DAC传输音频的时钟问题

加我V hezkz17 进同行数字音频系统设计开发交流答疑群 1 AD2428----->某功放DSP 是通过IN3输入音频数据 为什么 BCLK 和LRCLK 没有连接TDM时钟 ? 2 新改的板子 用IN1作为音频数据输入 IN1和 OUTPUT3 都是使用 A2B的TDM时钟 因为OUTPUT3 是上行TDM8 用作回传音和录音的…

用好这个任务管理工具,轻松躲避职场明枪暗箭

俗话说&#xff1a;“职场如战场”&#xff0c;而战场上&#xff0c;就不可避免地存在着形形色色的人&#xff0c;以及竞争与对立关系。升职、加薪、都是足以让人心动的诱惑&#xff0c;有利益存在的地方&#xff0c;就有勾心斗角&#xff0c;明坑暗亏。 正所谓&#xff0c;明…