javascript - 当 Google Analytics 由 Google Tag Manager 管理时,如何跟踪自定义事件?

标签 javascript google-analytics google-tag-manager

我最终不得不为我的网站使用谷歌标签管理器,所以谷歌分析现在是其中的一部分。一切都设置正确并且工作正常。但是,我过去能够非常轻松地跟踪我网站上的自定义事件,with the ga() function :

ga('send', 'event', 'Videos', 'play', 'Fall Campaign');

但是,现在 ga() 不再定义;我在控制台中收到错误,ReferenceError: ga is not defined .我然后tried the gtag() method它也不起作用(相同的错误消息):
gtag('event', 'aaa', {
  'event_category' : 'bbb',
  'event_label' : 'ccc'
});

如何使用 Javascript 代码跟踪事件?

需要明确的是,我不想对 Google 跟踪代码管理器大惊小怪。在那里完成任何事情需要一百万次点击。 ;-) 我只想直接调用 Javascript,就像以前一样。

最佳答案

默认情况下,Google 跟踪代码管理器 (GTM) 为每个跟踪器使用随机名称,为每个 Universal Analytics 代码生成。 AS GTM 仅创建命名跟踪器,因此不会创建默认 (t0) 跟踪器。由于未创建默认跟踪器,因此您必须自己提供跟踪器名称。因此,您现在需要跟踪器名称,​​或者以某种方式查询和引用它们,才能使其正常工作,仅通过直接从 JavaScript 调用 ga() 即可。

可以为跟踪器使用固定名称,即 highly discouraged .

我有一个推荐的解决方法。您仍然需要进行一些 GTM 设置,但您可以创建一个 Google Analytics(分析)通用事件调度程序标记,稍后您可以使用该标记从 JavaScript 发送任何分析事件调用。

您的代码设置将如下所示,您可以在其中引用您的 Analytics 设置,以及来自 dataLayer 的所有事件相关变量:

enter image description here

您的事件跟踪代码将如下所示:

dataLayer.push({
  'event': 'GAEvent',
  'eventCategory': 'Videos',
  'eventAction': 'play',
  'eventLabel': 'Fall campaign', 
  'eventValue': undefined,
  'eventNI': true 
});

请注意,建议始终在 dataLayer 中设置所有相关事件值,即使不应跟踪任何字符串或值,这样在推送合并期间不会继承早期的 dataLayer 值。此外,您应该根据您的情况更新非交互标志。您的触发器应该与 event 的值匹配。 key 。

关于javascript - 当 Google Analytics 由 Google Tag Manager 管理时,如何跟踪自定义事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55675935/

相关文章:

javascript - 如何将 collection_select 中的值传递到 Rails 中的 onchange 函数?

Javascript 初始化图像数组

javascript - 在 Javascript onkeypress 事件中,Tab 按钮不触发(在 Mozilla Firefox 中)

android - GoogleAnalytics for Android v3 与 v4

.htaccess - 对 .htaccess 文件的更改使我的网站速度非常慢。我做错了什么,我该如何解决?

javascript - 动态改变<script>标签src

javascript - 根据href选择所有 anchor 标记并更改它

javascript - 如何通过javascript(而不是键盘)按下任何字符

google-analytics - Google Analytics(分析)将来自缓存功放页面的点击显示为直接/无

javascript - Google 数据层数据未传递到标签管理器助手