俗话说“巧妇难为无米之炊”,对数据分析师来说,好的数据源,是数据分析的根基。在整个数据分析流程中,数据采集,是整个数据流的起点,也是最重要的环节之一。采集到的数据质量与准确性直接决定数据广度和质量,影响整个分析报告的所有环节。
在获得高质量数据的过程中,数据埋点这一动作尤为必要,这是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。今天我们来说说如何做好数据埋点,为收集优质数据垒实基础。
所谓埋点是数据领域的专业术语,也是互联网应用里的一个俗称。它的学名应该叫做事件追踪,对应的英文是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,整个过程会涉及多个角色,主要包括产品经理、业务数据负责人、开发工程师、测试工程师,如图所示。
总之,如果您需要深度分析,选择后端(手动)埋点和无埋点组合的方案;如果您只是想看宏观数据,可以选择无埋点。无论采用哪种埋点方法,一定要慎重,根据需要来设置,最好不要出现错埋或者漏埋的情况。最后,数据分析师一定要和业务工程团队(部署实施埋点的部门)配合好才能实现完美的数据采集方案,有时候沟通比选择埋点方式更重。