概述
实验指标是根据命中实验的用户进行过滤计算的,由于客户端实验和服务端实验在端上分流触发和数据上报逻辑天然存在差异,所以在统计实验指标时判定「命中实验的用户(即进组用户)」方法也存在一些差异。为了实现客户端实验和服务端实验在判定「命中实验的用户」口径时逻辑保持一致,从而提升准确性,DataTester对实验进组用户判定逻辑进行了升级,本文档主要对此进行说明。
进组用户口径
前后对比
| 更新前
~2023年4月 | 更新后
2023年4月~ |
---|
客户端实验 | - 进组判定逻辑:某段时间内所有上报带ab_version事件的人
- 计算方式:客户端触发分流的时候同时上报ab_version事件,仅使用用户行为埋点日志计算实验指标
| 二者保持一致,服务端实验口径不变,客户端实验部分口径升级,完成统一 - 进组判定逻辑:实验开始后上报过曝光事件的人
- 计算方式:统一使用用户行为埋点日志作为左表、AB分流日志AB_Log表作为右表进行join计算实验指标
【注】AB_Log表逻辑:使用实验曝光事件来记录用户命中实验的情况,支持实时和天级,天级离线数据会基于人+实验组(即ab_version)的粒度进行聚合
曝光事件统计依据: - 普通实验曝光字段:abtest_exposure
- 推送实验曝光字段:rangers_push_send
|
服务端实验 | - 进组判定逻辑:实验开始后上报过曝光事件并且在某段时间内上报过事件的人
- 计算方式:使用用户行为埋点日志作为左表、服务端记录进组曝光ab_version事件的表作为右表进行join计算实验指标
|
业务收益
口径统一升级前后的效果/收益:
- 客户端和服务端实验的进组口径统一
- 随着客户端/服务端SDK的不断升级,实验曝光字段的收集准确率也逐步提升,原服务端口径的的优势逐步凸显,统一口径有明显收益
- 客户端的进组口径更加精准,避免了客户端事件上报的过程中ab_version无法上报、或传递丢失等原因带来的数据失准。
- 例如当客户端实验功能曝光链路长、实现方式特殊时,在事件上报的过程中ab_version传递丢失
- 例如当客户端仅在某个较深的功能层级做实验,但想查看全局性指标或者其他相关模块指标时,无法上报ab_version进行指标统计
- 另外,当进组人数非常小时会二者的相对差异会更大一些
指标查询升级
实验指标统一切换为采用新的进组用户口径来查询,具体逻辑和影响如下:
报告页查询逻辑说明
报告页-实验指标查询定义说明(假定实验运行时间为1月1日-1月30日) |
---|
模块 | 查询逻辑和指标定义说明 | 口径统一后指标查询结果是否发生变化(仅限客户端实验) |
报告概览 | 定义:实验开始后截止当前所有完整天从头累积的实验数据,实验第一天为截止当前时间的累积数据 - 指标:仅核心指标
- 用户进组口径(去重):
- 实验运行第一天:从实验开启到打开报告的时候上报过实验曝光事件的人
- 实验运行中非首日:从实验开启到昨天累计上报过实验曝光事件的人
- 实验关闭:从实验开启到结束所有累计上报过实验曝光事件的人
用途:用于提供实验结论,因此仅计算核心指标、并需要采用完整天的累积数据,后续会拆解为独立的「实验结论」模块 | 有变化 |
实验关注指标 | 定义:默认为实验开始后截止当前所有完整天从头累积的实验数据,实验第一天为截止当前时间的累积数据,支持按照不同时间区间、时间粒度进行查询 用途和查询模式: - 天级(默认)
- 用途:用于查看实验已关注事件指标、漏斗指标、留存指标,以及进行其他高级分析功能来评估效果
- 指标口径:
- 从头累计:从实验开启到所选截止日期内累计上报过实验曝光事件的人
- 区间累计(假定选定1月8日-1月10日作为查询区间)
- 进组用户口径(去重):1月1日(实验开始)-1月10日累计上报过实验曝光事件的人(人均指标都采用此作为base user)
- 事件指标口径:1月8日-1月10日发生过该事件的数据统计
- 小时级
- 用途:在实验运行初期实时查询,及时发现实验设置、数据上报等问题,仅支持查询最近两天的小时级数据(最多48h)
- 指标口径:所选时间区间内的指标数据统计
- 5分钟级
- 用途:在实验运行初期实时查询,及时发现实验设置、数据上报等问题,仅支持查询最近24小时级的分钟级数据
- 指标口径:所选时间区间内的指标数据统计
| 有变化 |
留存指标 | 无变化 |
同期群分析 | 无变化 |
热力图分析 | 有变化 |
漏斗指标 | 有变化 |