1.4.4.2 实验变量

优质
小牛编辑
130浏览
2023-12-01

在业务场景中,我们经常需要对某一个元素反复进行调节以达到最优实验效果,举例如文案内容,颜色等等。

  1. 传统或者各个业务内部自己实现的实验平台,对这种不确定的需求并没有很好支持,通常这种情况需要开发重新开发。
  2. HubbleData的A/B测试平台,通过变量的灵活使用与集成,产品方可以轻松地解决这个问题。

本节将会对变量进行详细介绍,内容包括变量的概念、变量的应用以及最佳实践。

1.1. 概念

在实验法中,各种需要操纵、控制和测量的因素或条件都是变量百度百科。实际使用过程中,因素、因子、元素等等都是同一个意思。具体来说:

  1. 变量的讨论限定在实验法中,其他场景下的内容我们暂时不作考虑;
  2. 实验变量跟实验内容或者操作工具有关,那些我们不关心或者不可以操作的内容可以看做实验环境;
  3. 实验变量是操控的具体对象或者条件,例如文本,颜色,变量值是对象的具体实现。举例如:颜色可以作为某一个实验变量,而蓝色是颜色的某一个具体值。

回到线上环境,举例如下:

实验变量
Figure: 实验变量

CTA按钮的颜色或者文案就是我们希望控制的实验因素,也即我们此处介绍的实验变量。一般来说实验,版本以及变量的逻辑关系如下:

实验变量
Figure: 实验变量
互联网业务场景下,这些变量具体对应哪些内容?

所有的业务内容(交互流程或者页面内容)都是通过程序或者代码来实现的,所以这些实验变量对应计算机程序中的参数或者属性。简单来说,实验变量可以从两个角度来看:

  1. 从用户或者产品角度:实验变量对应不同的交互流程或者页面元素,是我们直接的产品体现
  2. 从开发或者程序角度:实验变量对应不同的参数,是交互流程的代码实现。对于蓝色版本的实验来说,实验变量为color值为2d78f4

1.1.1. 总结

实验变量的概念可以从不同角度进行解读,总结来看实验变量有两重含义:

  1. 具体业务场景测试的实验内容,举例如:文案,颜色或者某一个实验模块
  2. 计算机代码中的具体实现,举例如:color(blue/white),text(立即注册/免费注册)等等

我们自然会引申到另一个问题,业务场景中我们应该怎么进行多变量测试?下一节我们将对这个问题进行讨论。

1.2. 应用

从实现角度来看,我们通过程序变量来对实验内容进行描述,但是仅有变量还不足以支撑实验的运行,我们需要有一个模块对用户进行分流。具体来说,可以将实现方式分解为两个部分:

  1. 逻辑控制层:用来控制不同实验版本
  2. 实验内容层:对应不同实验版本展现不同实验内容

实验变量主要体现在实验内容层,通过不同变量值来体现不同实验内容。具体解释如下: 实现方式

    get_variable(experiment_x)     # 逻辑控制
    then versionId = B    # 实验内容
  1. 通过应用控制层,程序对不同用户进行分流,控制不同实验版本
  2. 通过实验内容层,程序用实验变量对不同实验内容进行展现

当然实际情况可能会比较复杂,某一个实验版本对应一个比较大的实验模块,此时我们在程序中可能无法清晰定义实验变量。

1.3. 最佳实践

我们结合的HubbleData对变量的使用进行说明,在实际使用场景中,我们经常需要对某一个元素反复进行调节以达到最优实验效果。我们来看通过HubbleData怎么能够快速解决这个问题,首先对这个问题进行分解,我们需要解决以下这些内容:

  1. 页面内容是动态变化的,支持后期调节;
  2. 需要有一个后台支持策划或者运营对变量进行调节;
  3. 不成功的改动快速下线,新内容快速上线;

整体流程如下:

  1. 开发在程序中将关心的实验元素设为变量,变量值可以接收外部参数;
  2. 在HubbleData后台将实验变量设为跟当前变量一致,或者可以相互引用
  3. 在HubbleData后台设置变量的值,并且启动实验

具体业务代码如下:

    DATracker.abtest.get_variation(function(flgs) 
        {
            var bColor = flgs.get('bColor');
                    this.$update({ 
                                      btnBcolor: bColor,
                                    });
        }

设置完成之后,用户可以在后台对实验变量进行灵活调整。

  1. 实验变量内容由业务方填入,例如:按钮的颜色或者文案
  2. 实时动态更改, 当某一个实验效果不理想时可以快速调整