GTM 和优化:JS 变量未定义但在控制台中运行良好
GTM & Optimize : JS Variable is undefined but in console it works well
我正在尝试在 Google 跟踪代码管理器中显示 Google 优化变体。
我尝试通过"Custom JavaScript Variable"实现它:
function() {
var property = window.keys(gaData);
var experiment_nr = window.keys(window.gaData[property].experiments);
var experiment_value = window.values(window.gaData[property].experiments).toString()
if (experiment_value == "") {
return "0"
} else {
return experiment_value
}
}
这是它的结果:
然后我尝试使用 5 秒延迟触发来测试我的代码:
这是 DevTools JS 控制台的结果:
如您所见,控制台不接受 GTM,但在我手动输入时接受。
有人可以帮我吗?
尝试使用 dataLayer 而不是 window 对象。
其实答案很简单。
Google Optimize 使用名为 _gaexp
的 cookie。
在那里,您会得到一个总结 Google 优化实验 ID 以及最后的版本的字符串:
GAX1.2.wHL2IJUnSg2n8PB4iQH66w.18362.1
我所要做的就是创建一个新的变量来读取 cookie:
- 新变量
- Cookie 名称为“_gaexp”的第一方 Cookie
您当然可以通过从 DevTools 控制台调用 Cookies.get('_gaexp')
来获取带有 JavaScript 的 cookie 名称(以检查 cookie 值是否正确)
必须操纵 _gaexp
值以隔离变体:
- 新变量
- 自定义JavaScript
- 添加以下代码:
function (){
if ({{GA_Optimize_Variable}}=='undefined'){
return '0'
} else {
return {{GA_Optimize_Variable}}.charAt({{GA_Optimize_Variable}}.length-1)
}
}
当 Google 优化将您的流量引导至网站的原始变体时,_gaexp
不存在。因此,需要一个if语句。
最后,您可以在 Google 分析事件 and/or 维度中使用您的变量。
我正在尝试在 Google 跟踪代码管理器中显示 Google 优化变体。
我尝试通过"Custom JavaScript Variable"实现它:
function() {
var property = window.keys(gaData);
var experiment_nr = window.keys(window.gaData[property].experiments);
var experiment_value = window.values(window.gaData[property].experiments).toString()
if (experiment_value == "") {
return "0"
} else {
return experiment_value
}
}
这是它的结果:
然后我尝试使用 5 秒延迟触发来测试我的代码:
这是 DevTools JS 控制台的结果:
如您所见,控制台不接受 GTM,但在我手动输入时接受。
有人可以帮我吗?
尝试使用 dataLayer 而不是 window 对象。
其实答案很简单。
Google Optimize 使用名为 _gaexp
的 cookie。
在那里,您会得到一个总结 Google 优化实验 ID 以及最后的版本的字符串:
GAX1.2.wHL2IJUnSg2n8PB4iQH66w.18362.1
我所要做的就是创建一个新的变量来读取 cookie:
- 新变量
- Cookie 名称为“_gaexp”的第一方 Cookie
您当然可以通过从 DevTools 控制台调用 Cookies.get('_gaexp')
来获取带有 JavaScript 的 cookie 名称(以检查 cookie 值是否正确)
必须操纵 _gaexp
值以隔离变体:
- 新变量
- 自定义JavaScript
- 添加以下代码:
function (){
if ({{GA_Optimize_Variable}}=='undefined'){
return '0'
} else {
return {{GA_Optimize_Variable}}.charAt({{GA_Optimize_Variable}}.length-1)
}
}
当 Google 优化将您的流量引导至网站的原始变体时,_gaexp
不存在。因此,需要一个if语句。
最后,您可以在 Google 分析事件 and/or 维度中使用您的变量。