干货 | 如何做好数据埋点,选择方式很重要

俗话说“巧妇难为无米之炊”,对数据分析师来说,好的数据源,是数据分析的根基。在整个数据分析流程中,数据采集,是整个数据流的起点,也是最重要的环节之一。采集到的数据质量与准确性直接决定数据广度和质量,影响整个分析报告的所有环节。

在获得高质量数据的过程中,数据埋点这一动作尤为必要,这是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。今天我们来说说如何做好数据埋点,为收集优质数据垒实基础。

一、什么是数据埋点

所谓埋点是数据领域的专业术语,也是互联网应用里的一个俗称。它的学名应该叫做事件追踪,对应的英文是Event Tracking。它主要是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。

数据埋点是数据产品经理、数据运营以及数据分析师,基于业务需求或产品需求对用户行为的每一个事件对应的位置进行开发埋点,并通过SDK上报埋点的数据结果,记录汇总数据后进行分析,推动产品优化和指导运营。

数据分析的前提是数据。例如对于电子商务平台来说,数据分为以下几类:

用户基本属性数据、交易数据、商品数据是直接通过用户录入或者行为触发,在数据库里面产生记录。而流量数据或者说用户行为数据,则需要识别具体的每个行为。通过埋点就可以取得这部分数据。

通常是业务方、PD、BI,通过实际需求设计埋点方案。开发人员在代码(前端或后端)的相应位置点植入统计代码,对用户的行为进行记录,这就是埋点。埋点后,通过打点将埋点数据发送出去,存储到服务器上,在数据库中产生记录。

包括2个步骤:①日志收集:获取每次用户行为,发送服务器;②日志处理:将日志处理、提取需要的信息,存储在数据库中。

数据埋点主流部署的方式有:①私有化部署:即部署在自己公司的服务器上,如果期望提高数据安全性,或者定制化的埋点方案较多,则适合私有部署,并开发一套针对自己公司定制化的数据后台查询系统保证数据的安全性和精确性,缺点是成本较高;②接入第三方服务:比如国内或者国外的统计工具,优点是成本较低,部分基础服务免费,缺点是:数据会存在不安全的风险;③通用的简单分析,无法定制化埋点方案。

二、为什么要做数据埋点

埋点就是为了对产品进行持续追踪,通过深度数据分析不断优化产品。好比去医院体检,医生测了你身体的各个健康指标,以此来判断你的健康状况。埋点的目的,其实就是随时或者定期监测你的产品的“健康”状况。

任何一个系统在设计初始阶段只关心核心业务的功能,等到系统上线以后,数据分析师对用户行为分析时会发现缺少很多数据,此时需要采用埋点的方法进行采集需要的数据。

业务人员主要通过自有或第三方的数据统计平台了解产品的概览性数据指标,包括新增用户数、活跃用户数等。这些指标能帮助企业宏观的了解用户访问的整体情况和趋势,从整体上把握产品的运营状况,但很难基于这些指标直接得到切实的产品改进策略。

而埋点将产品数据分析的深度下钻到流量分布和流动层面,通过对产品中的用户交互行为的统计分析,对宏观指标进行深入剖析,发现指标背后的问题,寻找人群的行为特点和关系,洞察用户行为与提升业务价值之间的潜在关联,了解组成特定数据现象的原因,并据此构建产品优化迭代和运营策略。

对于产品来说,用户在你的产品里做了什么、停留了多久、有什么异样,都是需要关注的。比如用户点击率怎么样?用户在核心使用路径上是否顺畅?有没有得到用户的认可?有没有因为设计按钮过多导致用户行为无效?用户希望有什么样的功能更新等等问题都可以通过埋点的方法实现。

埋点做好才能用来进行数据驱动产品和精细化运营。而埋点质量的好坏也直接影响到了产品运营的质量。因此它贯穿了产品的整个生命周期,为产品优化指明了方向。所以说,好的数据埋点,就成功了一半。

数据埋点的几种类型

埋点是在应用系统中嵌入额外的代码,具体的方式有三种:代码埋点(手动埋点)、可视化埋点、无埋点(全埋点)。如果从系统的前后端来讲,埋点又分为前端埋点和后端埋点。无埋点是前端埋点,而代码埋点既是前端埋点又是后端埋点。

1.代码埋点

在你需要统计数据的关键部位植入N行代码,追踪用户的关键行为,得到想要的数据。简单的说,就是找节点,布代码,收数据。又分为前端代码埋点和后端代码埋点。它是手动编码产生的,自由度高,功能强大,企业可以自定义事件和属性,精准控制监控对象,传输丰富的数据内容。

(1)优点:

①采集的数据比较具有针对性,更加适合精细化数据分析;

②同时也能提高数据的准确性。

(2)缺点:

①每一个控件的埋点都需要添加相应的代码,不仅工作量大,而且限定了必须是技术开发人员才能完成;

②每一次产品迭代,都需要更新埋点方案。

(3)适用场景:

①有具体的业务分析需求,且按照各个事件埋点的方式不能满足;

②需要对埋点事件进行传参等自定义属性设置。代码埋点虽然较复杂,但功能最完善,覆盖了埋点中的不同业务需求。

2.可视化埋点

可视化埋点是把核心代码和配置、资源分开,通过部署在产品上的基础代码对产品的所有交互元素进行解析,并在可视化页面对埋点区域和事件进行设定,从而在用户有所操作时,对交互时间(操作行为)进行记录。

(1)优点:

①业务人员可用,无需技术人员进行SDK嵌入,不懂代码的产品运营人员也可通过后台可视化界面配置和统计埋点并实时下发到客户端生效;

②无需版本更新,由于不需要嵌入新SDK,不需要发布新版本,可谓即时生效;

③对所有版本生效:新增埋点在所有版本生效,不存在迭代问题。

(2)缺点:

①可覆盖的功能有限,目前并不是所有控件操作都可以通过这种方案进行定制;

②不能自定义交互事件属性,由于获取的是交互事件元素的DOMpath,无法对具体事件设置参数;

③不支持可以不断加载的内容瀑布流交互。

(3)适用场景:

①分析或统计需求简单,不需要对埋点事件进行传参等自定义属性设置;

②频繁上线或更新的H5类型的运营活动

3.无埋点

无埋点又被称为全埋点,是通过后端配置或前端可视化圈等方式来完成关键事件的定义和捕获。它要求必须在页面上嵌入数据采集基础SDK(基础代码),就可以采集页面上所有的点击行为,并且可以绘制出用户点击的热力图。这等于做了一个统一的埋点,因此又被称为全埋点。

(1)优点:

①因为无埋点对页面所有元素进行埋点,那么这个页面每个元素被点击的概率你也就知道,对点击概率比较大的元素可以进行深入分析;

②可以在系统上线后使用,支持基于全量的数据回溯,因为无埋点在你部署SDK的时候数据就一直在收集,可帮助进行启发式、探索式的数据分析;

③它技术门槛低,部署简单。

(2)缺点:

①无埋点无法采集自定义属性,只使用通用大部门,通用的场景;

②数据形式非业务导向,因为是对所有事件数据的自动收集,没有按照业务需求进行事件或区域设置,业务或数据人员在使用时或许不能直接使用,需要二次计算或处理;

③兼容性不好,传输时效性较差等问题,因为是对所有的元素数据都收集,会给数据传输和服务器带来较大的压力。

(3)适用场景:

①分析或统计需求简单,不需要对埋点事件进行传参等自定义属性设置的事件;

②针对快速、频繁上线和迭代的H5类型的运营活动的评估

总体来说,无埋点和可视化埋点更侧重结果的展现,对过程追溯少,更适合产品经理分析基础的产品功能流畅度、用户体验、产品路径设置等。代码埋点和后端埋点,不仅能展现结果,也会记录用户行为过程,支持深度的行为分析和偏好洞察,还可将行为数据与业务数据打通,适合产品和运营人员深度使用。

无论采用哪种埋点方式,都应该根据业务场景和产品阶段,梳理和构建数据分析体系。埋点规划混乱、数据采集无序、数据分析断层,最终将会让企业陷入“有数据而无价值”的境地。

四、如何判断需要埋点的数据

到底哪些数据需要埋点?根据运营目的的不同,埋的点也不尽相同。

举个例子,对PC端的腾讯视频,用户浏览时长、用户观察类别、用户活跃、用户VIP转化等指标都是很重要的业务指标。但对于一些工具型的产品而来,比如迅雷,那下载成功率、解析成功率等都是核心的关键指标。

从经验上来看,以下3种类型的指标通常需要埋点:基础指标、用户行为数据指标和核心质量指标。

1.基础指标

基础指标是一些常用的参数指标,比如用户行为相关的,有用户数、新增用户数、活跃用户数等;用户设备相关的,比如电脑系统、地区、语言、国家、产品版本等;用户属性相关的,性别、年龄等。这一部分一般很难通过埋点拿到,但是通过一般第三方工具可以看个大概。

2.用户行为数据指标

用户行为的行为数据,就是埋点的核心了。这一部分根据不同的产品,收集的数据也不同。再拿PC端的腾讯视频举例,每个用户每天使用腾讯视频的时长是多少?每次看的是哪些视频?用户最喜欢看哪个频道的视频?每个频道的使用情况是怎么样的?用户一般是在一天中的哪个时间段打开腾讯视频的……

想要看的数据非常多,而这些,都是要提前规划好,有目的性得去决定要埋什么点、怎么埋。如果你的目的是为了研究一下用户对弹幕的接受程度,那围绕弹幕,设置一些指标数据,比如发布弹幕的次数和频率?看视频时是否开启了弹幕?这样的话,就能够通过数据,看出用户对弹幕的真实反映,对于提升产品功能和运营都有很大帮助。

3.核心质量指标

Crash等一些因为产品质量引起的问题,都是用户所不能忍受的。而且用户量越大,越容易出现产品质量问题。尤其是一些产品,他的产品属性决定了,产品质量是吸引用户购买的一个很重要的因素。比如迅雷、photoshop等软件,核心质量的指标能帮助我们监控产品的“健康”情况。

这里说的质量指标,不单单指产品的异常退出率、Crash率,还包括和产品自身业务相关的指标。比如,对于视频编辑产品,编辑成功率是很重要的指标;对于迅雷,下载成功率是核心指标;对于在线类产品,资源解析成功率是核心指标…...

五、如何做数据埋点

经常有人问我:我要获取哪些数据来进行数据分析?

其实这个问题不应该问别人,应该问你自己,通过上文,我们已经知道了,如果你想绘制基础的人群画像你就需要获取用户机型、网络类型、操作系统,IP地域等数据;如果你想分析每一个注册转化率,你就需要获取每一个步骤的点击次数,然后制作成漏斗,看那一步转化率出现了问题……目的不一样,获取的数据也不一样,使用的埋点技术也不一样。

那么,我们该如何选择埋点方式呢?

我们的目的是实现深度数据分析,不应该采用与其他企业通用的埋点方法,应该采用适合自己的埋点方法。也就是做到“因系统而异、避免千系统一面的情况。

在系统刚上线的初期阶段,我们可以采用无埋点的方式。因为我们通过UV、PV、点击率等基本指标及即可满足数据分析需求。如果产品上线时间很长,我们需要进行深度数据分析则选择代码埋点。它可以帮我们收集需要的属性。另外,如何埋点既可以在前端实现,也可以在后端实现,我们推荐在后端实现。因为后端数据可以保证数据的准确性。最后,如果您为了方便快捷并且免费,可以选择第三方统计工具,但是一定要选择适合自己业务的统计工具。

从业务过程中采集埋点,是数据驱动型公司的必要条件。一般公司的产品功能评审环节,不仅有 PRD (Product requirement document),还加入了对应的 DRD ( Data requirement document)。对于埋点而言,DRD 需要明确业务目标与埋点缺口之间的关系以及需求的优先级。埋点的需求大多来自于 DRD,整个过程会涉及多个角色,主要包括产品经理、业务数据负责人、开发工程师、测试工程师,如图所示。

总之,如果您需要深度分析,选择后端(手动)埋点和无埋点组合的方案;如果您只是想看宏观数据,可以选择无埋点。无论采用哪种埋点方法,一定要慎重,根据需要来设置,最好不要出现错埋或者漏埋的情况。最后,数据分析师一定要和业务工程团队(部署实施埋点的部门)配合好才能实现完美的数据采集方案,有时候沟通比选择埋点方式更重。

六、案例:如何做一个社交类App的埋点

其实对一款产品进行数据分析的最佳过程如图所示,梳理数据分析业务需求和埋点采集是数据分析的第一步,埋点需求梳理和埋点采集的好坏直接决定了后续的实施成本和效果呈现。

1.梳理产品逻辑和需求

下面就以某社交类 APP 为例来进行说明,其实就是一个话题交友兴趣聊天的平台。

(1)产品信息结构图

通过产品信息图就能了解到产品承载了哪些信息和功能,并且可以借此思考下,这些信息和功能的目的是什么,想要用户干什么。

(2)产品功能结构图

通过产品功能结构图能够将产品的功能模块梳理出来,功能之间怎样跳转,功能的上游入口和下游出口是什么都要想清楚,并标记出来。

(3)核心业务流程图

一个产品总会有那么几条核心业务流程,比如注册流程,新手完成任务流程等等,首先需要清楚梳理出产品的核心业务流程,密切观察用户在核心业务流程运转的整个过程。

(4)梳理产品需求

进行需求梳理首先要明确要分析什么样的场景,解决什么业务问题,要解决这个业务问题,要看什么样的数据,要衡量什么样的指标。不同的角色会关心不同的问题,一般会按照业务线进行需求梳理。当然,这些指标是和目前产品要解决的核心业务目标密切相关的。下面就来梳理一下各业务线的指标需求。

这个指标需求和梳理产品逻辑有什么关系?为什么第一步要梳理产品逻辑?你可能会发现,这些需求点和产品的信息架构和功能架构密切相关,举个例子,拿常用的活跃用户数这个指标来说,一般是以启动App的用户数来定义活跃的,实际上,每一款产品的核心功能不同,只有完成核心功能的用户数才算活跃,通过以上产品功能架构的分解,才能知道应该优先衡量哪个功能的使用情况。

再有功能转化率的衡量,功能转化的过程有没有想清楚,如果完整梳理出该功能使用的完整业务流程,那么要怎么衡量转化也就有了眉目,也更能定义出问题所在。

总之,经过一番梳理,对产品的信息架构、功能点、核心业务流程有了一个清晰的了解。有经验的产品经理可能会发现,这些产品逻辑其实已经在产品需求文档PRD里面已经有了,只是没想到还可以用于数据模型的设计和避免埋点的反复。有了上面的准备工作,就可以讨论如何进一步设计数据埋点方案了。

2.进行事件设计和数据采集埋点方案设计

说起埋点,很多人都习惯用页面或点击来定义埋点,比如手机号码填写页面、播放视频页面、成功发布话题页面或者点击分享按钮的次数等等,平时常说的功能,即用户在使用这些功能时产生的使用行为数据,从用户使用行为分析的角度去分析自然顺理成章。

这里举个例子,上面提到的发布话题的业务流程,其实是由用户一系列行为组成的:

这里给出了用户行为和事件的对应关系,用用户的真实操作行为去定义事件名称就可以了。除了要埋点的行为功能以外,每一个功能都需要从不同属性维度去衡量。比如想看不同话题分类被成功发布的次数这个指标,就可以将话题分类做为发布话题这个事件的属性,这个话题分类的值可能有图片、文字、音频、视频,这样我们就能分别看到发布图文的话题个数、发布音频或视频的话题个数了。

通过维度的层层细分,我们一定能定位到业务问题,就怕缺少某个关键维度的信息。最后,会形成一张事件设计埋点表。

接下来,可以就上面的事件设计埋点表和开发去沟通了,让他们明白采集这些事件的意义和目标,每条事件的采集时机是什么,相应的维度信息能不能采到等等,目的是保证最后出来的指标和事件定好的指标统计口径一致。至此,产品就可以放心的等待开发将点埋好,然后开启数据驱动产品业务增长的优化之路了。

七、注意事项

1.数据埋点的前提是,团队需要首先明确产品的目标以及当下的首要问题。产品可能产生的用户行为数据纷繁复杂,清晰的目标能让项目团队避免迷失在数据的海洋中,从而耗费大量的时间和机会成本。

2.最开始进行需求梳理时,需要从整体进行考虑,要给给深层次和具体的需求。不要等到开发埋好指标结果出来时却不是自己想要的,需要重新埋点。另外,后续产品版本更新迭代了,原有埋点不可用,也需要重新埋点。

3.数据采集方案要想清楚,哪些应该在前端埋点,哪些应该在后端埋点,埋点采集SDK如何正确使用在还没了解清楚时就急于上手。数据统计口径需要确定清楚,且和开发保持良好沟通,将埋点的具体采集时机正确传达给开发,导致最终埋点实现的不是自己想要定义的指标。

4.在分析的一开始,建议采集少数的用户行为。选择少量、重要的用户行为开始记录和分析,这样很快就能有成果产出。另外用户行为不等同于应用的页面或点击操作,用户行为是更加具体的一个事件定义。

5.埋点结束后,测试一般只会看一下埋点是否有数据返回,而不会一个个是对数据是否有收到以及是否准确。这个时候需要我们在有一定数据量积累的时候,对数据的有无和准确性进行验证

更多干货内容,欢迎关注公众号:数猎天下DataHunter

-数据分析展示就用 DataHunter-

推荐阅读更多精彩内容