Javascript 如何编写禁用样式表的Google内容实验?
我目前正在尝试设置一个与默认内容实验a/B测试相反的a/B测试。我所要做的就是让一半的访问者禁用页面上两个现有样式表中的一个 对我来说,用默认的A/B方式这样做是没有意义的,因为这样我就必须为我的站点上的每个页面设置一个禁用样式表的第二个页面 但对我来说,还有一件事太重了,我认为这件事应该简单一些 我有js all设置,我只需要能够告诉页面,当存在给定的变体时,在DOM加载之前禁用样式表或不呈现样式表 我考虑的一件事是,给定某种变化,重定向到同一个页面,但附加一个url查询参数,如Javascript 如何编写禁用样式表的Google内容实验?,javascript,content-experiments,Javascript,Content Experiments,我目前正在尝试设置一个与默认内容实验a/B测试相反的a/B测试。我所要做的就是让一半的访问者禁用页面上两个现有样式表中的一个 对我来说,用默认的A/B方式这样做是没有意义的,因为这样我就必须为我的站点上的每个页面设置一个禁用样式表的第二个页面 但对我来说,还有一件事太重了,我认为这件事应该简单一些 我有js all设置,我只需要能够告诉页面,当存在给定的变体时,在DOM加载之前禁用样式表或不呈现样式表 我考虑的一件事是,给定某种变化,重定向到同一个页面,但附加一个url查询参数,如&styles
&stylesheet\u disabled=true
,然后我不会在服务器端呈现样式表,但当我简要查看时,我遇到了重定向循环,但也许有人有更好的方法来编写js
非常感谢您的帮助。以下是我是如何做到的:
<head>
<script src="//www.google-analytics.com/cx/api.js?experiment=EXPERIMENT_ID"></script>
<script>
// Ask Google Analytics which variation to show the visitor.
var chosenVariation = cxApi.chooseVariation();
function redirectVariation($variation) {
var url = window.location.href;
if ($variation === 1) {
var queryString = document.location.search;
if (queryString.indexOf("stylesheet_disabled=true") == -1) {
if (Boolean(queryString)) {
url += "&stylesheet_disabled=true";
} else {
url += "?stylesheet_disabled=true";
}
window.location.href = url;
}
}
}
redirectVariation(chosenVariation);
</script>
//询问Google Analytics向访问者显示哪种变体。
var chosenVariation=cxApi.chooseVariation();
函数变量($variation){
var url=window.location.href;
如果($variation==1){
var queryString=document.location.search;
if(queryString.indexOf(“样式表\u disabled=true”)=-1){
if(布尔值(查询字符串)){
url+=“&样式表_disabled=true”;
}否则{
url+=“?样式表_disabled=true”;
}
window.location.href=url;
}
}
}
变异(乔森变异);
这只是针对一种不同变体的设置,但可以轻松修改以获得更多变体。然后,您只需让服务器端的应用程序检测querystring参数的存在,并执行您喜欢的任何逻辑,在我的例子中,不显示样式表
从理论上讲,这可以用于使用GA内容实验客户端重定向执行任何类型的服务器端逻辑。希望这能帮助其他人。您可以这样做:
...
如果(cxApi.chooseVariation()!=1){//不在实验中
谢谢你,我用你的解决方案重构了我的代码,它比我的解决方案工作得更好。