Google 优化:如何 A/B 测试,使用和不使用 Javascript 脚本
Google Optimize: How to A/B test, with and without a Javascript script
我的网站中有以下脚本:
<script type="text/javascript" src="https://code.evidence.io/js/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjE2OTh9.2mZpV00Ls3Wgrl7Knm-Bh2z-I7lPaX_5b4d-RbuWl90"></script>
我在Google中没有找到“删除”它的方法优化:有没有办法查看源代码,select这个脚本并“删除”它以进行测试? (我只看到 select 带有 ID 或 class 元素的方法,但看不到脚本)。
如果没有,我最好的办法是从我的网站删除该脚本并将其添加到 Google 优化全局 Javascript 部分。
但我不知道如何将该脚本放入 function(){ }
不确定这个想法是否真的有意义。
实际上,我发现这个想法有问题:我找不到如何将 Javascript 代码添加到整个网站,因为它似乎准备测试单个页面。
未来寻找问题解决方案的人请注意:我在这里也问过同样的问题:https://support.google.com/optimize/thread/84843254?hl=en
所以a "community specialist" gave me the solution。我希望在这里总结它可以帮助其他人:
If you want to delete a element in the page, that's not
possible. The script has already been executed, removing the
element does not do anything.
解决方法是删除网站中的脚本。
然后将以下代码添加到全局 Javascript(在 Google 优化变体上)以注入脚本:
const scriptEl = document.createElement('script');
scriptEl.src = 'https://.....';
document.head.appendChild(scriptEl);
目前这对我来说效果很好。
啊,我还没有找到在整个网站上测试脚本的方法,所以我不得不创建几个实验来代替。
--更新--
加载Javascript脚本除Google优化页面之外的所有地方运行 实验.
在我的具体案例中,我意识到上述解决方案是不够的,因为我需要整个网站上的脚本来捕获网站上的每日用户数。
所以在全局网站头部添加了以下内容:
<!-- Load Javascript script globally except on the page where we are testing it with Google Optimize -->
<script>
if(window.location.href.indexOf("/URL-OR-PART-OF-THE-URL-1/") > -1) {
// (If the URL contains the above, load nothing)
}
else if(window.location.href.indexOf("/URL-OR-PART-OF-THE-URL-/") > -1) {
// (If the URL contains the above, load nothing)
}
else {
// Loads Javascript Evidence pixel
(function () {
var params = {}; // If you want to pass anything, to the called function
var script = document.createElement("script");
script.type = "text/javascript";
if (script.readyState) {
script.onreadystatechange = function () {
if (script.readyState == "loaded" || script.readyState == "complete") {
script.onreadystatechange = null;
theFunctionInsideExternalScript(params);
}
}
} else {
script.onload = function () {
theFunctionInsideExternalScript(params);
}
}
script.src = "https://SCRIPT-URL-TO-LOAD-GOES-HERE";
document.getElementsByTagName("head")[0].appendChild(script)
})();
}
</script>
我的网站中有以下脚本:
<script type="text/javascript" src="https://code.evidence.io/js/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjE2OTh9.2mZpV00Ls3Wgrl7Knm-Bh2z-I7lPaX_5b4d-RbuWl90"></script>
我在Google中没有找到“删除”它的方法优化:有没有办法查看源代码,select这个脚本并“删除”它以进行测试? (我只看到 select 带有 ID 或 class 元素的方法,但看不到脚本)。
如果没有,我最好的办法是从我的网站删除该脚本并将其添加到 Google 优化全局 Javascript 部分。
但我不知道如何将该脚本放入 function(){ }
不确定这个想法是否真的有意义。
实际上,我发现这个想法有问题:我找不到如何将 Javascript 代码添加到整个网站,因为它似乎准备测试单个页面。
未来寻找问题解决方案的人请注意:我在这里也问过同样的问题:https://support.google.com/optimize/thread/84843254?hl=en
所以a "community specialist" gave me the solution。我希望在这里总结它可以帮助其他人:
If you want to delete a element in the page, that's not possible. The script has already been executed, removing the element does not do anything.
解决方法是删除网站中的脚本。
然后将以下代码添加到全局 Javascript(在 Google 优化变体上)以注入脚本:
const scriptEl = document.createElement('script');
scriptEl.src = 'https://.....';
document.head.appendChild(scriptEl);
目前这对我来说效果很好。
啊,我还没有找到在整个网站上测试脚本的方法,所以我不得不创建几个实验来代替。
--更新--
加载Javascript脚本除Google优化页面之外的所有地方运行 实验.
在我的具体案例中,我意识到上述解决方案是不够的,因为我需要整个网站上的脚本来捕获网站上的每日用户数。
所以在全局网站头部添加了以下内容:
<!-- Load Javascript script globally except on the page where we are testing it with Google Optimize -->
<script>
if(window.location.href.indexOf("/URL-OR-PART-OF-THE-URL-1/") > -1) {
// (If the URL contains the above, load nothing)
}
else if(window.location.href.indexOf("/URL-OR-PART-OF-THE-URL-/") > -1) {
// (If the URL contains the above, load nothing)
}
else {
// Loads Javascript Evidence pixel
(function () {
var params = {}; // If you want to pass anything, to the called function
var script = document.createElement("script");
script.type = "text/javascript";
if (script.readyState) {
script.onreadystatechange = function () {
if (script.readyState == "loaded" || script.readyState == "complete") {
script.onreadystatechange = null;
theFunctionInsideExternalScript(params);
}
}
} else {
script.onload = function () {
theFunctionInsideExternalScript(params);
}
}
script.src = "https://SCRIPT-URL-TO-LOAD-GOES-HERE";
document.getElementsByTagName("head")[0].appendChild(script)
})();
}
</script>