https://github.com/felix-berlin/astro-matomo
Matomo integration for Astro
https://github.com/felix-berlin/astro-matomo
analytics astrojs dsgvo gdrp gpr matomo privacy-friendly withastro
Last synced: about 1 year ago
JSON representation
Matomo integration for Astro
- Host: GitHub
- URL: https://github.com/felix-berlin/astro-matomo
- Owner: felix-berlin
- License: gpl-3.0
- Created: 2023-02-25T15:13:42.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-04-07T19:57:22.000Z (over 1 year ago)
- Last Synced: 2025-04-30T20:36:21.492Z (about 1 year ago)
- Topics: analytics, astrojs, dsgvo, gdrp, gpr, matomo, privacy-friendly, withastro
- Language: TypeScript
- Homepage:
- Size: 29.6 MB
- Stars: 14
- Watchers: 1
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Astro Matomo




## Installation
```bash
pnpm add astro-matomo
npm install astro-matomo
yarn add astro-matomo
```
## Options
| Options | Type | Description |
| ------------------ | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `enabled` | `boolean` | Controls if the matomo script should be loaded |
| `host` | `string` | Url to your matomo installation |
| `siteId` | `number` | Matomo site id. |
| `heartBeatTimer?` | `number` | If set the heart beat timer will be enabled |
| `disableCookies?` | `boolean` | If set cookies will be disabled |
| `preconnect?` | `boolean` | Will create a preconnect link pointing to the matomo host |
| `setCookieDomain?` | `string` | Share the tracking cookie across multiple domains |
| `trackerUrl?` | `string` | Defaults to matomo.php |
| `srcUrl?` | `string` | Defaults to matomo.js |
| `debug?` | `boolean` | Activate debug mode |
| `partytown?` | `boolean` | Adds [Partytown](https://partytown.builder.io/) support. Matomo added as: `...` |
| `crossOrigin?` | `string` | Set `crossorigin` attribute |
| `viewTransition?` | `boolean or { contentElement: string }` | If true Matomo works in "SPA Mode" and will track every page visit after `astro:page-load`. When you pass a selector to `contentElement` Matomo is able to track new media files, forms and content |
## Example usage
```js
// astro.config.mjs
import { defineConfig } from 'astro/config';
import matomo from 'astro-matomo';
// https://astro.build/config
export default defineConfig({
site: "https://example.lol",
integrations: [
matomo({
enabled: import.meta.env.PROD, // Only load in production
host: "https://analytics.example.lol/",
setCookieDomain: "*.example.lol",
trackerUrl: "js/", // defaults to matomo.php
srcUrl: "js/", // defaults to matomo.js
siteId: 666,
heartBeatTimer: 5,
disableCookies: true,
debug: false,
viewTransition: {
contentElement: "main"
}
}),
]
});
```
## Development
Go to demo directory:
```bash
cd demo
```
Go to the demo project and install the dev package:
```bash
pnpm install
npm install
```
Start the dev server:
```bash
pnpm run dev
npm run dev
```