最近在做埋点需求,所在项目是在线旅游资源预订平台,主要记录自己在做这个需求时的总结反思,废话不多说,进入主题吧。
一、什么是埋点?
所谓“埋点”,是数据采集领域(尤其是用户行为数据采集领域)的术语,指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。
用大白话说:就是通过技术手段“监听”用户在APP、网站内的行为,例如在什么时候在哪个页面点击了哪个按钮,点击了多少次。或者从A页面进入了B/C页面,停留了多久等等都可以被记录下来。
埋点的技术实质,是先监听软件应用运行过程中的事件,当需要关注的事件发生时进行判断和捕获。
二、埋点的分类
埋点一般会分为三类:点击事件、曝光事件、页面事件
2.1、点击事件
用户在应用内的每一次点击行为,都可以记为一次点击事件。比如按钮的点击,区域的点击,商品的点击,每一条新闻的点击等,都可以成为一个点击事件。
一般通过点击事件,我们可以拿到点击PV,点击UV。
2.2、曝光事件
曝光事件是为了统计应用内的某些局部区域是否被用户有效浏览。当用户成功进入一个页面时记录一次数据,刷新数据也会记录一次。比如推荐区域,某个按钮,首焦等等。
比如一般来说我们在衡量页面某个区域用户的点击率的时候,首先需要搞清楚的就是这个区域到底被多少用户看到了,每被用户看到一次就是一个简单的曝光事件,然后才能计算点击率。
2.3、页面事件
页面事件通常是指页面的各种维度信息的统计。常见的比如页面浏览PV,页面浏览UV
理解不同的事件类型,可以帮助我们后续更好的根据想看什么数据定义埋点事件。
三、埋点的方式
我们了解了埋点是什么,怎么分类,那埋点一般是通过什么样的方式,或者借助什么样的工具平台去埋点的呢?一般我们有两种方式:一是可以通过自建埋点后台。二是借助第三方平台工具。下面我们来了解下两者的区别,以及我们应该怎么选择。
3.1自建平台
自建平台指的是自己公司研发在产品中注入代码统计,并搭建起相应的后台查询。好处的话就是可以根据公司的业务发展实际需求进行个性化的构建,保密性比较高。缺点的话,工程量比较庞大,需要耗费大量的开发资源,开发周期也比较漫长。一般比较大的公司会选择这种方式。
3.2第三方平台工具
第三方平台有提供相应的SDK,可以快速接入。大家可以自行对比根据实际情况分析后选择。例如根据产品是面向国内用户还是海外用户,就需要选择国内或国外平台。
国外:Google Analytics 等
国内:友盟、Talking data、百度统计、神策、GrowingIO等
第三方平台的好处就是开发成本较低,可以较快的实现埋点需求。缺点就是不支持个性化,个别特殊需求需要付费使用等。中小型企业或产品处于发展阶段,更多的是选择接入第三方平台。例如我们公司现在产品是面向海外用户,产品也是初期阶段,更多是想验证市场,所以我们暂时还不需要自己搭建平台,故我们用的是Google Analytics。
四、怎么埋点
我们确定了采用什么平台方式去埋点后,就需要了解怎么去埋点,例如采用什么埋点技术、埋在什么位置比较合理,才可以更好的达到我们想要的效果,更好的节约资源。那么埋点的技术和埋点的位置是什么呢?
4.1、埋点的技术/方式/方法
埋点的技术分为三种:可视化埋点、全埋点、代码埋点。
可视化埋点也叫框架式埋点。
利用可视化交互手段,数据产品/数据分析师可以通过可视化界面(管理后台连接设备) 配置事件,可视化埋点仍需要先配置相关事件,再采集。
优点:埋点只需业务同学接入,无需开发支持;
可以很好地解决了代码埋点的埋点代价大和更新代价大两个问题。
缺点:仅支持客户端行为。
全埋点
也叫无埋点。无埋点是指开发人员集成采集 SDK 后,SDK 便直接开始捕捉和监测用户在应用里的所有行为,通过界面配置的方式对关键行为进行定义,并全部上报,不需要开发人员添加额外代码。
优点:
无需开发,业务人员埋点即可;
支持先上报数据,后进行埋点。
缺点:
数据量大;
仅仅支持客户端。
无埋点和可视化埋点均不需要开发支持,仅数据业务同学进行设置即可。但两者数据上报-埋点设置存在加大的差异:无埋点支持在数据上报之后再进行埋点设置,因而数据采集/上报的量远大于可视化埋点。
因而无埋点的数据大都有清空机制(这需要结合选择的平台,不同平台机制不大一样)
这种方式只能采集前端数据比较粗的行为粒度,无法深入到更细粒度。比如提交订单操作,订单运费、成本价格之类的维度信息,都丢失掉了,只剩下“提交”这一个行为类型。
代码埋点
以为需要监测网站上/app上用户的行为,是需要在网页/app中加上一些代码的,当用户触发相应行为时,进行数据上报,也就是代码埋点。这样的代码,在网站上叫监测代码,在app中叫SDK(Software Development Kit)。市场上的第三方数据采集均支持代码埋点,GA, GrowingIO,神策等。
简单的说,就是找节点,布代码,收数据。
优点:可以详细的设置某一个事件自定义属性;
缺点:时间、人力成本大,数据传输的时效性。
我们用的是第三方平台,计划用全埋点+代码埋点相结合的方式。在GA中(Google Analytics 的简称)全埋点之占一个事件数(全局点击事件),所以我们会在埋之前,把页面名称及页面内元素名称统一定义好,部分的用户行为可以通过页面配置的埋点进行查看,初期阶段可以满足我们部分需求数据查看;同时对特殊需要监控的整理成事件,后续迭代用事件控制。
4.2根据埋点位置区分
埋点除了按技术方式区分可视化、全埋点、代码埋点,也可以根据埋点的位置区分客户端埋点、服务端埋点、H5埋点。
客户端埋点即监控APP发生事件的埋点,例如APP某页面曝光,一旦APP客户端加载了该页面,客户端埋点就会发送相应信息;H5埋点可能是在APP中跳转到的某个H5页面(如运营活动页)上的埋点,也可能是web某页面上的埋点。服务端埋点记录用户请求服务器时的操作。
举个例子,如果你要统计用户点击预订按钮的点击率,一般是前端点击按钮行为发送点击日志,页面按钮展示发送pv展示日志,然后点击量/展示量,就是点击率,这里就要前端埋点。
而如果你要统计预订成功量,那就要在后端发布回答的接口处埋点,因为只有执行发布回答的接口后端服务,才知道预订成功没有。
目前大多数产品都是客户端、服务端相结合。
五、后语
本次恰逢公司的项目重构改版,需要新的埋点需求。在整理过程中,学习参考 了网络上大神们的教程,收获感触颇多,故整理后写了自己的见解,算是自己对这段经历的总结复盘,也希望可以帮助到别人。计划分三part来写,第一部分先梳理什么是埋点,有个大致了解后,第二部分会介绍如何进行埋点,埋点的步骤,结合实际案例给大家提供一个参考的思路;第三部分是埋点后看什么样的数据,结合GA上面的数据进行简单的分析。