Matomo-Tracking mit Einwilligung einbauen
This commit is contained in:
@@ -345,6 +345,52 @@ reichen, ist das die nächste Stufe.
|
||||
|
||||
Abgedeckt von `scripts/check-spam-guard.php` (ohne Datenbank lauffähig).
|
||||
|
||||
## Matomo und Analyse-Einwilligung
|
||||
|
||||
Die Anwendung enthält eine eigene Einwilligungsoberfläche und lädt Matomo
|
||||
erst nach „Analyse erlauben“. Ohne vollständige Konfiguration wird weder die
|
||||
Oberfläche ausgegeben noch eine Verbindung zu Matomo aufgebaut. Für die
|
||||
Produktion in `env.local.php` ergänzen:
|
||||
|
||||
```php
|
||||
putenv('MATOMO_URL=https://analytics.kaffeeliste.de/');
|
||||
putenv('MATOMO_SITE_ID=1');
|
||||
putenv('MATOMO_CONSENT_COOKIE_DOMAIN=.kaffeeliste.de');
|
||||
putenv('MATOMO_PRIVACY_CONFIRMED=1');
|
||||
```
|
||||
|
||||
`MATOMO_SITE_ID` durch die numerische Website-ID ersetzen. Die gemeinsame
|
||||
Cookie-Domain ist nur richtig, wenn Marketingseite, App und Matomo tatsächlich
|
||||
unter `kaffeeliste.de` betrieben werden sollen. Sonst leer lassen; die
|
||||
Einwilligung gilt dann nur auf dem jeweils besuchten Host.
|
||||
|
||||
`MATOMO_PRIVACY_CONFIRMED=1` erst setzen, nachdem die Matomo-Instanz so
|
||||
konfiguriert und geprüft wurde:
|
||||
|
||||
1. Matomo wird selbst auf der im Datenschutzhinweis genannten EU-Infrastruktur
|
||||
betrieben; Matomo Cloud oder ein anderer Empfänger ist nicht eingetragen.
|
||||
2. Unter Datenschutz/Anonymisierung werden IP-Adressen vor Speicherung um
|
||||
mindestens zwei Bytes gekürzt.
|
||||
3. Roh- und Besuchsprotokolle werden spätestens nach 180 Tagen automatisch
|
||||
gelöscht; verdichtete Berichte spätestens nach 25 Monaten.
|
||||
4. Keine User-ID, benutzerbezogene Custom Dimensions, Heatmaps,
|
||||
Sitzungsaufzeichnungen oder Werbeintegrationen aktivieren. Der eingebundene
|
||||
Tracker deaktiviert zusätzlich Browser-Funktionserkennung,
|
||||
Performance-Messung und Link-Klick-Tracking.
|
||||
5. In Matomo ist genau eine Website mit den erlaubten Marketing- und
|
||||
App-Domains angelegt. Testaufrufe mit Query-Parametern dürfen in Matomo nur
|
||||
den Pfad ohne Query oder Fragment zeigen.
|
||||
6. Im privaten Browserfenster prüfen: Vor der Entscheidung und nach „Nur
|
||||
notwendige“ gibt es keine Anfrage an `matomo.js`/`matomo.php` und keine
|
||||
`_pk_*`-Cookies. Nach Zustimmung gibt es beides; ein anschließender Widerruf
|
||||
über „Cookie-Einstellungen“ stoppt weitere Aufrufe und löscht die Cookies.
|
||||
|
||||
Die Entscheidung wird 180 Tage im Cookie
|
||||
`kaffeeliste_analytics_consent` gespeichert. Eine Versionsänderung in
|
||||
`APP_ANALYTICS_CONSENT_VERSION` fragt erneut. Änderungen an Zweck, Datenumfang
|
||||
oder Empfängern erfordern außerdem eine neue Datenschutzerklärung und eine
|
||||
erneute rechtliche Prüfung.
|
||||
|
||||
## Betreiber-Benachrichtigung bei neuer Registrierung
|
||||
|
||||
`register.php` schickt nach einer erfolgreichen Selbstregistrierung einen
|
||||
@@ -465,6 +511,9 @@ Rechten der Secret-Dateien oder einer nicht angewendeten Legal-Migration.
|
||||
Test von Neubuchung, Tarifwechsel und Kündigung zum Periodenende
|
||||
- [ ] Webserver-Access-Logs werden spätestens nach sieben Tagen gelöscht oder
|
||||
anonymisiert; TLS/HSTS ist auf allen öffentlichen Domains aktiv
|
||||
- [ ] Falls Matomo aktiv ist: Datenschutz-Checkliste oben vollständig geprüft,
|
||||
Opt-in/Ablehnung/Widerruf im Browser getestet und
|
||||
`MATOMO_PRIVACY_CONFIRMED=1` gesetzt
|
||||
- [ ] Täglicher Task `php scripts/purge-ended-contracts.php` ist eingerichtet;
|
||||
ein Vorlauf mit `--dry-run` wurde kontrolliert
|
||||
- [ ] Stündlicher Task `php scripts/purge-expired-operational-data.php` ist
|
||||
|
||||
Reference in New Issue
Block a user