第3章:Reach(触达)计算方法

3.1 适用场景

本章适用于需要定量评估功能触达能力的产品决策场景,包括但不限于:

  • 评估新功能上线后的实际曝光人数
  • 比较不同渠道/模块的触达效率
  • 为RICE评分中的Reach维度提供数据基础
  • 识别触达覆盖率不足的信号,指导推广策略调整

3.2 前置条件

项目要求检查点
数据源已接入埋点系统或业务日志,可统计独立用户标识UV(Unique Visitor)统计口径已对齐
时间窗口明确评估周期(如7天、30天、单次活动期)起止时间戳已定义
用户去重规则按设备ID/用户ID/手机号等唯一标识去重去重字段无空值、无异常重复
触达定义明确“触达”的行为阈值(如进入页面、看到关键元素、点击等)产品文档中已描述触发条件
常见陷阱:误将“曝光次数”(PV)当作触达人数(UV),导致数值虚高。必须使用去重后的独立用户数。

3.3 操作步骤

  1. 确定触达事件 – 选择能代表“用户已看到/体验到”的关键行为,例如:page_view、feature_impression、modal_open。
  2. 提取原始日志 – 从埋点数据仓库中获取指定时间范围内触达事件的所有记录。
  3. 去重统计 – 按用户唯一标识对记录进行去重,得到独立触达用户列表。
  4. 计算触达人数 – 去重后的用户计数即为Reach值。
  5. 记录上下文 – 保存事件定义、时间窗口、去重口径,便于后续核验或复用。

3.4 输入输出物

类型名称格式说明
输入1触达事件日志CSV/JSON/Parquet,包含字段:user_id, event_name, timestamp
输入2触达事件定义文档描述触发条件、归属产品模块、版本号
输出1Reach数值整数,表示独立触达用户数(示例:153,420)
输出2去重用户清单(可选)仅留存脱敏ID,用于异常复核

3.5 责任边界

  • 产品经理:定义触达事件、确认去重口径、校准业务含义。
  • 数据分析师/数据开发:执行SQL/Python查询、保证数据准确性、处理异常数据。
  • QA/验收人:核对Reach值与埋点验证结果的一致性。
建议:产品经理应提供至少一个“可人工验证的小样本”,例如指定10个测试用户,确认这10人是否全部出现在去重结果中,以验证数据链路无误。

3.6 记录材料

材料名称内容要求保存位置
Reach计算文档事件定义、SQL脚本、时间窗口、去重字段、结果数值部门知识库 / 产品需求文档附表
异常处理日志时间、问题描述、根因、处理方案、最终Reach值项目共享文件夹
验收签收单QA签名、数据比对结果、是否通过项目管理工具

3.7 异常处理

异常场景原因处理动作
触达人数为0事件未正确触发、埋点延迟、查询条件有误检查埋点是否上线;确认时间窗口内是否有正常流量;在日志中搜索测试用户行为
触达人数远超预期去重失败(如user_id出现空值被当作不同用户)过滤无效ID;核对去重逻辑;重新统计
多次统计结果不一致时间窗口不固定、事件定义变更固化查询语句和时间参数,使用版本号标记定义
数据缺失部分渠道未接入埋点、日志丢失补充埋点;记录缺失部分占比,并在报告中注明

3.8 验收标准

  1. Reach 数值与埋点平台离线统计偏差 ≤ 1% 视为通过。
  2. 去重用户清单中随机抽检至少 20 个用户,确认其在触达事件日志中真实存在。
  3. 计算脚本及参数已在文档中完整记录,且可复现相同结果。
计算公式示例(SQL):
SELECT COUNT(DISTINCT user_id) AS reach
FROM fact_event_log
WHERE event_name = 'feature_impression'
  AND dt BETWEEN '2025-01-01' AND '2025-01-07';
若使用Python(Pandas):
df = pd.read_parquet('events.parquet')
reach = df[df['event_name'] == 'feature_impression']['user_id'].nunique()
Reach(触达)计算流程 ① 提取原始日志 ② 筛选触达事件 ③ 去重统计UV 输出:独立触达人数(Reach) ⚠️ 常见避坑 • 必须使用独立用户ID去重,而非曝光次数(PV) • 时间窗口需统一,避免跨周期重复计数 评估周期示例:7天 / 30天 / 单次活动期 (需在文档中明确记录)