02 March 2012

[caption id=”attachment_1350” align=”alignright” width=”180”] A/B Test[/caption]

A/B Test是网站分析的主要工作内容之一。通过A/B Test能够有效的比较多个版本页面之间的效果。Google Web Optimizer(GWO)是Google提供的一款免费工具,利用它营销人员可以很方便的进行A/B Test及多变量测试,所需要做的只是在指定页面上添加几行JS代码,而不需要更多的IT资源。

一、GWO A/B Test访问者分配的基本流程

1、访问者在浏览器中请求实验页面的URL

2、你的网站服务器返回实验页面的HTML代码

3、放在页面顶部的GWO控制脚本执行

4、控制脚本判断应该为访问者分配的页面版本,如果是原始页面,则不作任何处理,如果是替换页面,则按照用户在GWO指定的URL进行跳转

二、GWO标准的A/B Test的局限性

GWO标准的A/B Test主要用于对单个页面的测试,因为在GWO中输入的替换页面是固定的。比如,测试不同版本首页的效果。但是,如果你想要测试的内容页面组效果,比如不同版本的产品类目页。

原始页面组:

http://www.mysite.com/category1/index.htm

http://www.mysite.com/category2/index.htm

http://www.mysite.com/category3/index.htm

……

对应的实验页面组:

http://www.mysite.com/category1/index-t.htm

http://www.mysite.com/category2/index-t.htm

http://www.mysite.com/category3/index-t.htm

这类的实验无法用GWO标准的A/B Test实现,但是,在实践过程中,却有着巨大的应用价值。通过一些简单的自定义GWO也可以帮我们实现这个需求。

三、用GWO实现页面组A/B Test的基本思路及实现方法

通过一些自定义GWO的A/B Test和多变量Test都可以实现页面组的A/B Test。

1、GWO的A/B Test实现页面组A/B Test

对于GWO的A/B test来说,我们可以指定一组页面(GWO的控制脚本可以放在模板页面)跳转到一个页面,将这个(或多个)跳转的页面作为中间页面,再通过页面JS跳转到对应的替换页面。

以上面的页面组A/B Test情景为例:

(1)在GWO中创建一个A/B Test

(2)任选一个实验页面URL填入GWO中原始页面中

(3)在GWO的界面中不要填写任何的实验页面,而是填写一个中间的跳转页,比如:www.mysite.com/redirect.html。在这个页面上写一段JS跳转脚本。起作用是从referer中获得url,并将替换其中的某一部分,然后跳转。

对于上面的页面组来说,这段JS跳转脚本要做的就是把referer中的index.htm替换为index-t.htm。例如下面这段:

<script type="text/javascript">
var r=document.referrer
if(r.indexOf('index.html')!=-1){
  r2=r.replace(/index.html/,'index-t.html')
  document.location=r2}
else{
document.location="http://www.mysite.com"
}
</script>

这样当访问者访问实验页面组时,GWO会进行判断,如果需要为访问者展示替换页面则将访问者跳转到www.mysite.com/redirect.html这个中间页面,这个页面上根据referrer的值再将访问者跳转到对应的具体替换页面上。

(4)填写转化页面URL

(5)在原始页面组中,与标准的A/B Test一样,添加对应的控制脚本及跟踪脚本。

(6)在转化页面添加转化脚本

这种方法的缺点是需要经过两次跳转,对用户体验较差。其优点是实施相对简单一些。

2、用GWO的MVT(多变量测试)来实现页面组A/B Test

整体思路与上一种方法是一致的。一点区别是利用GWO MVT的功能,将URL变化的部分存储在GWO的服务器,再通过一些JS脚本根据这些内容来拼成实际的URL。

还以上面的页面为例:

(1)在GWO中创建一个MVT

(2)从实验页面组中任选一个填入实验页面URL

(3)填入转化页面URL

(4)在实验页面组中添加控制脚本,请注意控制脚本应放在页面的最上面。但是不需要按照指示添加section脚本。在控制脚本下,填入下面的代码:

<!-- utmx section name="page-url" -->
<script>
function filter(v) {
  var b = utmx('variation_content', 'page-url');
  var u = v[0].contents;
  if (b && u.substr(0,7) == 'http://' && b.substr(0, 7) != 'http://') {
    u = u.substr(7);
  }

  var l = document.location.href;
  var prefix = 'mysite.com/';
  var i = l.indexOf(prefix);
  var j = l.indexOf('/', i + prefix.length);
  u = u.replace('category', l.substring(i + prefix.length, j));

  return u;
}
utmx('url', 'page-url', 0, filter);
</script>

<!-- utmx section name="page-url" -->这段注释的作用与Section脚本类似,声明了名为page-url的section。

utmx这个函数在GWO中有多种用途,其调用形式为utmx( feature, arg1, arg2, … argn ),其中第一个参数是一个字符串用来描述所请求的功能,后面的参数随第一个参数的不同而不同。已知有如下几种情况:

a、用于重定向的跳转:utmx(‘url’, ‘page-url’, 0, filter),见上面的情况;或者utmx(‘url’, ‘A/B’),见标准的A/B Test。第一个参数URL,告诉GWO要进行重定向;第二个参数是section的名称,在标准的A/B Test情况下,实际上是为指定了名称为A/B的Section;第三个参数是一个位置标识符,不需要管它;第四个参数是定义在重定向发生前对重定向URL进行过滤的函数。

这个函数的作用机制是这样的:首先,从名为第二个参数的section中获得跳转的URL。然后按照位置标识符及过滤器规则对获取的信息进行重写。最后,按照重写后的URL进行重定向(如果需要展示替换版本的话)。标准A/B Test直接就使用GWO界面中输入的替换URL,因此,不需要位置标识符和URL过滤器。

在调用过滤器函数前,utmx函数会对目标URL做许多事情,首先,它将当前URL的查询参数附加到目标URL后,另外,它会查看目标URL是否包含协议,如果不包含协议,则会为目标URL添加http://。

b、获取当前访问者的变量信息:utmx( “variation_number”, section_name )及utmx( “variation_content”, section_name )。这个方法的作用是根据section名称返回数字形式的变量名(0至N-1,原始版本为0,N为替换版本数。)或者在GWO中输入的section的替换信息。

例如,你用utm_section在页面上创建了一个名为ABC的section,有二个替换内容,内容以此为DEF、GHI。那么,如果一个访问者被选择为查看DEF,则utmx( “variation_number”, “ABC” )会返回1,utmx( “variation_content”, “ABC”)则会返回DEF。

这个主要是获得单个变量的信息。

C、获取当前访问者的组合信息:utmx( “combination” )及utmx( “combination_string” )。前者返回的是数字形式代表的组合信息(0至N-1,N为实验条件数),后者返回的是字符形式的组合信息。后者在GA与GWO数据整合过程中有重要的应用,基本思路是以Visitor级别的自定义变量将访问者的组合信息与访问行为关联,或者将组合信息以参数形式附加在实验URL后,以便比较不同实验条件的效果,我会在下一篇关于GWO高级使用技巧中介绍。

例如,你进行了一个三个变量的MVT,A变量为section a,B变量为section b,C变量为section c,A变量有3个水平,a1、a2、a3,B变量有2个水平b1、b2,C变量有4个水平,c1、c2、c3、c4,即324实验设计,共24种实验条件。如果一个访问者被选择的实验条件为a1b2c3,则utmx( “combination” )会返回5,而utmx( “combination_string” )会返回1-2-3。utmx( “variation_number”, “a” )会返回0,utmx( “variation_content”, “b” )会返回GWO中为b2输入的替换内容。

filter这个方法。它的主要作用是用来重组重定向的URL。稍后我们再来看一下。

(5)在转化页面添加转化脚本。

(6)在GWO的Variation页面输入替换的URL。

[caption id=”attachment_1473” align=”aligncenter” width=”950”] Variation[/caption]

让我们再来看一下filter函数的作用。简单来说呢,就是用当前页面URL(document.location.href)中类别(通过前缀与其后的”/”进行定位)替换GWO界面中Variation中存储的备选URL中category。

到这里,利用MVT进行的页面组A/B Test就介绍完了。与利用GWO的A/B Test进行的页面组A/B Test相比,其优势在于仅使用一次重定向,用户体验稍好,其劣势是JS相对复杂,同时要对GWO的API有一定了解。

以上就是如何用GWO进行页面组的A/B Test的基本思路和实现方式,欢迎您分享这方面的经验,如果有任何疑问,也欢迎给我留言~



分享到: 更多
友荐云推荐