数据埋点2

news2024/12/24 11:34:50

文章目录

  • 1 数据埋点流程
  • 2 六个步骤实现数据埋点设计
    • 2.1 确认事件与变量
    • 2.2 明确事件的触发时机
    • 2.3 明确事件的上报机制
    • 2.4 设计数据表结构
    • 2.5 统一字段命名规范
    • 2.6 明确优先级
  • 3 以电商购物成交转化为例实现数据埋点设计

作为数据分析师的你,是否和我一样经常会被业务方拿着两个不同数据平台的报表数据进行灵魂拷问。下面的场景你应该在熟悉不过了。

一场拉新促活的活动之后,运营拿着两个不同团队维护的报表数据来问我,为什么两份报表统计出来的日活跃用户(DAU)数量不一致?
我解释道,“你确定两份报表的统计口径是一致的吗,最小的统计维度是一致的吗?”
运营说,“都是一样的啊,统计的都是DAU。”
我说,“DAU以account_id为最小维度进行统计或者以device_id或者以open_id为最小维度进行统计的结果都会有一定的差距。
我们这边是以account_id为最小单位统计的DAU。而且,即使统计口径一致,埋点和上报方法也有区别。”

后来,我向另外一个数据平台的相关人员咨询之后,发现他们统计DAU的最小单位是open_id,不同的统计口径会造成一定的数据差异。而统计口径的差异不止出现在报表统计阶段,在数据埋点阶段也会出现口径不一致的问题,触发事件的条件、数据埋点的方式、数据上报的方式不同都会造成数据不一致的情况出现。

为了避免这些问题,小编把自己踩过的坑总结出来并形成一套方法论,希望初学的你或即将转行的你能够少采坑,高效地完成数据埋点工作!

1 数据埋点流程

数据埋点是数据治理流程中重要的一环,是一项多部门协作共同完成的工作,数据分析师在这个流程当中承担着重要的角色。我们将数据埋点流程梳理为下图,数据分析师从数据需求评估阶段直至数据应用阶段都会参与流程,可谓是埋点工作的中流砥柱。
在这里插入图片描述
在数据埋点这项工作中,数据分析师需要立足于当前的数据需求,提炼出数据指标方案,并且构思要看这些指标需要有哪些数据,这些数据也就是需要埋的点。当然,这只是一些初步的埋点方案,想要让埋点指标变得“准”而“全”当然还需要另外一些方法实现,比如用户路径之类的。有了初步的埋点规划之后,分析师还需要确定时间触发机制和上报机制,因为不同的机制意味着不同的统计口径。对于新业务来说,为了避免统计口径不一致而出现乌龙事件,最好能和之前的口径一致,以方便横向比较。除此之外呢,统一各个项目之间的字段命名和表结构也是一项必不可少的工作,这个步骤也是数据治理流程当中必不可少环节。完成这些步骤之后,一份初步的埋点就差不多完成了。在和需求方以及程序的反复讨论中修改完善埋点文档,将埋点文档交付程序进行埋点,在此期间分析师需要通过测试环境的数据验证当前埋点是否存在一定的问题,若有问题还可以在该阶段进行修改,若无问题可上线埋点事件。

2 六个步骤实现数据埋点设计

数据埋点设计师数据分析师是埋点的重中之重,埋点设计得好能够极大地方便后续的数据应用。对于数据埋点设计,我们也总结了六个关键步骤。

2.1 确认事件与变量

这里的事件指产品中的功能或者用户的操作,而变量是指描述事件的属性或者关键指标。确认事件与变量可以通过AARRR模型或者UJM模型进行逐步拆解,理清用户生命周期和行为路径,抽象出每一个步骤的关键指标。

2.2 明确事件的触发时机

不同的触发时机代表不同的计算口径,因此触发时机是影响数据准确的重要因素。以用户付款为例,是以用户点击付款界面作为触发条件,还是以付款成功作为触发条件进行埋点呢?二者口径不同,数据肯定会有一定差异,因此明确事件触发条件非常重要。

而在用户付款这个例子中,我们建议使用两个字段记录用户付款行为,一个字段记录点击付款界面这个行为,另一个字段记录是否付款成功。

2.3 明确事件的上报机制

不同的上报机制也是数据准确性的重要影响因素之一,客户端上报数据可能会由于网络原因出现丢包的情况,前面章节已经详细介绍过,这里就不在赘述上报机制之间的异同。而作为数据分析师,在完成埋点工作的时候也需要确定数据是实时上报还是异步上报,以确定埋点是否合理,并及时调整数据埋点方案。

2.4 设计数据表结构

统一的数据表结构,方便团队内部进行数据的管理和复用,建议团队内部形成一套统一的数据结构规范。例如,将表分为不同的层级,第一层记录用户的基础信息,包括id,地区,昵称等;第二层记录玩家行为信息。

2.5 统一字段命名规范

有了统一的数据表结构档案还是不够的,统一数据命名规范数据埋点工作的重要一环。确保同一变量在所有的数据表当中都用统一的字段,比如消费金额这个字段,我们希望所有的表只要出现消费金额都用Amount字段,不要出现money,pay等其他字段。
建立公司内部或者团队内部的命名规范是非常必要的,可以采用「动词+名词」或者「名词+动词」的规则来命名,比如「加入购物车」事件,就可以命名为:addToCart。

2.6 明确优先级

数据埋点都是为数据应用做铺排,埋点之后分析师可能面临着搭建指标体系和数据报表体系的工作,可以根据报表的优先级、埋点的技术实现成本以及资源有限性为数据埋点确定优先级。

3 以电商购物成交转化为例实现数据埋点设计

(1)通过UJM模型拆分用户购买商品的路径:将用户购买路径拆解为注册-登录-商品曝光-商品点击-浏览页面详情-加入购物车-生成订单-订单支付步骤,根据产品或策划提的数据需求,确定每一个步骤学要看哪些字段才能实现数据需求。
(2)确认触发机制:明确是在点击按钮时记录行为还是在用户完成该步骤时记录行为。
(3)确认上报机制:明确数据上报机制,是实时上报还是异步上报,不同的上报机制采集到的字段可能不一样,或者说需要将字段拆分到不同表进行记录。
(4)统一字段名:业务内同一变量在所有的数据表当中都用统一的字段,例如,用户编号用account_id,用户所属国家用region,用户所属地区用ip_region等等。
(5)统一表层级结构:我们这里采用两层数据表结构,第一层存放用户基信息,第二层存放用户行为信息。这个根据团队内部的数据接入规范进行调整,只要是统一的结构,对于数据分析师的分析都是有利的。
(6)明确数据优先级:根据埋点需求的紧急程度,给每一个买埋点任务标上优先级。
在这里插入图片描述
根据上面的六个步骤,将每一个步骤需要记录的字段按照标准格式汇总到文档,即可完成初步的埋点设计。当然完成初版埋点设计之后,还需要与产品、策划、程序一遍一遍过文档内容,不断修改完善,直至三方会谈达成统一意见。
在这里插入图片描述
参考链接
https://mp.weixin.qq.com/s/8lHa-Z5KdBGqoEGS5I9glQ
http://www.woshipm.com/pd/3070837.html
https://mp.weixin.qq.com/s?__biz=MzI2MTAxOTk5OQ==&mid=2650945421&idx=1&sn=b16a4fbe3b535b91b21baa8a2855aa8b&chksm=f19657bdc6e1deab3568d0020033a58ffeea90806eff483d9e8d8d32f3115e9160db0a72f68b&scene=21#wechat_redirect
https://www.cnblogs.com/flzs/p/13815329.html

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于改进的离散PSO算法的FJSP的研究(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

排位赛结果“测谎”

甲乙丙丁说的关于排位赛结果只正确一半,根据甲乙丙丁说的信息求出正确的排位赛结果顺序。 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那…

chatGPT免费入口-ChatGPT国内中文版网站

chatgpt怎么使用 如果您有Chat GPT的API Key并想要使用Chat GPT进行自然语言处理或生成处理,您可以按照以下步骤操作: 安装必要的软件和工具 在使用Chat GPT之前,您需要先安装一些必要的软件和工具,例如Python解释器、HTTP客户…

【Android车载系列】第11章 系统服务-SystemServer自定义服务

1 编写自定义系统服务 1.1 AIDL接口定义 系统源码目录/frameworks/base/core/java/android/app/下新建AIDL接口IYvanManager.aidl package android.app;/** * 目录:/frameworks/base/core/java/android/app/IYvanManager.aidl */ interface IYvanManager{String …

YOLOV5入门讲解+常用数据集

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…

TIM-输出比较(PWM)——STM32

TIM-输出比较——STM32 Oc (Output Compare) 输出比较 输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形 每个高级定时器和通用定时器都拥有4个输出比较通道高级定时器的前3个通道…

2023年股票质押违约处置研究报告

第一章 行业概况 1.1 产品定义 股票质押违约处置是指在股票质押融资中,当质押人(股票持有者)无法按照约定履行还款义务时,质权人(通常为金融机构)对质押股票进行处置的一系列活动。这个行业涉及到多个领域…

DAY 55 mysql数据库管理

常用的数据类型: 类型说明int整型,用于定义整数类型的数据fload单精度浮点4字节32位,准确表示到小数点后六位double双精度浮点8字节64位char固定长度的字符类型,用于定义字符类型数据。varchar可变长度的字符类型text文本image图…

Python基础合集 练习23 (错误与异常语句处理3)

‘’’ raise语句 raise[ExceptionName[(reason)]] 其中ExceptionName[(reason)]是可选参数用来指定抛出异常名称和原因,如果省略该参数,就会原样输出当前的错误 ‘’’ 在下面程序中,使用raise语句抛出ValueError异常 def num_calu(): book int(input(输入图书数量: )) stu…

探秘C语言:位运算符的奥秘

本篇博客会讲解C语言中的6个位操作符&#xff1a;按位取反(~)、按位与(&)、按位或(|)、按位异或(^)、左移(<<)、右移(>>)。这6个操作符都是操作整数的二进制位的。在学习这6个位操作符之前&#xff0c;大家需要先掌握“整数在内存中的存储”这个知识点&#xf…

数电中需要注意的问题

逻辑函数表达式之间的相互转换 &#xff08;更多请详见PPT&#xff09;若题目要求用&#xff1a; 与非门实现逻辑函数&#xff0c;则画卡诺图圈出值为1的然后化简 或非门实现逻辑函数&#xff0c;则画卡诺图圈出值为0的然后化简 与或非门实现逻辑函数&#xff0c;则画卡诺图圈…

一文了解获得 Zebec Labs 投资的 Coral Finance,空投计划或在不久推出

在前不久&#xff0c;Zebec Labs宣布对链上衍生品协议Coral Finance进行150万美元的投资&#xff0c;以帮助该协议完成早期启动并&#xff0c;并在后续持续的为其提供孵化支持。Coral Finance将在不久部署在Nautilus Chain主网上。据了解&#xff0c;Coral Finance是Nautilus C…

51单片机电路基础

一.电平特性 单片机是一种数字集成芯片&#xff0c;数字电路中只有两种电平:高电平和低电平。 高电平: 5V低电平: 0V TTL电平信号被利用的最多是因为通常数据表示采用二进制&#xff0c;5V等价于逻辑“1”&#xff0c;0V等价于逻辑“0”。 TTL电平规定高电平输出电压>2.…

博客系统的后端设计(一) - 准备工作与设计数据库

文章目录 准备工作1. 创建一个 Maven 项目2. 引入依赖3. 创建目录结构 设计数据库 这次开始进行博客系统后端的进度&#xff0c;本篇博客讲的是 准备工作和 设计数据库两个步骤。 准备工作 1. 创建一个 Maven 项目 2. 引入依赖 在地址栏中搜素 https://mvnrepository.com/&a…

【微信小程序开发】【SpringBoot】解决真机调试中无法向后台请求数据的问题

前言 最近做了一个微信小程序SpringBoot的一个项目&#xff0c;在编译器中用localhost请求后台可以实现&#xff0c;但是在手机上进行真机调试就无法正确的从后台请求数据&#xff0c;问题已经解决&#xff0c;下面是我的一点经验 获取本机的ip地址&#xff08;ipv4&#xff09…

解决电脑由于找不到vcruntime140_1.dll,无法继续执行代码的方法

vcruntime140_1.dll是微软Visual C程序的运行库文件之一。它包含一些程序所需的函数和其他重要数据&#xff0c;这些程序通常是用Visual C编写的。如果缺少这个文件&#xff0c;可能会导致一些程序无法正常运行&#xff0c;电脑提示vcruntime140_1.dll无法继续执行代码&#xf…

C++三大特性—继承“名字搜索与默认成员函数”

继承中的类的作用域 每个类定义自己的作用域&#xff0c;在这个作用域中定义自己的成员。当存在继承关系时&#xff0c;派生类的作用域嵌套在基类的作用域之中。如果一个名字在派生类的作用域中无法解析&#xff0c;那么编译器将继续在外层的基类中寻找该名字的定义。 继承关系…

next.js博客搭建_初始化next项目(第一步)

文章目录 ⭐前言⭐next初始化TypeScript 开发项目安装react的ui框架&#xff08;tDesign&#xff09;设计布局 ⭐结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本期给大家分享next项目搭建博客的开始。 背景 因为我的博客网站https://yongma16.xyz是基于vue2搭建的&am…

Centos7快速安装Kibana并连接ES使用

Elasticsearch 提供了一个名为 Kibana 的官方可视化界面。Kibana 是一个开源的数据可视化和管理工具&#xff0c;用于 Elasticsearch。它提供了丰富的功能&#xff0c;如仪表板、图表、地图等&#xff0c;帮助您更好地理解、搜索和可视化存储在 Elasticsearch 中的数据。 在 C…

营收、利润增速第一!海尔智家为何领跑?

“企业只有保持领先的能力&#xff0c;才有可能取得经济成果。” 管理学大师德鲁克曾如此强调。所谓“领先”&#xff0c;就是独一无二的、有价值的东西。利润&#xff0c;是企业在某个领域取得领先优势后&#xff0c;必然获得的回报。 这种“领先优势”&#xff0c;在各行业…