立即迁移到 Netlify

Netlify 宣布 Gatsby Cloud 的下一次迭代。 了解更多

联系我们注册
官方插件
在 GitHub 上查看插件

gatsby-plugin-google-tagmanager

轻松为您的Gatsby网站添加Google Tagmanager。

安装

npm install gatsby-plugin-google-tagmanager

如何使用

// In your gatsby-config.js
plugins: [
  {
    resolve: "gatsby-plugin-google-tagmanager",
    options: {
      id: "YOUR_GOOGLE_TAGMANAGER_ID",

      // Include GTM in development.
      //
      // Defaults to false meaning GTM will only be loaded in production.
      includeInDevelopment: false,

      // datalayer to be set before GTM is loaded
      // should be an object or a function that is executed in the browser
      //
      // Defaults to null
      defaultDataLayer: { platform: "gatsby" },

      // Specify optional GTM environment details.
      gtmAuth: "YOUR_GOOGLE_TAGMANAGER_ENVIRONMENT_AUTH_STRING",
      gtmPreview: "YOUR_GOOGLE_TAGMANAGER_ENVIRONMENT_PREVIEW_NAME",
      dataLayerName: "YOUR_DATA_LAYER_NAME",

      // Name of the event that is triggered
      // on every Gatsby route change.
      //
      // Defaults to gatsby-route-change
      routeChangeEventName: "YOUR_ROUTE_CHANGE_EVENT_NAME",
      // Defaults to false
      enableWebVitalsTracking: true,
      // Defaults to https://#
      selfHostedOrigin: "YOUR_SELF_HOSTED_ORIGIN",
      // Defaults to gtm.js
      selfHostedPath: "YOUR_SELF_HOSTED_PATH",
    },
  },
]

如果您想在运行时使用数据作为默认的dataLayer,可以通过将其定义为一个函数来实现。

// In your gatsby-config.js
plugins: [
  {
    resolve: "gatsby-plugin-google-tagmanager",
    options: {
      // datalayer to be set before GTM is loaded
      // should be a stringified object or object
      //
      // Defaults to null
      defaultDataLayer: function () {
        return {
          pageType: window.pageType,
        }
      },
    },
  },
]

此插件仅初始化tag manager的容器。如果您想使用Google Analytics,请同时添加gatsby-plugin-google-analytics

如果您想将分析使用与容器内的任何内容(例如,像OneTrust这样的Cookie同意管理器)链接起来,您将需要确保tag manager脚本在您的gatsby-config.js早于分析脚本。

跟踪路由

此插件将在每次Gatsby应用程序中的路由更改时触发一个名为gatsby-route-change(或在gatsby-config.js中配置的routeChangeEventName)的新事件。要在Google Tag Manager中记录这一点,我们需要在所需标签中添加一个触发器来监听该事件。

  1. 访问Google Tag Manager控制台并点击您的网站工作区。
  2. 通过右侧菜单的“标签”选项卡导航到所需的标签。
  3. 在“触发”下,单击铅笔图标,然后单击“+”按钮添加一个新触发器。
  4. 在“选择触发器”窗口中,再次单击“+”按钮。
  5. 通过单击铅笔按钮并选择“自定义事件”来选择触发器类型。对于事件名称,输入gatsby-route-change(或在gatsby-config.js中配置的routeChangeEventName)。

此标签现在将捕获Gatsby中的每一次路由更改,您可以根据需要添加Google标签服务。

跟踪核心Web指标

优化用户体验质量是任何网站在网络上长期成功的关键。捕获真实用户指标(RUM)可以帮助您了解用户/客户的体验。通过将enableWebVitalsTracking设置为true,GTM将收到带有其值的“core-web-vitals”事件。

您可以将此数据保存在Google Analytics或任何您选择的数据库中。

我们发送三个指标

  • 最大内容绘制(LCP):衡量加载性能。为了提供良好的用户体验,LCP应在页面开始加载后的2.5秒内完成。
  • 首次输入延迟(FID):衡量交互性。为了提供良好的用户体验,页面的FID应为100毫秒或更少。
  • 累积布局偏移(CLS):衡量视觉稳定性。为了提供良好的用户体验,页面的CLS应保持在0.1或更低。

注意

开箱即用,此插件将在初始页面/应用加载时加载Google Tag Manager。您需要根据应用中的更改来触发标签。请参阅上面的“跟踪路由”部分以获取示例。

©2025Gatsby, Inc.