Files
ben-to/docs/matomo-analytics.md
2026-07-21 16:50:58 +02:00

46 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Matomo et consentement cookies
## Activation Matomo
Le chargement de `matomo.js` et toute mesure daudience ne sont possibles que si **les deux** variables Vite suivantes sont définies au build :
| Variable | Exemple | Rôle |
| --------------------- | -------------------------------- | ---------------------------------------------------------------------------------------- |
| `VITE_MATOMO_URL` | `https://analytics.example.com/` | URL du répertoire hébergeant `matomo.js` (slash final recommandé ; il est ajouté sinon). |
| `VITE_MATOMO_SITE_ID` | `1` | Identifiant du site dans Matomo. |
Sans ces variables, aucune mesure Matomo nest initialisée (même après acceptation du bandeau).
Le **bandeau cookies** saffiche toutefois dès quaucun choix nest stocké dans `localStorage`, afin de recueillir le consentement avant toute activation possible du tracker.
Copier `apps/web/.env.example` vers `apps/web/.env.local` pour les essais locaux avec Matomo réel.
### Image Docker / CapRover
Les mêmes variables doivent être disponibles **pendant** `npm run build:web`. Le `Dockerfile` expose des `ARG` (valeurs vides par défaut) puis les recopie en `ENV` avant le build, sur le même principe que `PUBLIC_*` sur un autre projet.
Exemple en local :
```bash
docker build \
--build-arg VITE_MATOMO_URL=https://analytics.example.com/ \
--build-arg VITE_MATOMO_SITE_ID=1 \
-t ben-to-web .
```
Sur CapRover, configurer les **build arguments** équivalents pour limage (pas seulement les variables denvironnement runtime du conteneur).
## Comportement
1. Premier chargement : si aucun choix nest enregistré dans `localStorage` (clé `ben-to-cookie-consent-v1`), le **bandeau** saffiche.
2. **Accepter** : enregistrement du consentement ; si Matomo est configuré, chargement asynchrone de `matomo.js`, puis suivi des pages vues (SPA incluse) et des événements (`trackEvent` dans `apps/web/src/infra/analytics.ts`).
3. **Refuser** : pas de chargement du script ; pas de cookies / hits Matomo.
Le choix est persisté localement ; pour retester le bandeau, supprimer la clé dans les outils développeur ou utiliser une fenêtre privée.
## Liens utiles
- Package consent pur : `@ben-to/privacy/cookie-consent`
- Issue produit / conformité : [#39](https://github.com/kazerlelutin/ben-to/issues/39)