Google Analytics Web+App 事件配置:错误“gtag 未定义”
我正在尝试为网站设置 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 吗?
简短回答
除了 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(分析)最规范的方式,而且它是由同一家公司开发的。
这可能有点重复已接受的答案,但我想确认(一些)Google 文档确实建议手动将以下代码片段添加到 <head>您网站的部分,就在您现有的跟踪代码管理器容器代码段上方:
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
</script>
如果出现以下情况,则需要执行此操作:
- 您使用 Google 跟踪代码管理器而不是“Google 代码”部署 Analytics 代码
- 您希望使用 gtag() 语法将事件发送到您的 GA4 Analytics 媒体资源
就我而言, Uncaught ReferenceError: gtag is not defined 是由于启用了 uBlock/adblock 而导致的。
我认为,如果接受的答案不起作用,则值得测试。