Skip to content

前端数据工程练习册

通过练习掌握埋点设计、AB 实验和指标体系。


难度分级

  • 🟢 基础:理解概念。
  • 🟡 进阶:能设计埋点和实验。
  • 🔴 深入:能设计数据驱动体系。

一、选择题

第 1 题(🟢)曝光是指?

A. 用户点击元素 B. 元素进入可视区 C. 页面加载完成 D. 用户离开页面

查看答案与解析

答案:B

曝光埋点指元素进入用户可视区。通过 Intersection Observer API 监听元素可见性。

第 2 题(🟢)AB 实验中,对照组和实验组必须?

A. 人数相等 B. 随机分流 C. 同时看到两个版本 D. 来自不同地区

查看答案与解析

答案:B

随机分流保证两组可比,排除混杂因素干扰。

第 3 题(🟡)北极星指标的特点是?

A. 越多越好 B. 最能反映产品核心价值 C. 只关注技术 D. 每天变化

查看答案与解析

答案:B

北极星指标是反映产品核心价值的单一指标。

第 4 题(🟡)以下哪项是护栏指标?

A. 转化率 B. 页面加载时间 C. 销售额 D. 新增用户

查看答案与解析

答案:B

页面加载时间作为护栏指标,防止实验带来性能副作用。

第 5 题(🔴)埋点口径不一致会导致?

A. 代码更简洁 B. 数据分析结果不可信 C. 页面加载更快 D. 用户流失

查看答案与解析

答案:B

口径不一致导致数据打架,分析结果不可信。

第 6 题(🟡)埋点发送失败时前端 SDK 应优先?

A. 直接丢弃失败数据 B. 存入本地存储后续重试 C. 弹窗提示用户 D. 立即刷新页面

查看答案与解析

答案:B

写入 localStorage/IndexedDB,网络恢复后重试。直接丢弃会导致分析偏差。

第 7 题(🟡)最小样本量计算取决于?

A. 用户年龄和性别 B. 基线转化率/MDE/显著性水平/功效 C. 页面加载速度和服务器数 D. 实验天数

查看答案与解析

答案:B

由基线转化率、最小可检测效应量(MDE)、显著性水平(0.05)和功效(0.8)决定。

第 8 题(🔴)DWD 层的全称和作用?

A. Detail 层,存储清洗后明细数据 B. Wide Dimension 层 C. With Dependencies 层 D. Direct Data 层

查看答案与解析

答案:A

DWD(Data Warehouse Detail)对原始数据清洗去重标准化。

第 9 题(🟢)GDPR 要求数据收集基于什么原则?

A. 尽可能多收集 B. 用户明确同意+最小必要 C. 无限期保留 D. 无需通知用户

查看答案与解析

答案:B

GDPR 要求 opt-in 同意和数据最小化原则。

第 10 题(🟡)以下哪种方式最能保证埋点数据可靠性?

A. 同步 HTTP 发送 B. 批量发送+缓存+重试 C. console.log D. 页面卸载时统一发送

查看答案与解析

答案:B

批量发送减少请求,本地缓存防丢失,失败重试保送达。

第 11 题(🟡)漏斗流失率计算公式?

A. 上一步/下一步 B. 下一步/上一步 C. 下一步-上一步 D. (上一步-下一步)/上一步

查看答案与解析

答案:D

流失率 = (上一步 - 下一步) / 上一步。从1000到600流失40%。

第 12 题(🟡)哪种留存分析最适合评估新功能长期用户粘性?

A. 日留存(D1/D7/D30) B. 按小时留存 C. 按分钟留存 D. 按季度留存

查看答案与解析

答案:A

日留存是最常用的方式。小时/分钟留存仅适用即时通讯等场景。

第 13 题(🔴)最准确的多端用户身份识别方案?

A. 仅设备ID B. 仅Cookie C. 匿名ID+登录后关联合并 D. 每次生成新随机ID

查看答案与解析

答案:C

统一 User ID:匿名用 uuid,登录后关联合并历史数据。

第 14 题(🟡)事件属性最佳设计实践?

A. 上报所有用户信息 B. 中文属性名 C. 统一命名+固定类型+避免混合类型 D. 每次重定义结构

查看答案与解析

答案:C

属性名用英文小驼峰/下划线,类型固定,避免混合类型。

第 15 题(🔴)最适合秒级用户行为分析的实时架构?

A. MySQL+Cron B. Kafka+Flink+ClickHouse C. Excel手工导入 D. 仅Redis缓存

查看答案与解析

答案:B

Kafka 高吞吐消息队列,Flink 实时流计算,ClickHouse 秒级 OLAP 查询。

二、场景分析题

第 16 题(🟡)产品希望验证新按钮颜色是否能提升点击率,如何设计 AB 实验?

查看答案与解析

参考思路

  • 假设:新颜色提升点击率。
  • 分流:随机 50% 用户看到新颜色。
  • 指标:点击率(核心),页面停留时长(护栏)。
  • 样本量:根据基线点击率和 MDE 计算。
  • 运行:收集足够样本,计算 p 值。
  • 决策:显著正向则全量,否则保留原方案。

第 17 题(🟡)团队发现某页面转化率下降,如何通过数据定位问题?

查看答案与解析

参考思路

  • 查看漏斗:访问 → 点击 → 下单 → 支付。
  • 定位转化率下降的具体环节。
  • 分析该环节的埋点、性能、错误。
  • 按渠道、设备、版本、地区下钻拆分。
  • 结合用户反馈和热力图辅助判断。

第 18 题(🔴)设计一个电商详情页的埋点方案,覆盖曝光、点击、转化。

查看答案与解析

参考思路

  • 曝光:商品主图、推荐商品进入可视区(IntersectionObserver)。
  • 点击:加入购物车、立即购买、收藏、分享。
  • 转化:下单成功、支付成功、支付失败。
  • 属性:商品ID、名称、价格、类目、位置、用户ID、渠道来源。
  • 注意:曝光需做幂等;转化需关联订单ID。

第 19 题(🔴)埋点数据丢失如何排查?

查看答案与解析

参考思路

  1. 在浏览器 Network 面板过滤埋点请求,确认是否发出。
  2. 检查广告拦截插件、隐私模式是否阻止请求。
  3. 检查 HTTP 并发限制和 keep-alive 超时。
  4. 排查服务端:网关限流、负载均衡丢弃、接口报错。
  5. 验证数据格式是否匹配服务端解析逻辑。
  6. 检查 sendBeacon 浏览器是否成功排队。
  7. 添加端到端监控,对比前端发送日志和服务端接收日志。

第 20 题(🔴)AB 实验转化率提升 5%(p=0.03),但男性+8%女性+2%,如何解读?

查看答案与解析

参考思路

  • p=0.03<0.05,整体统计显著。
  • 方向一致幅度不同,不一定是悖论。
  • 检查 Simpson 悖论:男女比例在两组是否均衡。
  • 下一步:检查分组是否均衡;计算性别分组 p 值;检查其他混淆变量(设备/时间段/地域);确认后决策全量但可做性别细分优化。

第 21 题(🔴)为日活千万资讯 App 设计指标树(Metrics Tree)。

查看答案与解析

参考思路

北极星指标:DAU

一级拆解:DAU = 新增 + 留存 + 回流

二级拆解:

  • 新增:下载完成率、注册转化率、首次阅读率
  • 留存:次日/7日/30日留存
  • 活跃:人均时长、日启动次数、Feed刷新次数
  • 内容:阅读量、播放量、互动率
  • 推送:到达率、点击率

三级拆解(护栏):启动耗时<2s、首屏<1.5s、接口成功率>99.9%、崩溃率<0.1%、埋点成功率>99%

第 22 题(🔴)加购到下单流失率从40%升到65%,怎么排查?

查看答案与解析

参考思路

可能原因:价格展示不一致、下单流程 Bug、支付体验变差、竞品活动

排查步骤

  1. 确认埋点数据准确性
  2. 按维度下钻:商品类目/用户渠道/App版本/时间粒度
  3. 查看加购到下单的时间间隔变化
  4. 下单页点击热力图
  5. 技术排查:下单接口耗时和错误率、JS错误
  6. 竞品与运营活动排查

第 23 题(🔴)多端用户行为关联方案(小程序/App/Web)

查看答案与解析

参考思路

匿名ID:未登录时每端生成 uuid 存 Storage。 登录ID:登录后从服务端获取统一 user_id。 关联机制:登录时将 anonymous_id 与 user_id 绑定。 数据合并:服务端查找 anonymous_id 的历史数据,更新 user_id。 跨端合并:同一 user_id 不同端通过 user_id 关联。 注意事项:隐私合规需用户同意;ID冲突按时间戳取最近;定期清理超90天未关联的匿名数据。

三、设计/开放题

第 24 题(🟡)为一款 SaaS 产品设计三层指标体系(业务/产品/技术)。

查看答案与解析

业务层:MRR、付费转化率、客户留存率/流失率、LTV、CAC

产品层:功能使用率、任务完成率、NPS、DAU/MAU、核心功能人均使用次数

技术层:页面加载时间(FCP/LCP)、接口成功率和响应时间、JS错误率、埋点覆盖率、核心功能 SLA

第 25 题(🔴)设计埋点治理方案,解决口径不一致、漏埋、错埋问题。

查看答案与解析

1. 规范先行:统一事件字典(Event Dictionary);命名规范如 [domain][object][action];属性名和类型规范。

2. 工具保障:类型化埋点 SDK(TS 编译时校验);CI 阶段埋点校验 CLI。

3. 流程管控:需求评审→开发自测→QA 验收→数据校验。

4. 数据监控:覆盖率监控;异常检测(量级突变告警);定期审计。

5. 口径管理:指标口径文档化含计算方式和数据来源;变更走审批流程。

第 26 题(🔴)设计一个实时数据看板,支持下钻分析。

查看答案与解析

数据采集:埋点→Kafka→Flink 实时计算;业务库→Canal→Kafka。

实时计算:Flink 窗口聚合(1/5分钟);计算 DAU、PV/UV、转化率、漏斗;结果写入 ClickHouse 和 Redis。

展示层:WebSocket 推送实时数据;ECharts/AntV 渲染;顶部全局指标,中部趋势图,底部明细表。

下钻:按时间/渠道/版本/地域/设备筛选;分钟级下钻到秒级事件流。

告警:核心指标异常波动自动告警;数据延迟超5分钟告警。

第 27 题(🔴)设计前端埋点 SDK 的完整架构。

查看答案与解析

1. 初始化模块:init({appId, serverUrl, userId, options});注册全局错误监听;注册页面生命周期。

2. 采集模块:自动采集(PV/点击/时长);声明式埋点(data-track-*);命令式埋点(tracker.track);曝光埋点(IntersectionObserver+防重复)。

3. 缓存策略:内存队列;IndexedDB 持久化;localStorage fallback。

4. 发送策略:批量发送(满N条或隔T秒);优先 sendBeacon;fallback fetch/XHR;指数退避重试(1s/2s/4s/8s 最大60s,最多3次)。

5. 错误恢复:启动自检清理过期缓存;失败不阻塞操作;flush() 强制发送。

6. 扩展:dev 模式 console 日志;Plugin 机制;采样率配置。

第 28 题(🔴)设计 AB 测试平台的核心架构。

查看答案与解析

1. 实验配置层:管理后台创建实验,定义变量和分流比例;实验元数据(实验ID/名称/层/域/时间)。

2. 分流引擎:hash(userId+experimentId)%100 决定分组;分层正交(每层不同 salt);用户级一致性。

3. 前端 SDK:请求分流配置并缓存 localStorage;计算分组判定实验命中;abTest.getVariation(key) API;自动上报曝光事件。

4. 指标计算:实时 KFlink 聚合;离线 Hive/Spark T+1 计算;二项分布用 Z/卡方检验;均值用 T 检验。

5. 统计决策:p 值 vs 0.05;护栏指标检查;运行时长检查(至少一周);AA 检验验证分流均匀性。

6. 结果展示:趋势对比、累计 p 值曲线、置信区间;支持下钻;历史实验汇总。


标签#data-engineering #ab-testing #metrics #tracking

最后更新:2026-07-06

基于 MIT 协议发布