前端埋点学习

server/2024/10/17 21:44:58/

前端埋点

前端数据埋点是在前端页面中通过代码的方式手机用户行为数据和页面性能的过程,通过在页面中插入指定的代码,实现实时监控用户在页面上的操作行为。
通常包括一下事件

  1. 定义事件: 定义需要手机的数据事件,如点击,浏览等
  2. 添加代码: 在网页或者应用程序中添加特定的代码,用于收集事件数据
  3. 发送数据: 将收集到的数据发送给服务器进行分析
  4. 分析数据: 将收集到的数据进行分析和挖掘,找出用户的行为规律和需求,为产品的改进和优化提供依据

埋点数据收集

手动收集

直接在点击事件的回调函数中收集我们需要上报的数据即可。

function clickHandler() {let params = {event: 'click',value: ''}
}

在项目中,使用封装好的工具方法,只需要调用方法并传递需要上报的数据参数即可。

通过元素添加属性上报

这种方法就是通过元素添加特定的属性,在全局添加点击事件,利用事件的点击,遍历找到触发该事件的元素,判断元素上是否有绑定相关的属性,有则取相关的值直接上报,没有则不上报。

function getClickTraceElement(target) {let ele = targetlet clickTraceAction = ele.getAttribute('click-trace-action')while(ele.tagName !== 'booy' & !clickTraceAction) {ele = ele.parentNodeclickTraceAction = ele.getAttribute('click-trace-action')}return ele.tagName !== 'body' ? ele : null
}
document.body.addEventListener('click', (event) => {let ele = getClickTraceElement(event.target) if(ele) {let traceAction = ele.getAttribute('click-trace-action')let traceParams = ele.getAttribute('click-trace-params') || {}if(typeof traceParams === 'string') {traceParams = JSON.parse(traceParams)}let params = {event: traceAction,ecommerce: traceParams}axios.post(url,params)}
}, false)
<div onClick = {handleFullScreen} data-click-trace-action = {'click-fullscreen'}data-click-trace-params = {JSON.stringify({value: 'fullscreen'})}
>
</div>

常见的监控

数据监控(主要关注用户在网站或者应用中的行为和交互)

  • pv: 页面浏览量
  • uv: 访问某个站点或者点击某条欣慰的不同ip地址的人数
  • 用户在每一个页面的停留时间
  • 用户通过什么入口来访问页面
  • 用户在响应的页面中的触发行为

性能监控

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

异常监控

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

性能数据

在这里插入图片描述

埋点的分类

展现埋点
在产品的特定位置设置,记录用户是否看到展现了该位置的特定内容或者元素的埋点。
曝光埋点
记录用户是否看到特定内容或者元素的埋点,更加侧重于记录用户看到的内容或者元素是否被充分的曝光
交互埋点
在产品的特定位置设置的,用于记录用户与该位置的特定内容或者元素进行交互(点击,填写,分享)

常见的埋点方案

  1. 代码埋点,如上
  2. 可视化买带你,通过一个可视化的界面来完成,用户可以在界面上选择要跟踪的事件和页面,然后系统会自动生成相应的跟踪代码,用户只需要将其添加到网页中去。
  3. 无痕埋点【自动埋点】: 在网页中自动采集所有用户的行为数据,然后发送给后端服务器来进行分析,不需要手动添加跟踪代码,可以大幅度的降低开发成本,但是会采集到大量的冗余数据。
    通过sdk将程序中的数据尽可能多的采集,存储下来,方便后续使用。采集的是全量数据,产品的迭代过程中是不需要关注埋点逻辑的,不会出现漏埋,误埋等现象。

埋点数据收集

页面浏览数据: uv pv 停留时间
用户行为数据: 用户的点击,滚动,输入等操作行为
错误数据: 代码中的错误信息,异常情况
用户属性数据: 用户年龄,性别,地域
设备信息: 用户设备类型,操作系统,浏览器等信息
使用时长数据: 用户使用产品的市场,频次等
搜索关键词数据: 用户在搜索框中输入的关键词信息

数据上报

  1. xhr接口
    采用接口请求的方式,上传的是埋点数据,可能会产生跨域问题
  2. img标签(GIF上报)
    将埋点数据伪装成图片url的请求方式,避免跨域问题,但浏览器对于url的上传会有限制,所以img的上报不适合大数据量上报的情况,同时会存在刷新或者打开页面的时候上报数据丢失
  • 防止跨域
  • 防止阻塞页面加载,影响用户体验,一般创建资源节点之后只有将对象注入到浏览器dom之后,浏览器才会发送实际资源请求,反复操作dom会引发性能问题,加载js css的资源会阻塞页面渲染,使用图片不会插入dom,没有阻塞问题,没有js的浏览器换进中也可以通过imd标签打点

http://www.ppmy.cn/server/131238.html

相关文章

c语言经典100例

1.字符串转为数字 #include <stdio.h>int strToInt(char *s) {int num0;int sign1;int step1;if (*s -){sign -1;s;}while (*s > 0&&*s < 9){num num*10(*s-0);step 10;s;}return num*sign; }int main() {char a[10] "-1234";char *s a ;pr…

PCL 平面点云边界特征提取(alpha shapes)

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 点云边界提取 2.1.2 可视化点云与边界 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接: PCL点云算法与项目实战案例汇总(长期更新) 一、概述 平…

树莓派应用--AI项目实战篇来啦-3.OpenCV 读取写入和显示图像

1. 介绍 在计算机视觉和图像处理领域&#xff0c;读取和显示图像是最基础且常见的操作之一&#xff0c;OpenCV作为一个强大的计算机视觉库&#xff0c;提供了丰富的功能来处理图像数据。 读取、显示和写入图像是图像处理和计算机视觉的基础&#xff0c;即使裁剪、调整大…

centos系列,yum部署jenkins2.479.1,2024年长期支持版本

centos系列&#xff0c;yum部署jenkins2.479.1&#xff0c;2024年长期支持版本 0、介绍 注意&#xff1a;jenkins建议安装LTS长期支持版本&#xff0c;而不是安装每周更新版本&#xff0c;jenkins安装指定版本 openjdk官网下载 Index of /jenkins/redhat-stable/ | 清华大学开…

【CSS3】css开篇基础(2)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

TensorFlow 的核心概念

TensorFlow 是一个开源的机器学习框架&#xff0c;由 Google 开发和维护。它提供了一个强大的工具集&#xff0c;用于构建和训练各种机器学习模型。 TensorFlow 的核心概念是计算图&#xff08;Computational Graph&#xff09;。计算图由节点&#xff08;Nodes&#xff09;和…

为什么人工智能用 Python?

人工智能领域倾向于使用Python&#xff0c;主要归因于Python的多个显著优势&#xff1a; 简洁性与可读性&#xff1a;Python的语法设计简洁明了&#xff0c;代码易于阅读和理解&#xff0c;这对于涉及复杂算法和逻辑的人工智能项目尤为重要。它降低了编程门槛&#xff0c;使得…

008集—— Keyword关键字及getstring的用法(CAD—C#二次开发入门)

CAD二开中&#xff0c;经常会用到用户交互功能&#xff0c;常见的方法如下&#xff1a; GetKeyword 方法提示用户在 AutoCAD 命令提示下输入关键字,GetString 方法提示用户在 AutoCAD 命令提示下输入字符串。两者就有区别又有相似处&#xff0c;getkeyword只允许用户输入指定的…