随着互联网技术的发展,从简单的展示型到操作型,再到现在的数字化运营阶段,数据变得越来越重要,不仅是辅助策略,还有自动化可以实现个性化操作。数据价值的出发点就是埋点。只有埋点合理,报告规范,数据才能产生价值。在本文中,我们将了解埋点系统。数据埋点概述一般我们把数据分为生产端数据和消费者端数据。生产端数据很容易获取,通常通过系统数据库获取。比如电商商品后台添加商品的操作就是生产端数据。生产端的数据基本都是监控。产生更多性能价值的数据往往是消费者端的数据。比如用户在电商APP上的点赞、评论、收藏、下单、支付等数据,就是消费者端的数据。消费端数据需要采集,埋点技术是采集这些数据的常用技术。01什么是埋点?通常我们所说的埋点其实就是一种埋点技术。埋点技术是一种数据采集技术,尤其是对用户行为或时间进行捕获、处理和报告的相关技术和实现过程。随着互联网发展到今天,跟踪技术也越来越成熟。有很多第三方SDK可以方便企业快速建立追踪系统,挖掘数据价值。但是,第三方埋点技术经常会遇到数据泄露的问题,业务需求可能会因为一些限制而不能完全满足。因此,大企业多半会选择自建埋地系统。02埋点的意义我们经常讲数据的价值,思考如何让业务数据产生价值。数据产生价值的前提是数据源是可信的,埋点的意义在于解决数据源可靠性问题。如果说数据仓库是兵工厂,各种数据产品是枪支,那么埋点就是钢铁;如果说数据仓库是地基,各种数据产品是高楼大厦,那么埋点就是一砖一瓦。如果埋点没做好,所有的上层依赖都会事半功倍。03埋点类型埋点分为三种:Web埋点、App埋点、界面埋点。本文主要从产品思维层面介绍需要理解的通用原则。1、Web埋点Web埋点主要是通过在页面中先注入一段JavaScript代码,然后将采集到的数据上报的技术。随着互联网从Web1.0发展到Web2.0,再到今天的移动互联网,嵌入式技术也从无到有,从简单到复杂,服务商也从争霸到“剩”为王。Web跟踪技术也经历了网页信息、添加cookie、添加事件三个阶段,使得Web跟踪越来越成熟。这里主要从产品的角度来理解Web埋点。在大数据运作之前,网页嵌入主要关注的是各种指标和漏斗分析方法。重要指标是页面访问量、页面用户数、页面停留时间和跳出率。漏斗分析方法主要是指具有递进关系的页面之间的用户流失率。Web埋点的意义更多在于优化页面,提高用户留存率。大数据运行后,网站开始更加关注事件,同时上报用户信息,挖掘用户的兴趣点。2、APP埋点App埋点技术是一种通过在代码中加入特殊代码或引入SDK的方式在App中采集信息的技术。App代表着移动互联网时代的到来。从这一天开始,点购科技进入了大数据时代。并不是App带动了大数据时代的到来,而是App的兴起恰逢大数据技术的普及。随着大数据的到来,APP埋点不仅仅着眼于页面优化带来的用户留存提升,更注重数据的全面性。这个时代,数据就是价值,数据的全面性带来用户价值的深度挖掘。同时,Web时代的版本更新优化被更成熟的A/B测试系统所取代。我们不再需要在获取数据前更新版本,而是可以在一定范围内灰度上线,测试效果后再上线。因此,应用追踪是追踪价值的升华,也是大数据时代挖掘数据价值的起点。3、接口埋点我们常说的埋点主要是指Web埋点和App埋点,但其实还有一种埋点——接口埋点。这种埋点与其他埋点不同的是,它不是直接通过数据库系统存储,而是通过日志系统存储,再通过ETL保存到数据仓库中。接口埋点的意义主要是用于接口的实时监控,可以让我们快速发现接口的异常情况。许多用于运维的报警系统都是通过接口埋点实现的。如何做好嵌入接下来我们就来介绍一下如何做好嵌入。1、目标采集和埋点是数据值的起点,目标采集是埋点的起点。目标采集的关键在于必要的全面性,也就是说需要的数据一定要埋,但是埋的越全越好。Target的收集主要从两个角度考虑,一个是用户信息(包括浏览器信息),一个是target和event。用户信息主要是指用户的身份信息和硬件环境信息。身份信息包括未注册唯一码、登录唯一码、联合登录信息等,硬件环境信息包括操作系统、硬件设备编码、经纬度等。在没有用户信息的时代,每个人只能调整整个站点和呈现信息,而用户信息的收集让智能营销和千人千面成为可能。目标和事件主要是指页面中的元素和元素触发的事件。元素要分层收集,主要分为页面、模块、元素三个层次。对模块进行分类是可以的,但是在嵌入式系统中,我们一般不分层上报,只上报最下层的模块,将模块的层级关系存储在服务器端。例如,微信的一级模块是“微信”、“通讯录”、“发现”和“我”。在“微信”中,还有“加号”、“搜索”、“消息列表”、“小程序”等二级模块。而我们点击“搜索”时,对于模块上报,不需要记录一级模块“微信”,只需要上报二级模块“搜索”即可。事实上,目标收集有一个很好的简单含义:谁对什么做了什么。这里的“who”是用户,“what”中的“what”是目标,“what”是事件。在制作埋点时,必须牢记这一点。接下来介绍一下所谓埋点的必要性和全面性。全面就是埋点要尽可能的全面,因为只有这样,当我们想到用某些数据做机器学习的时候,就不需要再埋点了,历史数据的价值就不会丢失.全面性有两个概念,一是埋点必须是完整的,二是一个点上传的信息必须是全面的。埋点一定要完整,这就需要交互设计图。在交互设计图中,任何一个交互元素都是一个需要考虑埋点的点。决定是否埋点的依据是这个元素的交互是否有商业意义,如果有,就需要埋点。此外,还需要在用户行为产生结果的逻辑代码中埋点。这样才能保证埋点的全面性。报告的信息如何全面?事件驱动。当使用事件作为埋点时,需要上传的信息包括事件本身和触发事件的用户信息,以及触发元素本身所在实体的信息(objective中对象的抽象世界)。比如我们在使用电商的时候,会收藏一个商品,那么点击收藏按钮的点击事件就是我们要埋点的点。采集是我们的行为,所以需要上报我们的唯一识别码、操作系统、经纬度坐标等信息。同时,我们点击了商品的收藏按钮,所以也需要上报商品的唯一识别码。接下来我们讨论必要性。是否需要报告所有事件和相关信息?答案是否定的,尤其是在用户量很大的应用中,每多上报一条信息就意味着大量的流量和存储成本。因此,只需要报告能够产生商业意义的事件和相关信息。比如App中经常出现的自动切换控件,这种切换事件一般不会上报,因为没有商业价值。基于UI设计,以商业价值为基础,以事件为出发点,以“本质”为目标埋点,可以保证目标采集的必要性和全面性。2.字典管理已经被埋没了,只是为了保证有资料。在产生价值之前还有一个重要的步骤,那就是字典管理。词典管理的第一点是埋编。一个埋点对应一个身份信息,这样每个埋点就相当于拥有一个身份。这些标识信息不仅可以在后续的数据分析中起到重要作用,也可以方便在埋点管理平台中进行管理。字典管理的第二个要点是方便检索。命名模块时,遵循全路径原则,即页面→模块→大部分子模块→元素→事件。比如淘宝首页男装类目下每个比较热销的商品的点击量要埋点,那么这个埋点的合理名称就是“首页_男装类目_更多热销_商品_点击”。当然,因为习惯不同,每个人都会有一个与自己系统相匹配的代号。这里介绍编码责任原则。首先,埋点编码是技术部门做的,不是业务部门做的。埋点技术部门需要建立一套完整的适用于全公司的埋点规范。如果业务端的产品经理要申请一个埋点,只需要写清楚埋点的点位和逻辑要求,然后向埋点的技术管理部门申请即可。嵌入式技术管理部门根据既定规则对新添加的页面、模块、元素和事件进行编码,然后更新嵌入式文档。测试人员根据埋点文档确认业务方产品经理提出的要求。测试通过的埋点在埋点管理系统中的状态变为已验证。版本发布后,埋点状态将变为有效。业务端的产品经理也可以在埋点信息上报后,通过数据逻辑来验证埋点的业务。3、埋点管理平台埋点管理平台,顾名思义,就是对埋点的管理系统。字典管理其实是埋点管理平台的一部分。埋点管理平台除了字典管理外,还包括埋点可视化管理、埋点状态监控、埋点检测等模块。接下来我们描述其余的模块。01埋点可视化管理模块埋点可视化管理模块主要负责埋点的可视化管理。可以看到在下图中,左边是一个App的展示,而右边则是一系列的埋点信息,用线和目标元素连接起来。埋点可视化实例图,使埋点设计时所见即所得地设计产品,大大减少设计遗漏。同时,可视化管理模块也是嵌入式测试的基础。02埋点状态监控模块埋点状态监控模块主要负责提醒埋点的生存状态、未知埋点的发现、数据异常等。埋点存活主要是监测已确认的埋点,是否存活主要通过测试人员进行回归测试来判断。未知埋点的发现主要是通过对报道资料的分析。如果有未知的埋点识别数据,会进行提醒,方便问题的逆向追踪。数据异常提醒模块主要从数据本身异常阈值和上下游埋点比例阈值进行监控。随着机器学习的引入,异常数据的判断进入智能化阶段,误报概率大大降低,监控的及时性大大提高。03埋点测试模块该模块很少被企业实现,但却是埋点管理平台可以升华的点。埋点测试模块主要是为测试人员提供的,因为它与可视化管理模块的联动使得产品经理很容易上手进行埋点测试。即该模块支持可视化模块同时显示应用程序在测试时显示的页面。当应用程序触发埋点时,可视化模块在接收数据时可以高亮对应的埋点标签。所以埋点测试模块是埋点测试人员和产品经理最想要的模块。下图是埋点管理系统主要模块的结构图。埋点管理系统主要模块结构图如果你的公司已经做出了以上埋点管理平台,那么恭喜你,你已经达到专业的埋点水平,你的数据价值之路已经是最好的砖石了.埋点技术下面说说主流的埋点技术。这里我们只从产品经理需要理解的原理角度来解释。01JavaScript埋点JavaScript埋点是一种主要用于Web应用的埋点,通过在页面底部添加一段JavaScript代码来完成埋点。一般在页面上显示为一个GIF小图标,图标来源为JavaScript文件地址。JavaScript内嵌点一般都支持自定义事件的采集,这样可以全面采集用户行为。JavaScript埋点也会使用cookie技术来识别用户身份,但如果用户清除cookie,用户身份就会丢失。02APP埋点App埋点可以说是一个起点很高的埋点技术。得益于JavaScript嵌入的技术和运营积累,App嵌入在很短的时间内就发展到了非常成熟的阶段。App的埋点方式主要有两种,带埋点技术和不埋点技术。1)带追踪技术App刚流行的时候,没有追踪技术,都是用追踪技术实现的。埋点技术就是在数据上报的逻辑代码中插入一段自己需要的埋点代码。这样的追踪技术可以根据业务需要准确追踪点位,但是也带来了一个问题:点位追踪管理。公司越大,部门划分越细。同时,随着人员的流动,一旦规则或埋点人员认知不同,埋点就会丢失或改变。前面说过,埋点是数据价值的起点,会影响到后面所有的分析和模型。因此,有埋点的技术成为了大家质疑的技术,无埋点的技术也在大家为有埋点的技术苦苦挣扎的时候应运而生。但没有嵌入式技术真的是世外桃源吗?其实这样的问题不是技术问题,而是管理问题。埋点技术暴露出来的问题也是管理制度缺失造成的。2)无埋技术无埋技术可以说是驾着彩云来到这个世界的,也是各大埋单平台所推崇的埋技术。非埋点技术的好处是通过引入SDK,接下来会自动完成埋点,这样可以避免很多人为的错误。这样看来,大家是不是都应该使用无埋点技术呢?非埋点技术就没有缺点吗?事实上,在对业务数据要求高的场景下,非埋点技术还是有一些不足的:采集的标准化使得非标准化采集无法实现;只能监控部分事件,不能上报所有事件信息;由于App开发的复杂度越来越高,没有一种嵌入点技术无法兼容所有场景;标准化上报使得很多业务的无效信息也上报,大量的无效信息上报会在大流量场景下带来巨大的流量和处理资源的浪费;无法在业务逻辑中获取信息跟踪。跟踪技术的选择我们已经知道了跟踪技术和非跟踪技术的优缺点,那么如何选择跟踪技术呢?接下来,我们将针对不同场景推荐追踪技术。公司刚刚起步,技术人员少,人员流动大。公司处于扩张初期,尚未进入精细化经营阶段。只要满足其中一项,就可以选择无埋点技术。项目处于天使期后的融资阶段,业务复杂度高,App应用技术多样。如果满足其中一条,就不要使用非埋点技术。当然,在融资阶段,还是可以采用私有化部署非埋地技术。公司流量大,业务复杂度高。企业进入这一阶段,需要采用埋点与非埋点相结合的技术。非埋点技术也需要做一定的修改,上报阶段需要通过后台配置项进行配置上报。这个阶段需要搭建自己的埋点管理平台,如4.2.3节所述。埋点和非埋点技术都是为数据采集而存在的,各有优缺点。不同阶段的企业、不同复杂程度的产品,可根据自身需求进行选择。效用最大化是组织的宗旨,所以不要在某个点上过度开发,以免造成不必要的浪费。作者简介:李凯东,某视频媒体大数据负责人,原京东数据中心应用数据平台部负责人,京东商城算法专家委员会核心成员,数据科学家阿里天池。本书节选自《数据产品经理:实战进阶》,经出版社授权发布。
