@certible/use-matomo

中文文档
1.3.0发布于 2026/11/09MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 9299

用于 Matomo js ,包括 SPA 跟踪的可忽略框架包.

中文使用文档
文档目录17 节
  1. 安装
  2. 使用量
  3. 时间轴:
  4. 配置选项
  5. 需要的选项
  6. 选项
  7. 初始页面视图
  8. 带有全部选项的示例
  9. API 方法
  10. trackEvent(category, action, name?, value?)
  11. trackPageView(url?, props?)
  12. setUserId(userId)
  13. destroy()
  14. ready
  15. push(args)
  16. 许可证
  17. 关于

用户- matomo

用于 Matomo js ,包括 SPA 跟踪的可忽略框架包.

安装

# NPM
npm install @certible/use-matomo
# PNPM
pnpm add @certible/use-matomo

使用量

import { initMatomo } from '@certible/use-matomo';

const matomo = initMatomo({
  host: 'https://your-matomo-instance.com',
  siteId: 1,
  // trackRouter: true, automatically tracks SPA page changes via history tracking
});

// Manually track router changes
// router.afterEach((to, from) => {
//   matomo.trackPageView(to.path, opts);
// });

// Track an event
matomo.trackEvent('Category', 'Action', 'Name', 1);

时间轴:

import { initMatomo } from '@certible/use-matomo';
import { createApp } from 'vue';
import App from './App.vue';

const app = createApp(App);

const matomo = initMatomo({
  host: 'https://your-matomo-instance.com',
  siteId: 1,
  // trackRouter: true, automatically tracks SPA page changes via history tracking
}));

app.provide<MatomoTracker>('matomo', matomo);
// In your components, you can access Matomo like this:
import { inject } from 'vue';

const matomo = inject<MatomoTracker>('matomo');

夸萨

// quasar boot file: src/boot/matomo.js
import { defineBoot } from '#q-app/wrappers';
import { initMatomo } from '@certible/use-matomo';


export default defineBoot(({ app }) => {
  const matomo = initMatomo({
    host: 'https://your-matomo-instance.com',
    siteId: 1,
    // trackRouter: true, automatically tracks SPA page changes via history tracking
  });

  app.provide('matomo', matomo);
});

配置选项

这个 initMatomo 函数接受配置对象,其选项如下:

需要的选项

选项类型说明
hoststring您 Matomo 实例的 URL( 例如 ), https://your-matomo-instance.com(中文(简体) )
siteIdnumber | string您的 Matomo 实例中的站点ID

选项

选项类型默认说明
trackerFileNamestring'matomo'跟踪脚本和端点的文件名
trackerUrlstring''自定义跟踪器端点 URL 。 如果为空, 则使用 {host}/{trackerFileName}.php
trackerScriptUrlstring''自定义跟踪脚本 URL 。 如果为空, 则使用 {host}/{trackerFileName}.js
trackerScriptDisablebooleanfalse禁用自动加载追踪器脚本( 如果已装入则有用)
enableLinkTrackingbooleantrue启用自动跟踪出入境链接和下载
requireConsentbooleanfalse跟踪前需征得用户同意(符合国内生产总值要求)
userIdstring''设置一个用户ID, 用于跟踪会话
disableCookiesbooleanfalsewindow._paq.push(['disableCookies'])
requireCookieConsentbooleanfalsewindow._paq.push(['requireCookieConsent'])
enableHeartBeatTimerbooleanfalsewindow._paq.push(['enableHeartBeatTimer', options.heartBeatTimerInterval])
heartBeatTimerIntervalnumber15心跳计时器间隔( 秒)
cookieDomainstring''设定用于跨子域跟踪的 cookie 域, window._paq.push(['setCookieDomain', options.cookieDomain])
domainsstring[][]内部跟踪域列表(用于跨域跟踪), window._paq.push(['setDomains', options.domains])
crossOrigin'anonymous' | 'use-credentials'undefined跟踪脚本的交叉原生属性
preInitActionsMatomoCommand[][]初始化前要执行的 Matomo 命令阵列
trackRouterbooleanfalse通过历史 API 监视自动跟踪 SPA 页面变化
trackInitialViewbooleantrue初始化时跟踪初始页面视图 。 设定为 false 调用 trackPageView() 自己,比如在您的应用程序设置路由标题之后

初始页面视图

initMatomo 立即排入初始页面视图,因此,早期导航无法替换条目 URL。 跟踪器脚本处理队列时会读取 document.title 只要 URL 不变, 也一样。 因此,在使用 tracker 脚本时,您的应用程序会设置标题 .

如果您的应用程序稍后设定标题, 设置 trackInitialView: false 并跟踪初始页面视图:

const matomo = initMatomo({
  host: 'https://analytics.example.com',
  siteId: 1,
  trackInitialView: false,
});

// After the first route resolved and set the title
matomo.trackPageView();

链接跟踪enableLinkTracking)与每个排队 trackPageView() 电话 与 trackInitialView: false从你的第一通电话开始.

带有全部选项的示例

const matomo = initMatomo({
  host: 'https://analytics.example.com',
  siteId: 1,
  trackerFileName: 'piwik', // For older Matomo instances
  enableLinkTracking: true,
  requireConsent: true, // GDPR compliance
  disableCookies: false,
  enableHeartBeatTimer: true,
  heartBeatTimerInterval: 30,
  cookieDomain: '.example.com',
  domains: ['*.example.com', 'subdomain.example.com'],
  trackRouter: true, // Automatic SPA tracking
  preInitActions: [
    ['setCustomDimension', 1, 'Premium User']
  ]
});

API 方法

Matomo 跟踪器初始化后,返回一个对象,其方法如下:

trackEvent(category, action, name?, value?)

跟踪自定义事件.

参数:

  • category (弦):活动类别
  • action (弦):事件的动作
  • name (弦,可选): 活动名称
  • value (数目,可选): 事件的价值

示例

// Track a button click
matomo.trackEvent('Navigation', 'Click', 'Header Logo');

// Track with a value
matomo.trackEvent('Purchase', 'Complete', 'Premium Plan', 99.99);

trackPageView(url?, props?)

在单页应用程序中跟踪页面视图.

参数:

  • url (弦,可选): 要跟踪的页面的 URL 。 默认为 window.location.href
  • props (对象,可选): 页面视图的额外属性
    • deleteCustomVariables (boolean):是否删除自定义变量. 默认 : true
    • documentTitle (字符串):自定义文档标题. 默认 : document.title

示例

// Track current page
matomo.trackPageView();

// Track specific URL
matomo.trackPageView('/dashboard');

// Track with custom title
matomo.trackPageView('/profile', { 
  documentTitle: 'User Profile - MyApp' 
});

setUserId(userId)

设置或重置用户ID, 用于跨会话的跟踪 .

参数:

  • userId (字符串 = 无效): 要设置的用户 ID, 或 null 重设

示例

// Set user ID
matomo.setUserId('user123');

// Reset user ID
matomo.setUserId(null);

destroy()

删除路由器跟踪收听器并恢复补丁历史方法.

使用这个当 trackRouter 被启用,您的应用程序会从跟踪器上撕裂, 例如在热模块替换或测试时.

数据元数据监测网的例子:

const matomo = initMatomo({
  host: 'https://analytics.example.com',
  siteId: 1,
  trackRouter: true,
});

if (import.meta.hot) {
  import.meta.hot.dispose(() => {
    matomo.destroy();
  });
}

ready

保证在追踪器脚本装入后解决. 初始页面视图( 如果 trackInitialView 实值 true)在初始化时被排入队列. 它拒绝当脚本无法加载时.

示例

await matomo.ready;

push(args)

将任何指令直接推进到 Matomo 跟踪器。 这使得您可以使用任何没有被这个包装器明确曝光的Matomo跟踪方法.

参数:

  • args (阵列):要传递给马多莫的一系列论据

示例

// Set custom dimension
matomo.push(['setCustomDimension', 1, 'Premium User']);

// Track site search
matomo.push(['trackSiteSearch', 'keyword', 'category', 5]);

// Set custom variable
matomo.push(['setCustomVariable', 1, 'UserType', 'Premium', 'visit']);

关于现有马托莫跟踪方法的完整清单,请参见: Matomo JavaScript 跟踪指南。 。 。 .

许可证

这个项目根据麻省理工学院的许可证获得许可.

关于

这个软件包由 可认证。 。 。 .

版本与发布记录

@certible/use-matomo 共发布 6 个版本,首次发布于 2025/08/11;过去 12 个月发布了 4 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.3.0latest2026/11/09今天
1.2.22026/11/053 天前
1.2.12026/07/163 个月前
1.2.02026/05/275 个月前
1.1.02025/08/111.2 年前
1.0.02025/08/111.2 年前

关于 @certible/use-matomo 的常见问题

@certible/use-matomo 是什么?

用于 Matomo js ,包括 SPA 跟踪的可忽略框架包.

如何安装 @certible/use-matomo?

在项目目录运行 npm install @certible/use-matomo,或使用 pnpm add / yarn add / bun add。

@certible/use-matomo 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@certible/use-matomo 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@certible/use-matomo 可以商用吗?

@certible/use-matomo 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@certible/use-matomo 的下载量有多少?

根据 npm 官方下载统计,@certible/use-matomo 在 2026/10/10 – 2026/11/08 这 30 天内被下载 9,299 次,日均约 310 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@certible/use-matomo 还在维护吗?

最新版本 1.3.0 发布于 2026/11/09(今天);至今共发布 6 个版本,其中过去 12 个月发布了 4 个;首次发布于 2025/08/11。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。