京东科技埋点数据治理和平台建设实践 | 京东云技术团队

导读

本文核心内容聚焦为什么要埋点治理、埋点治理的方法论和实践、奇点一站式埋点管理平台的建设和创新功能。读者可以从全局角度深入了解埋点、埋点治理的整体思路和实践方法,落地的埋点工具和创新功能都有较高的实用参考价值。遵循埋点治理的方法论,本文作者团队已在实践中取得优异成效,在同行业内有突出的创新功能,未来也将继续建设数智化经营能力,持续打造更好的服务。

一、埋点治理背景

1.1 埋点数据的价值

随着线上流量红利高峰逐渐达到瓶颈,在精细化运营、数智化运营的大背景下,越来越多的公司开始认识到数据的重要性,并将其打造成为公司的核心资产,以数据为中心驱动业务发展。而埋点数据作为企业内部最重要的两大来源(埋点数据、业务数据)之一,其重要性不言而喻。

埋点是一种常用的数据采集方法。基于业务需求或产品需求,在应用页面中植入数据采集代码,监听用户各种行为事件(页面浏览、关闭,元素曝光、点击等),然后将采集的数据上报至服务端,服务端分别下发到大数据平台和搜索、推荐等各业务系统。通过分析数据,追踪用户行为和应用使用情况,推动产品优化或指导运营;通过实时的获取用户点击、浏览、停留等行为作为关键特征提供给搜索、推荐、广告等系统,来提升智能分发的转化和用户体验。

埋点数据上能影响业务运营数据分析、智能推荐、AB实验的准确性,下能影响数据仓库结构设计和数据采集团队的维护成本。

1.2 业内主流埋点方式的对比

从技术层面上,埋点分为代码埋点、可视化埋点、无埋点/全埋点。目前国内主要的第三方数据分析服务商和大型公司内部普遍支持。代码埋点又衍生出了声明式埋点、无痕埋点、服务端埋点等丰富的埋点方式。

通过多种埋点方式组合,可以在不同场景业务中灵活使用。比如在页面中元素或页面事件使用前端代码埋点;在Debug链路长的搜推代码中使用服务端埋点;产品运营等非研发使用可视化埋点。

1.3 为什么要治理埋点数据

然而随着业务的迭代变更,部分埋点数据失去效用。为了确保数据的质量、效率、安全、标准及易用性,需要对埋点数据进行治理。不仅是存量数据的治理,新增数据更是要保证从源头开始就是正确的。在埋点数据的生命周期内,每个环节制定原则性的管理方法和具体的落地措施。一个稳定的治理链路是埋点治理的基石。

从平台视角来看,埋点治理要解决的问题如下:

**质量问题:**最重要,大部分公司的数据部门启动数据治理的起因就是数据质量存在问题。例如数仓的及时性、准确性、规范性,以及数据应用指标的逻辑一致性等。

**成本问题:**互联网行业数据膨胀速度非常快,大型互联网公司在大数据基础设施上的成本投入占比非常高,而且随着数据量的增加,成本也将继续攀升。

**效率问题:**在数据开发和数据管理过程中都会遇到一些影响效率的问题,多是靠“盲目”地推人力在做。

**安全问题:**业务部门特别关注用户数据,一旦泄露,对业务的影响非常之大,甚至能左右整个业务的生死。

**标准问题:**当公司业务部门比较多的时候,各业务部门、开发团队的数据标准不一致,数据打通和整合过程中存在很多问题。

从业务视角来看,埋点治理要解决的问题如下:

埋点数据“全”: 因整体协助链条非常长,许多时候在需要做数据分析时,才发现页面有部分功能漏报埋点,产品需求未涉及等。

**埋点数据“准”:**需求开发测试阶段,往往重点关注业务逻辑,对于埋点上报这些辅助异步流程,设计评估不准确。会存在因验证不充分而导致数据不准确的情况。

埋点数据“快”: 推荐算法主要依赖数据驱动,埋点数据需要及时上报并反馈,推荐等智能应用系统才能根据用户当前行为给出精准的策略决策。

**埋点数据“统一”:**智能场景往往要通过多个业务线交叉数据作为输入特征或算法画像,每个业务线如没有统一标准规范,数据处理计算逻辑复杂且迭代维护成本很高。

**埋点数据“链路长”:**埋点数据从生产到使用,涉及运营、产品、研发、测试、数据分析师或算法工程师多个环节(如下图),问题沟通排查链路长。

**埋点数据“历史长”:**页面埋点随需求迭代更新较快,历史埋点设计文档缺少统一管理,不利于长期维护。

二、埋点治理实践

为解决上述问题,几经探索总结经验后,本文作者团队为埋点治理制定了全面的标准制度。遵循相应的制度,使得埋点治理工作有序有效开展。

2.1 制定全链路标准

作者团队制定了一套覆盖数据生产到使用,全链路的数据标准方法,从埋点数据定义、采集、验证、指标定义到数据生命周期管理都建立了相应环节的标准化的研发规范,发布了《埋点流程规范标准》。

2.2 制定埋点流程规范

作者团队制定了完整的埋点上报规范规程,并邮件通知各部门产研按流程,照规范上报数据。上报流程为埋点方案设计、埋点方案配置、埋点开发/测试、数据存储/服务、数据应用五个环节,每个环节都要通过必要的步骤才可继续向下执行。

2.3 建设一站式埋点管理平台

奇点埋点管理平台是科技内部统一的埋点平台,覆盖埋点数据定义、采集、生产、验证、基础指标应用、数据质量监控治理等埋点全生命周期。做到了埋点元数据统一管理,埋点信息查询简易化、埋点上报验证一键化、埋点数据质量追踪可视化。

2.4 成立组织保执行

通过和数据技术产品部门合作,在两个部门领导的支持下,作者团队成立了埋点治理盘古项目及埋点数据管理委员会。平台研发部团队是采集埋点数据工具的产研方,数据仓库体系是由数据技术部负责建设,所以以这两个团队作为核心,并由这两个团队负责联合各个业务线团队,一起完成数据治理各个环节工作和流程的保障。

奇点团队作为埋点数据采集和管理的主力,负责数据采集SDK,数据上报、清洗、存储、查询,埋点管理平台等。

2.5 宣导埋点和数据文化

过去由于数据文化的缺失,很多业务方意识不到规范埋点的重要性。未正确录入页面埋点信息、使用低版本采集SDK,造成了大量不符合标准的数据。组织培训会和埋点规范宣讲,推动数据合理规范上报,也是埋点治理的重点工作之一。

三、埋点治理阶段性成果

作者团队提供的数据采集服务范围除了京东科技下金融科技、京东云、数字城市等全部业务线外,还扩展到了京东物流等兄弟部门。

奇点针对金融业务深耕多年,对数据的安全性、稳定性、实时性有多种保障方案,已是业务运营过程中不可或缺的重要环节。奇点管理平台现已实现埋点管理、数据分析一体化。在埋点数据上报查询、数据监控、数据计算可视化展示等各个环节都有相应的管理工具。

3.1 埋点验证工具

过去验证上报数据是否准确,需要测试人员申请数据库表权限,然后手写SQL查询数据。为此作者团队做了埋点验证工具,既可以扫码查看本机实时数据、查看所有上报实时数据,也可以一键检测上报数据是否符合规范。该工具为测试人员节省了大量时间,也为埋点治理,推动用户规范录入起了辅助作用。奇点服务端使用Lua脚本并发处理,而不是传统的Web服务,处理请求速度更快,减少了服务器资源使用。实时数据存放在ES中,相比MYSQL数据库能容纳更多的数据量,查询速度更快。

3.2 埋点验证工具

作者团队在客户端数据上报、服务端数据转换、数据发送、落仓等每步都加入了监控,保证整条链路数据质量。监控定时检查计算数据上报的成功率、缓存率、丢失率,数据加工清洗后的留存率、落仓率等,一旦数据浮动超过设定的阈值,会自动发告警邮件给奇点研发人员。有了数据监控,能及时发现、高效处理数据量问题,降低数据损失,节省人力,极大提升了数据质量。

3.3 实时数据一站式看板

过去作者团队只关注埋点范围的研发业务,平台升级后,用户录入埋点信息后可通过看板即时查看PV、UV、点击率等指标实时数据。对于用户来说,省去了从各种库表取数分析的步骤;对于埋点治理来说,不但降本增效,推动用户规范录入页面信息,而且指标计算结果比各个业务方自己分析更加准确。

四、奇点埋点对比行业创新功能

4.1 埋点可视化展示

查看某个页面的埋点信息,通常采用分页列表的方式,详细数据要跳转到看板浏览。这种方式虽然罗列出了页面所有埋点,但是每个埋点的录入人不同,埋点多了之后具体每个埋点表示什么含义其他人并不清楚。

为此作者团队研发了埋点可视化工具,完美解决了上述问题。只要输入页面URL,选择合适的设备大小,页面哪些元素有埋点就呈现出来。每个坑位的埋点ID,点击曝光的数据只要点击一下浮框即可见。埋点可视化工具还支持查看实时上报的日志和汇总的实时数据。

埋点可视化展示通过数据采集脚本-奇点 JS SDK 自动加载可视化插件实现,使用postMessage 和addEventListener(‘message’),实现埋点可视化工具和所查看页面的数据双向发送与接收,从而实时展示埋点数据和埋点日志。为减少加载SDK的页面开销,作者团队做了优化处理,只有在可视化工具中打开页面才会加载该插件。

4.2 H5与原生App全链路数据打通

类似京东金融这样使用Native和WEB技术开发的混合应用,之前H5页面和原生页面的数据,使用了不同的SDK采集,用户在两端页面间跳转,数据是断裂的,只能分开统计,不能从整体上统计分析用户行为。采用归因统计的方法能关联部分两端的数据,但会导致数据统计不准确,不但增加数据分析人力、物力成本,不可靠的数据还会使运营无法精准投放广告,从而影响最终收益;

如今奇点团队实现了H5页面和原生页面数据打通,包括以下打通点:

访次打通: 访次是指用户在当前设备中累计访问次数,在京东金融 App 中,用户每次重新打开或者切后台超过 2 分钟后,访问的次数就会加1。可以根据访次来统计用户活跃度。

访序打通: 访序是指用户在当前访次内,页面的访问顺序,H5和原生页面打通后,页面的访序是连续的,可以更精准的查看用户访问页面路径。

来源埋点: 来源埋点是指上一个页面用户点击点最后一个埋点ID。根据来源埋点,可以精准定位上一个页面触发点。数据打通后,可以确定当前页面的热点来源。

首访埋点: 首访埋点是指用户打开App时首次点击的坑位埋点,根据首访埋点可以定位到进入某一 H5 或原生页面起始点。

上一个页面 URL 或原生页面 CTP: 为了精准分析用户行为轨迹,奇点会采集上一个页面 URL 或原生页面CTP,数据打通后,会形成闭环,即使是后退操作也会记录后退的前一个页面,从而可以更好的进行路径分析、页面可达分析、用户丢失率分析。

其他采集字段打通: 为了统一口径,统一指标,打通的字段还包含以下字段:设备 ID、手机品牌、手机型号、App 名称、App 版本。

两端打通前:

两端打通后:

数据打通的收益是巨大的,下面是一个实际使用案例-小金库页面流量来源归因分析:

4.3 页面ID自动匹配上报

过去统计PV时,根据访问页面的URL作为唯一标识,这个URL需要在奇点管理平台录入后方可进行计算。然而这种方式存在很大的缺陷。当遇到以下场景,根据哪个URL来计算,边界并不清晰。

  • URL中带参数,例如/path1/path2?param=value。不同参数可能代表同一个页面,也可能是不同的页面;
  • 动态路由,例如/path1/path2/:path3/,某个path是动态的,如果这个path是数字ID,是无法在奇点管理平台全部录入的;
  • Hash路由,例如/path1/path2/#/route1 / route2。如今前端单页面盛行,不同业务方做出的网站大相径庭,hash值不同,有的希望统计成一个页面,也有想统计成不同的页面;
  • 以上场景混合的情况。

针对此问题,作者团队提出了使用pageId代替URL的方案。即业务方在奇点管理平台录入时指定URL的哪部分是动态的还是固定的,并生成唯一页面的ID。在访问页面时,当前页面的链接与录入的动态规则做计算,找到最匹配的pageId后上报数据,最终使用pageId做数据统计,极大的提高了指标计算正确率。

为保证此方案的稳健性,作者团队也做了很多细节把控。比如为防止拉取CDN pageId JSON文件失败,增加了重试机制,在未获取到文件时先将上报数据缓存在本地。比如没有匹配成功的URL另做打标处理。还有监控站点更新页面,同步生成最新的配置关系等等。

五、未来规划

在埋点数据治理方向,奇点团队联合数据团队通过一系列方案实现自动化治理埋点数据。例如对不规范数据打标,使数据不进入数据分析模型层;各端统一使用页面唯一ID的上报方式;不规范录入信息的页面自动认领到页面站点下;向未录入页面的用户定向推送邮件等方式持续提升数据质量。

在平台能力建设方向,首先从精细化运营角度还要持续建设可视化埋点及与页面活动搭建平台打通提供组件化埋点能力,提升埋点开发效率。其次从埋点生命周期管理角度,奇点平台提供的埋点设计管理、代码扫描、埋点验证、埋点指标看板一系列工具要更好流程化整合,提升产、运、研等各方的协同效率。最后从智能化建设角度,对于流量数据看板增加智能分析、智能预测能力,提升数据应用效率。通过埋点数据作为基石,赋能业务场景,更好地服务支撑公司整体的数智化经营能力建设。

作者:京东科技 奇点研发组 转载请注明来源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/112810.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mac终端学习

命令1:ifconfig 作用:列出本机所有的网络设备以及其上面的配置,主要指的是ip地址和mac地址 其他用法:sudo ifconfig en4 add 10.10.10.12 netmask 255.255.255.0 作用:给en4加入别的网段 其他用法:sudo i…

延时摄影视频制作工具 LRTimelapse mac中文版特点介绍

lrTimelapse mac是一款适用于 Windows 和 macOS 系统的延时摄影视频制作软件,可以帮助用户创建高质量的延时摄影视频。该软件提供了直观的界面和丰富的功能,支持多种时间轴摄影工具和文件格式,并具有高度的可定制性和扩展性。 lrTimelapse ma…

ICLR 2022)ODConv:即插即用的动态卷积 (附代码)

论文地址:Omni-Dimensional Dynamic Convolution | OpenReview 代码地址:https://github.com/OSVAI/ODConv/blob/main/modules/odconv.py 1.是什么? ODConv是一种动态卷积算法,它的原理是在卷积过程中,根据输入数据的…

Azure机器学习 - 使用与Azure集成的Visual Studio Code实战教程

本文介绍如何启动远程连接到 Azure 机器学习计算实例的 Visual Studio Code。 借助 Azure 机器学习资源的强大功能,使用 VS Code 作为集成开发环境 (IDE)。 在VS Code中将计算实例设置为远程 Jupyter Notebook 服务器。 关注TechLead,分享AI全维度知识。…

【密评】商用密码应用安全性评估从业人员考核题库(十七)

商用密码应用安全性评估从业人员考核题库(十七) 国密局给的参考题库5000道只是基础题,后续更新完5000还会继续更其他高质量题库,持续学习,共同进步。 4001 多项选择题 网络和通信安全层面的通信主体一般包括哪些&…

Unity屏幕中涂鸦

LineRenderer LineRenderer是Unity中的一个组件,用于在场景中绘制简单的线段。 LineRenderer组件允许你通过设置一系列顶点来定义线段的形状和外观。它会根据这些顶点自动在场景中绘制出线段。 下面是LineRenderer的一些重要属性和方法: positionCou…

C++使用栈实现简易计算器(支持括号)

使用C实现&#xff0c;使用系统自带stac 支持括号处理支持小数计算支持表达式有效性检查支持多轮输入。 运行结果示例&#xff1a; 代码&#xff1a; #include <iostream> #include <stack> #include <string> using namespace std;//判断是否是数字字符 …

基于MFC的串口通信(Mscomm)

1、串口通信的概述&#xff1a; 串口是一种重要的通信资源&#xff0c;例如鼠标口、USB接口都是串口。串行端口是CPU和串行设备间的编码转换器。当数据从CPU经过端口发送出去的时候&#xff0c;字节数据会被转为串行的位&#xff0c;在接收数据时&#xff0c;串行的位被转换为…

k8s调度约束

List-Watch Kubernetes 是通过 List-Watch的机制进行每个组件的协作&#xff0c;保持数据同步的&#xff0c;每个组件之间的设计实现了解耦。 List-Watch机制 工作机制&#xff1a;用户通过 kubectl请求给 APIServer 来建立一个 Pod。APIServer会将Pod相关元信息存入 etcd 中…

【ROS系列】坐标系转换介绍和对齐

一、坐标系简介 本篇文章介绍&#xff1a;ECEF、ENU、UTM、WGS-84坐标系&#xff08;LLA) 1.1、ECEF坐标系 ECEF坐标系也叫地心地固直角坐标系。 原点&#xff1a;地球的质心&#xff0c; x轴&#xff1a;原点延伸通过本初子午线&#xff08;0度经度&#xff09;和赤道&am…

京东数据分析:2023年9月京东洗地机行业品牌销售排行榜

鲸参谋监测的京东平台9月份洗地机市场销售数据已出炉&#xff01; 9月份&#xff0c;洗地机市场的销售额增长。根据鲸参谋电商数据分析平台的相关数据显示&#xff0c;9月京东平台上洗地机的销量为9.2万&#xff0c;销售额将近2.2亿&#xff0c;同比增长约9%。从价格上看&#…

爬虫 | 【实践】百度搜索链接爬取,生成标题词云 | 以“AI换脸”为例

目录 &#x1f4da;链接爬取 &#x1f407;流程梳理 &#x1f407;代码实现 &#x1f407;结果 &#x1f4da;词云生成 &#x1f407;代码实现 &#x1f407;结果 &#x1f4da;链接爬取 &#x1f407;流程梳理 总体流程是&#xff1a;构建搜索链接 -> 发送HTTP请求…

大坝水库安全监测终端MCU,智能化管理的新篇章!

我国目前拥有超过9.8万座水库大坝&#xff0c;其中超过95%为土石坝&#xff0c;这些大坝主要是在上世纪80年代以前建造的。这些水库大坝在保障防洪、发电、供水、灌溉等方面发挥了巨大的作用&#xff0c;但是同时也存在一定的安全风险&#xff0c;比如坝体结构破损、坝基渗漏、…

当你在浏览器地址栏输入一个URL后,将会发生的事情?个人笔记

客户端 在浏览器输入 URL 回车之后发生了什么&#xff08;超详细版&#xff09; - 知乎 (zhihu.com) 大致流程是&#xff1a; URL 解析DNS 查询TCP 连接处理请求接受响应渲染页面 1.URL解析 地址解析&#xff1a; 首先判断你输入是否是一个合法的URL还是一个待搜索的关键…

【C++】set和multiset

文章目录 关联式容器键值对一、set介绍二、set的使用multiset 关联式容器 STL中的部分容器&#xff0c;比如&#xff1a;vector、list、deque、forward_list(C11)等&#xff0c;这些容器统称为序列式容器&#xff0c;因为其底层为线性序列的数据结构&#xff0c;里面存储的是元…

从内存管理的角度来看,Python语言的变量和参数传递情况解析

从内存管理的角度来看&#xff0c;Python语言的变量和参数传递情况解析 概述 从内存管理的角度来看&#xff0c;Python中的变量和参数传递有一些特点&#xff1a; ☆ 变量是对象的引用&#xff1a;在Python中&#xff0c;变量实际上是对象的引用&#xff0c;而不是对象本身。…

vi vim 末尾编辑按GA 在最后一行下方新增一行编辑按Go

vim 快速跳到文件末尾 在最后一行下方新增一行 移到末尾,并且进入文本录入模式 GA (大写G大写A) 在一般模式(刚进入的模式,esc模式) GA 或 Shift ga 先 G 或 shiftg 到最后一行 然后 A 或 shifta 到本行末尾 并且进入文本录入模式 在最后一行下方新增一行 (光标换行,文字不…

【Linux】Nginx安装使用负载均衡及动静分离(前后端项目部署),前端项目打包

一、Nginx导言 1、引言 Nginx 是一款高性能的 Web 服务器和反向代理服务器&#xff0c;也可以充当负载均衡器、HTTP 缓存和安全防护设备。它的特点是内存占用小、稳定性高、并发性强、易于扩展&#xff0c;因此在互联网领域得到了广泛的使用。 总结出以下三点: 负载均衡&#x…

lvsDR模式

LVS-DR模式 是最常用的LVS负载方式 直接路由模式 Lvs调度器 只负责请求和转发 转发到真实服务器 但是响应结果 由后端服务器直接转发给客户端 不需要经过调度器处理 可以减轻Lvs调度器的负担 提高系统性能和稳定性 工作原理&#xff1a; 客户端发送请求到vipLVS调度器接受请求…

miniconda快速安装

目录 一、Linux下miniconda安装 1.1、安装 1.2、miniconda初始化 二、Windows下miniconda安装 三、maOS下miniconda安装 3.1、安装 3.2、miniconda初始化 四、参考&#xff1a; 本文给出windows、macos、linux下快速安装miniconda方法。 对比conda&#xff0c;minicond…