我有一个使用自定义脚本的数据元素,默认值为“_Not_Set_”。数据元素中的代码是:
var elemNavValue = _satellite.readCookie('navElemName');
console.log("spot 1 - cookie value is " + elemNavValue);
if ((elemNavValue !== '')&&(elemNavValue !== undefined)&&(elemNavValue !== '_Not_Set_')){
console.log("spot 2 - cookie value is " + elemNavValue);
_satellite.setCookie('navElemName','_Not_Set_',1);
return elemNavValue;
}else{
console.log("spot 3 - cookie value is " + elemNavValue);
_satellite.setCookie("navElemName",'_Not_Set_',1);
return '_Not_Set_';
}
当页面加载时,我看到数据元素运行了两次。我在控制台中得到以下输出。
spot 1 - cookie value is undefined
spot 3 - cookie value is undefined
spot 1 - cookie value is _Not_Set_
spot 3 - cookie value is _Not_Set_
这是我声明的唯一数据元素,它仅在 Adobe Analytics 工具的全局部分中调用并分配给 prop 和 eVar。我没有创建规则。这是为什么,我该如何解决这个问题?
最佳答案
数据元素不是在页面加载时创建一次,而是在每次调用时运行。所以,如果你在 prop 和 evar 中使用它们,它会被调用两次。如果你跑
_satellite.getVar('data element name')
在浏览器控制台中,您会看到代码再次运行。
要阻止这种行为,请将 evAR 复制到 Prop 中,反之亦然。
关于javascript - 为什么 DTM 数据元素被调用两次?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29157797/