数据驱动的源头,了解数据埋点
前言
埋点是数据驱动的源头。
作为数据行业从业者,典型的数据体系建设的流程需要经过数据采集、数据建模(模型建设、指标定义)、观测数据(可视化)、数据分析(结合业务,问题归因及预测)、数据洞察(形成业务决策,赋能业务)等一些列流程。
从这可以看到数据采集是整个数据体系建设的起点,而数据采集的主要数据源头分为来自业务系统的业务数据、来自用户行为的埋点数据采集两种。
埋点采集技术就是用于解决如何获取用户行为的技术。
接下来将经过一系列的文章对埋点以及对应的埋点技术进行阐述,而本文重点对埋点及埋点的概念进行讲解,具体阐述:
- 埋点定义
- 埋点的作用及功能
- 埋点采集技术有那些
- 埋点事件的分类
- 埋点采集的技术方案及优劣
- 结合行业经验,如何选择埋点采集的技术方案
一、埋点概述
1. 埋点的定义
通常说的埋点,实际上就是基于埋点技术所采集的用户行为数据****,区别于业务系统所存放的业务结果数据,埋点技术主要用于获取来自APP、页面上的行为数据。
具体实现方式就是在需要监测用户行为数据的地方加上一段代码,在移动app上为SDK、在网站页面上为一段JS代码,并通过采集工具上报统计数据,以便相关人员追踪用户行为。
举个例子:类似城市交通系统中的摄像头,每个摄像头就是一个埋点,监控该区域发生的一切,从而满足交通、市政等的管理需求。在开车时候,交通广播电台广播的实时路况播报,基于摄像头反馈的车流情况进行分析的应用场景。
2. 埋点的作用
埋点数据是现有数据体系中重要的数据来源,在数据埋点之前,大部分数据主要依托于业务库中存放的数据,对于业务发生过程中的行为数据是无法获取的,那基于行为的数据价值就无法实现。
其作用可以从以下几点体现:
a. 用户运营:在大数据场景下,基于用户的运营是最好的运营。
b. 运营传递产品价值给用户:运营的主要工作内容通过不同的手段将产品的价值有效传递给用户。
c. 运营用户前先了解用户:运营用户前提就是了解用户,知道用户要什么,能够精准把握用户的需求。
d. 基于行为判定意图:用户行为是判断用户需求的有效方式,是对用户当下真实意图的一种判断依据,说什么不重要,关键是做了什么。
e. 埋点采集行为数据:埋点技术作为一种采集用户行为数据的技术,为了解用户提供了解决方案。
3. 埋点采集技术有那些?
基于不同平台,现在采集方案分别是web端(基于浏览器)日志采集及APP移动端日志采集两种。
平台 | 采集技术方案 | 埋点方案概述 |
---|---|---|
web端 | web端日志采集 | Web埋点主要是通过先在页面中注入一段JavaScript代码,然后对收集的数据进行上报的技术。 |
APP端 | APP移动端日志采集 | App埋点技术是通过在代码中加入特殊的代码或者引入一个SDK,对App中的信息进行收集的一种技术。 |
二、web端(浏览器)日志采集
浏览器日志采集进一步又分为页面浏览日志、页面交互日志采集两类。
1. 页面浏览日志
当一个页面被浏览器加载呈现时采集的日志,主要用来记录用户到访过的页面和访问路径,从而解决页面流量和流量来源统计的问题,此类日志是最基础的互联网日志,也是目前所有互联网产品的两大基本指标:页面浏览量( Page View, PY)和访客数( Unique Visitors, UV)的统计基础。
2. 页面交互日志
当页面加载和渲染完成之后,用户可以在页面上执行各类操作,主要用来记录用户访问某个页面时具体的互动行为特征,比如鼠标或输入焦点的移动变化(代表用户关注内容的变化)、对某些页面交互的反应(可借此判断用户是否对某些页面元素发生认知困难)等,以便通过量化获知用户的兴趣点 或者体验优化点。
3. 其他事件
针对一些特定场景的采集日志,也衍生出一些特殊采集日志。
- 采集媒体在页面被曝光状态的曝光日志
- 用户在线状态的检测
三、APP移动端日志采集
移动端的数据采集主要目的分为两方面,一是为了服务于开发者,协助开发者分析各类设备信息;二是为了帮助各 APP 更好地了解自己的用户,了解用户在 APP 上的各类行为 , 帮助各应用不断进行优化,提升用户体验。
移动端的日志采集根据不同的用户行为分成不同的事件,“事件”为无线客户端日志行为的最小单位。基于常规的分析, 事件可以分成以下几类, 常用的包括页面事件(同前述的页面浏览)、页面区域的曝光事件、控件点击事件(同前述的页面交互)等。
1. 页面浏览事件
用户在APP内打开一次页面,刷新一次页面,记为一次该页面的页面浏览。浏览事件可以统计某个页面被打开过的数据,如今日头条一篇文章被浏览的次数。
2. 区域曝光事件
APP页面内某一区域被用户看到一次,则记为一次该区域曝光事件。曝光事件的作用就是可以统计某个区域被用户有效看到的次数,有效需要通过一些规则来完善监测。
埋点内的曝光和浏览事件的区别及联系:
- 曝光是有效浏览,需要保证内容确实被用户看到,更多的需要结合规则进行统计,比如看到的时长,看到的内容,通常统计的对象是区域、模块。
- 浏览则无需保证有效,更多的是从技术角度进行统计,比如一次页面接口的调用就是一个浏览事件的统计,通常统计的对象是页面。
3. 点击事件
用户在APP内产生的每一次点击,记为一次点击事件,其最直接作用就是可以统计某个按钮,某个区域的被点击次数/人数。
- 加入购物车按钮点击
- 立即购买按钮点击
- 联系客服按钮点击
- 店铺按钮点击
- 购物车按钮点击
4. 案例
背景 | 埋点 | 埋点分类 | 作用 |
---|---|---|---|
公司业务最近上新了一个新功能“消息通知”,分析师需要知道这个功能上线后倒地有多少人去使用 | 消息通知icon的点击 | 点击事件 | 消息通知icon点击率 |
需要知道消息通知列表页面用户一般会看几条信息,因为业务可能会推送多条的更新信息 | 每条消息曝光 | 曝光事件 | 页面停留时长和浏览高度 |
知道用户是那个信息来源来到消息通知页面的 | 消息通知页浏览事件 | 页面时间 | 确定浏览页面的来源是点击“消息通知”icon进来的、还是点击通知提示进来的 |
四、埋点技术方案
数据埋点的采集的最终需要技术手段实现,从技术实现方案来看,常见的数据埋点技术方案有代码埋点、全埋点、可视化埋点三种。
1.代码埋点(自定义埋点)
代码埋点也称自定义埋点,是一种应用于APP应用的埋点技术,通过在代码中加入一段埋点代码进行数据上报,从而监控用户行为事件,收集用户数据。
这里进一步又可以基于实施人员,拆分出客户端代码埋点及服务端代码埋点两种,在具体工作场景的实践中,根据场景的不同,结合两者的优缺点混合使用。
a. 客户端埋点
由前端开发手动定义数据采集时机及内容,将数据采集代码加入到前端业务代码中,当用户在前端产生对应行为时,触发数据采集。
eg:在电商网站中,可以在商品详情页的购买按钮处添加一个点击事件的埋点,记录用户点击了该按钮的时间、位置和商品信息等数据。
客户端埋点的优点:
- 按需埋点、定制化个性化上报,几乎可以覆盖所有数据采集场景
- 可将行为数据与业务数据整合上报
客户端埋点的缺点:
- 数据延迟上报,存在存储数据丢失问题
- 需要客户端发版,老版本埋点不全
- 埋点的开发工作量较大,研发成本
- 埋点管理问题,埋点越来越多,划分越来越细致,涉及管理人员越来越多,就导致埋点丢失或者改变、落后业务等问题
b.服务端埋点
由服务端开发将埋点采集代码加入到后端服务器代码中,当用户通过前端代码请求服务端数据时,按照约定规则触发埋点。
eg:对于一些非点击、不可见的行为,或者要获取用户身份信息、更多的业务相关的属性信息。如果前后端都可以采集到,优先后端埋点。
服务端埋点的优点:
- 按需埋点、定制化个性化上报,几乎可以覆盖所有数据采集场景
- 可将行为数据与业务数据整合上报
- 数据采集时上报,准确性高,丢失率低
服务端埋点的缺点:
- 纯前端操作,不触发后端接口请求的行为,数据则无法上报
- 埋点开发工作量大
- 埋点流程需要多方协作,容易漏埋点、错埋
2. 全埋点
全埋点是指通过在app内引入SDK,自动收集用户的行为数据,无需手动添加埋点代码,这样就可以规避很多人工错误。
eg: 在新闻网站中,可以使用无埋点技术,收集用户的页面停留时间、点击量和滚动深度等数据,了解用户对不同新闻类型和内容的兴趣和喜好。
适用于简单的数据采集,例如页面停留时间、滚动深度、搜索关键词等数据,但在实际大量互联网业务上用的不多。
全埋点的优缺点:
- 标准化采集带来非标准化采集的不可用,定制、个性化的埋点无法兼容
- APP开发存在复杂性,无法兼容全部场景
- 无效信息的上报造成数据上报量级大使得存储成本增大,且很难得到治理,造成传输、存储、使用等资源浪费
3. 可视化埋点
可视化埋点是指通过可视化工具,如Google Analytics、Mixpanel、Amplitude等,在页面上选择需要埋点的元素,即可自动生成代码,并收集相应的数据。
eg:在SaaS平台中,可以使用Google Analytics等工具,在注册页面的“提交”按钮处添加一个点击事件的埋点,记录用户的注册行为、来源渠道和注册成功率等数据。
可视化埋点是较多产商、自研轮子兵家必争之地,希望通过可视化埋点平台为业务提供一站式埋点方案,但在实际工作场景上,因为覆盖场景上,对于自研产品而言使用较少。
可视化埋点的优缺点:优点是标准化程度高,缺点是不灵活,覆盖场景有限。
总结
如何为公司选择埋点技术
针对选择埋点采集技术方案而言,还是老声场谈,具体场景具体考量。根据公司所处的发展阶段,综合考量公司的业务情况、技术储备进行选择。
基于公司所处的阶段划分的一些建议:
- 起步阶段,业务简单、数据量不大,未到精细化运营阶段,则考虑无埋点技术或自定义埋点技术都可。
- 发展阶段,业务复杂度具备一定复杂性、数据量逐步变大,则用自定义埋点技术,这也是实际工作中使用最多的方案。
- 成熟阶段,流量巨大,业务复杂度高,可以单独使用有埋点技术、也可以结合无埋点技术
总言之,都是为了进行数据采集,都有其优劣势,结合公司所处阶段、业务情况,选择适合自己公司的方案即可。