立即迁移到 Netlify

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

联系我们注册
社区插件
在 GitHub 上查看插件

gatsby-plugin-matomo

gatsby-plugin-matomo

npm package Build Status Maintainability Test Coverage

🥂 用于在网站上添加 Matomo(前身为 Piwik)的 Gatsby 插件。 https://kremalicious.com/gatsby-plugin-matomo/


弃用通知:Gatsby 已被弃用(请参阅 “Gatsby 已停产?”“GatsbyJS 官方已死?”),因此此插件已弃用,不会再收到任何更新。


功能

插件使用合理的默认设置,优先考虑用户体验、性能和隐私

  • 在所有服务器端渲染的路由中包含跟踪代码
  • 将所有路由视图作为自定义事件进行跟踪
  • 在 `body` 标签末尾加载跟踪脚本
  • 为 `noscript` 使用图片跟踪回退
  • 当访问者启用“请勿跟踪”时,不加载任何内容
  • 不在非生产环境中加载任何内容
  • 隐私同意模式
  • 允许本地加载跟踪脚本
  • 定义要从跟踪中排除的路径
  • 对配置的 Matomo 主机 URL 进行 `preconnect`
  • 本地开发的开发模式

用法

  1. 首先,从项目的根目录安装插件

    cd yourproject/
    npm i gatsby-plugin-matomo
  2. 然后从您的 `gatsby-config.js` 加载插件并设置必要的变量

    plugins: [
      {
        resolve: 'gatsby-plugin-matomo',
        options: {
          siteId: 'YOUR_SITE_ID',
          matomoUrl: 'https://YOUR_MATOMO_URL.COM',
          siteUrl: 'https://YOUR_LIVE_SITE_URL.COM'
        }
      }
    ]
  3. 就是这样!

注意:默认情况下,此插件仅在以生产模式运行时生成输出。要测试您的跟踪代码,请运行 `gatsby build && gatsby serve`,或将 `dev` 选项设置为 `true`.

选项

选项 说明
siteId 您在 Matomo 安装中配置的 Matomo 站点 ID。
matomoUrl 您的 Matomo 安装的 URL。
siteUrl 您网站的 URL,通常与 `siteMetadata.siteUrl` 相同。仅用于生成 `noscript` 图片跟踪回退的 URL。
matomoPhpScript (可选)您的 Matomo PHP 脚本的名称。默认为 `matomo.php`
matomoJsScript (可选)您的 Matomo JS 脚本的名称。默认为 `matomo.js`
exclude (可选)指定将排除跟踪代码的路径名数组。路径名 `/offline-plugin-app-shell-fallback/` 默认排除。
requireConsent (可选)如果为 true,跟踪将被禁用,直到您调用 `window._paq.push(['setConsentGiven']);`。
requireCookieConsent (可选)如果为 true,在您调用 `window._paq.push(['setCookieConsentGiven']);` 之前,不会存储或使用任何 cookie。
disableCookies (可选)如果为 true,Matomo 将不使用任何 cookie。
cookieDomain (可选)指定 cookie 域。
localScript (可选)如果设置,将从给定路径加载本地 `matomo.js` 脚本,而不是从您的 `matomoUrl` 加载。
trackLoad (可选)如果为 true,将跟踪 matomo 库的加载。默认为 `true`。
respectDnt (可选)如果为 false,将在不尊重浏览器上用户“请勿跟踪”偏好的情况下加载所有脚本。默认为 `true`。
dev (可选)通过设置为 `true` 来激活开发模式。即使不在 `production` 环境中运行,也将加载所有脚本。也会忽略您本地浏览器的 DNT 标头。在控制台中输出一些关于其正在做什么的信息。适用于本地测试,但请注意:所有点击都将像在生产环境中一样发送。
enableJSErrorTracking (可选)通过设置为 `true` 来启用 Matomo 中的基本 JavaScript 错误跟踪和报告。
additionalTrackers (可选)一个用于在不同 Matomo 服务器上进行跟踪的附加跟踪器数组。附加跟踪器是具有 `siteId` 和 `trackerUrl` 键的对象,其中包含 Matomo PHP 脚本的完整 URL。默认为 `[]`。
```js
plugins: [
{
resolve: 'gatsby-plugin-matomo',
options: {
  siteId: 'YOUR_SITE_ID',
  matomoUrl: 'https://YOUR_MATOMO_URL.COM',
  siteUrl: 'https://YOUR_LIVE_SITE_URL.COM',
  // All the optional settings
  matomoPhpScript: 'matomo.php',
  matomoJsScript: 'matomo.js',
  exclude: ['/offline-plugin-app-shell-fallback/'],
  requireConsent: false,
  requireCookieConsent: false,
  disableCookies: false,
  cookieDomain: '*.example.org',
  localScript: '/matomo.js',
  dev: false,
  enableJSErrorTracking: true,
  additionalTrackers: [
    {
      siteId: 'ADDITIONAL_SITE_ID',
      trackerUrl: 'https://ADDITIONAL_MATOMO_URL.COM/matomo.php'
    }
  ]
}

} ]


## Development

```bash
npm i
npm start

# create production build
npm run build

# publishing to npm & GitHub releases
# uses https://github.com/webpro/release-it
npm run release
npm run release minor
npm run release major

更新日志

请参阅 CHANGELOG.md

许可证

MIT 许可证

Copyright (c) 2024 Matthias Kretschmann

特此授予任何获得本软件及相关文档文件(“软件”)副本的个人免费许可,可以使用、复制、修改、合并、发布、分发、再许可和/或出售本软件的副本,并允许根据以下条件向被提供本软件的人这样做:

上述版权声明和此许可声明应包含在软件的所有副本或实质性部分中。

本软件按“原样”提供,不附带任何形式的保证,明示或暗示,包括但不限于适销性、特定用途的适用性和非侵权性的保证。在任何情况下,作者或版权所有者均不对因软件或软件的使用或其他交易而引起的或与之相关的任何索赔、损害或其他责任负责,无论是在合同、侵权或其他方面。


Matthias Kretschmann@kremalicious)使用 ♥ 制作

用 BTC 表示感谢:35UUssHexVK48jbiSgTxa4QihEoCqrwCTG

用 ETH 表示感谢:krema.eth

©2025Gatsby, Inc.