开发者问题收集

Google Analytics Web+App 事件配置:错误“gtag 未定义”

2020-04-05
53471

我正在尝试为网站设置 Google Analytics App+Web 的电子商务事件配置。请参阅 此处 的文档。

由于电子商务配置有大量自定义代码,我无法使用通用的 GA App+Web webevent 模板,因此在这种情况下我改用自定义 HTML 标记。

作为第一次测试,我尝试触发以下简单事件:

<script>

  gtag('event', 'blabla', {
  'test_param1': 'test_value_1'
});

</script>

但是,事件未正确发送到 GA;而是在控制台中返回以下错误:

Uncaught ReferenceError:未定义 gtag

要重现此问题,请参阅以下页面: https://www.hema.nl/mooi-gezond/make-up/make-up-accessoires/toilettassen-1/toilettas-11830901.html

其他信息:

  • GA App+Web 基础初始化已(成功)通过 GTM 通过 GA App+Web 配置模板标记完成。
  • 我还配置了其他几个(简单的非电子商务)GA App+Web通过 GA App+Web webevent 模板标签通过 GTM 发送事件,并且这些事件已成功发送到 GA。

有人知道出了什么问题、为什么会出现控制台错误以及为什么事件没有发送到 GA 吗?

3个回答

简短回答

除了 GTM GA App+Web 标签之外,您还需要添加以下代码来定义 gtag():

<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
</script>

详细回答

根据官方文档 ( https://developers.google.com/analytics/devguides/collection/ga4 ),这是您应该包含在网站中的代码:

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=MEASUREMENT_ID"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'MEASUREMENT_ID');
</script>

检查了带有此标签的网站后,我发现 GTM 已注入第一行,这足以使分析正常工作。但它没有添加其他行,其中一些行有效地将 gtag 全局函数定义为将内容推送到 Analytics 数据层的“语法糖”。

就我个人而言,我发现这真的很奇怪,因为使用 GTM 是向网站添加 Google Analytics(分析)最规范的方式,而且它是由同一家公司开发的。

Cristiano Dalbem
2021-02-21

这可能有点重复已接受的答案,但我想确认(一些)Google 文档确实建议手动将以下代码片段添加到 <head>您网站的部分,就在您现有的跟踪代码管理器容器代码段上方:

<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
</script>

如果出现以下情况,则需要执行此操作:

  • 您使用 Google 跟踪代码管理器而不是“Google 代码”部署 Analytics 代码
  • 您希望使用 gtag() 语法将事件发送到您的 GA4 Analytics 媒体资源

来源: https://developers.google.com/analytics/devguides/migration/ecommerce/gtm-ga4-to-ua#4_enable_the_gtagjs_api

Tron08
2023-02-07

就我而言, Uncaught ReferenceError: gtag is not defined 是由于启用了 uBlock/adblock 而导致的。

我认为,如果接受的答案不起作用,则值得测试。

dpatryas
2021-10-04