试验层的作用

为了让多个可能产生相互干扰的试验同时运行,需要将这些试验加入到同一个试验层中,用户进入试验层时只能命中该试验层中的一个试验。

详细分流逻辑参照: 试验分流模型介绍

试验层的类型

根据试验层内分流逻辑的不同,试验层分为“粘性试验层”和“非粘性试验层”。

粘性试验层

在典型的A/B测试场景中,往往需要保证用户在试验运行周期内,始终保持一致的命中策略。因此在用户请求分流后,即使后续调小试验占用的试验层流量比例,对于已在分流服务端计算生成分流结果的用户,无论其是否在客户端命中过该试验,也不会因为流量调小而出组;在调整各试验组的流量比例时,也不会进行跳组,以此来保证试验策略的一致性。符合这种分流策略的试验,我们定义为“粘性试验”。

粘性试验只能归属于粘性试验层,在粘性试验层中的试验,用户一旦进组后就不会再出组。

非粘性试验层

然而在某些特定场景下,例如当一个分组指标明显低于预期时,需要通过减小改该分组的流量比例,使整体流量(包括已进组用户)向其他优胜组倾斜。或者调小整个试验的进组流量比例,以确保影响范围不被扩大。在这种场景下,就需要用户命中状态根据设定的流量比例及时变化。符合这种分流策略的试验,我们定义为“非粘性试验”。

非粘性试验只能归属于非粘性试验层,在非粘性层中的试验,用户命中策略会随试验流量比例调整而动态变化。


试验层管理列表

试验层列表页中展示试验层分组信息,当前以及创建的试验层,包含了名称、在运行的试验数量、当前流量剩余情况、描述、分流主体类型、试验层类型、创建时间、创建人。

  • 运行试验数量:当前试验层中在运行的试验数量。(试验状态包括:准备中、运行中和运行中(暂停))
  • 剩余可用流量比例:剩余流量按照准备中、运行中和运行中(暂停)状态的试验流量占用进行统计。

支持的操作:新建、编辑、查看试验层剩余流量、分配流量和删除试验层操作。

创建试验层

点击右上角的“创建试验层”按钮新建一个试验层。

1. 试验层名称

试验名称为必填项,不能为空。

2.所属分组

如在试验层分组内新建试验层,所属分组为当前分组。

如在「未分组」或「全部」内新建试验层,所属分组可以选择其他分组。

3.分流主体

(1)神策 ID

神策标识用户的 ID,神策 ID 将关联用户的登录 ID 及匿名 ID,用户登录前后会被识别为一个用户进行分流

(2)设备 ID

指神策 AnonymousId,一般应用于客户端试验

(3)登录 ID

指 loginId,通常为客户业务 ID,只对登录的用户进行分流,一般较多应用于服务端试验

(4)自定义 ID

除以上预置 ID 外,客户可根据业务自定义分流主体 ID。例如:手机号、会员 ID 等

功能说明

设备 ID 和自定义 ID为高级功能,请联系您的客户成功经理申请开通。

关于如何选择合适的分流主体,请查看 切换试验分流主体

4. 试验层类型

选择创建的试验层类型。

非粘性试验中,用户命中分组可能会随流量调整而发生变化,SDK 需根据命中结果及时上报命中信息。请确保您已将SDK升级到最新版本,低版本SDK用户命中可能会影响统计准确性。

当前已支持的SDK类型及版本依赖如下:

SDK类型版本依赖
Androidabtesting-sdk-ios 1.0.0
iOSabtesting-sdk-android 1.0.1
Websa-sdk-javascript  1.25.1
微信小程序sa-sdk-miniprogram 1.19.2
Javaabtesting-sdk-java 1.0.0

5. 描述

可以填写描述信息。

编辑试验层

支持对已创建的试验层进行编辑,可以更改试验层名称或描述。

查看和分配试验层流量

在查看和分配试验层流量抽屉中,可以查看进行中和非运行状态的试验信息。

1. 进行中试验包括准备中、运行中和运行中(暂停)状态。

2. 进行中试验可以查看试验进组用户数。

3. 当具备试验层管理权限时,可以通过「分配流量」操作,快速调整试验层内的试验流量。

删除试验层

当试验层内有以下状态的试验时,不支持删除:

  • 准备中
  • 运行中
  • 运行中(暂停)
  • 已发布
  • 已发布(暂停)
  • 待发布(已回滚)
  • 上线失败

试验层分组管理

1.试验层分组列表

展示分组序号、分组名称、分流主体、试验层个数、空白域个数、创建日期/创建人、操作。

2.搜索分组

输入分组名称、创建人进行模糊搜索。

3.创建试验层分组

输入分组名称,支持下划线、数字、中英文,字符长度不超过20个。

选择分组的分流主体,试验层只有符合该分组的分流主体才可以加入分组。

4.试验层分组操作

支持重命名、删除分组。

注意事项

关于试验流量分配的补充说明

为了适应不同的试验场景,神策A/B测试提供了粘性和非粘性的流量分配策略,因其具备不同特性,这里做补充说明。

1. 粘性试验

试验请求大部分发生在APP初始化阶段(服务端试验除外),用户在请求分流后,会在分流服务端保存用户的命中记录,保证用户在一次试验生命周期内,始终保持一致的策略。因此,在用户请求并命中试验后,即使后续调小试验占用试验层的流量比例,已经请求命中试验的用户(包括APP初始化阶段请求试验但可能并未真正触发试验上报$ABTestTrigger事件的用户)也不会再出组,因此可能会导致即使调小流量比例,也没有剩余用户流量被释放出来。

为了更好的说明该逻辑,以下举一个极端的例子:

试验层共有 100 人,其中试验 A 占用流量比例为 100% ,上线后 100 人都启动了 APP 成功拉取到试验结果缓存在本地,其中 50 人进入试验页面触发试验并上报 $ABTestTrigger 事件。此时,调小占用试验层流量到 50%,由于 100 人之前已全部请求到试验结果,因此即使调小流量,未真正命中试验的 50 人也不会被释放。那么可能会导致在当前试验层上线新试验时,即使设置了剩余50%的流量,在上线后,可能也没有流量可用。 

因此,在粘性试验中,调小流量时仅针对试验新用户(未请求过分流服务的用户)生效。同样地,在试验运行过程中,若调整各个分组流量比例,最终试验报告呈现的进组人数,可能也无法达到预期设定的比例,随着样本量积累,会越来越趋近于所设定的分组比例。如果您希望粘性试验中有更多用户按后续调整的分组流量比例分流,建议先占用较小的试验层流量比例进行试验,待真正确定分组流量比例时,同步调大试验占有的试验层流量比例,释放更多未命中试验的用户参与新的分组流量比例分流,以达到预期效果。

2. 非粘性试验

非粘性试验分流策略不会记录用户历史命中的分流结果,在每次请求分流时,会根据试验设定的流量比例实时计算命中结果。因此如果您的试验场景时传统典型的A/B测试场景,为了保证用户策略的一致性,不建议在试验过程中修改各个试验组的流量比例,以避免用户跳组;也不建议减小试验占层的比例,这种操作会使一部分已命中试验的用户出组,影响用户体验及报告体验。

在非粘性试验运行中,调小试验占层流量比例或者修改各试验分组流量比例时,会生成新的试验报告版本。试验结果将分阶段进行观测,减量避免流量调整带来的观测误差。


请结合实际业务场景、用户体验及试验目标,合理选择对应的流量分配策略。