前端数据工程练习册
通过练习掌握埋点设计、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 题(🔴)埋点数据丢失如何排查?
查看答案与解析
参考思路:
- 在浏览器 Network 面板过滤埋点请求,确认是否发出。
- 检查广告拦截插件、隐私模式是否阻止请求。
- 检查 HTTP 并发限制和 keep-alive 超时。
- 排查服务端:网关限流、负载均衡丢弃、接口报错。
- 验证数据格式是否匹配服务端解析逻辑。
- 检查 sendBeacon 浏览器是否成功排队。
- 添加端到端监控,对比前端发送日志和服务端接收日志。
第 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、支付体验变差、竞品活动
排查步骤:
- 确认埋点数据准确性
- 按维度下钻:商品类目/用户渠道/App版本/时间粒度
- 查看加购到下单的时间间隔变化
- 下单页点击热力图
- 技术排查:下单接口耗时和错误率、JS错误
- 竞品与运营活动排查
第 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