功能说明
该功能当前仅支持 Java、Android、iOS、Web 和微信小程序 端 SDK,使用前请确保更新到最新 SDK 版本。
其他端 SDK 将在后续版本升级中陆续支持。
概述
什么是时间片轮转试验?
在AB试验中,一般要求试验对象(流量因子)是相互独立的、随机的(服从独立同分布)。在传统A/B测试中,往往只能针对单一流量因子做分流。时间片轮转试验在时间维度上进行均匀切分,不同的时间片段映射了不同的试验策略,使得所有参与试验的用户在同一时间、同一空间下保持一致的策略。
应用场景介绍
产品涉及多端用户
核心痛点 1 :如果针对其中某个单一、独立对象进行随机分流,由于一对多的用户关系,会造成试验策略之间可能是互相影响的。
场景分析:例如在直播场景,如果只针对普通用户(观众)分流,那么同一个主播可能既被试验组 A 的观众收看到,也可能被试验组 B 的观众收看到。那么对于主播的互动率、人均互动次数等指标无法做出有效评估;同理,在内容推荐场景中,如果只对普通用户进行进行分流,那么同一个生产者的作品可能同时推给A组和B组用户,则无法评估内容生产者的相关指标,比如发布量、投稿率等。
核心痛点 2 :如果采用多端同时分流,虽然能够做到分流对象隔离,但会造成匹配对象减少,无法准确评估试验推广到全部用户的指标收益。
场景分析:如果将主播和观众都分为A、B两组。那么A组主播只能匹配A组观众,B组主播只匹配B组观众,A 组主播本来可以被所有的用户观看,但现在只能一半的用户有观看资格,试验密度与全量用户不一致,无法评估全量推广后的效果。
商品定价策略一致性
核心痛点:单一用户维度分流往往无法满足商品定价等政策敏感性试验场景。
场景分析:例如在电商行业,在商品定价策略试验中,需要保证同一地区/同一时间,使所有用户看到的商品价格或优惠策略一致。如果仅仅是对用户进行单一分组,那么可能会导致同一地区用户看到商品价格不一致,出现政策违规或导致客诉。
试验可用流量小
核心痛点:A/B试验往往是建立在一定的统计样本基础之上,流量不足无法有效验证试验效果。
场景分析:在产品上线初期或针对某个低流量产品功能没有足够的流量快速验证。一般需要延长试验周期获得足够的流量,但延长试验周期可能会导致幸存者偏差;另一方面在流量有限的场景下,进行随机分流,也会增大用户存在组间差异的概率。
针对以上各种场景,使用传统的 A/B 测试分流可能都会存在问题,那么通过时间片轮转试验能够有效解决多端用户试验场景下的组间干扰和小流量分流造成用户组间差异的问题。
时间片轮转试验的分流逻辑
通过将时间维度上进行均匀切分,使不同的时间片段依次映射试验组 A 和试验组 B 两组策略,确保所有参与试验的用户在同一时间、同一空间下保持一致的试验策略。
同时,为了对齐不同日期、不同时间对试验指标的影响,每天试验的首个时间片需要进行策略翻转,即与前一日策略不同,以此来保证试验策略在不同日期时间片上的分布也是均匀的。
日期 | 00:00:00~00:59:59 | 01:00:00~01:59:59 | 02:00:00~02:59:59 | …… |
---|---|---|---|---|
第 1 日 | 策略 A | 策略 B | 策略 A | …… |
第 2 日 | 策略 B | 策略 A | 策略 B | …… |
第 3 日 | 策略 A | 策略 B | 策略 A | …… |
…… | …… | …… | …… | …… |
(以时间片大小等于 1 小时为例,示意试验策略随时间的轮转规则)
功能介绍
新建试验
在试验列表中,点击「新建试验」按钮,选择「时间片轮转试验」即可进入试验创建页面。
基本信息
1. 名称
必填,试验名称不可重复。长度不超过 100 字,支持输入中文、英文、数字、下划线、中划线、引号、双引号,不支持特殊字符。
2. 备注
选填,用于描述相关试验信息,比如试验目标、试验所属部门等信息。长度不超过300字,只能包含中文、英文、数字和下划线,不支持特殊字符。
3.运行时长
必填,针对试验运行中、运行中(暂停)状态下的有效期。试验到期后,试验自动下线。默认14天,最大可设置365天,可多次修改调整。快到期前,将发送站内消息通知,试验列表也有标识提醒。
如试验运行天数小于等于14天,即将到期为到期前3天,出现到期标识;
如试验运行天数大于14天,即将到期为到期前7天,出现到期标识。
选取受众
1. 选择分流主体
同编程试验,详情请参照:新建编程试验-选取受众
2. 选择受众用户
同编程试验,详情请参照:新建编程试验-选取受众
3. 用户变更
在时间片轮转试验中,若受众用户是通过人群或者用户属性筛选配置。则用户每次请求试验,会根据当前用户分群或属性状态变化,实时判断用户的当前请求能否命中试验。
受众选取逻辑
- 时间片轮转试验的目标受众为全部线上流量(或某一定向条件的全部流量)。
- 当任一用户进入试验流程(请求分流)时,都会按照当前时间获取到对应时间片段的分组结果。
设置试验分组
1. 分组名称
时间片轮转试验目前仅支持设置2个分组(对照组+试验组),长度不超过 100 字,支持输入中文、英文、数字、下划线、中划线、引号、双引号,不支持特殊字符。
2. 备注信息
描述信息支持文字和图片两种形式。
- 文字备注:支持输入中文、英文和数字,不支持特殊字符,文本长度最多支持300个字符。
- 图片备注:支持jpg、jpeg、gif、png格式,大小不超过100k。
3. 调试设备
调试设备用于测试试验分组的策略是否正确被下发,一旦设备被加入对应的试验分组,将固定命中当前的分组策略。一个调试设备只能被添加到试验的一个分组中,但不受试验层策略的影响。
添加调试设备:可以选择已添加到设备列表的设备或临时新建设备。详情参见:调试设备管理
4. 试验参数
用户在A/B测试平台运行试验时,试验的策略通过参数进行下发到对应的应用端,不同的参数对应不同的功能或者业务策略。一般在应用发版前,需要根据规划的试验策略将参数提前预置到应用代码中,即可在A/B测试平台使用对应的参数来创建并运行试验。
目前支持的参数类型:integer、string、boolean、json,一个试验支持配置多个参数进行试验变量控制。
试验流量分配逻辑
- 每个时间片轮转试验默认为独占层,默认会为每个试验单独建立试验层,不可指定试验层。
- 时间片轮转试验与其他试验层试验流量正交。
- 由于时间片轮转试验是在同一人群的不同时间切片上轮转策略,因此不支持进行分组流量分配。
时间片轮转规则
设置试验策略进行轮转的时间周期。
时间片大小支持设置为24小时、12小时、6小时、3小时、2小时、1小时。默认为 24 小时。
在选取时间片大小时,需要尽可能考虑策略在不同时间轮转对于用户体验或目标转化的影响。例如:
(1)针对商品定价或优惠策略试验场景,通常不适合进行频繁的策略轮转,以免对转化效果评估造成影响,建议时间片可设置为24小时。
(2)针对算法推荐策略试验,用户对策略本身感知并不明显,为了能够尽快验证试验效果,则可适当减小时间片大小。
配置指标
同编程试验,详情请参照:新建编程试验-配置指标
需要特别注意
由于时间片轮转试验逻辑的特殊性,试验暂时不支持检验类指标。
另外用户在试验周期内会频繁跳切换试验策略,目前仅支持事件分析类指标,无法支持漏斗指标和留存指标。
示例代码
同编程试验,详情请参照:新建编程试验-示例代码
调试试验
同编程试验,详情请参照:新建编程试验-调试试验
上线试验
在试验调试完成后,即可根据业务方制定的试验上线时间进行上线操作。
1. 注意事项
在点击「上线」后,试验会进入初始化数据准备阶段。区别于普通的编程试验,由于需要保证试验策略在不同时间片上均匀轮转,因此在初始化数据同步完成后,试验正式生效需要从下一个时间片的起始时间开始,以此尽可能对齐试验组和对照组在时间片上的完整性。
2. 试验生效时间规则
试验生效时间与试验配置的时间片大小相关。如果配置的时间片大小为24小时,为了在不同日期上对齐时间片,一个完整的时间片轮转需要从 00:00:00开始,并于23:59:59结束后进入下一个时间片,然后进行策略翻转。假设今天上线并完成初始化数据同步,那么试验正式生效的时间应该为次日 00:00:00。同理,其他时间片大小规则以此类推。
试验报告解读
试验总览
试验总览呈现试验运行的基本信息以及在试验运行周期内重要指标的表现情况。
1. 轮转次数
从「试验生效时间开始」至「统计时间结束」,这段时间内策略轮转的次数。
2. 参与用户数
参与各个分组的用户去重数,由于试验策略在不同时间段内进行轮转,一个用户在同一天内可能分别被统计到试验组和对照组中。
3. 每日活跃用户数
每日参与试验的活跃用户数(当天上报$ABTestTrigger事件的用户数),由于试验策略在不同时间段内进行轮转,一个用户在同一天内可能分别被统计到试验组和对照组中。
业务报告
业务报告用于统计所有试验关注指标情况。
1. 时间片筛选
当试验设置的时间片大小小于24小时时,支持按照策略轮转的时间片段进行筛选。
例如:时间片大小为6小时,则在一天内时间被分为00:00-05:59, 06:00-11:59, 12:00-17:59, 18:00-23:59 四个时间段,可通过时间片筛选查看在某一特定时段内两组策略活跃用户的指标对比情况,用于分析指标时段特征数据。
2. 均值辅助线
在所选时间范围内,每天/每小时指标数据的平均值。
3. 实时数据
实时数据报告中不支持分钟级数据,同时不支持时间片段筛选。
指标统计口径
1. 统计原则
用户在轮转到下一个时间片后、且未更新试验策略(未调用A/B Test分流接口)之前所产生的指标数据,归因到时间片轮转前的上一个试验版本中。
在统计指标时,按照实际试验策略发生的时间范围进行统计。
2. 示例说明
假设试验从 01:00 开始,并于 04:00 结束;同时一个用户在 01:00 命中策略 A 。则该用户当天统计结果如下:
(1)试验在 01:00 ~ 04:00 共轮转 3 次;
(2)该用户分别命中试验策略 A 和 试验策略 B,其中,
- 策略 A 组的指标统计的时间范围为「 01:00 ~ 02:30」 和「 03:20 ~ 04:00」 两个时间段
- 策略 B 组的指标统计的时间范围为「 02:30 ~ 03:20」
其他信息
详情请查阅通用试验报告模块:产品使用指南:试验报告
实施建议
为了能够在时间片轮转后,用户在获取分流时能够及时更新试验策略,建议在获取分流结果时使用 asyncFetchABTest接口(即忽略内存缓存,直接从服务端获取)
若使用其他本地缓存接口,则可能导致试验策略更新延迟。
注意事项
试验标签
时间片轮转试验中,暂时不支持生成用户标签。
FAQ
如何选取时间片大小?
在选取时间片大小时,需要尽可能考虑策略在轮转前后对于用户体验或目标转化的影响。
1. 优先从业务角度考虑
优先从业务角度出发,考虑时间片大小对于用户体验、目标转化的影响,设定合理的时间片轮转规则。以下举例说明:
场景示例 1 :
针对价格/红包策略试验场景,通常不适合进行频繁的策略轮转,以免对转化效果评估造成影响,建议时间片可设置为24小时。
场景示例 2:
针对算法推荐策略试验,用户对策略本身感知并不明显,为了能够尽快验证试验效果,则可适当减小时间片大小。
2. 从用户跨时间片的敏感度角度考虑
用户敏感度可通过数据回溯分析反馈,具体方法建议如下:
① 从业务角度预先设定几个时间片大小,例如:1小时、2小时、3小时
② 选择一段时间历史数据,假设先按照1小时模拟时间片轮转规则,获取对照组和试验组对应的时间片段
③ 分别计算每个时间片段上对应的对照组和试验组的指标数据
④ 计算试验组和对照组总体指标均值 diff,以及指标的总体方差
⑤ 分别计算其他时间片大小(2小时、3小时)的上述数据
⑥ 理论上试验组和对照组的指标应当接近,可尽量选择指标diff小、总体方差小的时间片
备注:通过数据回溯能够一定程度反映时间片大小对于指标的影响,但建议优先从业务角度出发,考虑时间片大小对于用户体验、目标转化的影响,设定合理的时间片轮转规则。
哪些场景不建议使用时间片轮转试验?
1. 前端功能、页面展示效果等用户感知明显的场景
原因:随时间片轮转,用户会明显感知到轮转前后功能/界面变化。反复跳变会严重伤害用户体验,同时某些场景易引发客诉问题。
2. 用户在触发试验后,进行目标转化具有较长的延迟性
原因:由于目标转化具有较长的延迟效应,例如某些特殊场景核心指标转化可能需要 1 周,明显超出最大支持的时间片设置周期;若配置的时间片大小远小于目标转化周期,则可能无法进行试验效果的准确归因。
补充说明
(1)什么是延迟效应?
假设用户在1:00-2:00时间片上命中策略A,但转化却发生在策略B对应的时间片(比如2:00-3:00时间片),延迟效应在各类试验场景中普遍存在。
(2)如何看待和解决延迟效应?
理论上试验组和对照组均存在用户跨时间片可能产生的延迟效应,组间的影响是均等的作用于试验组和对照组上。因此在指标延迟效应不明显的情况小,可以选择忽略这部分影响。正确的方式是结合业务场景和用户对时间片大小的敏感程度,选择合理的时间片大小。
3. 试验策略具有时效性
原因:例如红包/优惠券分享试验场景中,被分享者在不同时间打开红包显示的红包金额应该是一致的;再比如拼单砍价场景,分享链接具有时效性,用户在不同时间打开的分享链接展示内容也应该是一致的。
能否同时上线多个时间片轮转试验?
1. 可以。在创建多个时间片轮转试验时,需要使用不同的试验参数。
2. 区别于传统的用户随机分流模型,时间片轮转试验针对全量用户(或某一固定人群)通过在时间维度进行策略轮转,因此没有试验层和流量分桶概念。如果同时上线多个时间片轮转试验,那么同一个用户势必会同时命中不同试验,因为在规划试验时,避免同时上线可能产生互相影响的试验,以免造成最终试验效果无法准确归因。