当前位置: 首页 > article >正文

数据埋点1

文章目录

  • 1 什么是数据埋点
  • 2 为什么需要数据埋点
  • 3 数据埋点能采集哪些用户数据
  • 4 数据埋点的分类及方式
  • 5 主流的数据上报技术
    • 5.1 客户端上报
    • 5.2 服务端获取

1 什么是数据埋点

互联网的海量数据是通过数据埋点技术采集用户行为数据而产生的,用户行为数据采集及上报流程如下:
在这里插入图片描述
我们可以看到,用户点击或刷新客户端(网页/APP),这个操作行为会被对应页面位置背后的代码收集到,然后像服务器发送请求,服务器响应请求后,返回数据给客户端,客户端接收并展示收到的数据,用户就能看到想要的内容。

上述过程中,客户端通过代码采集用户操作行为的过程,就是数据埋点技术;采集到的数据通过SDK(Software Development Kit)上报,就是数据上报技术;上报后的数据进入到数据库,同步到数仓,就形成了海量的用户数据(客户端有时被称为前端,服务器端有时被称为后端)。

以上的过程涉及到三个重要的主体,分别是用户,客户端和服务器。
我们需要关注三个问题:
第一,用户的哪些行为会被采集到的,分别是在客户端还是在服务端被采集到;
第二,实现这些用户数据采集的技术有哪些以及它们之间的异同;
第三,采集到的这些用户数据之后是如何实现数据上报的。

2 为什么需要数据埋点

俗话说,“巧妇难无米之炊”,如果没有数据埋点获取海量数据,数据分析师这个“巧妇”就很难施展自己的才华了,所以,数据埋点的重要性不言而喻。
数据埋点可以让我们获取用户的行为数据,前期是帮助我们对产品进行迭代优化,中后期可以帮助我们对业务进行监控,对用户进行精准营销,以实现盈利最大化。

3 数据埋点能采集哪些用户数据

一般来说,我们是从网站和APP上采集用户信息,我们能够采集到的用户的四类信息:

第一是设备的硬件,例如设备品牌,型号,主板,CPU,屏幕分辨率等等信息;
第二是软件,就算没有点击网页或者APP,像横竖屏,截屏,摇一摇等操作也会被记录下来;
第三是数据权限,新注册某款软件时,对于相册、通讯录、GPS等比较私密的信息一般会跳出是否授权的操作选项,如果用户同意授权,那么网页或者APP就能够采集到的这些信息;
第四是用户行为,用户只要对网页或者APP进行操作,行为都会被记录下来。

虽然网站或APP在用户授权的情况下可以采集到用户的各类数据,但是作为数据分析师在做数据埋点文档的时候,并不需要追求大而全,可以根据业务提的需求文档对相应的行为进行埋点记录即可。

4 数据埋点的分类及方式

数据埋点的方法根据其位置分类,可分为前端埋点和后端埋点。

前端埋点通过SDK进行数据采集,为了减少移动端的数据流量,通常对采集的数据进行压缩、暂存,打包上报。对于那些不需要实时上报的的事件,通常只在wifi环境下上报,因此会出现上报的延迟与漏报的现象。

而后端采集数据则是通过调用API接口采集信息,使用内网传输信息,基本不会因为网络原因丢失数据,所以后端传输的数据可以非常真实地反应用户行为。

而前端埋点又可以视其自动化程度,分为代码埋点(手动埋点)、全埋点(无埋点或全自动媒体)以及可视化埋点。

各类埋点的定义、异同、优点、缺点以及适用场景都已经总结如下表。
在这里插入图片描述

5 主流的数据上报技术

目前,主流的数据上报技术有客户端主动上报以及服务端获取,和前端埋点及后端埋点相呼应。

5.1 客户端上报

手机里装的APP我们可以认为它们是客户端,用户对客户端进行操作后,客户端通过网络发送HTTP请求给服务端,同时将数据上报给服务端。如果用户每操作一次,客户端就将数据上报一次,而一款产品的用户的数量级少说也是上万级别的,操作一次上报一次无疑对服务器的压力是极大的。所以,客户端会对用户数据进行积攒,我们称这个积攒下来的数据为数据包,在某个时间点客户端统一将数据包上传给服务器。

因为用户的操作节点和数据的上报节点并不是时时同步的,所以客户端的这种上报方式我们称为异步上报。而整个上报的过程都是需要网络的,在极端情况下,客户端正准备上报数据包,但这时候突然断网,如果网络没有重连机制或者一直连不上网,这个数据包就会丢失,我们称作为丢包。这也从一定层面解释了客户端上报的数据可能因为丢包等情况的存在不一定那么准确。

在这里插入图片描述

5.2 服务端获取

在网页中,用户首次看到的一切,都是从服务器返回的(APP 不同,因为部分界面和逻辑已经安装在了用户的设备上,展示这部分界面不需要网络请求)。那么服务器在应答你的客户端请求的时候,也能拿到一些基本信息,比如你的浏览器类型、版本号、屏幕分辨率、IP 地址等等

参考文章:
https://mp.weixin.qq.com/s/SBxsrHwkupu7Pgq82CbagA
http://www.woshipm.com/data-analysis/3195604.html
http://www.woshipm.com/data-analysis/665420.html
https://zhuanlan.zhihu.com/p/65834362
https://zhuanlan.zhihu.com/p/102258485
https://www.jianshu.com/p/6f5d60b04b93
https://zhuanlan.zhihu.com/p/40985361
https://cloud.tencent.com/developer/news/473370
https://www.sensorsdata.cn/blog/shu-ju-jie-ru-yu-mai-dian/
https://zhuanlan.zhihu.com/p/41084975
https://tech.meituan.com/2017/03/02/mt-mobile-analytics-practice.html
https://zhuanlan.zhihu.com/p/58868009
https://www.zhihu.com/question/36411025/answer/1264259674
https://www.zhihu.com/market/paid_column/1226257638931050496/section/1226266001714663424
https://zhuanlan.zhihu.com/p/260472122
http://www.woshipm.com/data-analysis/872543.html


http://www.kler.cn/news/16662.html

相关文章:

  • 设计模式:创建型设计模式、结构型设计模式
  • 香港服务器租用攻略:如何优化用户体验?
  • 基于海鸥算法的极限学习机(ELM)回归预测-附代码
  • Jenkins + Gitlab 实现项目自动化构建及部署
  • 你真的会跟 ChatGPT 聊天吗?(上)
  • 业务维度digest日志的记录与监控方案
  • 零入门kubernetes网络实战-30->基于bridge+veth pair+DNAT技术来实现外网可以访问内网的方案
  • Nginx—在linux的ubuntu系统上的安装使用
  • 协同过滤算法深入解析:构建智能推荐系统的核心技术
  • Leetcode力扣秋招刷题路-0902
  • 一招解决ChatGPT对话经常中断问题:KeepChatGPT插件
  • Window 10 环境下用 OpenVINO 2022.3部署yolov5 7.0
  • 爬虫大全:从零开始学习爬虫的基础知识
  • 【每日一题】
  • ubuntu 安装 notepad++,显示中文菜单,并解决中文乱码问题
  • vue 高德地图 —— 点标记、信息弹窗、网页导航、获取经纬度及当前城市信息
  • 正则表达式学习笔记
  • Android内存优化场景
  • 01-环境搭建 尚筹网
  • Java异步编程
  • 【MySQL】交叉连接、自然连接和内连接查询
  • 普通人,自学编程,5个必备步骤
  • SQL注入攻防入门详解
  • 剑指 Offer :001整数除法
  • C++基础demo(C++入门基础案例)
  • QwtPlotCurve使用说明
  • Java文件流技术:从流式编程到文件IO操作完全指南
  • 学计算机的要不要考研?校招工作不喜欢怎么办?怎样才可以年薪百万?
  • 基于R语言的贝叶斯时空数据模型实践技术
  • SpringBoot中有几种定义Bean的方式?