您现在的位置 » 博客首页 » 前端代码

自已拿版本号来测试的一个方法___Google Website Optimizer

2009-11-17
最近发现Google Website Optimizer在IE6中的表现非常不稳定,以前在里边直接写CSS,写JAVASCRIPT,都没有问题,但现在如果在里边写JAVASCRIPT,实际上在IE6中通常不执行!如果这样,测试的数据没有任何意义!

为了修正这个问题,尝试用以前写的一个《http://www.zishu.cn/09/853.html服务器端自已分配测试比例进行A/B测试__Google Website Optimizer》来解决,这样是可以解决的,但是服务器端的部署代码就变得很臃肿,所以,今天想了一个简单的办法,来解决这个问题!

原理:

如果你开启了一个多变量的测试,里边算上原始版本一共2个版本的话,原始版本的最后一位都是0,而其它的会以加入的次序从1开始往后推,如1、2、3……;这样就好办了!只是我们能拿到最后一位就可以知道当前是哪个版本了!

假如我开始了一个实验,实验的ID是2506888888,这时你要吧通过以前作的一个工具:http://www.zishu.cn/s/tool/showOptCookie.php 去GOOGLE的服务拿到一个完整的UTMX COOKIE的值“00005423942506888888:3:0”;从这个值上来看,现在的版本应该是原始版:)

代码:

<script>
var testVersion = 0; //默认我们从原始版开始

//取COOKIE的一个方法
function readCookie(name){
	var cookieValue = ""; 
	var search = name + "="; 
	if(document.cookie.length > 0) { 
		offset = document.cookie.indexOf(search); 
		if (offset != -1){ 
			offset += search.length; 
			end = document.cookie.indexOf(";", offset); 
			if (end == -1){
				end = document.cookie.length; 
			}
			cookieValue = decodeURIComponent(document.cookie.substring(offset, end)) 
		} 
	} 
	return cookieValue; 
}
</script>

<script>
var cUtmx = readCookie('__utmx'); //先取到COOKIE
var testKey = '00007078412911612456:3:'; //这里我把最后一位去除了,因为我们不知道当前是哪个版本
var sL = cUtmx.indexOf(testKey); //去COOKIE中看一下这个值有没有,并在哪个位置
if(sL != -1){ 
	sL += testKey.length;
	testVersion = cUtmx.substring(sL, sL+1); //如果有,就拿到一个版本
}
</script>


这样,在客户端,我们只要看testVersion是几就知道当前是哪个版本了!
这样布属起来方便多了,面且不会有IE6中的问题!代码比较粗糙,明白意思就行了!

以前写的关于Google Website Optimizer相关文章:
1、《http://www.zishu.cn/09/839.html 多目标测试_ Google Website Optimizer》

2、《http://www.zishu.cn/09/853.html 服务器端自已分配测试比例进行A/B测试__Google Website Optimizer 》
评论:0 条 | 查看:2694 次

发布评论/留言

名字/昵称:
内容: