我目前正在学习如何使用dataLayer并将其应用于网站。从我阅读的所有内容中,最佳实践是在更新dataLayer时使用.push功能。
我知道,当您使用.push功能时,.push通常不会更新数组内部的对象的值,它只会在另一个对象的末尾附加具有相同键和新值的对象。 Google跟踪代码管理器已对.push功能进行了修补,以使其可以查看密钥是否存在并更改其值,或者如果不存在,则向该数组添加一个新对象。
GTM如何做到这一点,我可以自己编写代码来做到这一点吗?第二个问题,正如我在此网站上使用Adobe Analytics一样,AA / Launch是否具有相同的功能?我可能想更新dataLayer中的内容,但不知道它是数组中的索引。
谢谢!
最终找到了GTM用来替代推送功能的功能。如果将来有人遇到问题,请在此处发布。现在看看我是否能理解它大声笑
a.push = function() {
var d;
if (0 < Kc.SANDBOXED_JS_SEMAPHORE) {
d = [];
for (var e = 0; e < arguments.length; e++)
d[e] = new rg(arguments[e])
} else
d = [].slice.call(arguments, 0);
var g = c.apply(a, d);
wg.push.apply(wg, d);
if (300 < this.length)
for (Xc("GTM", 4); 300 < this.length; )
this.shift();
var h = "boolean" !== typeof g || g;
return Cg() && h
}