first commit
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# Matomo et consentement cookies
|
||||
|
||||
## Activation Matomo
|
||||
|
||||
Le chargement de `matomo.js` et toute mesure d’audience 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 n’est initialisée (même après acceptation du bandeau).
|
||||
|
||||
Le **bandeau cookies** s’affiche toutefois dès qu’aucun choix n’est 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 l’image (pas seulement les variables d’environnement runtime du conteneur).
|
||||
|
||||
## Comportement
|
||||
|
||||
1. Premier chargement : si aucun choix n’est enregistré dans `localStorage` (clé `ben-to-cookie-consent-v1`), le **bandeau** s’affiche.
|
||||
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)
|
||||
Reference in New Issue
Block a user