setAttribute 函数在实时模式下不起作用



我正在寻找一个答案/解决方案,为什么我的带有get-attribute((的JS函数不能在实时模式下工作?在GTM调试模式下,一切正常,所有基于此函数的事件都会正常发送。谢谢

function() {
var x = Array.prototype.slice.call(document.querySelectorAll("div[data-product]"))
for (i=0; i< x.length;i++) {
if(Number.isInteger(i/2) && Number.isInteger(i/3)) {
x[i].setAttribute("seen-product", "");
}

}



return undefined;
}

这看起来像一个变量模板。在预览模式下,所有变量都将进行评估,无论是否使用。在实时版本中,变量仅在使用时(在标记、模板或触发器中(进行评估。

由于您不使用该变量返回任何数据,我怀疑您实际上并没有在任何地方使用它,因此不会在实时模式下对其进行评估(即函数不会运行(。

改变事物而不是返回值的变量被称为"变量";副作用";。变量不应该有副作用(例如,阅读此处:https://www.simoahava.com/analytics/variable-guide-google-tag-manager/(下半页的标题是"变量永远不能有副作用"(。你可以这样做,例如在自定义标签中。

最新更新