《七天数据埋点之旅》第一天:初识埋点

2023-11-18

0x00 前言

本篇为《七天数据埋点之旅》的第一篇,通过阅读本篇,你将获得以下三方面的知识:

  1. 什么是埋点?

  2. 埋点的用途?

  3. 埋点的分类?

 

0x01 什么是埋点

数据埋点是数据采集的一种重要方式,主要用来记录和收集终端用户的操作行为,其基本原理是在App/H5/PC等终端部署采集的SDK代码,当用户的行为满足某种条件的时候,比如进入某个页面、点击某个按钮等,会自动触发记录和存储,然后这些数据会被收集并被传输到终端提供商,或者是通过后端采集用户使用服务过程中的请求数据。

一个典型的埋点采集处理流程如下图所示:

 

 

0x02 埋点的用途

终端提供商在收集到埋点数据之后,通过大数据处理、数据统计、数据分析、数据挖掘等加工处理,可以得到衡量产品状态的一些基本指标,比如活跃、留存、新增等大盘数据,从而洞察产品的状态。此外更重要的是随着数据挖掘等技术的兴起,埋点采集到的数据在以下方面的作用也越来越凸显:

  • 驱动决策:ABtest、漏斗优化、用户增长、bug修复、精准营销、流失用户预警

  • 驱动产品智能:智能推荐(千人千面)、场景化提示(私人助理)等

  • 驱动安全:风险识别

 

 

0x03 埋点的分类

从位置上分为前端埋点和后端埋点,从形式上分为显性埋点和隐性埋点,从路径上又可以分为路径埋点和独立埋点,从需求上分为业务埋点和监测埋点。

由于埋点的主要操作过程是以终端的交互界面为基础,制定数据采集的方案,其它的埋点分类也只是从不同的角度来进行埋点设计。前端埋点是当前主要采用的埋点方式,下面主要对前端埋点进行阐述。

 

一、前端埋点

前端埋点是在用户端(APP、Web、客户端)等嵌入数据采集代码,比如友盟等均采用的是前端埋点,比如通过嵌入一段代码就就可以对网页数据的访问数据进行采集。相比于后端埋点,前端埋点能方便收集到用户在界面上的行为数据,比如用户点了哪个按钮、页面之间的跳转次序、停留时长等,这些数据是后面进行数据分析的主要来源。

 

前端埋点技术有以下三类:

 

代码埋点

代码埋点是直接将采集SDK集成在终端,然后不断在此基础上添加调整采集方案,是目前主流的埋点采集方案,其优缺点如下:

优点:

  • 高度定制、控制精准、采集的数据丰富准确

缺点:

  • 首先是每当有采集需求,需要开发人员不断添加采集代码,工作量大;

  • 其次变更采集策略,需要发布新版本,代价巨大,存在滞后效应;

  • 最后由于采集代码常驻终端,不断将采集的用户行为数据进行记录和上报,对于终端尤其是移动终端来说还有耗电、消耗数据流量等负载,此外在数据上报传输的过程中也存在丢失数据的风险。

 

可视化埋点

由于代码埋点需要终端开发人员来执行采集方案,对业务的功能开发侵入性较高。有的公司开发出了可视化埋点技术,只需要产品与运营人员通过GUI界面进行鼠标简单点击,就可以随时增加、取消、调整采集数据的位置和方式,此种埋点方式避开了终端开发人员的介入,由需求人员直接执行采集,减轻了需求传递过程中的信息损耗和误解,另外可视化埋点技术往往由服务端直接下发采集的配置文件,而不用跟随版本发布,从而加快了数据采集的流程。

 

具体实现方式参考:

 

具体实现是SDK定时做界面截图,在截图的同时从界面UI的根对象开始遍历所有的可视化子对象,得到其层级关系。根据截图和UI元素的可视化信息重新渲染页面,识别可埋点的控件。当产品人员在后台管理端的截屏画面上点击可埋点控件,设置事件关联方面的配置,服务器保存这些配置,客户端在获取到这些配置信息以后,按照新配置采集数据。

 

无埋点

无埋点与可视化埋点原理基本一致,区别在于无埋点是先遍历所有的控件和操作行为的组合情况,然后将这些组合情况交给埋点后台,由数据分析人员选择对哪些组合的埋点数据进行分析,其优缺点如下:

 

 

优点:

  • 收集数据全面,无漏报

缺点:

  • 采集数据量巨大,增加了终端流量消耗和服务器存储负担。

  • 埋点的上报时机相对呆板,不能灵活的根据特定的场景进行特殊设置

 

前端埋点的注意事项:

  • 页面和控件标示上报要从顶层进行合理的设计,层次感要明显

  • 埋点数据的漏报和重复上报如何衡量

  • 前端埋点不仅可以处理不需要和服务器交互的曝光和点击事件,也可以将与服务器交互的结果,比如关注成功、分享成功、优惠券领取成功等原属于后端埋点里的事件放在前端来上报。

 

二、后端埋点

 

后端埋点为了避免前端埋点的以下问题:

 

  • 前端埋点需要对采集的数据压缩、暂存,为减少移动端的数据流量,除一些需要实时上报的重要事件不限制网络环境,其它事件一般只在wifi情况下上报,因此数据会有延迟,丢数据等弊端,而在后端采集数据,由于数据是在内网传输,数据传输的即时性强,丢失数据的风险小。

  • 前端埋点采集程序由于需要常驻,监测实时和延迟埋点上报,不可避免的带来额外的耗电。

  • 前端埋点若要新增或调整采集方案,需要开发人员修改客户端代码,然后发版之后才能解决,受发布周期的影响较大,而且通常用户的版本更新并不会及时,这将导致新方案不能及时覆盖所有用户。虽然现在部分埋点管理后台也支持热配置更新,但功能一般都很弱,只支持一些基础的埋点事件热更新部署,

 

注意:

  • 很多时候并不把后端埋点独立出来,而是混合在前端埋点中,等用户和服务器端的交互返回结果之后,将结果进行上报。

  • 对一下需要精确采集的数据,比如代金券发放等,实施的时候尽量采用后端埋点,除非后端无法采集到所需要的数据,前端埋点只是用来参考。此外也可以将业务数据库代金券领取数据同步到数据仓库中进行分析。

 

三、其它埋点

 

  • 路径埋点和独立埋点

 

这部分的埋点根据业务对路径的追踪需求和SDK的开发能力,可为每个事件设计上下文的路径信息,路径信息的组成一般由页面、控件、行为三部分组成,而路径的深度也不宜太深,一般小于五层。

 

  • 显性埋点和隐性埋点

 

显性和隐性是从用户有感和无感来区分的,有感事件是用户的主动事件,比如展示和点击事件;无感事件主要用来处理后台的数据请求和拉取,用以监控和服务器的数据交互是否正常等,无感事件中常用的是扫描采集,比如app启动之后,扫描各设置开关的状态信息进行上报等

 

  • 业务埋点和监测埋点

 

业务埋点是从业务需求的角度而言,比如产品需要统计某个页面的曝光和点击,算法人员需要的推荐项点击率等;而监测埋点是从业务的流程上来讲的,一般是指隐性的(比如服务器交互的内容拉取情况、本地潜在信息的生成情况等),此外业务埋点中的关键部分也可以用作监测埋点。

 

0x04 参考资料

一些资料参考:

  • 可视化埋点参考:https://github.com/mixpanel

  • 无埋点参考:https://www.growingio.com/

  • 产品经理如何做数据埋点:http://www.woshipm.com/data-analysis/1347283.html

 

常见的埋点平台参考:

  • growing io: https://www.growingio.com/

  • 神策: https://www.sensorsdata.cn/

  • 诸葛IO: https://zhugeio.com/

  • talking data: http://www.talkingdata.com/

  • 友盟: https://developer.umeng.com

  • 百度统计: https://mtj.baidu.com/web/welcome/login

  • Google Analytics: https://analytics.google.com

  • 数猎天下DataHunter:https://www.datahunter.cn/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《七天数据埋点之旅》第一天:初识埋点 的相关文章

  • socket编程之服务器端与客户端(代码实例)

    在我们学习的过程中 对TCP IP UDP Socket编程这些词应该有所了解了 随着网络技术的发展 这些词充斥着我们的耳朵 那么我想介绍一下 什么是TCP IP UDP socket在哪里呢 socket通信是什么呢 socket接口函数
  • 【算法刷题】算法题解题方法技巧及典例汇总

    关键词 算法 二分查找 DFS BFS 动态规划 滑动窗口 位运算 前言 Leetcode刷题目的 无疑是提高自己的编程和算法能力 算法是面试逃不过的环节 之前都是刷每日一题 然后也有大半年没刷了 感觉并未真正学到啥东西 也没记住啥 之后开

随机推荐

  • 从0开始springboot后台管理项目-mybatis-plus/druid链接数据库多数据源

    1 准备完成的功能 通过mybatis plus druid进行数据库链接 配置多数据源 使用mybatis plus的原因就是太强大 比如支持Lambda 依赖少等等优点 可以搜索一下mybatis plus和mybatis的区别 2 m
  • 如何安装pip3以及第三方python库(for Mac)

    环境 OS 10 12 3 16D32 macOS Sierra Python3 Python 3 6 1 什么是pip Python之所以强大 其中一个原因是其丰富的第三方库 pip则是python第三方库的包管理工具 由于在Mac上py
  • Win10多用户同时远程桌面,并各自操作互不干扰

    微软Server版操作系统默认是支持多用户登陆的 例如Windows Server 2012 而Win10操作系统正常情况下是不允许用户同时远程的 即一个用户远程进来会把另一个用户踢掉 因此需要破解才能使得多个用户同时登陆远程桌面 也即需要
  • 笔记22-1(C语言进阶 动态内存管理)

    目录 注 为什么存在动态内存分配 动态内存函数的介绍 malloc和free calloc realloc 常见的动态内存错误 1 对NULL指针的解引用操作 2 对动态开辟空间的越界访问 3 使用free函数释放了非动态开辟的空间 4 使
  • 多线程间的5种通信方式

    问题 有两个线程 A 线程向一个集合里面依次添加元素 abc 字符串 一共添加十次 当添加到第五次的时候 希望 B 线程能够收到 A 线程的通知 然后 B 线程执行相关的业务操作 线程间通信的模型有两种 共享内存和消息传递 以下方式都是基本
  • 西门子S7-200PLC的自锁

    自锁 百度 交流接触器通过自身的常开辅助触头使线圈总是处于得电状态的现象叫做自锁 在通常的电路中 按下开关 电路通电 松开开关 电路又断开了 一旦按下开关 就能够自动保持持续通电 直到按下其它开关使之断路为止 这样的电路 称为自锁电路 置位
  • CocosCreator 游戏小地图/地图雷达

    更多笔记和源码请关注 微信公众号 CocosCreator笔记 演示 ps 请注意左上角 技术摘要 大地图与小地图坐标转换 更新小地图中元素及视口位置 拖动小地图中视口位置 更新Main Camera位置 实现 01 小地图 图片 的宽高比
  • 1、CMM与CMMI的关系 2、软件全面质量管理的思想体系

    1 CMM与CMMI的关系 CMMI即CMM集成 是系统工程和软件工程的集成成熟度模型 CMMI更适合于信息系统集成企业 CMMI是在CMM基础上发展起来的 它继承并发扬了CMM的优良特性 借鉴了其他模型的优点 融入了新的理论和实际研究成果
  • React Dva项目引入antd UI框架

    上文 React 搭建DvaJS开发环境中我们大家了一个Dva的开发环境 那么 下面 我们就用dva项目引入一下antd 我们平时做react开发 主要也都会选择它 我们直接在项目终端执行 npm install antd 4 24 2 b
  • [转]基于TDOA声源定位算法仿真--MATLAB仿真

    转自 http t cn AiTjYCqD 关注微信公众号 通信小课堂 获取专业小知识 声源定位算法是利用麦克风阵列进行声音定位 属于宽带信号 传统的MUSIC和DOA算法并不适用该场景 本仿真主要用TDOA算法进行定位 常用的阵列信号定位
  • 深入MySQL查询过程底层原理,我找到了MySQL查询慢的根本原因!

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 前言 接上一节 那么 一次查询的全过程是什么样的呢 这个时候 我们通过各种百度和Google 然后加上自己的理解 终于搞明白了MySQL一次查询的全过程了 首先 用户
  • MySQL 报错: Subquery returns more than 1 row

    MySQL 报错 Subquery returns more than 1 row 查询 demo SET tableNameList SELECT id FROM tableName 查询多条记录 SET tableNameList SE
  • Seata: 运行nacos-config.sh报Please check the cluster status的总结

    一 看所在的机器是否安装了curl并正常工作 二 检查nacos是否能正常访问 三 看如下命令结果是否异常 根据实际情况调整nacos地址 curl X POST http 127 0 0 1 8848 nacos v1 cs config
  • 27 openEuler管理网络-通过ifcfg文件配置网络

    文章目录 27 openEuler管理网络 通过ifcfg文件配置网络 27 1 配置静态网络 27 2 配置动态网络 27 3 配置默认网关 27 openEuler管理网络 通过ifcfg文件配置网络 说明 通过ifcfg文件配置的网络
  • MySQL-mysql 8.0.11安装教程

    转载 https www cnblogs com laumians notes p 9069498 html 另外在奉上我自己搜索到的两个mysql安装网站 1 https dev mysql com doc refman 8 0 en d
  • G - Five-In-a-Row

    B Five In a Row time limit per test 1 second memory limit per test 256 megabytes input standard input output standard ou
  • 好长时间不看,php魔术变量又忘了,赶紧总结下

    看到了wordpress的这行代码想起来的 define WP USE THEMES true Loads the WordPress Environment and Template require dirname FILE wp blo
  • AsyncTask源码梳理及总结

    结合Android 7 0源码 全面解析AsyncTask的源码 梳理AsyncTask使用过程中的一些注意事项 分析源码之前 我们先来梳理一下使用 AsyncTask使用示例 public class MainActivity exten
  • VS Code-此时不应有 &

    描述 用vs code运行python代码时 报 此时不应有 解决方式 ctrl 调出终端 将默认终端设置成powershell 退出 重新加载代码
  • 《七天数据埋点之旅》第一天:初识埋点

    0x00 前言 本篇为 七天数据埋点之旅 的第一篇 通过阅读本篇 你将获得以下三方面的知识 什么是埋点 埋点的用途 埋点的分类 0x01 什么是埋点 数据埋点是数据采集的一种重要方式 主要用来记录和收集终端用户的操作行为 其基本原理是在Ap