You need to enable JavaScript to run this app.
导航
编程实验
最近更新时间:2024.11.04 16:17:10首次发布时间:2021.02.23 10:41:56

编程实验指的是通过在服务端客户端代码中嵌入AB实验版本逻辑,通过代码编程进行AB实验的方式,可广泛应用于前端优化、策略优化和后端算法优化多种实验场景。本文为您介绍编程实验的应用场景和创建操作指导。

实验细分类型与适用场景
  • 编程实验适用于有一定代码开发能力的实验人员,可适用几乎常见的所有需要进行AB实验的场景。

    说明

    A/B实验还为您提供可视化实验、MAB实验等多种实验类型,可满足无需代码可视化开展实验、智能实验等场景。

  • 根据代码嵌入类型,编程实验可进一步细分为服务端实验客户端实验两种,两种实验的对比说明和适用场景如下。

    实验类型

    实验对比说明

    适用场景

    客户端实验

    指将实验逻辑嵌入客户端实验代码中,通过客户端获取实验分组信息并控制配置生效的实验。

    • 适用于只能由客户端控制的功能进行AB实验的场景。
      比如客户端的UI样式、交互功能设计等。
    • 适用于APP唤起时,AB实验配置即需生效的场景。
      比如需要针对APP的开屏页面进行A/B实验,用户刚刚打开APP,客户端就需要向用户展示开屏界面了,这种情况下客户端可能来不及向服务端请求实验配置参数。

    服务端实验

    指将实验逻辑嵌入服务端代码中,通过服务端获取实验分组信息并控制配置生效或下发的实验。

    • 适用于只能由服务端控制的功能进行AB实验的场景。
      比如内容分发算法(如用户打开今日头条以后在feed流中会看见什么内容)、由服务端逻辑控制的产品功能(如推送)等。
    • 适用于不要求唤起APP就需要AB实验配置生效的场景。此场景下,客户端有通常充分时间向服务端发起请求,获得实验配置后再向用户展示实验策略。

前提条件

开始创建实验前,需先根据实验设计,先完成实验所需数据埋点接入,您根据实验类型通过客户端SDK或服务端SDK进行数据接入,详见:数据接入概述

操作演示

以下动图便于您快速了解编程实验的创建流程,详细的操作步骤请参见下文的创建实验章节。
Image

创建实验

在实验列表页点击“+创建实验”,选择编程实验,进入实验创建流程,参考以下步骤配置实验的详细信息。

step1 输入基本信息

实验基本信息相关参数主要用于标识实验、明确实验类型等,配置详情如下。
Image

参数

配置说明

实验名称&实验描述

  • 实验名称:建议设置为与实验内容相关的名称,如有实验版本迭代可以增加版本号后缀,让您的伙伴能够快速了解到实验是做什么的、在哪个迭代版本。
  • 实验描述 :实验内容简述,可以让项目相关人员更清晰地知道到这个实验是如何做的,解决什么问题,同时也便于后期查看和管理历史实验时一目了然。

实验标签

您可以在下拉框中选择已存在的实验标签,也可直接输入新标签。
一般采用业务线、优化方向等实验内容关键词作为标签,用于筛选、归类实验,后续实验创建完成后,在实验列表中可以通过实验标签快速搜索到相关实验。

实验类型

根据实验规划选择创建的实验为客户端实验还是服务端实验。

实验时长

指实验开启的时长,一般为了避免不同时间段(工作日与周末)的用户行为差异,建议至少观察 2 个完整的实验周期。
例如,考虑工作日与周末影响时,实验周期至少需要一周,那实验开启时长建议为14天。

实验负责人

默认为实验创建者。

step2 设置生效策略

生效策略相关参数主要用于设置后续开启AB实验后,哪些用户会进入A实验、哪些用户会进入B实验,通过科学的实验流量分配,实现参与实验的用户量充足,且实验间彼此间不干扰效果可信。

注意

进行实验流量设置前,您需要先了解实验流量的一些基本概念:

  • 流量&受众用户&实验流量
    • 流量:指产品所拥有的总体用户数量。
    • 受众用户:在总体用户中,通过一些过滤条件圈选出来的用于参与AB实验的所有用户。
    • 实验流量:在受众用户中,参与某个AB实验的用户数占比。
  • 流量层/实验层/互斥组/互斥层&互斥实验
    • 流量层,也称互斥组,也称互斥层、实验层。
    • 互斥实验,即处在同一流量层中的实验。互斥实验之间流量是互斥的,即互斥组中的所有实验都不会共享用户:如果一个用户命中了互斥组中的实验1,就不会命中该互斥组中的其他实验。

Image

  • 流量设置

    参数

    配置说明

    是否互斥

    当您需要开展多个AB实验时,您需要根据实验情况配置当前创建的实验是否需要与其他实验互斥,来避免同一个用户被分配进入了两个会相互影响的实验,从而影响AB实验结果。
    例如,您要同时做按钮颜色和按钮形状的实验,这两个实验彼此影响,就需要将这两个实验加入到一个互斥组中。
    了解更多流量层相关内容及如何创建流量层可查看:流量层/互斥组

    实验流量

    生效实验的用户占满足用户受众用户比例。系统默认为100%流量,您可以通过建议工具(点击流量计算器)进行流量预估,看设置多少流量合适,详见:流量计算器

    说明

    实验流量的预估时,通常需要结合实验的业务指标与MDE(检验灵敏度)来进行估算,通常实验指标为提升/降低xx(某个业务指标值),那MDE建议以小于这个指标值来进行估算,尽量避免MDE取值较大,无法检测出真实的实验结果。

    流量生效方式(仅私有化)

    支持「立即生效」和「平滑生效」平滑生效会在设置的时间内把流量生效到设定的大小,例如实验流量设置成30%,平滑生效时间设置成30min,则会按照每分钟生效1%的进度线性生效。平滑生效更多说明可以查看文档:实验流量平滑生效

  • 用户受众规则
    您可以创建多个筛选组,筛选组间为“或”的逻辑关系;每个筛选组内可设置多个过滤条件,过滤条件间为“且”的逻辑关系。
    Image
    针对客户端实验和服务端实验,可进行过滤的能力不一致,对比介绍如下。

    过滤条件

    客户端实验

    服务端实验

    添加过滤条件

    对于客户端实验,单击添加过滤条件后,您可以使用用户属性作为用户受众的过滤条件,支持使用系统提供的预置属性,也可创建自定义属性进行过滤。
    Image
    您可以在指标管理>元数据管理>用户属性页面查看已有的预置属性和自定义属性,或您也可以创建新的自定义属性。
    场景示例:新用户实验
    在「选择目标受众」过滤器中,可以针对新用户添加“用户首次安装时间”过滤条件,使用首次安装时间识别新用户,即首次安装时间晚于实验开启时间的所有用户被划入“新用户”范畴。在实验开启期间,只有新用户进实验组中,其他存量用户不进组。
    Image

    对于服务端实验,单击添加过滤条件后,您可以使用已创建的服务端请求参数作为用户受众的过滤条件。
    Image
    创建服务端请求参数的操作详情请参见服务端请求参数

    添加分群

    对于客户端实验,单击添加分群后,您可以使用已创建的用户分群来过滤用户。创建用户分群的操作详情请参见用户分群

    不支持

  • 体验一致性
    开启后,实验期间用户生效版本不随流量、受众条件调整发生变化,可以保障在实验期间,同一个用户只进入一个实验版本。开启后,用户只要进过当前实验版本(除非暂停,关闭实验),就不再出实验。

step3 配置实验版本

注意

在配置实验版本前,您需要先了解实验版本的一些基本概念:

  • 实验版本&实验组&对照组
    AB实验通常为一组对照实验:实验版本对照版本。通过对实验版本和对照版本分别设置不同的逻辑策略,保持其他条件稳定的情况下验证哪种策略更优。对照版本一般是当前的策略,实验版本一般是我们想要尝试的新策略。
  • 测试用户&用户标识SSIDUUID
    • 测试用户:在实验正式开启之前,通常需要先选择几名用户来进行测试,观察实验是否能够正常获取想要收集的数据、测试加入实验逻辑后业务功能是否有bug等。参与测试的测试用户也被称为“白名单用户”。在配置实验版本时您需要为实验组和对照组分别添加测试用户。
    • SSID:即标准化服务ID(Standardized Service Id),是火山引擎增长营销套件系列产品用来标记和识别用户而提供的用户标识。SSID由系统自动生成和维护,您可以根据需要使用。为实验版本添加测试用户时,通过系统生成的SSID来标识参与测试的用户。
    • UUID:即User Unique Id,通常是产品业务中使用的用户标识,一般与用户的登录id(如手机号、email等)一一对应,UUID由您来维护。
  • Feature:
    Feature可以理解成某个功能特性,例如,您想做个实验看看按钮的新形状是不是能提高按钮的点击率,实验完成后发现确实是可以的,那把这个新形状上线就可以视为这个Feature上线/固化。

Image

  • 测试用户命中条件
    选择测试用户命中对应的实验版本时,是否需满足上一个步骤中设置的受众规则。由于测试用户主要用于实验正式开启前的调试验证,测试用户的选择可以与最终实验命中用户不一致,您可以根据实际需要进行配置。

  • 是否关联Feature
    如果您此前有创建好的Feature,可以将实验关联到Feature。选择关联后,可以将实验与 Feature 版本进行绑定,关联后,后续实验正常运行时,可以更加方便的管理和排查问题,如线上崩溃、进组用户不符合预期(用户反馈没有体验到功能)等,均可以排查配置在哪里发布了,方便后续全量管理。
    更多Feature介绍和创建操作请参见实验固化至Feature

  • 实验版本

    参数

    配置说明

    版本类型&版本描述

    AB实验通常为一组对照实验:实验版本、对照版本。通过对实验版本和对照版本分别设置不同的逻辑策略,保持其他条件稳定的情况下验证哪种策略更优。对照版本一般是当前的策略,实验版本一般是我们想要尝试的新策略。

    • 您可以选择好对应的版本类型,在版本描述中写明当前的版本策略是什么,可以单击左上角的版本1/版本2修改版本名称,便于后续快速了解当前是哪个实验版本。
    • 如果您有多个新策略需要进行实验,可单击下方的添加实验版本,继续添加新的实验组版本。

    测试用户

    为对应的实验版本添加测试用户,后续实验创建完成后,添加的测试用户将会进入对应的实验版本,可测试实验逻辑是否生效、功能是否有bug等。

    注意

    如果一个用户是某个版本的白名单用户,那么实验分流对该用户是没有影响的,会固定在该版本。白名单的用户,实验开启后的数据也会被计算到实验报告里。
    更多关于白名单的说明,可参考文档

    • 您可以手动输入用户的SSID,将用户添加为当前实验版本的测试用户,多个用户使用回车分隔。

      说明

      您可以在「全局设置-用户细查」中输入UUID,查询对应用户的SSID。

    • 如果您的实验为移动端APP类的实验,您也可以单击输入框后的二维码标识,通过扫码的方式,高效添加测试用户的SSID,更多关于扫码录入SSID的介绍请参见扫码录入ID

      说明

      扫码方式添加测试用户SSID时,需确保扫码的手机已安装待进行实验的APP。

    • 如果您在全局设置>受众管理中的用户测试白名单页面已添加了测试白名单用户,您也可以在下拉框中选择测试用户组。
      添加白名单用户的操作详情请参见用户测试白名单

    参数配置&SDK代码示例

    • 实验参数配置:是对实验版本的补充,一般是一个功能控制配置项,用来区分对照组和实验组。您可在对应实验版本界面配置实验参数名称、格式、和参数取值。
      例如,为验证商品卡片的展示时机对用户对视频的消费时长的影响,可以设计实验为:
      • 对照组:视频开始播放时立即展示商品卡片。
      • 实验组1:视频播放5秒后展示商品卡片。
      • 实验组2:视频播放10秒后展示商品卡片。
        借助实验参数配置功能,首先在代码中解析goods_card_show_time参数并实现视频播放{goods_card_show_time}秒后展示商品卡片,然后在创建实验时,对照组/实验组1/实验组2分别配置实验参数goods_card_show_time=0/5/10,即可完成实验的灵活高效上线。

      说明

      创建实验时通过配置实验参数,不仅可以实现实验分流,同时好的实验参数设计,也能帮助实验创建者在不增加开发工作量的前提下,进行更灵活的实验。更多实验参数的介绍请参见如何配置实验参数

    • SDK代码示例
      创建完成实验参数后,需要开发人员获取包含实验参数的SDK代码,并合入客户端或服务端代码,解析后实验参数才能生效。
      您可以单击页面右上角的SDK示例代码按钮,获取系统根据当前的实验参数配置结果自动生成的SDK示例代码,便于后续研发嵌入业务代码,通过编程实现AB实验的逻辑。
      Image

    流量分配

    后续实验开启后,所有参与AB实验的实验流量中,不同实验版本之间分配的实验流量比例。

    • 流量均匀分配-开启:默认为开启状态,开启状态下为强制各实验版本流量均匀分配。
    • 流量均匀分配-关闭:关闭后可调配对照版本和实验版本的流量相对占比。 可通过输入数值,来控制每个实验版本命中的用户比例。
      例如,当关闭均匀分配后,三个实验版本,可配置对照版本占比20%,实验版本1占比为50%,实验版本2占比为30%,整体总和为100%,实验版本3即自动分20%流量。

    说明

    各实验版本流量权重变更后,历史进组用户不会受到影响,只会影响已分配但未进组的用户,以及未分配的用户。

step4 实验指标

实验指标用于评估各实验版本的策略效果,辅助决策进行AB实验的功能是否能符合业务预期。通过配置实验核心指标和实验关注指标,后续实验完成后,会根据您配置的指标为您自动输出指标相关的实验报告,辅助您分析实验结果。
Image

参数

配置说明

实验核心指标配置

  • 核心指标配置
    用来决策实验功能是否符合预期的「直接效果指标」或「成功指标」,您可以在下拉框中,在已有的指标组中选择指标作为实验的核心指标,建议合理的进行实验设计,谨慎选择,更多关于实验指标设置的经验指导请查看确定评估指标

    说明

    实验指标配置好后,后续实验创建完成后,如果如有特殊情况需要修改实验指标,请进入实验详情页进行修改。

  • 监控报警:可选择目标指标点击“监控报警”,填写具体需要的报警策略,选择是否勾选“效果显著”,以及选择报警策略的生效方式。
  • 编辑指标:点击图例中3位置处可进入指标编辑页面,对可指标进行名称、指标类型、是否设为必看指标等进行编辑。

实验关注指标配置

对需要关注的指标进行配置。您可以在页面的下拉列表中选择需要关注的指标,也可以在页面单击新建指标移除指标按钮,快速调整需要关注的指标。

置信水平

置信水平(也称置信度、置信系数、统计显著性),是指实验组与对照组之间存在真正性能差异的概率。
例如在置信水平是95%的情况下,如果某个实验指标的置信度p值<0.05,则说明这个指标相比对照组,是有显著(超过置信水平)差异的。 如需设置置信水平参数值,则需联系集团管理员或应用管理员,前往“系统管理-置信水平设置”进行设置。

调试、开启、停止实验

实验创建完成后,您可以在A/B测试>实验列表中查看已创建的实验,并查看实验状态。
Image

  • 调试中:新创建完成的实验,实验状态为调试中,此阶段您可以邀请已添加为测试用户的用户进行实验测试,确认实验符合预期。
  • 进行中:实验调试完毕后,您可以在实验列表页点击“启动”,即可开启实验。实验开始后,实验的状态变为进行中,此时进组用户可实时查看,指标置信度第二日产出。
  • 已结束:实验开始后,当实验时长到达创建实验时配置的实验时长后,实验会自动停止;如果没有到达实验时长,您希望立即停止实验,也可在实验列表手动停止实验。停止实验后,实验状态变为已结束

查看实验报告

实验开启后,您也可以在实验列表中,通过实验操作入口点击进入实验报告页面,查看实验报告,详情请参见实验报告概述

后续步骤
  • 实验分享与权限管理:
    实验创建完成后,您还可以对实验进行权限管理,设置实验为公共可见还是私有实验,详情请参见实验权限管理
  • 实验诊断:
    实验创建完成后,如果您发现实验不符合预期,您可以进入实验详情页面后,对实验进行诊断,详情请参见实验命中诊断工具