Google代码管理器 - 是否可以通过GTM标记推送到dataLayer?

时间:2015-04-17 12:26:40

标签: javascript

在过去的几天里,我一直在搞乱标签管理和“拆解”GTM代码的基础知识,试图弄清楚这个东西是如何工作的。有一点我无法弄清楚:

情景1。

  • 我将dataLayer硬编码到页面html
  • 我将JS代码附加到我希望“标记”的页面元素并将其事件推送到DL(pdf download,onClick = ....)
  • 在GTM界面中我创建了一个处理此onClick事件的标记,并检索推入DL的值

它的工作原理如下:

  • 点击pdf下载后,对象将被推入DL
  • 标记触发并检索事件值
  • 将其发送到GA服务器 - >一切都清楚

情景2。

  • 我不在页面上创建dataLayer; GTM代码段在浏览器中加载页面时创建一个
  • HERE出现了缺失的链接:由于我没有将DL编码到页面中,我可能还没有将.push()方法附加到适当的DOM元素

问题:

这可以通过GTM界面以某种方式完成吗?如果是,这意味着我可以在页面加载到浏览器后以某种方式“注入”额外的JS代码到我的页面代码中?

干杯!

编辑(经过更多教育):

似乎可以做很多事情。 GTM检查页面上是否有数据层,如果找不到,则会为您创建。然后,您可以设置宏以将对象推送到此DL(事件)中,最后,您可以让标签从DL检索信息并将其发送到Google分析。我是对的吗?

2 个答案:

答案 0 :(得分:0)

您可以通过创建一个专用标记来创建自己的“DataLayer”,声明数组此个人DataLayer无法在触发器中使用。

为了覆盖它,你可以使用另一个带有测试的标签(如果数组包含X然后是函数......),但是我看不出它比你的场景1更好。如果你这样做,一定要使用标记优先级,以便首先触发第一个标记。

答案 1 :(得分:0)

您可以使用内置的Universal Analytics事件标记来跟踪.pdf下载而无需dataLayer硬编码。

如果要在页面加载后触发标记,可以在触发中使用“event equals gtm.load”条件。例如,您可以使用它来使用任何类型的Javascript代码触发客户HTML标记。