首页 文章

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

提问于
浏览
0

我已经能够使用Google跟踪代码管理器默认捕获和推送URL,但我一直无法尝试推送自定义数据层属性 .

例如:

在加载GTM脚本之前,我将当前页面url推送到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中捕获,如下所示:

Label: currentPage

Action: tracking-image

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

1 回答

  • 0

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

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

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

    一种方法是像这样更改你的代码:

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

    然后,您可以设置条件“{}等于imagetracker”的规则,您可以触发标记 .

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

    事件侦听器还将自动填充包含所单击元素的各种属性的自动事件变量 . 这将允许您通过一个名为“元素ID”的宏来调用被点击的元素id .

    因此,您将创建一个规则,其中“{}等于gtmClick”AND“{}等于imagetracker” . 如果点击链接,那将触发标记 .

    需要注意的是,当元素上已经有一个单击事件返回"false"以抑制标准行为时,GTMs事件侦听器标签会失败 . 信息和解决方法是Simo Ahavas博客(这是GTM相关所有事情的最佳选择) .

相关问题