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

Google Website Optimizer 修正代码

2010-07-25
Google Website Optimizer的代码,问题越来越多,在使用时不得另外再起一套代码,来实现正常的测试;

已经发现的常见的问题:
1、如果在里边直接写CSS或JS,在IE6中会让同一个用户看到多个版本;
2、在IE6中多次刷新,也有可能会看到多个版本;
3、在IFRAME中调用,如果电脑上安了360,有可能__utmx这个COOKIE种不上;

总之,TMD,很麻烦;

今天抽空写了一个简单的方法,来解决这些问题;

通常的代码如下:

<!-- Google Website Optimizer Control Script -->
<script>
function utmx_section(){}function utmx(){}
(function(){var k='2287940076'...................
</script>
<!-- End of Google Website Optimizer Control Script -->


<!-- Google Website Optimizer Tracking Script -->
<script type="text/javascript">
............gwoTracker._trackPageview("/2287940076/test");
..........................................................
</script>
<!-- End of Google Website Optimizer Tracking Script -->


接下来,就是要显示哪个版本了,省掉他的代码,直接用以下代码:

<script>
//这里写的很麻烦是有原因的,因为一个网站可能存在多个测试,所以要避开其它的测试;所以写的很麻烦,没有优化过;
function getOptimizerTestVersion(key){
	var cookieValue = ""; 
	var search = "__utmx="; 
	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)) 
		} 
	} 
	if(cookieValue == "") return null; 
	var sL = cookieValue.indexOf(key);
	if(sL != -1){   
		var v = cookieValue.substring(sL+key.length+1, sL+key.length+10); 
		var vArray =  v.split(':');
		return vArray[1];
	}  
	return null;
}

var v = getOptimizerTestVersion('2287940076');//返回一个版本号
if(v != null){
	alert('当前的测试版本为' + v);
}
</script>


本方法,已被实践检验过!



关于OPTIMIZER的一些文章:

多目标测试_ Google Website Optimizer:http://www.zishu.cn/09/839.html
服务器端自已分配测试比例进行A/B测试__Google Website Optimizer:http://www.zishu.cn/09/853.html
自已拿版本号来测试的一个方法___Google Website Optimizer:http://www.zishu.cn/09/866.html
评论:0 条 | 查看:314 次

发布评论/留言

名字/昵称:
内容: