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 2 months 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 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-07T19:57:22.000Z (2 months ago)
- Last Synced: 2025-04-30T20:36:21.492Z (about 2 months 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-matomonpm 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.mjsimport { 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 installnpm install
```Start the dev server:
```bash
pnpm run devnpm run dev
```