正文
1、什么是埋点
埋点又称为事件追踪(Event Tracking),指的是针对特定用户行为或流程事件进行捕获,处理和发送的相关技术及其实施过程。
埋点为优化产品和运营决策提供数据支撑,几乎每个企业、每个app都需要用到埋点技术。
功能方面:埋点是用来收集用户行为数据。比如想要了解一个用户在APP里面点击了哪些按钮,看了哪些页面,做了哪些事情等,就可以通过埋点来实现。
实现方面:埋点就是通过植入一段代码到某个页面或某个按钮,从而监听用户行为并进行收集上报。
2、埋点基本流程
一般来说,需要这样的流程:
运营人员提出埋点和指标需求
埋点研发进行埋点,收集和存储数据
数据仓库人员进行数据清洗、提供数据指标
运营根据数据指标,调整业务流程和运营策略
【埋点采集】通过部署埋点,收集数据
【数据传输】将埋点收集到的数据,进行传输
实时传输:flume > kafka > db
离线批量传输:jdbc > db
【数据存储】定义数据存储的库
数据量较小建议采用mysql,oracle等关系型数据库;
数据量较大,建议采用hive,hbase等分布式数据库。定义好数据存储的表结构,属性尽可能采集全面。
【数据清洗】一般为数据仓库开发人员进行数据ELT
【数据应用】业务运营人员验证和使用数据
3、埋点采集
3.1 埋点范围
根据业务人员的需求,选取可以衡量需求效果的数据指标,比如页面浏览量,页面转化率,访问人数,访问频次分布等等。明确需要收集哪些维度的数据,按需选择性埋点。
3.2 埋点事件
我们可以对一条业务流程中涉及到的各种操作进行事件埋点,用于了解该业务各操作流程的用户流失率,转化率等情况。通常包括但不限于以下事件:
页面事件:用户访问页面的信息,比如可以通过页面埋点统计页面浏览量(PV),或收集该页面上的接口;
点击事件:用户在页面的点击行为,比如想要收集用户点击搜索按钮时,填入了哪些关键字,就可以在搜索按钮上埋一个点击事件,通过字段keywords上报的值实现分析关键字的目的;
3.3 采集内容
埋点时需要尽可能全面的采集数据,主要包括以下信息:
用户基本信息:描述用户的基本属性信息,包括用户ID,性别,运营商,设备类型等
时间信息:事件发生的时间
行为信息:用户做了哪些行为,比如点击行为,浏览行为等
行为对象信息:用户的行为作用在哪些对象上,比如点击按钮A,浏览页面B,那么A,B就是用户行为作用对象
另外,也可以从4w1h(who,when,where,what,how)五个维度来划分埋点属性
3.4 选择埋点方式
选择后端埋点还是前端埋点
比如像点击、浏览、曝光这些行为便可以用前端埋点,主要是发生在用户与界面的交互;如果是电商中要统计下单成功这个事件,客户端是没有办法知道订单是否成功的。
如果统计的事件里有需要用到后端的数据,也是要进行后端埋点的。
3.5 埋点事件的格式
一般一条埋点数据需要记录:事件ID、事件名(英文名、中文解释)、事件属性(属性英文名、中文解释、属性类型)、埋点形式(前端/后端)、事件触发时机(什么时候投递这个事件)
3.6 埋点报文
报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块。
报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。简单来说就是用户在App内有一个操作行为,就会上报一组带有数据的字段。这些字段组成一个报文。
4、数据存储
4.1 存储方式
根据埋点数据量和现有平台选择一种最合适的存储方式。
Mysql: 使用于数据量较小,优点读写方便
ES:现有埋点方案中,阿里日志系统,通过ES查询埋点结果
Hbase:适合数据量较大,可考虑使用现有hbase集群。
4.2 存储频率
采用【定时】+【定量】的方式,保证数据时效性和数据平滑处理。
定时:周期触发,进行存储。避免当数据量较小时很长一段时间不存储。
定量:设置阈值,当数据量达到一定量(1k)即进行存储
程序退出:某用户退出登录时,需立马进行存储
5、埋点数据清洗
1、将埋点数据接入到数据仓库(离线或者实时);
2、数据建模进行数据建模和数据清洗,过滤掉脏数据,最终产出数据指标;
3、数据指标通过数据报表、邮件、api等方式对外输出。
6、埋点数据应用
常见埋点分析指标:访问数、访客数、停留时长、页面浏览数、跳出率、转化率。
这些数据指标为运营人员提供了决策依据,帮助其不断调整优化运营政策、业务流程,从而达到最佳效果。