埋点,相信大家在工作中总是会或多或少地听说过甚至经历过,但对于埋点,很多产品经理可能都只是一个模糊的概念,不是很清楚到底是什么、有什么用、应该怎么做。
产品经理如何做埋点
埋点,也称打点、数据采集,是采用代码在前端产品对用户行为及其设备相关数据收集的过程。
埋点的意义
从定义中能知道,埋点是数据收集的一个过程,是数据来源。‘巧妇难为无米之炊’嘛,埋点就是那个米,没有埋点也就没有数据,没有数据也就没有后续的任一数据分析行为了。所以,如果想了解产品、了解用户,对用户行为数据进行分析就必须做好埋点。
埋点的类型
根据代码提供和数据存储的不同,埋点分为第三方埋点和自己埋点。第三方埋点是指由第三方平台生成权限代码或APPkey,由技术进行集成、安装嵌入到产品内,并由第三方对数据进行监测和按照第三方规范产出数据。而自己埋点,是指通过自己公司的RD在产品内植入需求的埋点代码,并自己记录、统计和产出数据。第三方埋点和自己埋点的区别主要有下图的不同。
从周期上说,第三方是要快于自己埋点的。一般的第三方从接入到产生数据,只需要30分钟,比如百度统计、友盟等;长一点的也只需要2天左右,这块主要涉及到RD对稍复杂的第三方接口规则接入的学习与了解。而自己埋点的话时间是根据自己产品迭代的周期而定的,按照一般产品2到4个礼拜一迭代去计算。
在人力方面的话,第三方只需一个前端RD即可;自己埋点的话则需要产品经理梳理埋点需求、前端RD实施埋点、数据RD或数据分析师按照产品需求提数据,则至少需要3个人。
对于数据的部署,第三方埋点的数据一般是在第三方,我们自己数据库是看不到这批用户行为数据的。当然也有私有化部署,即公司把第三方产品买下来部署到自己的服务器内,产生的数据也都在自己的数据库内,但这种价格会很贵而且一般公司都会要求收取费用的10% 到 15%不等的服务费,对于一般小微创公司来说会有压力,土豪公司可以任性。自己埋点的话数据则自然存储在自己的数据库内。
从数据需求上来看,第三埋点因为是部署在第三方,且按照第三方规范展示数据,个性化数据需求的设置、查询灵活度受限于第三方产品的设置。而对于自己埋点的数据,作为数据源通过各类id,与数据库里其他类的数据放飞自我地关联,随便地排列组合。我们常见的数据需求都是下面这些数据排列组合成的。
适用阶段的话,则根据产品的发展阶段、公司的业务、数据的敏感度、人力的紧张程度去选择是自己埋点还是采用第三方埋点。一般的话是建议在产品发展初期、探索方向的阶段,可以通过第三方快速地部署埋点,一方面是减少人力、精力地投入,另一方面是第三方相对成熟的数据体系能助于产品的数据监测;在产品发展到一定阶段,数据类型的增加、业务数据意识的增强,第三方数据已不能满足需求时,可以考虑自己埋点。
埋点的方式
根据埋点技术的不同,目前埋点方式有代码埋点、可视化埋点和无埋点。
传统埋点,也称代码埋点,是指在产品初始化时,通过启动初始化第三方数据分析服务商或自己的埋点代码,然后在某个事件发生时调用埋点代码里面相应的数据发送接口回传数据。它的优点在于可自定义埋点,能精准控制埋点,但每次新增或修改埋点都需技术介入,产品无法自定设置且每次埋点都需发版,并且用户更新版本才能收集到数据,对于历史数据也是无法回溯的;
可视化埋点,是指把核心代码和配置、资源分开,在启动产品时通过网络更新配置和资源。也是近年很多第三方产品推广自身产品的宣传点,它的优点在于每次埋点不必技术都参与,产品或运营可以根据自己的需求在页面圈点即可获取一定的数据,但它也不是完全脱离技术的,且在配置时同步会有延迟;
全埋点,是在产品中嵌入埋点代码,做统一的全埋点,将产品的操作尽量多的采集下拉,然后通过界面配置的方式对关键行为进行定义。它的优点在于前期已经尽可能的收集了产品所有数据,在后期需要的时间只需查询即可看到所有历史数据,但它的优点也是它的缺点,尽可能的收集产品数据,一方面是对产品存在很大的运行压力,另一方面是可使用性较差,即能用的数据不多,而且精准定位极差,埋的是什么基本靠猜或者知道的就只有当初写代码的那个RD。
埋点的原则
考虑到第三方埋点类型较简单且产品介入较少,下面将以自己埋点类型的传统埋点方式为例围绕埋点的流程进行介绍。
埋点原则引用神策的三个字结论就是“全、细、时”。全,是指埋点数据要尽量全面,不要遗漏,特别是APP端,一旦遗漏再补的话就得一个版本甚至几个版本才能有;细,是指埋点的颗粒度一定要细,尽量到具体事件,越细后期可分析的维度也就越深、定位越准;时,是指及时性,埋点和数据记录、更新要及时、实时,用户行为具有一定时效性,当数据滞后时分析的价值与意义也就不大了。
在梳理需求之前,需明确埋点的目标是什么,即为什么要去埋点。在明确目标之后,再考虑通过哪些数据能体现这个目标,根据数据再考虑要如何埋点需求。比如说,这次上线了一个活动页面,主要目的是为了吸引用户参与活动,那体现目标的数据就是活动页面的PV、UV、参与活动的转化率等,需要埋点的则是活动页面。
埋点需求梳理的时间最好是随前端产品新功能基本确定之后,由负责功能设计的产品同时考虑埋点需求,并且在功能评审同时对埋点进行评审。
埋点需求与数据需求的区别在于:埋点需求是考虑对哪些产品功能进行数据收集,数据需求是要哪些产品功能的哪些数据。所以埋点需求的范围只需要罗列对象即可,不需要考虑哪些用户的哪些指标。
根据表现形式的不同,埋点的对象分为页面埋点与事件埋点。页面和事件可以在一张表内进行记录,便于查找与计算,但个人较偏向页面与事件埋点单独记,原因是页面与事件的埋点模型存在一定差异,如果记在一起会显得数据较乱;另外用户日志数据本来就比较大,如果两类数据存储在一张表内会显得更为庞大,影响查询的加载速度。
如何正确提埋点需求?
埋点的执行方是我们各端的前端RD,因为前端技术同学只负责埋点,并不负责数据处理,而埋点文档一般是给前端技术同学埋点使用,所以需要明确的是埋点对象、记录的数据字段及即可,具体的数据需求需要从埋点收集回来的数据中提取并处理,也就是说埋点的是否规范决定着需求的实现程度。跟产品需求同理,需求越明确,数据越精准!
页面埋点一般只需列明需要埋什么页面、页面的参数值是什么,注意这个参数值必须是唯一的,如果不知道参数值的话,可以不填交由技术确定;可以资源ID以记录终端页面的资源ID,与业务数据关联可细化到具体资源被浏览情况;备注内填写埋点目的或特殊页面的埋点需求,如埋点目的。
事件埋点需列明需要埋什么事件,参数值是什么、点击事件所在的页面及页面是否记录资源ID,在备注内可以填写事件埋点的目的或特别需要记录的信息,如想知道banner每个位置被点击的次数,那埋点需求是要求埋点banner,然后在location字段内记录被点击的具体位置。
如何验收埋点?
如何进行埋点验收/测试。很多公司测试是不咋关注埋点的测试的,经常需要产品经理自己进行测试,所以把测试和验收放到了一起。
埋点测试建议测两点:一是有没有;二是准不准。这一块跟功能测试验收差不多,就不多讲了,需重点关注参数值是否正确、不同端口是否统一及需求埋点的内容是否记全了。如果有漏记或错记的,及时跟前端沟通。
第二点是如何进行埋点测试。PC或H5的话推荐大家用Chrome或火狐的开发者工具看,查询路径是 检查 >> 开发者工具 >> network >> 选中JS ,刷新页面然后查看含有特定埋点的项,具体的命名可以问技术,比如说百度统计的是hm.js?,如果有则说明当前页面或事件已埋点;点击查看记录的内容则确认埋点是否准确。
APP测试会比PC、H5麻烦点。有两种建议方式,一是下载一个软件叫charles,它能抓取手机端访问的资源,查看APP端产品的数据。工具具体使用方法使用可以网上查下~第二种建议是抱个凳子、带着零食乖巧地坐在开发同学旁边,请求开发同学给你演示他的埋点代码。
测试验收没有问题后即可上线了,在上线一礼拜左右你就可以开始收割你的埋点数据。