gpt4 book ai didi

javascript - Google 跟踪代码管理器数据层持久性

转载 作者:搜寻专家 更新时间:2023-11-01 05:23:44 25 4
gpt4 key购买 nike

总结

Google 跟踪代码管理器 dataLayer 会随着时间的推移被值堵塞,这使得规则和标签变得过于复杂,尤其是在 AJAX 密集型网站上。


问题

我正在一个跟踪密集型网站上实现 GTM,并寻找一个干净的解决方案来解决以下问题。我将以 Google Analytics 为例。

它允许您设置和使用 4 个宏来进行事件跟踪:

  • 类别{{ga事件类别}}
  • 行动{{ga事件行动}}
  • 标签 {{ga 事件标签}}
  • 值(value) {{ga 事件值(value)}}

Value 和 label 是可选的,但 dataLayer 是持久的,不是吗?那么我该如何处理以下情况:

dataLayer.push({
'event':'gaEvent',
'gaEventCategory':'my-category',
'gaEventAction':'my-action',
'gaEventLabel':'my-label',
'gaEventValue':'my-value'
});

但稍后在同一页面上我必须跟踪另一个事件,但没有标签和值:

dataLayer.push({
'event':'gaEvent',
'gaEventCategory':'another-category',
'gaEventAction':'another-action',
});

如果我设置一个像“Event is gaEvent”这样的规则,然后我触发如下所示的“Google Analytics”标签(这里使用 HTML 标签而不是内置标签):

<script type="text/javascript">
_gaq.push(['_trackEvent', '{{ga event category}}', '{{ga event action}}', '{{ga event label}}', {{ga event value}}]);
</script>

第二个事件将被推送到 _gaq 以及前一个事件的标签和值。

如何处理这样的情况?

对于那些想知道的人,我需要能够在某些点对同一事件触发不同的标签,这就是为什么我想要这个“动态”解决方案,但 dataLayer 像那样持久化会搞砸规则。

编辑 1:测试程序

下面是我的测试方法。

  • 我在 Chrome 中安装了 Google Analytics Debugger
  • 我的 GTM 处于 Debug模式
  • 加载网站后,我在控制台中根据描述执行第一个 dataLayer 推送
  • 我从 GA 调试输出中看到 GA 事件是用 4 个值触发的
  • 我从控制台进行第二次推送
  • GA 调试输出告诉我 GA 事件是用新的类别和操作触发的,但带有之前推送的标签和值

这就是我所说的坚持。为了避免这种情况,我只能想出不同的事件类型,如 gaCustomEventgaCustomEventWithLabelgaCustomEventWithOption 等,然后为每个事件类型设置规则和标签那些。这很荒谬,你不同意吗?

最佳答案

您可以将一个对象插入包含与单个事件相关的所有信息的数据层,例如:

dataLayer.push({
'gaEvent':{
'category': 'foo',
'action': 'bar',
'label': 'blah blah blah',
'value': 1,
'nonInteraction':false
}
});

然后您可以在 GTM 中设置相关的宏来收集和使用相关的字段,这些字段不会被转移到任何 future 的事件中,因为只使用插入数据层的对象的最后一个值。

关于javascript - Google 跟踪代码管理器数据层持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19007175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com