使用Google跟踪代码管理器捕获多个dataLayer属性

时间:2014-06-12 16:06:11

标签: google-tag-manager

我能够使用Google跟踪代码管理器默认捕获并推送网址,但我在尝试推送自定义数据图层属性时遇到了问题。

例如:

在加载GTM脚本之前,我将当前页面网址推送到dataLayer。

<script>
 var currentPage = (document.URL);
 dataLayer = [{
  'pageURL': currentPage
 }];
</script>

然后在各种元素上,我在点击它们时将内容推送到dataLayer:

<a id="tracking-image" href="#" onclick="dataLayer.push({'#elementID': 'tracking-image'});"></a>

我一直无法在GTM / Google Analytics中捕获这些内容。最终我想要在Google Analytics中捕获,如下所示:

标签:currentPage

行动:跟踪图片

但目前它只是跟踪多次触发的gtm.js事件。

1 个答案:

答案 0 :(得分:0)

您不需要将元素id推送到数据层(GTM可以自己读取id)。您缺少的是触发标记的事件。

&#34;活动&#34;在GTM中与Google Analytics中的事件跟踪无关,只与本机Javascript事件模糊相关。 &#34;事件&#34;是一个保留的宏名称,它的目的是触发标签;页面加载开始(gtm.js),页面加载完成(gtm.dom)等有一些预定义的事件。

如果您想触发在页面加载时不会触发的标记,则可能需要自定义事件。

一种方法是改变你的代码:

<a id="tracking-image" href="#" onclick="dataLayer.push({'event': 'imagetracker'});"></a>

然后你可以设置条件&#34; {{event}}等于imagetracker&#34;你解雇你的标签。

可能更好的方法是使用GTMs事件监听器标签。有一个链接单击事件侦听器标记和一般的单击侦听器标记。由于您的链接目标不是有效的URL,我会选择通用的点击监听器。因此,您需要设置点击侦听器类型的新标记,并在所有页面上触发。现在,如果单击某个元素,将为事件宏分配GTM click值。

事件侦听器还将自动填充包含所单击元素的各种属性的自动事件变量。这将允许您通过一个名为“#34; element id&#34;”的宏来访问被点击的元素id。

所以你要创建一个规则,其中&#34; {{event}}等于gtmClick&#34; AND&#34; {{element id}}等于imagetracker&#34;。如果点击链接,那将触发标记。

警告说,当元素上已经有一个点击事件返回&#34; false&#34;时,GTM事件监听器标签会失败。抑制标准行为。信息和解决方法是Simo Ahavas博客的解决方法(这几乎是与GTM相关的所有内容的首选。)