即使两个条件都为真,GTM 代码也不会触发
GTM tag not firing even when both conditions are true
我正在尝试在满足以下两个规则时触发 GTM 代码:
rules image
自定义js变量内容为:
function () {
setTimeout(function () {
var thankyouMessage = document.querySelector("#newsletter-success").innerHTML === "Thank you for your subscription.";
console.log('thankyouMessage', thankyouMessage);
return thankyouMessage;
}, 2000)
}
目前未触发代码。
每当我删除自定义规则时,标签都会被触发,但当我添加它时,我可以看到 'true' 打印到我的控制台,这意味着自定义规则运行正确。
我还尝试使用不涉及 'setTimeout' 的不同自定义规则并且它有效。但是我必须使用超时,因为我尝试捕获的事件不会立即发生。
如何正确触发代码?
谢谢。
您可以将代码编辑为自定义 html 标记,而不是使用自定义 javascript 变量。
自定义 HTML 标签将由所有元素点击触发器触发,其中点击 Class 等于按钮。 (没有 ThanksForSub.. 检查的相同触发器)。
自定义 HTML 标记将调用超时函数,而不是 return 值,它将执行 dataLayer.push 并将结果包含在其中。
然后您将使用此事件和您最初希望触发的标签上的数据层值创建自定义事件触发器。
为了访问传递的值,您需要创建一个用户定义的变量数据层类型,使用 'success' 作为键。
自定义 HTML 标记脚本。
<script>(function() {
try {
setTimeout(function () {
var thankyouMessage = false;
var thankyouMessageObj = document.querySelector("#newsletter-success");
if(thankyouMessageObj && typeof thankyouMessageObj.innerHTML != 'undefined') {
thankyouMessage = thankyouMessageObj.innerHTML === "Thank you for your subscription.";
}
console.log('thankyouMessage', thankyouMessage);
//return thankyouMessage;
if(typeof window.dataLayer != 'undefined') {
window.dataLayer.push({
'event' : 'newsleter.submit',
'success' : thankyouMessage
});
}
}, 2000)
} catch (e) {
}})();</script>
我正在尝试在满足以下两个规则时触发 GTM 代码: rules image
自定义js变量内容为:
function () {
setTimeout(function () {
var thankyouMessage = document.querySelector("#newsletter-success").innerHTML === "Thank you for your subscription.";
console.log('thankyouMessage', thankyouMessage);
return thankyouMessage;
}, 2000)
}
目前未触发代码。 每当我删除自定义规则时,标签都会被触发,但当我添加它时,我可以看到 'true' 打印到我的控制台,这意味着自定义规则运行正确。 我还尝试使用不涉及 'setTimeout' 的不同自定义规则并且它有效。但是我必须使用超时,因为我尝试捕获的事件不会立即发生。
如何正确触发代码?
谢谢。
您可以将代码编辑为自定义 html 标记,而不是使用自定义 javascript 变量。
自定义 HTML 标签将由所有元素点击触发器触发,其中点击 Class 等于按钮。 (没有 ThanksForSub.. 检查的相同触发器)。
自定义 HTML 标记将调用超时函数,而不是 return 值,它将执行 dataLayer.push 并将结果包含在其中。
然后您将使用此事件和您最初希望触发的标签上的数据层值创建自定义事件触发器。
为了访问传递的值,您需要创建一个用户定义的变量数据层类型,使用 'success' 作为键。
自定义 HTML 标记脚本。
<script>(function() {
try {
setTimeout(function () {
var thankyouMessage = false;
var thankyouMessageObj = document.querySelector("#newsletter-success");
if(thankyouMessageObj && typeof thankyouMessageObj.innerHTML != 'undefined') {
thankyouMessage = thankyouMessageObj.innerHTML === "Thank you for your subscription.";
}
console.log('thankyouMessage', thankyouMessage);
//return thankyouMessage;
if(typeof window.dataLayer != 'undefined') {
window.dataLayer.push({
'event' : 'newsleter.submit',
'success' : thankyouMessage
});
}
}, 2000)
} catch (e) {
}})();</script>