A/B概述以及Drupal如何做A/B测试

 

一个商业网站,最重要的就是用户的体验和成交率(用户转化率),因此做为网站的管理或者市场运维人员,应该对访问者的喜好要有一个基本的把控,但是大多数情况下,我们无法对访问者的喜好做出主观判断,因此需要用到一个工具,A/B测试。

所以,多数网站,或者说CMS网站系统,A/B测试是非常重要的一个环节。

本文就A/B测试的基础概念以及如何在Drupal中做A/B测试,做一个简单的介绍和分析。

 

 

 

深入理解A/B

A/B测试不单单是AB,也可以有CD,本质上就是做多个版本,通过对多个版本用户的行为分析,然后决定采用哪一个版本。

我们可以从页面的展示方式来简单分为两种:

1. 全页面A/B测试(两个page);2. 局部页面A/B测试(同一个page)。

 

因为这两种AB,有不同的数据采集模式。

当然两种是可以转换的,比如第一种的全页面,也可以当成第二种的局部,只是这个局部稍等,里面的内容全部替换了。

比如第二种的局部,也可以做两个page,比较大部分内容一样,只是某个部分比如banner不一样,虽然是局部,但是也做了两个页面。

所以,针对这两种,我们重点区分是,同一个URL或不同URL的AB测试

 

1. 不同URL,可以通过入口分发,这样在统计结果里面,分析不同的URL的统计结果,然后可以对比,就能测试到AB的结果。

    比如两个URL的停留时间、热力图、点击事件、转化率等。

2. 相同URL,那么就需要设置参数,让统计工具知道我是A还是B,最后通过AB的结果分析,得到对比数据。

   所以,同一个URL一般需要配合统计工具的API,可能要写部分代码来实现AB测试。 

 

不同URL非常容易理解,相同URL的AB测试,可以参考下图:

 

通过上图,我们就了解了AB测试的整体过程和目标。

那么A/B测试通常会测哪些元素呢?

我们简单总结了一下,大约有下面几种类型,

1. 主要标题,比如不同标题,可以带来不同的转换或者停留时间。

2. 触发按钮,比如注册、订阅、联系我们,这些按钮的大小、颜色等变化会促使用户的操作几率发生变化。

3. 价格列表,我们通过不同的方式展示产品价格,会导致用户不同的反应,这个比较容易理解。

4. 产品描述,对产品的描述不同,用户查看、下单的几率也不同,所以也是比较关键的。

5. 客户评价,客户评价对用户的影响也比较大,所以通过不同的客户评价,可以分析用户下单的几率。

 

 

A/B测试的意义

通过上面的介绍,我们明白了A/B测试,也大概明白了A/B测试的目的,就是为了提高用户的转换率,或者成交率。

比如,我们通过修改用户下单按钮的颜色,来提高用户的下单率,如下图所示,我们将按钮的颜色改成了紫色,更鲜艳的颜色,可以导致用户的转换率提升18%,那这个方案胜出。

 

 

 

所以,A/B测试的目的和意义,就是猜出用户最喜欢的,然后提高转化率。

 

A/B测试的工具

很多统计工具自带A/B测试,尤其国外的收费的统计工具,当然用免费的Google Analysis或者百度统计也可以,通过自定义参数来区分A或者B。

不同URL的A/B比较简单,我们重点分析相同URL的A/B测试。

相同URL的A/B的思路,通过代码控制A/B,然后告知统计工具,当前把我统计到A或B,这样通过统计工具就能看到统计结果。

一般配置统计工具,我们能清晰的对比A/B的测试结果。

 

本次,我们通过开源的matomo来如何做A/B测试。

 

1. 首先登录Matomo,看到A/B测试

2. 创建A/B测试

3. 选择对比指标,比如停留时间、转化率、PV等

4. 生成A/B代码,将代码copy下来,修改其中对应A/B事件部分,换成我们自己的操作。

 

 
 
    var _paq = _paq || [];
    _paq.push(['AbTesting::create', {
        name: 'banner-color-ab', // you can also use '3' (ID of the experiment) to hide the name
        percentage: 100,
        includedTargets: [{"attribute":"url","inverted":"0","type":"any","value":""},{"attribute":"url","type":"starts_with","value":"https:\/\/sisutest.dev.weijiantou.com\/","inverted":"0"}],
        excludedTargets: [],
        variations: [
            {
                name: 'original',
                activate: function (event) {
                    // usually nothing needs to be done here
                }
            },
            {
                name: 'Green', // you can also use '5' (ID of the variation) to hide the name
                activate: function(event) {
                    // eg $('#btn').attr('style', 'color: ' + this.name + ';');
                }
            },                        {
                name: 'Gradation', // you can also use '6' (ID of the variation) to hide the name
                activate: function(event) {
                    // eg $('#btn').attr('style', 'color: ' + this.name + ';');
                }
            }            
        ],
        trigger: function () {
            return true; // here you can further customize which of your visitors will participate in this experiment
        }
    }]);
比如上面的代码,有一个activate函数,就是对应我们A/B应该做什么操作,比如把banner的颜色改成红色等。

5. 当搭建完AB测试,我们接下来就需要耐心等待结果,然后收集结果。

    比如下图,就从多个维度,展示了我们AB测试的具体结果数据。

 

 

基于Drupal的A/B测试

 

首先A/B测试大多是根据统计工具在一起的,所以大多数时候,AB测试需要统计工具提供,CMS只是辅助的实现。

目前,Drupal有两个模块可以实现类似的A/B测试。

1. A/B Test UI 

    这个模块其实是做了一个分流的重定向,所以他是不同的URL进行A/B的测试,理论上通过Nginx也可以,在CMS层面方便管理而已。

 

2. Smart Content

    这个模块,是可以通过一些不同的设置条件,展示不同的内容,因此我们可以在这个条件里面,增加A/B,然后进行A/B测试,不过模块默认不提供A/B的条件,我们需要自己开发插件。

    下图,我们可以看到smart content可以加多个条件,相当于if elseif else,条件也有多种选择,比如cookie相关、设备相关,UTM相关,所以这个可以满足我们大部分需求,尤其UTM相关。

    从推广A来的,就显示A内容,从推广B来的,就显示B内容。

    也可以自定义条件,关联到统计统计里面,这个也是一个A/B测试的好方法。

 

 

 

结论

 

A/B测试相对来说涉及范围比较广,可以跟流量渠道结合,比如不同流量来源给到不同的AB结果,或者跟用户画像相关,比如有某些特征(年龄、标签)的用户给另外的AB展示。也可以跟统计统计结合,比如GA、百度统计、Matomo、SmartLook、CrazyEgg、Optimizely等等。此外也跟CMS本身相关,比如内容的呈现、AB结果的定制、展示等。

因此,市面上很多A/B测试是收费的,或者提供了收费的解决方案,所以我们选择A/B测试工具或者开源工具的时候,需要对A/B测试的流程、实施、结果收集要有一个完整的了解,才能做到有的放矢,达到测试的目的。

 

 

更多关于资源库建设和CMS建设的文章,请参考下面的相关链接,

1、文化数据库方案介绍

2、基于开源Drupal构建的国内外高校的特色资源库案例介绍

3、免费开源的资源库管理系统介绍:Islandora 

4、如何用开源的系统来构建知识库平台?

5、如何基于开源系统构建资料库/文档库平台

6、如何建设在线展览和多媒体展览?

7、CMS如何存储和管理大量图片/海量图片?

8、CMS如何做视频管理?