为什么要做数据埋点?

13 评论 1.8万 浏览 236 收藏 14 分钟

编辑导语:数据埋点是一种常用的数据采集方法,在如今这个大数据时代,用户的行为路径等等都会被记录,形成用户画像,以此进行分析;本文作者分享了关于数据埋点的定义以及为什么我们要做数据埋点,我们一起来了解一下。

产品经理小强负责的产品,最近上线了“意外险”的保险业务:用户在下单时,可选择购买意外险,若发生意外事件,造成了损失,可向保险公司理赔。

上线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协议。

给作者打赏,鼓励TA抓紧创作!
更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 对B端产品哪?埋点的意义是什么 大神!

    来自北京 回复
    1. 本质是一样的。埋点是要以终为始,先想清楚要分析什么,然后再去采集什么,而不是所有的都采集,这样成本太高了。

      来自广东 回复
  2. 你好,请教个问题。购买是个自定义事件,购买的商品类型是属性。假如用户一次购买多个类型的商品,是不是一个事件对应多个属性值呀?

    回复
    1. 是的,属性值可以是多个值。

      来自广东 回复
  3. 写的很好

    回复
  4. yyds

    来自上海 回复
  5. 点赞!对埋点有了清晰认识,感谢

    回复
  6. 小白表示非常的清晰,明了棒

    来自香港 回复
  7. 说的很对,如果没有基础的过程数据,无法进行任何深入的分析,更不用说产品的迭代与改进。

    来自浙江 回复
  8. 对埋点的使用又多了新多认识,点赞

    来自广东 回复
  9. 收藏!

    来自浙江 回复
  10. !!优秀

    来自北京 回复
  11. 赞赞赞。

    来自重庆 回复