前端监控与前端埋点方案

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 事件发生的时间)

前端监控与前端埋点方案相关推荐

  1. 前端监控和前端埋点方案设计

    在线上项目中,需要统计产品中用户行为和使用情况,从而可以从用户和产品的角度去了解用户群体,从而升级和迭代产品,使其更加贴近用户.用户行为数据可以通过前端数据监控的方式获得,除此之外,前端还需要实现性能 ...

  2. 前端监控与前端埋点(初探)

    前端监控和前端埋点 数据监控与前端埋点,傻傻分不清楚.什么是前端监控,什么是数据埋点.为什么把他们两个放在一起,他们之间是什么关系,这个问题我探究了很久.前端监控是在理念,前端埋点是实施方法. 前端监 ...

  3. 前端监控和前端埋点方案设计--摘抄

    一.为什么需要前端监控 前端监控的目的是: 获取用户行为以及跟踪产品在用户端的使用情况,并以监控数据为基础,指明产品优化的方向 . 前端监控可以分为三类:数据监控.性能监控和异常监控.下面我们来一一的 ...

  4. 【前端监控系统】埋点数据上报的3种方式

    前言 首先,我们先对前端监控做一些简单的描述: 前端监控的目的? 提升用户体验 更快的发现发现异常.定位异常.解决异常 了解业务数据,指导产品升级--数据驱动的思想 它指的是通过一定的手段来获取用户行 ...

  5. 迄今为止最全的前端监控体系搭建篇(长文预警)

    大厂技术  高级前端  Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 原文链接: https://juejin.cn/post/70785123016654192 ...

  6. GMTC 大前端时代前端监控的最佳实践

    摘要: 今天我分享的内容分成三个部分: 第一部分是"大前端时代前端监控新的变化", 讲述这些年来,前端监控一些新的视角以及最前沿的一些思考. 第二部分"前端监控的最佳实践 ...

  7. GMTC 大前端时代前端监控的最佳实践 1

    摘要: 今天我分享的内容分成三个部分: 第一部分是"大前端时代前端监控新的变化", 讲述这些年来,前端监控一些新的视角以及最前沿的一些思考. 第二部分"前端监控的最佳实践 ...

  8. 为什么大厂前端监控都在用GIF做埋点?

    关注公众号 前端开发博客,领27本电子书 回复加群,自助秒进前端群 ❝ 什么是前端监控? 它指的是通过一定的手段来获取用户行为以及跟踪产品在用户端的使用情况,并以监控数据为基础,为产品优化指明方向,为 ...

  9. 跨平台应用开发进阶(三十八)uni-app前端监控方案:基调听云APP探究

    文章目录 一.前言 二.产品介绍 2.1 工作原理 2.1.1 Android平台工作原理 2.1.2 iOS平台工作原理 三.项目集成 3.1 Android集成 3.2 iOS集成 四.答疑解惑 ...

最新文章

  1. 如何使用 Cockpit 管理你的树莓派
  2. 互联网协议 — TCP — 拥塞控制(网络质量保障)
  3. openfire 服务器配置 php 添加ssl
  4. 如何规划 ElasticSearch 集群规模和容量?
  5. 单选按钮带文字_店铺装修V2.0全新升级!带你走进商城个性化装修的智能时代!...
  6. isis协议_ISIS与OSPF之间有什么差异?
  7. js批量向html容器内的元素赋值
  8. DOM SAXReader
  9. 模块参考资料-硬件资料-Air720UG/UH-功耗指标
  10. 利用计算机管理档案,利用计算机管理档案的方法
  11. Excel取消合并单元格时在每个单元格中保留内容,你会批量操作吗?
  12. mysql with,mysql+with
  13. 手机消息推送方案综述
  14. 计算机cmd测试,电脑cmd命令怎么测试网速详细步骤
  15. 慕课网-安卓攻城狮视频学习及练习(一)
  16. 简单线性回归Ridge的应用及画图(二)
  17. 坑人的vultr服务商,坑人的送$100活动
  18. ue4 玩家控制器APlayerController
  19. 黄致绮 荣获第六季完美童模全球总决赛 全国总冠军
  20. 美食大战老鼠html,美食大战老鼠卤料花园过法详解

热门文章

  1. JavaScript——数组
  2. android Glide 4.0图片加载失败
  3. Unity3D——仿吃鸡笔记(1)
  4. ftp/nfs卸载自定义文件系统数据
  5. JavaScript开发工具WebStorm入门教程:如何安装WebStorm
  6. Keil5识别不到ST-Link的解决办法
  7. freeswitch系列21模块sofia
  8. 百度吃鸡排名预测挑战赛第六名方案(基于PyCaret)
  9. ubuntu1604 x64编译方舟编译器OpenArkComplier
  10. 失败产品手册三:如何成功地做死一款直播平台