Google 标签管理器和数据层交互

Google Tag Manager and dataLayer interraction

我使用 GoogleTagManager 脚本和数据层对象。我在文档中读到 dataLayer 对象必须在 GTM 脚本 上方填充。 但是我需要在用户选择产品时添加产品详细信息,这发生在加载 GTM 脚本之后。 如果我使用 dataLayer.push(chosenObject),此操作会调用 Google 跟踪代码管理器脚本吗?会成功吗?

是的,您可以随时将变量推送到 dataLayer,"trick" 是关于如何从标签中的 dataLayer 访问数据(加上如果您在 GTM 代码上方声明了 dataLayer不调用 "push" - 您将其声明为变量,以便稍后推送。

如果您想在页面加载后立即使用数据,则有必要在数据层中声明数据 - 一旦 GTM 代码加载(即在页面之前),标准网页浏览触发器将 运行已完成加载),因此显然 GTM 只能访问代码中位于它前面的数据。

GTM 中的触发标记需要一个事件(不要与 Google Analytics 事件或 Javascript 事件混淆,GTM 中的事件只是一个保留变量名称)。

一些事件由 GTM 隐式生成 - 页面加载事件、DOM 就绪、单击和提交事件。

如果稍后您想触发一个元素来响应您推送到 dataLayer 的值,您需要一个自定义事件:

dataLayer.push({
'event':'i_pushed_a_value',
 'payload' : 'this is my data'
})

(请注意数据不是键->值对)。

现在您可以拥有一个触发事件 i_pushed_a_value 的触发器,并且您可以使用数据层类型的自定义变量(输入键,在本例中为 payload,作为键变量配置)保存你的数据。