前端埋点学习

news2024/11/25 8:01:59

前端埋点

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

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

埋点数据收集

手动收集

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

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

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

通过元素添加属性上报

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

function getClickTraceElement(target) {
	let ele = target
	let clickTraceAction = ele.getAttribute('click-trace-action')
	while(ele.tagName !== 'booy' & !clickTraceAction) {
		ele = ele.parentNode
		clickTraceAction = 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.coloradmin.cn/o/2208748.html

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

相关文章

基于Docker的FRP内网穿透部署

服务器搭建&#xff08;FRPS&#xff09; 创建配置文件 # 创建存放目录 sudo mkdir /etc/frp # 创建frps.ini文件 nano /etc/frp/frps.ini frps.ini内容如下&#xff1a; [common] # 监听端口 bind_port 7000 # 面板端口 dashboard_port 7500 # 登录面板账号设置 dashboa…

【进阶OpenCV】 (9)--摄像头操作--->答题卡识别改分项目

文章目录 项目&#xff1a;答题卡识别改分1. 图片预处理2. 描绘轮廓3. 轮廓近似4. 透视变换5. 阈值处理6. 找每一个圆圈轮廓7. 将每一个圆圈轮廓排序8. 找寻所填答案&#xff0c;比对正确答案8.1 思路8.2 图解8.3 代码体现 9. 计算正确率 总结 项目&#xff1a;答题卡识别改分 …

数论与同余 - 离散数学系列(七)

目录 1. 整数的性质 整除与因数 最大公约数与最小公倍数 2. 欧几里得算法 算法步骤 3. 模运算与同余 模运算 同余关系 同余的性质 4. 数论在密码学中的应用 RSA 加密算法 5. 实际应用场景 1. 数字签名 2. 哈希函数与数据完整性 3. 密钥交换 6. 例题与练习 例题…

Java:方法详解

目录 一.什么是方法(method) 二.方法定义 三.方法中实参和形参的关系 四.方法重载 五.递归 一.什么是方法(method) 方法就是一个代码片段&#xff0c;再C语言中我们曾经学过一个类似的方式——函数&#xff0c;他们都是将具有独立功能的代码组织成一个整体&#xff0c;形成…

论文阅读 BLIP-2

Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models 使用冻结的图像编码器和大型语言模型进行语言-图像预训练的引导 BLIP-2 通过一个轻量级的查询变换器弥合了模态之间的差距。 Querying Transformer 第一阶段通过冻结的图像编…

高纯PGME和PGMEA市场规模:2023年全球市场规模为6.43亿美元

研究对象&#xff1a;高纯PGME和PGMEA行业 高纯PGME&#xff08;丙二醇甲醚&#xff09;和PGMEA&#xff08;丙二醇甲醚醋酸酯&#xff09;是重要的有机溶剂&#xff0c;广泛应用于半导体和面板制造领域&#xff0c;尤其是在光刻胶和清洗剂中。高纯度的PGME和PGMEA对于确保电子…

软件测试面试题600多条及答案

这些问题都是软件测试领域常见的面试问题&#xff0c;以下是一些可能的答案&#xff1a; 什么是软件测试&#xff1f; 软件测试是一系列活动&#xff0c;旨在评估软件产品的质量和性能&#xff0c;以确保它符合规定的需求和标准。它包括执行程序或系统以验证其满足规定需求的过…

javaWeb-Mybatis操作

1.删除 2.新增 注意&#xff1a; 1. 使用对象来接收 2.插入的数据的名字&#xff0c;要和对象的属性名一致 3.新增(主键返回) 4.更新 5.查询&#xff08;根据id查询&#xff09; 会把查询到的数据映射到字段上。 6.查询(条件查询) %张%-->%${name}%

前端必知必会-Bootstrap 5 工具提示Tooltip

文章目录 Bootstrap 5 工具提示如何创建工具提示定位工具提示 总结 Bootstrap 5 工具提示 工具提示组件是一个小的弹出框&#xff0c;当用户将鼠标指针移到元素上时会出现&#xff1a; 如何创建工具提示 要创建工具提示&#xff0c;请将 data-bs-toggle“tooltip” 属性添加…

人工智能长期记忆的新突破:HippoRAG的创新框架

人工智能咨询培训老师叶梓 转载标明出处 大模型&#xff08;LLMs&#xff09;在预训练后&#xff0c;如何有效地整合大量新经验&#xff0c;同时避免灾难性遗忘&#xff0c;一直是人工智能领域的难题。尽管已有的检索增强生成&#xff08;RAG&#xff09;方法为LLMs提供了长期…

云轴科技ZStack入选信通院《高质量数字化转型产品及服务全景图》AI大模型图谱

近日&#xff0c;由中国互联网协会中小企业发展工作委员会主办的“2024大模型数字生态发展大会暨铸基计划年中会议”在北京成功召开。会上发布了中国信通院在大模型数字化等领域的多项工作成果&#xff0c;其中重点发布了《高质量数字化转型产品及服务全景图&#xff08;2024上…

解决重写QSilder::sliderPress后点击位置与滑块显示位置不一样的问题

如下代码所示&#xff0c;我是用的是事件过滤器&#xff0c;也可以重写QSlider。 bool KuGouApp::eventFilter(QObject *watched, QEvent *event) {if(watched ui->progressSlider) {if (event->type()QEvent::MouseButtonPress) //判断类型{auto mouseEvent…

【封装案例】点和圆的关系

文章目录 前言1、point.h文件2、circle.h文件3、point.cpp文件4、circle.cpp文件5、主函数和全局函数6、测试 前言 本篇主要是用C实现一个判断点和圆关系的程序。 思路&#xff1a;已知点和圆心的坐标&#xff0c;通过比较两点间的距离和圆半径的大小&#xff0c;判断两者的关…

ubuntu下实时查看CPU,内存(Mem)和GPU的利用率

一、实时查看CPU和内存&#xff08;Mem&#xff09;利用率 htop官网&#xff1a;htop - an interactive process viewer sudo apt-get install htop htop ①. 顶部状态栏&#xff08;System Metrics Overview&#xff09; 这个区域显示系统的全局资源使用情况&#xff0c;包括…

18770 差值最大

### 思路 为了找到两个数x和y使得x - y的值最大&#xff0c;并且x在y的右侧&#xff0c;我们可以使用以下方法&#xff1a; 1. 从右向左遍历数组&#xff0c;记录当前遍历到的最大值max_right。 2. 对于每个元素a[i]&#xff0c;计算max_right - a[i]&#xff0c;并更新最大差…

我的研究生周报模板

2022.12.12——2022.12.18周报 本周计划 文献阅读&#xff1a;&#xff08;说明是打算读哪方面的论文&#xff09; 实验&#xff1a;&#xff08;打算做什么实验&#xff0c;目的是什么&#xff09; 项目&#xff1a;&#xff08;打算完成项目中哪一部分&#xff09; 本周进…

fastadmin 多商户模式下侧边栏跳转路径BUG

记录&#xff1a;仅作自己项目记录&#xff0c;在一个域名下部署多套项目时&#xff0c;若是多商户模式项目会出现跳转路径问题。 修改 \manystore\library\Auth.php 文件的 getSidebar 方法 // 1 改为&#xff1a; $v[url] isset($v[url]) && $v[url] ? $v[url] :…

Reqable抓包演示

1.Reqable下载 官网&#xff1a;Reqable 下载对应平台版本即可。 多个客户端。 2.使用教程 打开后如下图所示 根据提示安装完证书后即可使用。 这里以小猿口算的练习模式的抓包为例 1.打开雷电模拟器 在模拟器上安装Reqable&#xff0c;并安装证书&#xff0c;一定要安装…

【C++】基于红黑树封装set和map

&#x1f680;个人主页&#xff1a;小羊 &#x1f680;所属专栏&#xff1a;C 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 前言一、更高维度的泛型二、模版参数三、比较逻辑的重写四、迭代器4.1 const迭代器4.2 重载4.3 - -重载 五、完整代…

EXCEL SUM系列求和函数大全

大家好&#xff0c;这里是效率办公指南&#xff01; &#x1f4ca; 在数据分析中&#xff0c;求和是一项基础而频繁的操作。Excel 提供了一系列求和函数&#xff0c;可以帮助我们快速汇总数据。今天&#xff0c;我们将介绍 Excel 中常用的求和函数&#xff0c;包括它们的语法和…