前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >用户行为数据采集:常见埋点方案优劣势对比及选型建议

用户行为数据采集:常见埋点方案优劣势对比及选型建议

作者头像
数据干饭人
发布于 2022-07-01 06:13:51
发布于 2022-07-01 06:13:51
5.7K0
举报

数据采集大数据的基石,用户在使用App、微信小程序等各种线上应用产生的行为,只有通过埋点才能进行采集。没有埋点,数据分析决策、数据化运营都是无源之水,巧妇难为无米之炊。但很多时候,“埋点”两个字却成了C端产品经理、数据产品、数据分析、数据开发等很多人不愿提及的痛。曾遇到过,C端产品要出某一新上线功能的数据效果作工作汇报,找到数据分析或数据产品经理,数据同学问”你埋点了么?”,C端PM一脸懵逼,“埋点不是数据团队做的事情么?”。

在数据化运营时代,要做用户行为数据分析,都需要了解埋点的流程以及常见的几种埋点方案的特点与应用场景。

一、埋点的作用

微信指数中,埋点的搜索热度甚至超过了数据分析,主要原因也是用户行为的数据分析必须要依赖于埋点的数据采集。埋点对于产品运营的主要作用包括:

1.产品优化分析

粗放式运营时代,产品数据分析主要以宏观的DAU、MAU、订单数、营收等宏观指标为主。只要能了解业务整体的经营状况就差不多了。而精细化运营时代,每一次产品的改版,每一个页面按钮的使用情况,都需进行数据效果的分析。例如,通过漏斗分析,发现业务主路径用户流失的主要节点,针对流失严重的步骤,进行产品或运营策略的优化。

2.洞察用户行为

通过对每个页面或页面元素的埋点,将用户的行为路径串联起来,可以清晰的洞察用户在产品内的行为路径。对于有多业务板块、多流量入口的业务,用户进站后的行为路径复杂多样,通过对用户浏览轨迹的统计分析,发现不同用户群体的使用路径,从而针对不同的路径设定差异化的产品策略。

3.用户分群与精细化运营

根据用户属性、用户行为事件,实现用户的精细化分层能力,进一步对不同用户群体进行个性化的运营触达。例如,对浏览商品详情页多次,但却未下单的用户,推送促销红包,刺激转化。

4.渠道策略优化

通过App的启动埋点,记录用户下载激活的渠道,通过站内的行为及转化数据,与站外广告投放归因数据结合,分析渠道的流量规模、渠道用户的质量(留存、客单价、复购力等),流量大、质量高的渠道扩大投放量,反之则减少投入,提升营销的ROI。

二、埋点埋什么?

在用户行为分析数据埋点中,最常用的模型是事件模型,该包括事件(Event)和用户(User)两个核心实体,同时还需要配合内容(Item)实体,才能做更多维度的分析。

1.事件(event)

每一次浏览、页面按钮/元素的点击都是一个事件,管理事件时通常按照用户的行为路径以及业务流程,对事件进行分类管理,例如分为浏览事件、点击事件、以及系统事件等类别。

一次事件完整的数据结构构成如下:在什么时候,什么位置,做了哪些事情,使用产品为了达到什么目标,他是如何使用的等问题。在埋点开发时,要有能够标识唯一事件的ID标识、事件描述信息、以及事件的属性信息,事件的属性主要包括用户属性和内容属性。

2. 用户(User)属性

每一次事件对应一个独立的用户实体,用户的画像(profile)信息构成了事件最重要的属性信息,例如用户的设备属性、地域属性、性别、年龄等

3.内容(Item)属性

事件的操作实体一般是内容或内容的集合,例如浏览某一页面,或某个商品,在埋点统计时,需要记录页面(page)、区块位置(Block)、元素(item)。

4.埋点需求怎么提

例如,团购App新上线了金刚位,来进行不同业务品类的流量分发。金刚位内容可能不同用户看到的是不一样的,在实际分析时,平台运营侧,偏重于按照位置分析,看哪一个位置的点击效果好,而品类运营则会聚焦于内容哪一个品类的转化更好。埋点需求的关键要素包括:

  • 事件名:点击金刚位
  • 事件ID:clickjingangwei
  • 事件类型:click
  • 页面:首页homepage
  • 区域:金刚区
  • 元素:item位置、item内容
  • 平台:微信小程序、APP(android、iOS)、PC
  • 应用版本:8.0.1
  • 用户属性:城市、设备机型等SDK可以采集的通用属性

以上仅做示例,实际上,每个公司的埋点模型定义的字段是不一样的,对于可以SDK默认收集的字段不需要提需求,仅对可以明确定义唯一事件的内容进行说明即可。

三、常见的埋点方案对比分析

1.代码埋点

代码埋点是最早的埋点方式,根据业务的分析需求,将埋点的采集代码加入到应用端。按照埋点实施方,又分为前端(客户端)埋点和后端(服务端)埋点两种类型。

(1)客户端埋点

由前端开发手动定义数据采集时机、内容等将数据采集的代码代码段加入到前端业务代码中,当用户在前端产生对应行为时,触发数据采集代码。

优点:

  • 按需埋点,采集数据更全面,几乎可覆盖所有数据采集场景
  • 行为数据和业务数据可充分联合分析

缺点:

  • 延迟上报,数据丢失率高(5%-10%)
  • 需要客户端发版,用户端更新App
  • 埋点开发工作量大
  • 埋点流程需要多方协作,容易漏埋、错埋

适用场景:

全面分析用户在客户端的操作行为,对于一些电商交易类的产品,需要把行为和业务数据充分结合分析

(2)服务端埋点

由服务端开发将埋点采集代码加入到后端服务请求中,当用户前端操作请求服务端数据时,按照约定规则触发埋点代码

优点

  • 按需埋点,采集数据更全面,几乎可覆盖所有数据采集场景
  • 行为数据和业务数据可充分联合分析
  • 数据采集实时上报,准确性高,丢失率低
  • 服务端更新,不需要客户端发版或用户更新版本

缺点

  • 纯前端操作不触发服务请求的按钮点击无法采集数据
  • 埋点开发工作量大
  • 埋点流程需要多方协作,容易漏埋、错埋

适用场景:

对于一些非点击、不可见的行为,或者要获取用户身份信息、更多的业务相关的属性信息。如果前后端都可以采集到,优先后端埋点

2.全埋点

全埋点也有称之为无埋点或无痕埋点的,主要是将埋点采集代码封装成标准的SDK,应用端接入后,按照SDK的采集规则自动化地进行数据采集和上报

优点:

接入SDK后,可自动采集数据,无需按需开发,节省开发成本

页面可见元素均可自动采集,数据更全面

埋点流程简单,业务使用埋点系统自助定义事件,新增埋点需求无需业务开发参与

缺点

动态页面或页面不可见行为数据无法采集

和业务强相关的属性信息采集困难

数据全部采集,数据存储压力大

适用场景:

业务场景简单,如工具、应用类的产品,或者业务发展初期,产品快速迭代需求比精细化分析优先级更高,只需要分析简单的PV、UV

3.可视化埋点

默认不采集数据,当数据分析人员通过设备连接用户行为分析工具的数据接入管理界面,在页面可视化定义需要采集的位点后下发采集请求,采集代码生效

优点:

默认不上报数据,可视化圈选才按需触发埋点,节约存储和传输成本

业务可视化圈选,埋点操作简单方便

缺点

数据只在埋点圈选定义之后才有,历史数据无法回溯

只能覆盖基本的点击、展示等用户行为,和业务强相关的属性信息采集困难

适用场景:

业务场景简单,如工具、应用类的产品,或者业务发展初期,产品快速迭代需求比精细化分析优先级更高,只需要分析简单的PV、UV

四、总结:如何选择埋点方案

从几种埋点方案的对比可以发现,没有一种方案是可以完美解决所有问题的。因此在实际选择时,要结合业务形态(强交易流程类的还是内容娱乐消费类)、企业发展阶段(发展初期,产品迭代需求强于全面的精细化分析需求)多个方面因素综合考虑。目前最常用的方案是代码埋点+全埋点组合使用。即用全埋点统计App(小程序)内用户基础的行为事件的PV/UV等数据,用代码埋点补充全埋点无法覆盖的场景,最终实现全面的精细化用户行为分析。在数据产品方面,配套的需要有埋点管理系统的支持,将埋点工作流转、埋点信息管理平台化。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据干饭人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linux 性能调优之配置CPU调度策略和可调参数
人生不是书上的故事,喜怒哀乐,悲欢离合,都在书页间,可书页翻篇何其易,人心修补何其难。——烽火戏诸侯《剑来》
山河已无恙
2024/03/18
1.4K0
Linux 性能调优之配置CPU调度策略和可调参数
图解Linux进程调度(二)
在内核中,肯定不能对所有的进程一视同仁,有的进程需要优先运行,有的进程需要运行更长的时间
用户6280468
2022/06/09
1.8K0
图解Linux进程调度(二)
一次脑残的记录:Linux 中实时任务调度与优先级
之所以叫做完全公平,是因为操作系统以每个线程占用 CPU 的比率来进行动态的计算,操作系统希望每一个进程都能够平均的使用 CPU 这个资源,雨露均沾。
IOT物联网小镇
2021/06/22
1.2K0
一次脑残的记录:Linux 中实时任务调度与优先级
【Linux 内核】实时调度类 ① ( 进程分类 | 实时进程、普通进程 | Linux 内核 SCHED_FIFO、SCHED_RR 调度策略 | 实时调度实体 sched_rt_entity )
" 实时进程 " 优先级 高于 " 普通进程 " , 如果当前 Linux 系统的执行队列中有 " 实时进程 " , 调度器 会 优先选择 " 实时进程 " 进行调度 ;
韩曙亮
2023/03/30
1.6K0
【Linux 内核】实时调度类 ① ( 进程分类 | 实时进程、普通进程 | Linux 内核 SCHED_FIFO、SCHED_RR 调度策略 | 实时调度实体 sched_rt_entity )
宋宝华: 关于Linux进程优先级数字混乱的彻底澄清
Linux进程的调度优先级数字会在好几个地方出现:内核,用户,top命令。他们各自都有自己的表示法。
Linux阅码场
2019/10/08
1.8K0
宋宝华: 关于Linux进程优先级数字混乱的彻底澄清
【Linux 内核】实时调度类 ② ( 实时调度实体 sched_rt_entity 源码分析 | run_list、timeout、watchdog_stamp、time_slice 字段 )
上一篇博客 【Linux 内核】实时调度类 ① ( 进程分类 | 实时进程、普通进程 | Linux 内核 SCHED_FIFO、SCHED_RR 调度策略 | 实时调度实体 sched_rt_entity ) 引入了 实时调度实体 sched_rt_entity 结构体源码 , 在 Linux 内核源码的 linux-5.6.18\include\linux\sched.h 头文件中 ;
韩曙亮
2023/03/30
3040
聊聊Linux内核进程调度下篇
进程优先级 Linux内核中进程优先级一般分为动态优先级和静态优先级,动态优先级是内核根据进程的nice值、IO密集行为或者计算密集行为以及等待时间等因素,设置给普通的进程;静态优先级是用户态应用设置给实时进程。在调度中静态优先级的进程优先级更高。 一般应用分为IO密集型和计算密集型;I/O密集型是进程执行I/O操作时候等待资源或者事件时候,数据读取到后恢复进程的运行,这样基本出于等待IO和运行之间进行交替,由于具有这样的特性,进程调度器通常会将短的CPU时间片分配给I/O密集型进程。计算密集型是进
用户4700054
2022/08/17
1.3K0
聊聊Linux内核进程调度下篇
linux的一个进程调度周期内新加入进程的处理机制分析
        最近在研究Linux的短程调度(进程调度包括长程调度、中程调度和短程调度,详见参考博客1)相关的算法和调度器,由参考博客1可知,短程调度的主要任务是按照某种策略和算法将处理机分配给一个处于就绪状态的进程,分为抢占式和非抢占式。中程调度(又叫中级调度)的主要任务则是按照给定的原则和策略,将处于外存交换区中的就绪状态或等待状态的进程调入内存,或把处于内存就绪状态或内存等待状态的进程交换到外存交换区。长程调度(又叫高级调度)的主要任务则是将已进入系统并处于后备状态的作业按某种算法选择一个或一批,为其建立进程,并进入主机,装入内存;当该作业执行完毕时,负责回收系统资源。如下图所示:
saintyyu
2021/11/22
4950
linux的一个进程调度周期内新加入进程的处理机制分析
进程调度开篇
在前面的几篇文章中,我们重点分析了如果通过fork, vfork, pthread_create去创建一个进程或者线程,以及后面说了在内核层面do_fork的实现。目前为止我们已经了解到一个进程是如何创建的。
DragonKingZhu
2020/03/24
1.3K0
进程调度开篇
【Linux 内核】进程优先级与调度策略 ① ( SCHED_FIFO 调度策略 | SCHED_RR 调度策略 | 进程优先级 )
参考 【Linux 内核】调度器 ⑨ ( Linux 内核调度策略 | SCHED_NORMAL 策略 | SCHED_FIFO 策略 | SCHED_NORMAL 策略 | SCHED_BATCH策略 ) 博客 , 介绍了 Linux 内核相关的调度策略 ;
韩曙亮
2023/03/30
6.6K0
【教程】Linux设置进程的优先级
https://blog.csdn.net/sxf1061700625/article/details/139725011
小锋学长生活大爆炸
2024/06/28
4620
Linux核心调度器之周期性调度器scheduler_tick--Linux进程的管理与调度(十八)
因而内核提供了两个调度器主调度器,周期性调度器,分别实现如上工作, 两者合在一起就组成了核心调度器(core scheduler), 也叫通用调度器(generic scheduler).
233333
2018/12/04
2.8K0
进程调度策略
根据优先级,进程分为实时进程和非实时进程(普通进程),Linux的进程优先级范围为[0, 139],其中实时进程优先级的范围为[0, 99],非实时进程的优先级为[100, 139),优先级的数值越低,说明优先级越高。
opencode
2022/12/26
7980
Linux进程调度学习!
进程调度决定了将哪个进程进行执行,以及执行的时间。操作系统进行合理的进程调度,使得资源得到最大化的利用。
用户6280468
2022/04/18
2K0
Linux进程调度学习!
实时调度类
按照POSIX标准的强制要求,除了“普通”进程之外, Linux还支持两种实时调度类。调度器结构使得实时进程可以平滑地集成到内核中,而无需修改核心调度器,这显然是调度类带来的好处。
233333
2018/12/14
8440
实时调度类
【Linux进程】初悉进程
在Linux中,进程是最基本的执行单位。进程调度在整个操作系统中属于核心地位,是操作系统实现多任务处理的关键操作,确保每个进程在有限的CPU资源下有序的完成相应操作。
小文要打代码
2025/01/09
3190
【Linux进程】初悉进程
Linux 进程管理之调度和进程切换
每个CPU都有一个运行队列,每个运行队列中有三个调度队列,task作为调度实体加入到各自的调度队列中。
刘盼
2021/04/29
2K0
Linux 进程管理之调度和进程切换
时间系统、进程的调度与切换
该文章介绍了Linux 系统中进程的调度、进程的优先级以及实时进程的调度策略。首先介绍了Linux 系统中的进程调度,包括不同的调度类型、调度算法和调度优先级。其次,讨论了Linux 系统中的实时进程调度,包括实时进程的定义、调度特性和实时进程的调度算法。最后,介绍了Linux 系统中进程调度的实现,包括内核中的进程管理、进程的地址空间、进程的调度和同步以及进程的内存管理。
s1mba
2017/12/28
2.5K0
时间系统、进程的调度与切换
60秒问答:抢占式多任务处理 vs 协作式多任务处理
方式一:A 项目做着做着,发现里面有一条指令 sleep,也就是要休息一下,或者在等待某个 I/O 事件。那没办法了,就要主动让出 CPU,然后可以开始做 B 项目。
早起的鸟儿有虫吃
2021/07/22
2.1K0
给进程设置实时优先级
实时进程和分时进程的调度算法不同,分别在rt.c和fair.c中实现。实时进程的优先级总是高于普通进程。
党志强
2020/02/11
4.1K0
推荐阅读
相关推荐
Linux 性能调优之配置CPU调度策略和可调参数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档