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

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

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

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

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

驱动安全:风险识别

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

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

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

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

代码埋点

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

优点:

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

缺点:

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

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

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

可视化埋点

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

具体实现方式参考:

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

无埋点

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

优点:

收集数据全面,无漏报

缺点:

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

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

前端埋点的注意事项:

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

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

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

后端埋点

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

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

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

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

注意:

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

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

其它埋点

路径埋点和独立埋点

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

显性埋点和隐性埋点

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

业务埋点和监测埋点

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

前端埋点和后端埋点能分开使用吗?【数据埋点介绍】相关推荐

  1. 大数据系列 -- 数据埋点

    俗话说"巧妇难为无米之炊",对数据分析师来说,好的数据源,是数据分析的根基.在整个数据分析流程中,数据采集,是整个数据流的起点,也是最重要的环节之一.采集到的数据质量与准确性直接决 ...

  2. 什么是数据埋点?有何作用?

    什么是数据埋点?有何作用? 一.数据埋点的应用场景 1.数据埋点的作用 2.后端数据埋点的分类 二.数据埋点的工作流程 1.数据埋点的流程图 2.数据埋点的日常流程 三.数据"七字诀&quo ...

  3. 数据埋点|六个步骤实现数据埋点方案设计

    点击上方 蓝字 关注我们 作为数据分析师的你,是否和我一样经常会被业务方拿着两个不同数据平台的报表数据进行灵魂拷问.下面的场景你应该在熟悉不过了. 情景1 一场拉新促活的活动之后,运营拿着两个不同团队 ...

  4. api可以主动采集用户数据吗_数据埋点采集的那些事儿

    数据采集是数据分析的基础,而埋点是最主要的采集方式.那么数据埋点采集到底都是哪些事呢?我们主要从三个方面来看:什么是埋点,埋点怎么设计,埋点的应用. 一.数据采集以及常见数据问题 1.1数据采集 数据 ...

  5. android 数据埋点封装,Android 数据埋点的重新思考

    已经有很久没有更新文章了,我想做过客户端开发的应该都有干过数据埋点的事吧,其实我之前一直在思考怎么让数据埋点更优雅,好在最近有了新的想法,所以分享出来给大家一起参考参考. 有人说我的之前文章很些难懂, ...

  6. 数据分析入门:初始数据埋点(二)

    本文主要针对Key-Value字段的价值展开讨论,并简析其灵活运用的方法. Hi,各位看官老爷们好O(∩_∩)O~,在第一篇<数据分析-初识数据埋点>中已经对工作中应用的数据埋点的基础概念 ...

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

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

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

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

  9. 埋点tracker:前端数据埋点-方案设计思路梳理

    一.理解埋点 所谓埋点就是在应用中特定的流程收集一些信息,用来跟踪应用使用的状况,后续用来进一步优化产品或是提供运营的数据支撑,包括访问数(Visits),访客数(Visitor),停留时长(Time ...

最新文章

  1. linux 双网卡绑定模式,双网卡绑定的模式及操作步骤
  2. taro引入f2图表_Package - taro-f2
  3. Java的List转Scala的数组
  4. C++实现桶排序——十大经典排序算法之九【GIF动画+完整代码+详细注释】
  5. 白话地图投影之初识地球
  6. (47)fs创建多级目录
  7. 令人窒息!iPhone充电时自燃烧毁房子,到底是谁的锅?
  8. 云服务器安装 jdk
  9. [RQNOJ]PID34 / 紧急援救
  10. word中如何把某条表格线改为虚线
  11. android 图片跑马灯动画,Android实现图文垂直跑马灯效果
  12. Android Studio 默认keystore 以及自定义keystore
  13. 网上一位仁兄关于项目管理的总结
  14. 实时联网游戏后台服务技术选型和挑战(一)
  15. ArcGIS中无法复制粘贴的问题
  16. Jenkins用户权限控制插件——Role-based Authorization Strategy
  17. 原生js获取一段时间内每隔几分钟的时间数组
  18. 欧盟CE公告号-外贸人不得不了解的通关证书
  19. dp专题 神奇的口袋
  20. 密码对的还出现 Access denied for user ‘‘@‘localhost‘ (using password: NO) 错误

热门文章

  1. ffmpeg缩放视频尺寸
  2. 矩阵的rank,nullspace以及eigenvalue的理解
  3. go语言gin项目创建
  4. Eclipse 注释乱码
  5. 如何对测试过程进行可见的有效的管理
  6. 微信运动刷步数html前端源码,悦动圈步数提交协议漏洞分析实现微信运动刷步数...
  7. 欧几里得算法和扩展欧几里得
  8. 通过adb模拟快速的屏幕点击,小米手机亲测有效
  9. 11 OptionsMenu 菜单
  10. Facade外观模式