You need to enable JavaScript to run this app.
导航

如何配置实验参数

最近更新时间2023.04.07 14:25:40

首次发布时间2021.02.23 10:41:56

一. 概述

实验参数,是对实验版本的补充,一般是一个功能控制配置项,用来区分对照组和实验组,需要开发人员获取并解析后实验参数才能生效。创建实验时通过配置实验参数,不仅可以实现实验分流,同时好的实验参数设计,也能帮助实验创建者在不增加开发工作量的前提下,进行更灵活的实验。

  • 举个例子,某短视频电商推荐运营人员提出一个假设:用户看到带货视频后,可能会直接滑走甚至退出APP,即商品卡片的展示时机会影响用户对视频的消费时长。

可以设计实验为:

  • 对照组:视频开始播放时立即展示商品卡片
  • 实验组1:视频播放5秒后展示商品卡片
  • 实验组2:视频播放10秒后展示商品卡片

借助实验参数配置功能,首先在代码中解析goods_card_show_time参数并实现视频播放{goods_card_show_time}秒后展示商品卡片,然后在创建实验时对照组/实验组1/实验组2分别配置goods_card_show_time=0/5/10,即可完成实验的上线。
假如后续要实验“视频播放8秒后展示商品卡片”的效果,则无需修改代码,仅在创建实验时配置实验参数为goods_card_show_time=8即可,甚至可以通过配置不同的参数值创建多组实验后取最优goods_card_show_time值发布。

二. 参数类型及示例

Number

示例:电商推荐场景中,商品卡片展示时机实验

  • 对照组:视频开始播放时立即展示商品卡片
  • 实验组:视频播放5秒后展示商品卡片

代码实现中,解析实验参数goods_card_show_time为视频播放时长,创建实验时,配置对照组、实验组的参数分别如下:

对照组配置:
        "goods_card_show_time": 0
实验组配置:
        "goods_card_show_time": 5

String

示例:视频推荐引导用户关注的提示文案实验

  • 对照组:无引导
  • 实验组1:关注飙升
  • 实验组2:多位好友关注

代码实现中,解析实验参数follow_guide_tips为字符串,表示引导用户关注文案,创建实验时,配置对照组、实验组的参数分别如下:

对照组配置:
        "follow_guide_tips": ""
实验组1配置:
        "follow_guide_tips": "关注飙升"
实验组2配置:
        "follow_guide_tips": "多位好友关注"

Boolean

示例:视频推荐场景,控制是否展示互动引导

  • 对照组:不展示互动引导
  • 实验组:展示互动引动

代码实现中,解析实验参数show_interact_guide为boolean值,表示是否展示互动引导,创建实验时,配置对照组、实验组的参数分别为如下:

对照组配置:
        "show_interact_guide": false
实验组配置:
        "show_interact_guide": true

Json

一般用于多功能联合实验的场景,此时需要多个参数组合来控制实验逻辑。

示例:视频推荐场景,控制是否展示互动引导以及互动引导展示时机和展示时长实验

  • 对照组:不展示互动引导
  • 实验组1:展示互动引导,且在视频播放剩10秒时展示互动引导3秒
  • 实验组2:展示互动引导,且在视频播放剩15秒时展示互动引导5秒

代码实现中,解析json格式实验参数,其中show_interact_guide表示是否展示互动引导,show_interact_guide_duration表示互动引导展示时长,play_video_countdown表示视频播放倒计时。创建实验时,配置对照组和实验组的参数分别如下:

对照组配置:
{
        "show_interact_guide": false
}

实验组1配置:
{
        "show_interact_guide": true,
        "show_interact_guide_duration": 3,
        "play_video_countdown": -10
}
实验组2配置:
{
        "show_interact_guide": true,
        "show_interact_guide_duration": 5,
        "play_video_countdown": -15
}
三. 参数设计

实验参数从开发人员视角来看就是一个功能控制配置,因此在进行AB参数设计的时候需要避免一个误区,不要按实验设计来设计参数。例如如下实验:

实验组:

  • 实验组1:仅操作信息5秒后异化
  • 实验组2:进方案一的向上滚,无操作信息5秒后异化
  • 实验组3:方案一+操作信息5秒后异化
  • 实验组4:仅方案二的效果二(一起悬停再一起滚动),无操作信息5秒后异化
  • 实验组5:方案二的效果二+操作信息5秒后异化

一个不恰当的实验参数设计方案是枚举所有实验组(如下preview_expose_style的设计),此时功能的控制只能通过硬编码来处理,如果涉及到实验方案调整,或者其他实验需要复用某些功能,都需要另外开发。

{
    "webcast": {
        "preview_expose_style": 1, // 1/2/3/4/5 分别对应不同实验组1/2/3/4/5
    }
}

合适的AB参数设计应该是按功能控制视角来进行设计,对于上面的实验,可以设计如下控制参数,然后通过组合这些参数达到实验组的效果。

{
    "webcast": {
        "guide_change": 1, // 操作信息是否异化
        "guide_change_after": 5000, // 操作信息X毫秒后异化
        "preview_expose_style": 1, // 1,2分别对应方案一和方案二效果二
    }
}

实验组1:

{
    "webcast": {
        "guide_change": 1,
        "guide_change_after": 5000
    }
}

实验组2:

{
    "webcast": {
        "preview_expose_style": 1
    }
}

实验组3:

{
    "webcast": {
        "guide_change": 1,
        "guide_change_after": 5000,
        "preview_expose_style": 1
    }
}

实验组4:

{
    "webcast": {
        "preview_expose_style": 2
    }
}

实验组5:

{
    "webcast": {
        "guide_change": 1,
        "guide_change_after": 5000,
        "preview_expose_style": 2
    }
}