Google tag manager 使用Google Tag Manager捕获多个数据层属性

Google tag manager 使用Google Tag Manager捕获多个数据层属性,google-tag-manager,Google Tag Manager,我已经能够使用Google标记管理器默认设置捕获和推送URL,但是我在推送自定义数据层属性时遇到了麻烦 例如: 在加载GTM脚本之前,我将当前页面url推送到数据层 <script> var currentPage = (document.URL); dataLayer = [{ 'pageURL': currentPage }]; </script> 然后在单击不同元素时,我将其内容推送到数据层: <a id="tracking-image" href

我已经能够使用Google标记管理器默认设置捕获和推送URL,但是我在推送自定义数据层属性时遇到了麻烦

例如:

在加载GTM脚本之前,我将当前页面url推送到数据层

<script>
 var currentPage = (document.URL);
 dataLayer = [{
  'pageURL': currentPage
 }];
</script>
然后在单击不同元素时,我将其内容推送到数据层:

<a id="tracking-image" href="#" onclick="dataLayer.push({'#elementID': 'tracking-image'});"></a>
我在GTM/谷歌分析中捕获这些数据时遇到了困难。最终,我希望在谷歌分析中捕捉到这样的信息:

标签:currentPage

行动:跟踪图像


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

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

GTM中的事件与分析中的事件跟踪无关,只是与本机Javascript事件模糊相关。事件是一个保留的宏名称,其目的是触发标记;页面加载开始gtm.js、页面加载完成gtm.dom等上有一些预定义的事件

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

一种方法是如下更改代码:

<a id="tracking-image" href="#" onclick="dataLayer.push({'event': 'imagetracker'});"></a>
然后,您可以使用条件{event}}equals imagetracker设置一个规则,您可以触发标记

可能更好的方法是使用GTMs事件侦听器标记。有一个链接单击事件侦听器标记和一个通用的单击侦听器标记。由于您的链接目标不是有效的url,我会选择通用的单击侦听器。所以,您需要设置一个click listener类型的新标记,并在所有页面上激活它。现在,如果单击一个元素,事件宏将被分配GTM click的值

事件侦听器还将自动调用fill auto事件变量,这些变量保存单击元素的各种属性。这将允许您通过一个名为element id的宏访问单击的elements id,这并不奇怪

因此,您将创建一个规则,其中{event}}等于gtmClick,{{element id}}等于imagetracker。如果单击链接,将触发标记

需要注意的是,当元素上已经存在返回false以抑制标准行为的click事件时,GTMs事件侦听器标记将失败。信息和解决方案是和博客上的解决方案,这几乎是所有与GTM相关的事情的好去处