为什么要做数据埋点?
编辑导语:数据埋点是一种常用的数据采集方法,在如今这个大数据时代,用户的行为路径等等都会被记录,形成用户画像,以此进行分析;本文作者分享了关于数据埋点的定义以及为什么我们要做数据埋点,我们一起来了解一下。
产品经理小强负责的产品,最近上线了“意外险”的保险业务:用户在下单时,可选择购买意外险,若发生意外事件,造成了损失,可向保险公司理赔。
上线1周后,用户购买意外险的数据远低于预期;领导询问相关页面的浏览、点击和转化数据,以便通过数据分析,找到优化方向;小强找到开发,要求导出相关数据,却被告知只有意外险订单信息;由于缺少该数据,无法通过漏斗分析计算转化率,从而找到问题点。
一、缺失的数据
用户在使用产品的过程中,一般会产生两种类型的数据:过程数据、结果数据。过程数据是用户完成某个目标前的操作记录,结果数据是用户一系列操作的最后结果。
在意外险业务中,用户浏览保险介绍页面、勾选购买保险等行为,是用户操作过程的记录,属于过程数据。
用户完成支付,生成保单,是业务执行的结果,属于结果数据。
结果数据是用户在产品中执行某个操作的结果,当用户要做某个任务时,需要查看或使用,对功能使用和业务的正常开展有直接关系。
当用户理赔时,必须要查看用户购买保单信息,作为凭证;产品方需要根据该数据,跟保险公司结算费用,或考核业务发展情况。
为了方便调用,研发在开发功能时,一般都会建立业务数据表,用于存储结果数据;为方便回溯,业务数据表一般会永久保存,不会定期清除。
一个结果数据的产生,可能有多个操作,产生多条过程数据;为了满足存储所有过程数据的额外需求,研发就需要开发更多功能,成本大幅增加。
若只保存用户购买保险的结果数据,研发只需要创建一张保单信息表;但若要保存购买保险的过程数据,研发需要创建为“浏览保险记录、勾选购买保险等多个操作,创建多张数据表,开发量增加了很多倍。
相对于只存储必要的结果数据,用业务数据表保存过程数据,导致开发成本大幅增加。因此,大部分过程数据,都会在开发时被直接舍弃。
然而,过程数据虽不会被接口调用,也不需要显示,但过程数据依然有很高的分析价值。
通过分析过程数据,能更好地了解用户对页面的浏览和功能的使用情况,进而找出容易出现用户流失的环节,为产品的优化和迭代提供重要的决策依据。
因此,为满足过程数据的分析价值,需要有一个低成本记录操作过程的方案。
数据埋点——就是最常见的解决方案。
二、数据埋点的定义
在数据分析领域,通常将用户在产品中的行为称为事件,如搜索商品、滚动商品列表、浏览商品详情页、将商品加入购物车、支付订单。
用户在产品中的所有行为,都会有相关的代码运行,如用户打开了一个页面,该页面的代码就会加载;只要研发在开发功能时,为事件植入一段监控代码,当事件被触发时,让事件的监控代码同步执行,就可以按约定的方式和结构,采集该事件的相关信息,并上报到服务器。
针对产品需要关注的特定事件进行数据采集和上报的解决方案,就是数据埋点。
在设计数据埋点方案时,根据业务和数据分析的需要,设计需要监控的若干个事件,并交由开发实现;为方便使用和管理埋点,每一个事件埋点,都会定义一个名称,称为“事件名”。
产品想要采集“保险介绍页曝光”事件的信息,可以让研发为该事件植入埋点代码;当该页面曝光时,埋点代码就就会同步按要求采集相关信息,如来源页面、点击时间等,并上报服务器。
三、数据埋点的能力
通过植入到对应位置的监控代码,我们可以准确地记录用户对应行为的相关信息。这些信息可以用what、who、when、where、how5个单词来概括。
1. what:什么事件
采集事件的具体内容,一般有以下5种类型:
1)曝光
页面或元素因为用户的某个行为而被展示出来,如用户点击活动链接,进入活动详情页,该页面就得到了一次曝光。
曝光量可以帮助产品经理寻找迭代方向,相对于日曝光量100的页面,曝光量10w的页面,有更高的用户价值或商业价值,更值得进一步优化。
2)点击
用户点击了某个元素,如点击按钮、链接、图片等。
点击率(点击量/曝光量)反映了用户对元素的兴趣,指导产品设计人员优化低点击率低内容的表达。
3)启动
用户通过各种方式启动app,如点击通知栏消息、点击app图标、多任务界面。
结合日活数,计算出每日人均使用次数(即平均每个用户每天打开app的次数,日启动数/日活跃用户数),可用于评估活动效果。
从某一天开始,每日人均使用次数从2次增加到4次,而当天只上线了一个运营活动,没有其他干扰事件,说明该运营活动有效提升了用户使用频次。
分析不同时段的启动次数,得到用户使用时段分布,即不同时间段内的使用次数,如中午12点到13点使用次数高,凌晨1点到7点使用次数低。
可用于确定通知最优运营时间:使用时段分布反映了用户集中活跃的时间段,在这些时段内推送特定的营销信息或开启运营活动,更容易获得更多用户的关注,从而得到更好的转化效果。
4)退出
用户退出app,如用户在双十一活动详情页退出了app。
退出数据能定位用户操作断点,即一个完整的业务流程中,用户在哪些节点退出app的次数多;如果能优化这些节点,降低退出率,即可提高对应流程节点的转化率,从而更好地达成业务目标。
保险购买业务上线后,保险购买量很低。分析退出数据,发现大量用户在保险介绍页退出了app。
经调研确认,原因是保险介绍页中的理赔范围不够明确,导致用户失去耐心后直接退出app;重新整理并上线后,保险订单得到了很大的改善。
5)报错
app出现了错误,如崩溃、闪退等。
报错数据能帮助研发定位产品漏洞。对环境的依赖很高的偶发性报错,往往很难重现;若没有及时记录报错信息,研发很难定位到问题,最终可能只能选择暂不修复,不利于改善用户体验;研发获得了报错信息后,能更快定位到问题,大幅提高bug修复的效率。
新版本上线后,有用户反馈频繁闪退,但测试尝试了所有机型,都未重现;从报错数据中找到该用户的报错信息后,研发很快就找到了原因,并修复上线。
2. who:哪个用户
参与事件的用户是谁,即用户身份,通常会从人(用户ID)和设备(设备ID)两个角度,来标识用户身份,即:哪一个用户,在哪一台设备上,参与了该事件。
准确识别参与事件的用户身份,有两个重要价值:
1)统计去重
在做数据分析时,我们不仅想要知道次数,还想知道人数(即UV),以便计算功能受众范围的大小。通过标识用户身份,我们能准确判断多次操作是同一个用户所为,即可实现去重。
去重后的用户量,可用于评估功能影响范围。用户量越大,越值得投入资源继续优化。
两个相同目的的功能,A的UV只有1000,B的UV是10万。在团队资源有限的条件下,B明显更值得继续优化。
2)分析留存
留存是指某个周期内有使用的用户,下一个周期依然有使用的用户数量;只有准确标识用户身份,才能实现留存统计。
留存是衡量功能黏性的重要指标,当新功能上线时,使用了功能的用户中,下个周期继续使用的用户量越大,新功能的用户粘性越高;而用户黏性高的功能,商业价值更大。
为提升用户活跃,以获得更多的广告收入,app上线了两个小游戏;上线第一天均获得了1000个用户,7日留存分别是800、100。
很明显,前者的用户黏性更好,对广告收入的贡献更高。
3. when:发生时间
事件是什么时候发生的。一般都统一使用时间戳来表示。
记录发生时间,可按周期对数据作汇总,统计某段时间内事件发生的次数,得到时间分布情况,了解用戶的行为习惯,进而在用户活跃高峰期开展特定的运营活动,以提高转化率。
对用户下单行为的发生时间按小时进行汇总后,发现用户8点后开始活跃,12点-14点是高峰,晚上20点到23点是另一个高峰;在这两个时间段推送活动通知,更容易获得用户的关注,从而更好地达成活动目标。
4. where:发生地点
事件发生时,用户所在的地理位置。如经纬度、所在省市区。
记录发生地点,可按所在地的行政单位对数据作汇总,分析活跃用户的地区分布情况;结合时间周期,可分析出不同地区的业务增长情况,指导运营工作方向。
新功能上线后,发现一线城市的业务量远超其他线城市,但从最近几周的数据看,三线城市的增幅很高,如投入一定的运营资源,可能会获得更快的增速。
5. how:发生方式
用户使用功能的环境,包括硬件环境和软件环境,如手机厂商、型号、分辨率、网络条件、手机操作系统、app版本等。
环境数据提供了用户使用功能的软硬件条件,帮助我们选择与环境匹配的功能实现方法来开发功能,更好地满足用户需求,提高用户体验。
若大部分用户使用的是低配置手机,则应该降低客户端的功能复杂度,避免运行卡顿;反之,则可以在客户端设计更炫酷的交互效果、开发对手机性能要求高的功能,让用户得到更好的使用效果。
四、总结
数据埋点将有数据分析价值、但没有存储到业务数据表的数据以日志的形式存储下;埋点采集到的每一种类型的数据,对产品设计优化、迭代方向选择、业务目标达成等有很高的价值。
数据埋点是数据产生价值的起点,值得产品研发团队当成一个重要工作来推进。
#专栏作家#
誓博,微信公众号:产品慎思录。人人都是产品经理专栏作家。5年产品经验,电商售后平台后端产品负责人。
本文原创发布于人人都是产品经理,未经作者许可,禁止转载。
题图来自Unsplash,基于CC0协议。
您好!两个相同目的的功能,A的UV只有1000,B的UV是10万。在团队资源有限的条件下,为什么B明显更值得继续优化?不应该优化UV更多的吗?
因为B的用户价值更大。就像有两条路,一条只有1个人在走,另一条有100个人在走。既然只有1个人走,那就将就着走吧。另一条有100个人,在路上放个卖水的路边摊都能提供很多的用户价值。
对B端产品哪?埋点的意义是什么 大神!
本质是一样的。埋点是要以终为始,先想清楚要分析什么,然后再去采集什么,而不是所有的都采集,这样成本太高了。
你好,请教个问题。购买是个自定义事件,购买的商品类型是属性。假如用户一次购买多个类型的商品,是不是一个事件对应多个属性值呀?
是的,属性值可以是多个值。
写的很好
yyds
点赞!对埋点有了清晰认识,感谢
小白表示非常的清晰,明了棒
说的很对,如果没有基础的过程数据,无法进行任何深入的分析,更不用说产品的迭代与改进。
对埋点的使用又多了新多认识,点赞
收藏!
!!优秀
赞赞赞。