需要采集的数据

  1. 访问设备: navigator
  2. 环境信息(地理位置): navigator.geolocation
  3. 会话信息:登录接口返回
  4. 代码信息:项目设置相关配置文件
  5. 访问页面信息: load、hashchange、history、visibilityChange事件
  6. 统计操作行为(track this button by an event):click按钮编码、功能性
  7. 停留时间:当前页面是的时间戳减去进入上个页面 的时间戳、load、hashchange、history、visibilityChange事件
  8. 前端性能:performance apis、timing
  9. 上报时间:轮询、webscoket、跳转前发送或最后一次不记录、下一次进入当前页从本地缓存发送
  10. 上报方式:ajax轮询、new Image.src , navigator.sendBeacon("/log", analyticsData);

采集的数据方式

  1. 访问设备:
    pc: navigator
    移动端\微信: navigator、systemInfo
 deviceBrand:deviceFamily:deviceModel:deviceType:deviceOrientation:idfa:androidId:IMEI:screenHeight:screenWidth:osName:osVersion:browserName:navigator.appName  // 浏览名称browserVersion:navigator.appVersion // 浏览器版本userAgent:navigator.userAgent  //用户代理
  1. 环境信息(地理位置):
    navigator.geolocation

  2. 会话信息:
    登录接口返回会话信息或者从缓存cookie、localstorage中读取(ip、时间戳、sessionId、token、userId、identity、tag)

  3. 代码信息:
    code_project项目 、code_subproject子项目、code_version代码版本号、code_git_commit_id这些需要项目设置project_default.js内配置,相应接口或者注入到window全局对象、浏览器缓存

  4. 访问页面信息:
    多页面:window.addEventListener(‘load’, function(){}) 发送时间戳
    单页面:
    hash模式:window.addEventListener(‘hashchange’, function(){}) 发送时间戳
    history模式:监听相应事件,发送时间戳

    页面关闭、浏览器tab切换:window.addEventListener(‘visibilityChange’, function(){})

  5. 前端性能:performance timing.js(timing.getTimes())
    loadTime、// Total time from start to load
    domReadyTime、// Time spent constructing the DOM tree
    readyStart、// Time consumed preparing the new page
    redirectTime、// Time spent during redirection
    appcacheTime、// AppCache
    unloadEventTime、// Time spent unloading documents
    lookupDomainTime、// DNS query time
    connectTime、// TCP connection time
    requestTime、// Time spent during the request
    initDomTreeTime、// Request to completion of the DOM loading
    loadEventTime // Load event time

  6. 统计操作行为(track this button by an event):
    触发click事件的元素、属性、编码、功能、window.addEventListener(‘click’, function(){})、
    document.addEventListener(‘click’, function(){}) 、具体按钮(一系列、单个)

  7. 页面停留时长:
    当前页面的时间戳(performance.navigationStart)减去进入上个页面的时间戳(performance.navigationStart)、load(多页面、首次)、hashchange(单页面hash路由)、history、visibilityChange事件

history事件:

let _wr =  function (type) {  let orig = window.history[type]return  function () {let rv = orig.apply(this, arguments)let e = new Event(type.toLowerCase())e.arguments = argumentswindow.dispatchEvent(e)return rv}}
window.history.pushState = _wr('pushState')
window.history.replaceState = _wr('replaceState')
window.addEventListener('pushstate',  function (event) {})
window.addEventListener('replacestate',  function (event) {})

visibilityChange事件:

document.addEventListener('visibilitychange',  function (event) {  console.log(document.hidden, document.visibilityState)})
  1. 上报时间:跳转前发送或最后一次不记录、下一次进入当前页从本地缓存发送(当前时间戳)、写入本地缓存下次定时上报
  2. 上报方式:ajax轮询、new Image.src , navigator.sendBeacon("/log", analyticsData);

页面数据埋点统计方案相关推荐

  1. 数据埋点统计页面使用时长

    Android应用中的页面,也就Activity,Fragment两种.对于Activity,系统了全局的生命周期监听的方法,只需要在onResume中记录页面显示时的时间,在onPause中计算显示 ...

  2. 前端页面数据埋点、分析和参考

    最近从松江图书馆中借了一本叫<指尖上行 移动前端开发进阶之路>的书,该书分为5大章,此处只记录了其中的第4章. 书中写到在项目上线后,通过数据监控发现: 1. 一些之前觉得很好的创意,由于 ...

  3. 微信小程序开发之数据埋点统计

    在开发过程中,有数据统计的需求,需要获取小程序当前页面和来源页面的数据,以及页面的停留时间 在对小程序api进行了一番研究之后,发现获取这些数据其实并不难 当前页面: let pages = getC ...

  4. 数据中台实战(一):以B2B电商亿订为例,谈谈产品经理视角下的数据埋点

    关注公众号:改变世界的产品经理,回复" 1 "获取10G产品经理学习资料. 笔者所在公司为富力环球商品贸易港,是富力集团旗下汇聚原创设计师品牌及时尚买手/采购商两大社群,通过亿订B ...

  5. 2021-11-03大数据学习日志——数据埋点+网络爬虫——后端开发入门

    01_mini-web 本章节学习目标 能够知道Web开发流程 能够知道使用web应用程序处理客户端的动态资源请求操作 能够知道路由列表的实现 能够知道装饰器方式的添加路由 能够知道logging日志 ...

  6. 关于数字化营销技术实现之【数据埋点】

    1.如何实现数据埋点? 小程序数据埋点是指在小程序中收集用户行为数据和业务数据的一种技术手段,以便对用户行为和业务运营进行分析和优化.下面是一些实现小程序数据埋点的方法: 使用小程序统计分析工具:小程 ...

  7. 前端页面业务中的埋点统计数据

    1.背景 在H5的页面中有很多业务需要统计按钮的点击数与页面的打开数量统计以及客户是谁(多数是获取用户手机号),而统计数量的逻辑一般来说是在接口里进行以保证后台系统的查询,所以前端主要的方法便是用户点 ...

  8. 数据埋点方案和规范确定

    本文为PMCAFF专栏作者速兔出品 用户的行为分析是产品调整迭代,运营推广.精准营销等的基础,此类行为的一切均基于良好的数据采集方案.当下几乎所有互联网公司的数据源都是通过埋点方式获得基础的业务数据. ...

  9. 代码埋点、可视化埋点、无埋点几种数据埋点方案的分析报告

    目录 数据采集的核心问题 一.埋点是什么 二.为什么要埋点 三.埋点有哪些方式 四.各埋点方式优劣对比 五.其他 在这篇文章里面,我们会对数据采集的一些基本概念进行阐述,然后,会针对目前市面上新增的一 ...

最新文章

  1. 为什么这些死脑筋们在用 VI ?
  2. 使用外部表关联MySQL数据到Oracle
  3. [05] Session概要
  4. C#窗体控件随窗体变大而变大
  5. linux nvidia 361.run,Ubuntu 16.04安装nVidia驱动失败!
  6. Spread基本知识(一)
  7. 对阵Flash 实战HTML 5技巧之页面设计
  8. 重走0到100的路,小程序路在何方?
  9. Dll学习心得(2)
  10. 苹果ppt_苹果又开发布会了,这几个PPT设计技巧值得学习
  11. C++ MFC控件重影-编辑框重影
  12. 【上位机教程】CANopen通信下一体化步进电机与台达PLC(AS228T)的应用
  13. [番外]:带你玩正则1--数据遍地是,看你取不取
  14. 域中文件服务器的设置权限,域中文件服务器共享权限设置.pdf
  15. python里sample_python中的sample什么意思
  16. 处理数据库镜像问题的一个案例——数据库主体与镜像断开连接
  17. vue使用vue-video-player实现web视频直播展示m3u8格式
  18. Neocities 免费HTML 网站空间,每月200 GB 流量托管静态网页超简单
  19. matlab中的covsfa什么意思,MALSAR1.1 多种多任务学习算法的工具箱 有代码有使 册 matlab版 238万源代码下载- www.pudn.com...
  20. Python是什么?一篇文章带你全面了解Python

热门文章

  1. RHCE-B5. 使用Ansible Galaxy 安装角色
  2. 《致加西亚的信》一书中的一个隐蔽错误
  3. legend---五、如何优雅的实现多继承
  4. Android面试题——kotlin相关面试题
  5. phpCMS V9 史上最详细环境搭建(windows)
  6. 百度地图热力图_热浪滚滚的夏天,来聊聊热力图吧(上)
  7. 电动汽车在受控电池能量
  8. 推送系统从0到1(一):是系统不是工具
  9. 十条绿色IT最佳实践共建高效节能数据中心
  10. ubuntu20.04 安装clang(什么是llvm、什么是clang以及其和clang的关系)