精华内容
下载资源
问答
  • 数据埋点

    2020-04-05 20:59:35
    目录数据埋点什么是数据埋点埋点的方式埋点是谁的工作案例需求背景埋点方案详情 数据埋点 什么是数据埋点   数据埋点,它其实就是数据采集领域的一个术语。指的是针对特定用户行为或事件进行捕获、处理和发送的...

    数据埋点

    什么是数据埋点

      数据埋点,它其实就是数据采集领域的一个术语。指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。

    埋点的方式

    埋点是谁的工作

      数据埋点是产品经理和研发工程师共同的工作。

    案例需求背景

      目前注册这块,有三个环节,每个环节都有好几个输入框。
      作为负责这块的产品经理,我现在想要知道,用户在向下操作的过程中不断流失的情况。

    埋点方案:
      鉴于人力和成本的考虑,我们初期没有必要实现一个大型的埋点系统,所以经过开会讨论,研发给出了一个快速敏捷方案。

    前端埋点和上报 -->数据处理 --> 数据分析

    埋点方案详情

      每次输入框输入结束 可通过 JS的事件触发,去调后台记录一条信息到数据库。

    一、触发时机:
    ① 是光标落下去的时候发送事件,还是填完了光标转移的时候发送事件,哪个更好。
    (由于产品经理的目标是为了知道有多少人输入,到哪个框,就不想填了,还是填完之后,直接把页面关了)
    ② 所以经过初步讨论,目前设定的是 输入框结束。

    讨论过程:

    结论:

      大喜和立成是站在不同的角度考虑问题,大喜考虑的是处理这个需求的工作量和数据量,立成的主张是忽略业务场景比较少的因素,目的是为了简化操作,降低实现这个需求的代价。所以有些时候,PM和技术经理需要做一些权衡。

    二、记录内容:

      这条记录的数据包括至少以下信息:
      UserId 用户IP等(能标识一个未注册用户的唯一标识) IP+UA+pvid+ 一次注册操作的唯一标识 + 页面标识(基本信息,支付宝信息)+输入框标识(如 手机号,图形验证码等。。。)+datetime 日期时间

    备注:

    ① UA:user agent 通过http头部信息取
    ② PVID

      因为一个用户可能多次打开这个页面,需要有一个pvid,每次打开的时候,随机生成一个串就可以了,保证两次打开,这个串不同。如果这三个页面是一个流程,那也可以就 在第一个页面生成pvid,然后传递下去。(如果这三个页面是一个流程,那也可以像你说的,在第一个页面生成pvid,然后传递下去,这样做的前提是,一定不能跳过第一个页面直接进入第二个页面。一般用户也没法直接进行到第二个页面吧,理论上是这样,如果真的可以直接进入第二个页面,会对最终的数据产生干扰。)

    三、上报频繁问题:

      如果担心时间上报很频繁的话,客户端可以做计时的处理
      比如他两次上报的间隔,如果不超过一秒钟,那就第二次就不要报,因为在一秒钟的时间,正常人是没有办法在输入框里填写一个有效的内容的
      这策略可能还要根据你实际的用户量做一个权衡。

    用户量调查:存量 10几万用户 增量 :每天几百个注册 故现阶段不作代码处理

    四、数据处理:

    定期后台批处理

      以用户的一次注册行为 作为统计 根据统计场景 根据具体业务需要去重 统计各个输入框的总数,如果有时间需要,可以分析出一个用户的一次注册行为在每个框的耗时并记录到一张表

    数据库or 文件 选型

      后端的话比较简单,用一个接口接受数据就可以了,可以看一下用户量,如果不大存在数据库也是可以的。

    定期清理的替代方案:

      如果长期统计需要关注 累积业务数据会越来越多。表设计可以设计为一张table_xx表和 table_xx_history表,其中table_xx 放业务数据,table_xx_history 放已作过数据分析的业务数据。

    数据分析

      根据各个输入框的总数的递减可以手工绘制趋势图 分析 用户的各个框的流失情况。

      根据 耗时记录信息,可以知道每个用户的具体时间长短。

    备注

    统计信息以【一个用户一次注册操作】为分析对象。

    记录的数据 根据需要进行更多的增加调整。

    JS触发调后台记录,要考虑好触发时机。

    展开全文
  • 1.摘要做产品的同学在产品上线...首先通过产品定位及目标来确定自己需要哪些数据,其次通过在产品各个流程环节中设置数据埋点,最后,当用户使用产品时,后台就能源源不断地接收到数据了。前几天看到一个段子,论数...

    1.摘要

    做产品的同学在产品上线后经常离不开一个词,数据分析。那么要如何进行数据分析呢?不妨先问自己这么几个问题。

    你要分析什么问题?是找问题还是验证?

    关于这些问题你需要哪些数据?

    这些数据从哪里来?

    要怎么解决这些问题呢?答案是数据埋点。首先通过产品定位及目标来确定自己需要哪些数据,其次通过在产品各个流程环节中设置数据埋点,最后,当用户使用产品时,后台就能源源不断地接收到数据了。

    前几天看到一个段子,论数据分析的重要性:

    一个哥们,有次聚会时说自己买了很多条iPhone数据线,家里的每个房间插一条,走到哪都能随时充电。在场的姑娘们都当成是段子笑笑都过去了,只有个细心的姑娘悄悄问他买了多少条,他说42条。现在她和他在北京三环内总共42个房间的数套豪宅愉快地生活,下个月结婚。

    2. 客户端埋点方案

    使用第三方统计SDK,如:友盟统计等。

    自己手动埋点。

    本文讲述的是自己手动埋点。

    本文埋点主要统计的数据为:当前页面,页面停留时间(进入与退出时间差计算),点击事件等。

    原理:记录每个页面进入退出(viewWillAppear与viewWillDisappear)的时间,用来计算页面停留时间,把触发时间以及一些点击行为操作全记到一个模型对象中,然后在页面离开或点击事件触发把这个模型写入到数据表中,到时候只要从表中取出数据再发送给后台即可实现埋点。写的不是很清楚,详情见demo

    3.优化处理

    为防止对后台接口造成数据攻击,每5分钟从数据库中取一次数据发送,每200条列表数据向服务发送,直到本次取出所有数据全部发送完毕。

    4.后期处理

    换了一份工作,新的项目中也做了形为分析即数据埋点,全部用swift编码,代码后期整理上传。

    未完待续...

    展开全文
  • 数据埋点是一种常用的数据采集方法。经过不断演化发展,由此所演变出的数据采集方法,已出现很多类型,并各具特点。经过不断演化发展,由此所演变出的数据采集方法,已出现很多类型,并各具特点。 数据埋点的原理是...

    数据埋点是一种常用的数据采集方法。经过不断演化发展,由此所演变出的数据采集方法,已出现很多类型,并各具特点。经过不断演化发展,由此所演变出的数据采集方法,已出现很多类型,并各具特点。

    数据埋点的原理是什么?

    对基于用户行为的数据平台来说,发生在用户界面的、能获取用户信息的触点就是用户数据的直接来源,而建立这些触点的方式就是数据埋点。当这些触点获取到用户行为、身份数据后,会通过网络传输到服务器端进行后续的处理。

    数据埋点从准确性角度考虑,分为客户端埋点和服务端埋点。客户端埋点,即客户操作界面中,在客户产生动作时对用户行为进行记录,这些行为只会在客户端发生,不会传输到服务器端;而服务端埋点则通常是在程序和数据库交互的界面进行埋点,这时的埋点会更准确地记录数据的改变,同时也会减小由于网络传输等原因而带来的不确定性风险。

    从分析的角度出发,数据越准确、越全面就越能达到理想状态;但在实际生产过程中却不得不考虑数据采集可行性等问题。由于数据分析工具的最终用户可能是企业内部的各种角色,如工程师、产品运营、市场甚至其他业务人员;大家会在不同时间,在产品不同的模块中,以不同的规则向产品中注入自己关心的采集代码。遵循传统方式,常见工作流程如下:
    数据采集
    团队内部还会使用一种表格来搜集各个团队的埋点需求,然后再交给工程师。如下图:
    数据采集
    实际上,即使是赫赫有名的数据分析服务商Mixpanel,在很长一段时间内也只能将这种工作流程作为它所建议的最佳实践,甚至不得不花篇幅在文档中心提供了几种不同风格的文档,以此帮助大家熟悉这种工作流程。

    为什么要做数据埋点?

    互联网应用(网站、APP)在研发时往往不会专门记录用户身份和行为数据,也不会包含专业的数据分析功能。但有时为了分析用户产生某些动作或不产生某些动作的深层原因,就需要详细的用户数据进行分析。这个时候就需要用到专业的用户分析工具以及埋点了。

    数据采集是任何一个数据平台的起始动作。对于互联网应用来说,用户行为的捕捉及获取是重中之重。如果没有准确、全面的用户身份和行为数据作为输入,在后续分析中得到准确洞察的可能性就会存在不确定性,营销闭环也会缺少过程数据依据,精细化运营更难以开展。

    展开全文
  • 数据埋点实现

    2021-08-27 17:47:36
    数据埋点 文章目录数据埋点整体流程数据采集数据传输数据存储数据统计分析数据可视化 整体流程 采集流程 架构图 数据采集 立方体模型 立方体建模是为了细化采集指标,最大限度得复用数据,减轻埋点工作量,...

    数据埋点

    整体流程

    采集流程

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HKlsICTu-1630057634807)(.\img\1286243-fc59cbc3bfcea318.webp)]

    架构图

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E098mVf4-1630057634809)(.\img\数据采集.png)]

    数据采集

    立方体模型

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SzaNf2t0-1630057634810)(.\img\立方体模型.png)]

    立方体建模是为了细化采集指标,最大限度得复用数据,减轻埋点工作量,统一埋点口径

    埋点事件

    事件定义:为了对用户行为进行统计和分析,我们使用一类被称为 “事件” 的消息来记录用户行为。‌

    事件组成

    • who:用户信息
    • when:时间信息
    • where:环境信息 ,设备环境、网络环境、业务环境
    • what:事件信息 ,事件标识、事件参数,比如点击了a商品。

    事件维度

    • 访问级维度,浏览器访问还是移动设备访问。
    • 页面级维度,访问的哪一个页面,首页还是个人信息页。

    事件类型

    • 无埋点事件,指不需要额外开发,通过监听、通知进行的埋点。
    • 埋点事件,指开发阶段,手动进行的埋点。

    手动埋点类型

    • 前端埋点

    • 后端埋点

    埋点方式

    • 硬编码

    统一口径

    定义前端sdk与后端sdk包

    方法列表

    clickProduct(String userId,Date clickTime,int env,String productId)

    payOrder(String userId,Date payTime,int env,String orderId)

    login(String userId,Date loginTime,int env,String status)

    addShoppingCart(String userId,Date addTime,int env,String productId)

    其中最后一个参数可以进行扩展,填充json数据

    数据传输

    数据传输方式

    可以使用websocket或http,需要对该方式进行池化处理

    日志收集服务

    可使用netty的IO复用模型实现日志收集,收集的日志存入kafka与数据库

    数据存储

    数据从两个点存储

    • 日志收集服务存入数据库
    • 分析服务分析后的数据存入数据库

    备份

    只存储当前时间窗口一年以内的数据,其它数据通过调度定时存入冷备数据库

    数据统计分析

    分析方式

    • 实时分析
    • 离线分析

    实时分析

    kafka数据,消费并进行实时分析,存入数据进入数据库,主要针对增量指标实时指标

    离线分析

    通过调度任务,对数据库的数据,进行定时调度,主要针对数据库存量指标,例如:月指标周指标年指标

    数据存储

    分析后数据存储进入到redis集群,按如下格式存入

    key :业务线:${userId}:下单量

    数据可视化

    可视化框架

    https://echarts.apache.org/zh/index.html

    后端

    根据请求实时取redis中的数据,进行组合形成前端需要的数据返回
    

    例如,展示本周的访问量

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bpCmSZyy-1630057634812)(.\img\柱状图.png)]

    • 从redis中获取 visit:week:count
    • 组装成{“code”:0,“msg”:“success”,“data”: [120, 200, 150, 80, 70, 110, 130]}

    sdk包设计

    类与接口设计

    顶级事件接口 Event

    • boolean add(T t)

    顶级包装接口 Wrapper

    • Thread wrapper(T t)

    抽象实现类AbstractEvent implements Event

    • protected static Executor executor,

    • protected int eventLength

    • protected Enum state

    • public abstract boolean add(T t)

    事件实现接口XXXXEvent extend AbstractEvent implements Wrapper

    • private static SocketPool socketPool

    • 构造方法XXXXEvent(){ executor = new ThreadPoolExecutor();socketPool=new SocketPool();} 根据实际情况配置核心线程,最大线程,任务队列,过期策略等参数

    • public Thread wrapper(T t){},从Socket线程池中获取具体的连接, 然后发送,最后归还到线程池

    • public boolean add(T t){},先对传入对象做处理,比如加上userId,env等信息,调用wrapper转成Thread对象,放入到executor线程池中等待调度处理

    • public static void start(){} 启动socketPool与executor

    • public static void end(){} 销毁socketPool与executor

    类图

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZWTDhf7P-1630134277376)(.\img\类图.png)]

    日志收集设计

    IO模型

    IO多路复用

    框架

    • netty 实现监听
    • kafka 实现消息堆积

    数据清洗

    无用或不符合规格的数据全部舍弃,响应{“code”:-1,“msg”:“useless data or data does not meet specifications”,“data”:null}

    时序图

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hGaJqoNj-1630134277377)(.\img\日志收集时序图.png)]

    分析服务设计

    kafka 消费模式

    at least onece模式

    pull/push

    pull(防止消息堆积)

    分析

    获取数据后对对应数据库存储的指标进行操作,例如基础访问量指标+1,购物车指标+某某商品,redis旁路一份数据

    数据类型

    • 实时数据

      监控kafka消费处理

    • 历史数据

      通过调度凌晨定时处理

    可视化设计

    数据组装

    根据表图需要的信息,从redis获取数据,进行组装,并返回

    刷新事件

    • 前端定时刷新
    • 前端点击刷新

    指标设计

    需求指标

    基础指标

    数据结构

    展开全文
  • 数据分析入门:初始数据埋点(二).pdf
  • 数据分析入门:初始数据埋点(一).pdf
  • 数据分析第一步做好数据埋点.pdf
  • 如何做好数据埋点

    2019-05-24 17:25:30
    如何做好数据埋点一、埋点技术二、数据埋点方式三、如何进行数据埋点四、埋点后能看到什么数据五、参考 一、埋点技术 代码埋点: 所谓的代码埋点就是在你需要统计数据的地方植入N行代码,统计用户的关键行为。...
  • 数据埋点之认识埋点

    2021-04-14 15:08:31
    数据埋点是数据采集的一种重要方式,主要用来记录和收集终端用户的操作行为,其基本原理是在App/H5/PC等终端部署采集的SDK代码,当用户的行为满足某种条件的时候,比如进入某个页面、点击某个按钮等,会自动触发记录...
  • iOS 数据埋点

    2018-04-12 18:00:53
    数据埋点 以下是数据埋点的基础类型,供各位参考,初始化简单,内部发送url也写好,因工作需要暂时写了基础类型。个人建议使用“钩子”去做,维护单一plist即可,耦合度降低很多,有时间会继续更新。 ...
  • 数据分析入门:初始数据埋点(二).zip
  • 数据分析入门:初始数据埋点(一).zip
  • 数据埋点大概梳理

    2021-06-20 13:09:36
    数据埋点为什么要埋点埋点形式埋点的流程规范1规划评审2 技术开发3 埋点验证4 发布上线5 监测评估埋点实践(最重要)埋点数据埋点位置 为什么要埋点 在实际的业务问题中,难免会遇到问题: 分析时缺少关键的数据指标,...
  • 作业一、发现日常使用产品(WEB、APP)的数据埋点现象,并总结记录下来 所在公司主要是基于微信小程序和app端的在线教育,通过本次埋点学习发现了公司是根据触发条件不同(点击按钮还是进入页面)来分别开发了两张...
  • 数据埋点之神策全埋点总结

    千次阅读 2019-09-11 14:28:57
    数据埋点之神策全埋点总结项目介绍埋点流程功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右...
  • 关于数据埋点的基础认识

    千次阅读 2019-11-13 16:15:54
    数据埋点原理 数据埋点,对于产品迭代而言,有很重要的指向意义。 数据分析是我们获得需求的来源之一,通过对数据的比对,对数据趋势的分析,能让我们发现哪些环节存在问题,哪些环节有提高空间。同时,数据分析也...
  • 浅谈数据埋点

    2021-04-05 17:40:00
    因此,数据埋点可以简单理解为:针对特定业务场景进行数据采集和上报的技术方案。 数据埋点非常看重两件事,一个是数据记录的准确性,另一个则是数据记录的完备性。 先讲数据的准确性。数据埋点非常强调规范和流程...
  • 数据埋点
  • 初始数据埋点

    2020-08-24 10:39:32
    最近要做一些数据埋点的业务,在网上找了一些资料,感觉这个讲的挺好的:-------->传送门
  • 初始数据埋点(一)

    2019-08-20 15:19:37
    数据埋点 埋点概述 埋点分析,是网站分析的一种常见的数据采集方法。 数据埋点方式 数据埋点分为初级、中级、高级三种方式。数据埋点是一种良好的私有化部署数据采集方式。 初级:在产品、服务转化关键点植入...
  • APP数据埋点

    2018-02-24 11:12:00
    经过大半年的努力,产品终于开始趋向稳定,之前的版本一直在探索,需求经常改动,没时间系统进行埋点。...这次亲历了产品(APP)从零开始进行数据埋点的过程,分享出来给大家,看看一个完整的APP数据埋...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,037
精华内容 8,414
关键字:

数据埋点