前端埋点

简介: 前端埋点
  • 什么是埋点?
    在前端代码中嵌入特定的代码片段,用于记录用户在网站或应用程序中的行为和交互方式
  • 为什么要做?
    要目的是为了收集和分析用户行为数据,以便优化产品和提高用户体验。具体来说,埋点可以帮助前端开发人员了解用户在应用中的行为和交互方式,例如点击、滚动、输入等,以及用户使用的设备、浏览器、操作系统等信息。通过对这些数据的分析,前端开发人员可以发现用户的痛点和需求,优化产品设计和功能,提高用户满意度和留存率。此外,埋点还可以帮助前端开发人员监控应用的性能和稳定性,及时发现和解决问题,提高应用的可靠性和安全性。

数据库设计用户画像表

  • 需要在画像表(user_log)新增的字段
  • unique_id—用户唯一值(用户ip+设备 md5加密)
  • device_type—设备类型
  • region—地域(地图)
  • referer—来源(网站)
  • gmt_create—创建时间
  • gmt_modified—修改时间

image.png

  • 获取pv、uv
  • pv:统计user_log的个数(一个用户访问多次记为多次)
  • uv:根据uniqueId分组获取总个数(一个用户访问多次记为1次)
  • 终端类型分布
  • device_type:各个终端的占比
  • 地域分布
  • region:各个省的访问人数
  • 来源
  • referer:来源网站访问人数

用户的PV/UV统计接口开发 (uv - id pv - 数据条数)

数据层逻辑开发

// 流量访问统计
flowStat: async () => {
  let timeQuery = [dayjs().subtract(7, 'day').format('YYYY-MM-DD'), dayjs().format('YYYY-MM-DD')]
  // pv统计
  let pvSql = `select gmt_create,count(*) as value from user_log where gmt_create between ? and ? group by gmt_create`
  // sequelize原始查询
  let pvList = await DB.sequelize.query(pvSql, {
    replacements: timeQuery,
    type: QueryTypes.SELECT
  })
  // uv统计
  let uvSql = `select gmt_create, count(distinct unique_id) as value from user_log where gmt_create between ? and ? group by gmt_create`
  // sequelize原始查询
  let uvList = await DB.sequelize.query(uvSql, {
    replacements: timeQuery,
    type: QueryTypes.SELECT
  })
  return BackCode.buildSuccessAndData({ data: { pv: pvList, uv: uvList } })
}

  • 后端用户画像统计接口开发
userLog: async (req) => {
  // 1.ip+设备拼接md5进行加密生成用户唯一值
  let uniqueId = SecretTool.md5(GetUserInfoTool.getIp(req) + GetUserInfoTool.getUseragent(req))
  // 2.获取用户的设备类型
  let userAgent = GetUserInfoTool.getUseragent(req)
  let device_type = '';
  if (/Android/i.test(userAgent)) {
    device_type = 'Android';
  } else if (/iPhone|iPad/i.test(userAgent)) {
    device_type = 'IOS';
  } else if (/Windows|Macintosh/i.test(userAgent)) {
    device_type = 'PC';
  }
  // 获取用户所在地域
  let ip = GetUserInfoTool.getIp(req)
  let geo = geoip.lookup(ip)
  // 用户访问的来源(前端通过document.referrer获取)
  let referer = req.body?.referer || '直接访问'
  // 插入数据库
  await DB.UserLog.create({ unique_id: uniqueId, device_type, region: geo?.region, referer })
  return BackCode.buildSuccess()
}
geoip-lite插件获得地域。
// 终端类型分布
deviceType: async () => {
  let allNum = await DB.UserLog.count()
  let deviceTypeSql = `select device_type,count(*) as value from user_log group by device_type`
  // sequelize原始查询
  let deviceTypeList = await DB.sequelize.query(deviceTypeSql, {
    type: QueryTypes.SELECT
  })
  let newList = deviceTypeList.map((item) => {
    let value = (item.value / allNum * 100).toFixed(0)
    return { ...item, value }
  })
  return BackCode.buildSuccessAndData({ data: newList })
},

目录
相关文章
|
运维 前端开发 JavaScript
前端埋点校验工具:数据驱动的最后一道防线
数据埋点是企业决策的关键基础,但常面临覆盖率低、数据不准和故障难排查三大难题。本文深入剖析了这些问题的成因与影响,并提出“三维校验矩阵”解决方案:提升覆盖率至99.8%、降低错误率至0.3%、提速故障定位5倍。同时对比Split.io、Tealium、Sentry、板栗看板等工具优劣,为企业选型提供参考。迈向高质量数据治理,从精准埋点开始。
|
存储 监控 前端开发
前端埋点上报的几种方式
前端埋点上报的几种方式
1506 0
|
数据采集 SQL 监控
一次基于日志服务(SLS)进行前端业务埋点的实现过程
一次基于日志服务(SLS)进行前端业务埋点的实现过程
1878 1
|
数据采集 前端开发 搜索推荐
埋点tracker:前端数据埋点-方案设计思路梳理
埋点tracker:前端数据埋点-方案设计思路梳理
4612 0
|
存储 开发框架 前端开发
埋点tracker:前端埋点服务-技术要点梳理
埋点tracker:前端埋点服务-技术要点梳理
1273 0
|
前端开发 数据格式
基于Vue3实现一个前端埋点上报插件并打包发布到npm(下)
基于Vue3实现一个前端埋点上报插件并打包发布到npm(下)
1278 0
|
JavaScript 前端开发 UED
基于Vue3实现一个前端埋点上报插件并打包发布到npm(上)
基于Vue3实现一个前端埋点上报插件并打包发布到npm(上)
1485 0
|
移动开发 前端开发 数据库
前端埋点实现
前端埋点实现全过程介绍。
560 1
前端埋点实现
|
前端开发 JavaScript API
你只会用前端数据埋点 SDK 吗?(二)
你只会用前端数据埋点 SDK 吗?
560 0
|
监控 前端开发 JavaScript
你只会用前端数据埋点 SDK 吗?(一)
你只会用前端数据埋点 SDK 吗?
1008 0

热门文章

最新文章

  • 1
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
    1282
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    588
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    447
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    452
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    573
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    747
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    1460
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    324
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    1181
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    521