编程实验指的是通过在服务端或客户端代码中嵌入AB实验版本逻辑,通过代码编程进行AB实验的方式,可广泛应用于前端优化、策略优化和后端算法优化多种实验场景。本文为您介绍编程实验的应用场景和创建操作指导。
编程实验适用于有一定代码开发能力的实验人员,可适用几乎常见的所有需要进行AB实验的场景。
说明
A/B实验还为您提供可视化实验、MAB实验等多种实验类型,可满足无需代码可视化开展实验、智能实验等场景。
根据代码嵌入类型,编程实验可进一步细分为服务端实验和客户端实验两种,两种实验的对比说明和适用场景如下。
实验类型 | 实验对比说明 | 适用场景 |
---|---|---|
客户端实验 | 指将实验逻辑嵌入客户端实验代码中,通过客户端获取实验分组信息并控制配置生效的实验。 |
|
服务端实验 | 指将实验逻辑嵌入服务端代码中,通过服务端获取实验分组信息并控制配置生效或下发的实验。 |
|
客户端本地分流实验 | 也属于客户端实验的一种,是实验人员在客户端本地实现随机分流,而不是请求Tester的分流服务而触发的实验。客户端本地分流实验的详细介绍和操作详情请参见编程实验-客户端本地分流。 | 例如,应用的新用户开屏实验,通常来不及生成设备id(did)且通常处理非登录状态,此时可通过客户端-本地分流实验来开启实验。此类实验在客户端内部即可实现分流和实验曝光逻辑。 |
开始创建实验前,需先根据实验设计,先完成实验所需数据埋点接入,您根据实验类型通过客户端SDK或服务端SDK进行数据接入,详见:数据接入概述。
以下动图便于您快速了解编程实验的创建流程,详细的操作步骤请参见下文的创建实验章节。
在实验列表页点击“+创建实验”,选择编程实验,进入实验创建流程,参考以下步骤配置实验的详细信息。
实验基本信息相关参数主要用于标识实验、明确实验类型等,配置详情如下。
参数 | 配置说明 |
---|---|
实验名称&实验描述 |
|
实验标签 | 您可以在下拉框中选择已存在的实验标签,也可直接输入新标签。 |
实验类型 | 根据实验规划选择创建的实验为客户端实验还是服务端实验。 |
实验时长 | 指实验开启的时长,一般为了避免不同时间段(工作日与周末)的用户行为差异,建议至少观察 2 个完整的实验周期。 |
实验负责人 | 默认为实验创建者。 |
生效策略相关参数主要用于设置后续开启AB实验后,哪些用户会进入A实验、哪些用户会进入B实验,通过科学的实验流量分配,实现参与实验的用户量充足,且实验间彼此间不干扰效果可信。
注意
进行实验流量设置前,您需要先了解实验流量的一些基本概念:
流量设置
参数 | 配置说明 |
---|---|
是否互斥 | 当您需要开展多个AB实验时,您需要根据实验情况配置当前创建的实验是否需要与其他实验互斥,来避免同一个用户被分配进入了两个会相互影响的实验,从而影响AB实验结果。 |
实验流量 | 生效实验的用户占满足用户受众用户比例。系统默认为100%流量,您可以通过建议工具(点击流量计算器)进行流量预估,看设置多少流量合适,详见:流量计算器。 说明 实验流量的预估时,通常需要结合实验的业务指标与MDE(检验灵敏度)来进行估算,通常实验指标为提升/降低xx(某个业务指标值),那MDE建议以小于这个指标值来进行估算,尽量避免MDE取值较大,无法检测出真实的实验结果。 |
流量生效方式(仅私有化) | 支持「立即生效」和「平滑生效」平滑生效会在设置的时间内把流量生效到设定的大小,例如实验流量设置成30%,平滑生效时间设置成30min,则会按照每分钟生效1%的进度线性生效。平滑生效更多说明可以查看文档:实验流量平滑生效。 |
用户受众规则
您可以创建多个筛选组,筛选组间为“或”的逻辑关系;每个筛选组内可设置多个过滤条件,过滤条件间为“且”的逻辑关系。
针对客户端实验和服务端实验,可进行过滤的能力不一致,对比介绍如下。
过滤条件 | 客户端实验 | 服务端实验 |
---|---|---|
添加过滤条件 | 对于客户端实验,单击添加过滤条件后,您可以使用用户属性作为用户受众的过滤条件,支持使用系统提供的预置属性,也可创建自定义属性进行过滤。 | 对于服务端实验,单击添加过滤条件后,您可以使用已创建的服务端请求参数作为用户受众的过滤条件。 |
添加分群 | 对于客户端实验,单击添加分群后,您可以使用已创建的用户分群来过滤用户。创建用户分群的操作详情请参见用户分群。 | 不支持 |
注意
体验一致性
开启后,实验期间用户生效版本不随流量、受众条件调整发生变化,可以保障在实验期间,同一个用户只进入一个实验版本。开启后,用户只要进过当前实验版本(除非暂停,关闭实验),就不再出实验。
注意
在配置实验版本前,您需要先了解实验版本的一些基本概念:
测试用户命中条件
选择测试用户命中对应的实验版本时,是否需满足上一个步骤中设置的受众规则。由于测试用户主要用于实验正式开启前的调试验证,测试用户的选择可以与最终实验命中用户不一致,您可以根据实际需要进行配置。
是否关联Feature
如果您此前有创建好的Feature,可以将实验关联到Feature。选择关联后,可以将实验与 Feature 版本进行绑定,关联后,后续实验正常运行时,可以更加方便的管理和排查问题,如线上崩溃、进组用户不符合预期(用户反馈没有体验到功能)等,均可以排查配置在哪里发布了,方便后续全量管理。
更多Feature介绍和创建操作请参见实验固化至Feature。
实验版本
参数 | 配置说明 |
---|---|
版本类型&版本描述 | AB实验通常为一组对照实验:**实验版本、对照版本。**通过对实验版本和对照版本分别设置不同的逻辑策略,保持其他条件稳定的情况下验证哪种策略更优。对照版本一般是当前的策略,实验版本一般是我们想要尝试的新策略。
|
测试用户 | 为对应的实验版本添加测试用户,后续实验创建完成后,添加的测试用户将会进入对应的实验版本,可测试实验逻辑是否生效、功能是否有bug等。 注意 如果一个用户是某个版本的白名单用户,那么实验分流对该用户是没有影响的,会固定在该版本。白名单的用户,实验开启后的数据也会被计算到实验报告里。 |
参数配置&SDK代码示例 |
|
流量分配 | 后续实验开启后,所有参与AB实验的实验流量中,不同实验版本之间分配的实验流量比例。
说明 各实验版本流量权重变更后,历史进组用户不会受到影响,只会影响已分配但未进组的用户,以及未分配的用户。 |
实验指标用于评估各实验版本的策略效果,辅助决策进行AB实验的功能是否能符合业务预期。通过配置实验核心指标和实验关注指标,后续实验完成后,会根据您配置的指标为您自动输出指标相关的实验报告,辅助您分析实验结果。
参数 | 配置说明 |
---|---|
实验核心指标配置 |
|
实验关注指标配置 | 对需要关注的指标进行配置。您可以在页面的下拉列表中选择需要关注的指标,也可以在页面单击新建指标或移除指标按钮,快速调整需要关注的指标。 |
置信水平 | 置信水平(也称置信度、置信系数、统计显著性),是指实验组与对照组之间存在真正性能差异的概率。 |
实验创建完成后,您可以在A/B测试>实验列表中查看已创建的实验,并查看实验状态。
实验开启后,您也可以在实验列表中,通过实验操作入口点击进入实验报告页面,查看实验报告,详情请参见实验报告概述。