gpt4 book ai didi

javascript - Google Tag Manager "subscribe"是否发送到 dataLayer.push?如果是,如何?

转载 作者:行者123 更新时间:2023-12-04 12:50:43 25 4
gpt4 key购买 nike

当我将任何内容推送到数据层(数组)时,GTM 是否会注意到并将其直接推送到 Google 平台?

还是仅在加载 GTM 容器时发生一次?

如果不是,GTM 是否以某种方式订阅了 datalayer.push() ?还是只是轮询?

最佳答案

当您初始化 GTM 时,您传递了 dataLayer 对象的引用,从那时起,它被替换为由 GTM 代码管理的特殊对象的“实例”。比较初始化 GTM 之前和之后 chrome 控制台告诉您有关 push 方法的信息:

之前:

Before GTM

之后:

After GTM

当您将某些内容推送到 GTM 初始化的 dataLayer 时,实际上是在调用自定义推送方法,该方法将其通知客户端上运行的 GTM 代码,如果该推送触发标签触发,则会导致标签代码运行, 但它不会发出任何其他请求,也不会发送到 GTM 服务器或类似的东西。

请注意,除了推送之外,GTM 还会监视许多其他事件,例如点击、表单提交、DOM 准备就绪,甚至如您所述的容器加载。

您不限于推送事件,您可以(并且在许多情况下应该)推送常规数据(消息)并且它仍然可以在 Google 跟踪代码管理器上使用和可见,请记住它需要交互才能真正更新其内部状态(例如点击)

他们是怎么做到的,我不知道,但可以用一些简单的方法来完成:

var dataLayer = [{name: 'Rui'}];

var DLWatch = (function(){
var init = function(){
window.dataLayer.push = push;
};

var push = function(data) {
window.dataLayer = window.dataLayer.concat([data]);
console.log('Data pushed!');
};

return {init: init};
})();

DLWatch.init();
dataLayer.push({foo: 'bar'});

你会得到什么:

Data pushed!

数据层将是

dataLayer

关于javascript - Google Tag Manager "subscribe"是否发送到 dataLayer.push?如果是,如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39147451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com