如何使用新的 Google Analytics 4 (gtag.js) 跟踪和发送自定义事件?

How can I track and send custom events with the new Google Analytics 4 (gtag.js)?

我有一个旧网站,它使用的是过去十年的旧 Google Analytics 代码,我需要帮助才能使用新的 GA4。

旧代码 (2016)

要将自定义事件和网页浏览量发送到 Google,我会使用他们 <script> 代码段中的全局 ga() 函数:

// Event
ga('send', 'event', {
    eventAction: 'click',
    eventCategory: 'social',
    eventLabel: 'twitter'
});

// Pageview
ga('send', {
    hitType: 'pageview',
    page: 'Video page',
    title: 'Intro video'
});

新代码 (2022)

Google Analytics 表示所有旧属性将于 2023 年 7 月 1 日停止工作,因此我们需要切换到新的 Google Analytics 4 属性,<script> header 中的代码片段发生了一些变化,现在它创建了 gtag():

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

但是当我尝试像以前一样使用 gtag("send") 时,似乎没有任何东西再传输到 Google。我已经尝试查找它,但所有 tutorials/articles 仍然展示了旧方法。如何使用新版 GA4 发送自定义事件?

不使用 "send",推荐的名称是 "event" see here for official docs。此外,推荐的参数应该使用下划线,例如 event_category (尽管您可以使用自己的自定义参数):

// Send event
gtag("event", "click", {
    "event_category": "social",
    "event_label": "twitter"
});

// Pageview
gtag('event', 'page_view', {
    "page_title": "landing-page",
});

如果您手动发送自定义综合浏览量,请确保在登陆时禁用初始综合浏览量以避免计数两次,如 the "Manual Pageviews" section 中所述,通过将 send_page_view: false 添加到您的初始配置调用中header <script>:

gtag('config', 'X-XXX123456', {send_page_view: false});

您可以通过打开“网络”选项卡并查看每个 collect 网络请求的负载来检查是否正在本地发送某些内容:

来源:

这是使用 GA4 发送事件的语法:

gtag('event', <action>, {
  'event_category': <category>,
  'event_label': <label>,
  'value': <value>
});

Here您可以查看事件的文档。

或者,如果您想测试命中率以及事件是否与哪些数据一起发送,您可以使用 Google Tag Assistant 来查看。