前端-埋点-理念-通识-浅谈

本文将所有以Q&A的形式来进行描述前端

Q1:为何须要埋点?

  1. 采集用户浏览次数
  2. 采集用户交互行为
  3. 采集商品曝光...

先别管采集了什么,重点就是采集二字小程序

Q2: 采集来有什么用啊?

  1. 前端:上报用户行为啊!
  2. 前端:产品说要这些啊!
  3. 公司:服务于大数据业务!

思考埋点,不该从前端角度出发,但怎么就和大数据业务扯上关系了呢?后端

Q3: 什么是大数据业务?

  • 上图是一个标准的大数据业务的上下游
  • 能够看到数据采集是第一环节

但何时开始准备采集呢?api

Q4:何时须要埋点?

  1. 一款新产品规划完成须要看数据时
  2. 某个功能改版规划完成须要看数据时
  3. 想看两个方案A\B对比数据时
  4. 想看活动H5页面数据时
  5. 将内容投放到第三方但愿看到引流效果时
  6. 想看某个广告位曝光数据时
  7. 前端:产品要看隔壁老王昨天...

重点安全

  1. 埋点不该该是产品需求
  2. 应该是前端的平常工做之一
  3. no data no bb,不管是后期的复盘,仍是明确业务价值,仍是用来反怼产品,都是一把神器

Q5:埋点该采集点什么?

  1. 前端:公司有现成的sdk,我只要知道api就好了啊
  2. 前端:产品想啥姿式就啥姿式呗
  3. 大数据:小朋友才作选择,我全都要
    1. 数据采集是否丰富
    2. 采集的数据是否准确
    3. 采集是否及时

从大数据层面,对埋点数据的要求分为服务器

  1. 基础层(sdk来解决)
  2. 业务层(基于sdk,由前端开发来解决)

ok,又来了一个概念sdk微信

Q6:什么是sdk?

  1. 就是一段js,没什么出奇的:网络

    1. 全局事件监听
    2. 暴露一些方法,供业务方调用
  2. 通常sdk的理论基础:框架

    1. who:行为背后的人,具备哪些属性
    2. when:何时触发的这个行为?
    3. where:事件发生的地点,城市地区甚至GPS
    4. what:描述用户所作的事件的具体内容
    5. How:用户进行事件的方式
  3. 通常sdk的采集内容:性能

    1. 页面浏览数据
    2. 用户点击数据
    3. 页面加载性能
    4. JS报错
    5. 接口出错上报
    6. 自定义测速

重点:SDK采集数据 = 用户行为数据 + 前端健康度分析

Q7:sdk还有分类?

埋点是基于sdk,那找个sdk一把梭不就行了吗?

然而,并不行,由于平台不用,sdk也不一样,分为:

  1. Web
  2. 移动端(IOS/Android)
  3. 小程序(微信、支付宝、百度)
  4. App第三方框架(RN,Flutter,Weex)

因此,想要埋仍是要case by case的去看,什么业务平台,用什么sdk

Q8:那市面上有什么现成的sdk吗?

  1. 自主研发(大公司的必经之路)
  2. 百度统计(免费)
  3. TalkingData(收费)
  4. GrowingIo(全埋点
  5. Google Analytics(免费)
  6. Mixpanel(可视化埋点
  7. 友盟(收费)
  8. 神策(收费)

分析上面的产品,多了几个关键词:

  1. 免费
    1. 功能不够强大
    2. 或等着你买服务
  2. 收费
    1. 全套解决方案
    2. 价格贵
  3. 全埋点
  4. 可视化埋点

为何会有全埋点、可视化埋点这些分类呢?

这要从埋点存在的问题提及

Q9:埋点存在的问题?

埋点,最low也最简单的方式,就是在代码里直接写上埋点代码,而后随着时间,埋点问题就会爆发

  1. 埋点代码与业务代码写在一块儿,若是埋点代码远多于业务代码,形成阅读困难
  2. 埋点代码书写复杂,复杂度大于业务代码,成为开发者的一个大负担。
  3. 业务代码改动后,埋点代码也须要相应的改动
  4. 埋点代码不能支持新业务,须要新业务新增埋点

妈蛋,想一想都头疼啊,不过仍是须要仔细思考一下,埋点的痛点是:

  1. 代码埋点工做量大
  2. 埋点出错致使的数据问题,修复周期长(须要发版)
  3. 同一业务在多端多平台状况下容易发生埋点口径不一致

Q10:埋点痛点的解决方案?

想要解决埋点痛点,须要从两个方面入手:

  1. 多埋点方案组合
  2. 埋点平台化、系统化

又来了新概念,多埋点方案是啥?埋不就好了,怎么还要有这么多方案?

Q11:那埋点究竟有多少种方案?

随着时间的发展,埋点存在4种方案:

  1. 代码埋点
  2. 可视化埋点
  3. 无埋点
  4. 后端埋点

Q12:什么是代码埋点?

  1. 概念:所谓的代码埋点就是在你须要统计数据的地方植入N行代码,统计用户的关键行为。
  2. 优势:
    1. 使用者控制精准,能够很是精确地选择何时发送数据
    2. 使用者能够比较方便地设置自定义属性、自定义事件,传递比较丰富的数据到服务端。
  3. 缺点:
    1. 埋点代价比较大
      • 每个控件的埋点都须要添加相应的代码,不只工做量大,并且限定了必须是技术人员才能完成;
    2. 更新代价比较大
      • 每一次更新,都须要更新埋点方案,而后经过各个应用市场进行分发,并且有的用户还不必定更新,这样你就获取不到这批用户数据。
    3. 数据传输的实效性,网络缘由
    4. 数据不可回溯

Q13:什么是可视化埋点?

  1. 概念:利用可视化交互手段,经过可视化界面配置控件操做与事件操做发生关系。

  2. 优势:

    1. 可视化埋点解决了代码埋点埋点代价大的问题。
      1. 手动埋点到不侵入代码
      2. 学习成本低
      3. 统一采集技术,提供标准化埋点实现
      4. 所配即所得
      5. 埋点流程简化
    2. 可视化埋点解决了代码埋点更新代价比较大的问题。
      1. 埋点配置独立发布
  3. 缺点:

    1. 可视化埋点可以覆盖的功能有限,目前并非全部的控件操做均可以经过这种方案进行定制;
    2. 数据不可回溯

Q14:什么是无埋点?

无埋点也叫全埋点

  1. 概念:用户展示界面元素时,经过控件绑定触发事件,事件被触发的时候系统会有相应的接口让开发者处理这些行为。
  2. 优势:
    1. 可视化展现界面
    2. 技术门槛低,使用部署简单
    3. 用户友好性强
    4. 数据可回溯
  3. 缺点:
    1. 不能灵活地自定义属性,行为记录信息少
    2. 传输实效性和数据可靠性欠佳
    3. 因为全部的元素数据都收集,传输压力大,会给数据传输和服务器带来较大的压力。

Q15:什么是后端埋点?

  1. 概念:在后端采集数据,例如采集后端的日志。
  2. 优势:后端采集数据到分析系统中则是经过内网进行传输,这个阶段不存在安全和隐私性问题。同时,内网传输基本不会由于网络缘由丢失数据,因此传输的数据能够很是真实地反应用户行为在系统中的真实体现
  3. 缺点:缺乏用户交互行为数据,须要与前端埋码相结合

Q16:那究竟该用哪一种埋点呢?

Q17:有哪些适用的埋点场景吗?

Q18:埋点平台化,系统化又是什么?

前面了解的只是埋点方案的不一样,但事实上,想要把埋点实施好,还须要系统层面的解决方案,应包含:

  1. 埋点规范
    1. 埋点规范代码生成平台
  2. 埋点管理
    1. 注册埋点,添加、删除埋点
    2. 埋点可视化
  3. 埋点验证
    1. 测试埋点平台,可生成报告
  4. 埋点发布
    1. 独立的埋点发布平台
  5. 埋点监控
    1. 埋点数据回流
    2. 埋点错误上报

这些内容,须要平台化来支撑,也是各大公司埋点部门在作的事情,同时也是行业上这些数据公司生存的土壤。

相关文章
相关标签/搜索