前端埋点学习

前端埋点

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

  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.rhkb.cn/news/445376.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux系列-常见的指令(二)

&#x1f308;个人主页&#xff1a; 羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” mv 剪切文件&#xff0c;目录 重命名 比如说&#xff0c;我们在最开始创建一个新的文件hello.txt 然后我们将这个文件改一个名字&#xff0c;改成world.txt 所以&#xff0c;…

UE5 武器IK瞄准系统

创建空项目 创建基础蓝图类My_GameMode&#xff0c;My_HUD&#xff0c;My_PlayChar&#xff0c;My_PlayController 项目设置地图模式 近裁平面 0.1 My_PlayChar蓝图中添加摄像机&#xff0c;角色骨骼网格体&#xff0c;武器骨骼网格体 编辑角色骨骼&#xff0c;预览控制器使用…

本地生活服务项目入局方案解析!本地生活服务商系统能实现怎样的作业效果?

当前&#xff0c;各大平台的本地生活服务业务日渐兴盛&#xff0c;提高创业者入局意向的同时&#xff0c;也让本地生活服务项目有哪些等问题也成为了多个创业者社群中的热议对象。而从目前的讨论情况来看&#xff0c;在创业者们所询问的众多本地生活服务项目中&#xff0c;通过…

apisix云原生网关

定义 企业级网关通过域名、路由将请求分发到对应的应用上&#xff0c;通常承载数千个服务的流量&#xff0c;对稳定性有较高要求。 CNCF全景图 选型 Kubernetes抽象出两个核心概念&#xff1a;Service&#xff0c;为多个Pod提供统一的访问入口&#xff1b;Ingress&#xff…

DBA | 如何将 .mdf 与 .ldf 的数据库文件导入到SQL Server 数据库中?

[ 知识是人生的灯塔&#xff0c;只有不断学习&#xff0c;才能照亮前行的道路 ] 原文链接&#xff1a;DBA | 如何将 .mdf 与 .ldf 的数据库文件导入到SQL Server 数据库中? 如何将 (.mdf) 和 (.ldf) 的SQL Server 数据库文件导入到当前数据库中? Step 1.登录到 Sql Server 服…

18770 差值最大

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

《RabbitMQ篇》消息应答和发布确认

消息应答 消息应答机制&#xff1a;消费者接收信息并处理完之后&#xff0c;告诉rabbitmq该信息已经处理&#xff0c;rabbitmq可以把该信息删除了. 消息自动重新入队&#xff1a;如果处理某个消息的消费者异常关闭了&#xff0c;没有发送ACK确认&#xff0c;rabbitmq会将其重…

C++ | Leetcode C++题解之第463题岛屿的周长

题目&#xff1a; 题解&#xff1a; class Solution {constexpr static int dx[4] {0, 1, 0, -1};constexpr static int dy[4] {1, 0, -1, 0}; public:int dfs(int x, int y, vector<vector<int>> &grid, int n, int m) {if (x < 0 || x > n || y <…

YOLO11改进 | 注意力机制 | 结合静态和动态上下文信息的注意力机制

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 上下文Transformer&#xff08;CoT&…

软件功能测试重点和流程有哪些?专业软件测评服务公司推荐

软件功能测试就是对产品的各功能进行验证&#xff0c;根据功能测试用例&#xff0c;逐项测试&#xff0c;检查产品是否达到用户要求的功能。功能测试也叫黑盒测试或数据驱动测试&#xff0c;只需考虑需要测试的各个功能&#xff0c;不需要考虑整个软件的内部结构及代码.一般从软…

dvwa:暴力破解、命令注入、csrf全难度详解

暴力破解 easy模式 hydra -L /usr/share/wordlists/SecLists-master/Usernames/top-usernames-shortlist.txt -P /usr/share/wordlists/SecLists-master/Passwords/500-worst-passwords.txt 192.168.72.1 http-get-form "/dvwa/vulnerabilities/brute/:username^USER^&…

矿井人员数据集,用于目标检测,深度学习,采用txt打标签,即yolo格式,也有原文件可以自己转换。总共3500张图片的数据量,划分给训练集2446张,

矿井人员数据集&#xff0c;用于目标检测&#xff0c;深度学习&#xff0c;采用txt打标签&#xff0c;即yolo格式&#xff0c;也有原文件可以自己转换。总共3500张图片的数据量&#xff0c;划分给训练集2446张&#xff1a; ### 矿井人员数据集用于目标检测的详细说明 #### 1. …

Flutter包管理(三)

1、作用 在APP的实际开发过程中往往会依赖很多包&#xff0c;而这些包之间存在着交叉依赖、版本依赖&#xff0c;由开发者自己管理手动管理会非常麻烦&#xff0c;每种开发生态或编程官方会提供一些包的管理工具&#xff0c;在Flutter中我们在pubspec.yaml文件中来管理第三方依…

DDoS攻击快速增长,如何在抗ddos防护中获得主动?

当下DDoS攻击规模不断突破上限。前段时间&#xff0c;中国首款3A《黑神话&#xff1a;悟空》也在一夜之内遭受到28万次攻击DDoS攻击&#xff0c;严重影响到全球玩家的游戏体验。Gcore发布的数据也显示了 DDoS攻击令人担忧的趋势&#xff0c;尤其是峰值攻击已增加到了令人震惊的…

点评项目-4-隐藏敏感信息、使用 redis 优化登录业务

一、隐藏敏感信息 之前我们对 /user/me 路径&#xff0c;直接返回了登录的所有用户信息&#xff0c;其中的 passward 等敏感信息也会被返回到前端&#xff0c;这是很危险的&#xff0c;故我们需要选择性的返回用户信息&#xff0c;隐藏敏感用户信息 我们可以创建一个 UserDTO…

【Qt】详细Qt基础 (包括自定义控件)

目录 QT 概述创建项目项目文件&#xff08;. pro&#xff09;main.cppmainwindow.uimainwindow.hmainwindow.cpp 窗口类QWidget 窗口显示QDialog 窗口 QPushButton创建显示 对象树基本概念功能 坐标体系控件Item WidgetsQListWidgetQTreeWidgetQTableWidget 自定义控件 QT 概述…

一键安装与配置Stable Diffusion,轻松实现AI绘画

随着技术的迭代&#xff0c;目前 Stable Diffusion 已经能够生成非常艺术化的图片了&#xff0c;完全有赶超人类的架势&#xff0c;已经有不少工作被这类服务替代&#xff0c;比如制作一个 logo 图片&#xff0c;画一张虚拟老婆照片&#xff0c;画质堪比相机。 最新 Stable Di…

当今SNARKs全景

1. 引言 前序博客有&#xff1a; ZKP历史总览SNARK原理示例SNARK性能及安全——Prover篇SNARK性能及安全——Verifier篇Transparent 且 Post-quantum zkSNARKsSNARK DesignRollup项目的SNARK景观 SNARKs因&#xff1a; proof size证明时长验证时长密码学信任假设是否需要tr…

前端开发设计模式——装饰器模式

目录 一、装饰器模式的定义和特点 1.定义 2.特点 二、装饰器模式的实现方式 1.在原生JS中实现&#xff08;以类的形式为例&#xff09; 2、在Vue中实现&#xff08;以指令和混入为例&#xff09; 2.1、指令方式实现装饰功能 2.2、混入方式实现装饰功能 三、装饰器模式的…

基于方块编码的图像压缩matlab仿真,带GUI界面

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 编码单元的表示 4.2编码单元的编码 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 下图是随着方块大小的变化&#xff0c;图像的压缩率以及对应的图像质量指标PSN…