Markus Michalski FAQ

Matomo Analytics: Datenschutz und Einwilligung

Was Matomo Analytics für OXID eShop 7 aus den Datenschutz-Einstellungen im Tracking-Code macht: Cookieless, Do-Not-Track, Consent-Cookies, Klaro, Opt-Out. Mit dem, was das Modul nicht tut.

English Version

Zurück zur Übersicht

Matomo Analytics: Datenschutz und Einwilligung

Live Demo: Teste dieses und weitere Plugins live — ohne Installation, ohne Risiko: demo.markus-michalski.net

Diese Seite beschreibt genau, was das Modul aus den Datenschutz-Einstellungen macht, und was es nicht tut. Die Einstellungen selbst stehen unter Konfiguration.

Das Modul setzt die Einstellung "IP-Anonymisierung" nicht um. Sie wird zwar eingelesen und im Admin angezeigt, aber nirgends in den Tracking-Code übernommen. Die Stufe 2 (Standard) schützt deshalb keine IP-Adressen. Stelle die Anonymisierung in deiner Matomo-Installation selbst ein.

Was die Einstellungen im Tracking-Code bewirken

Einstellung Wirkung
Cookieless Tracking Gibt _paq.push(["disableCookies"]) aus. Matomo setzt dann keine Tracking-Cookies.
Do-Not-Track respektieren Gibt _paq.push(["setDoNotTrack", true]) aus. Zusätzlich liefert das Modul ohne Klaro-Integration gar keinen Tracking-Code aus, wenn der Browser den Header DNT: 1 sendet.
Consent erforderlich Gibt _paq.push(["requireConsent"]) aus. Zusätzlich prüft das Modul ohne Klaro-Integration und ohne Cookieless Tracking serverseitig ein Consent-Cookie.
Klaro Integration aktivieren Bindet das Tracking-Script als type="text/plain" ein, das Klaro erst nach Einwilligung ausführt. Ergänzt einen Event-Handler, der setConsentGiven bzw. forgetConsentGiven an Matomo meldet.
IP-Anonymisierung Keine Wirkung.

Weitere Aufrufe (Heartbeat, Link-Tracking, E-Commerce) haben mit dem Datenschutz-Verhalten nichts zu tun und stehen auf der Seite Technische Details.

Wann der Tracking-Code ausgeliefert wird

Für jede Seite entscheidet isMatomoEnabled() in dieser Reihenfolge:

graph TD
    A["Seitenaufruf"] --> B{"Tracking aktiviert, HTTPS-URL gültig, Site-ID größer 0?"}
    B -->|"Nein"| X["Kein Tracking-Code"]
    B -->|"Ja"| C{"Klaro Integration aktiv?"}
    C -->|"Ja"| K["Tracking-Code als text/plain, Klaro entscheidet"]
    C -->|"Nein"| D{"DNT respektieren und Header DNT 1?"}
    D -->|"Ja"| X
    D -->|"Nein"| E{"Cookieless Tracking aktiv?"}
    E -->|"Ja"| Y["Tracking-Code ausgeliefert"]
    E -->|"Nein"| F{"Consent erforderlich?"}
    F -->|"Nein"| Y
    F -->|"Ja"| G{"Consent-Cookie vorhanden?"}
    G -->|"Ja"| Y
    G -->|"Nein"| X

Wichtige Folgen:

Die Prüfung erkennt diese Cookies:

Cookie Gilt als Einwilligung bei den Werten
matomo_consent 1, true, yes, accepted, allow
CookieConsent wie oben
CookieControl wie oben
cookie-agreed wie oben

Der Wert wird ohne Beachtung der Groß- und Kleinschreibung verglichen. Jeder andere Wert zählt als keine Einwilligung. Hat eines der vier Cookies einen passenden Wert, wird der Code ausgeliefert.

Mit "Consent erforderlich" gibt das Modul requireConsent aus, ruft aber ohne Klaro-Integration nie setConsentGiven auf. Matomo bleibt dadurch im Zustand "Einwilligung ausstehend", bis dein eigenes Skript _paq.push(["setConsentGiven"]) aufruft. Ohne Klaro-Integration signalisiert das Modul also nie selbst eine erteilte Einwilligung.

Klaro-Integration

Mit aktiver Klaro-Integration passiert Folgendes:

  1. Tracking-Code und E-Commerce-Code stehen in <script type="text/plain" data-type="text/javascript" data-name="...">. Der Wert für data-name ist der eingestellte Klaro Service-Name. Der Browser führt sie nicht aus, bis Klaro sie freigibt.
  2. Ein normales Script (nicht blockiert) hört auf das Event klaro-consent-change. Steht die Einwilligung für den Service-Namen auf true, ruft es _paq.push(["setConsentGiven"]) auf, nimmt die Einwilligung zurück mit _paq.push(["forgetConsentGiven"]). Aufgerufen wird nur bei einer Änderung gegenüber dem zuletzt gemeldeten Zustand.
  3. Zusätzlich liest das Script nach dem Laden der Seite (mit 100 ms Verzögerung) den aktuellen Zustand über klaro.getManager().getConsent(...), falls Klaro bis dahin verfügbar ist.
  4. Solange Klaro den Tracking-Code nicht ausgeführt hat, existiert _paq nicht und der Handler tut nichts.

Auf der Bestätigungsseite wird auch das Order-Tracking mit type="text/plain" ausgegeben.

Was an Matomo übertragen wird

Das Modul gibt folgende Daten an den Tracking-Code, sofern die jeweiligen Schalter aktiv sind:

Bereich Daten
Seitenaufruf Standard-Seitenaufruf von Matomo (trackPageView). Die IP-Adresse des Besuchers sieht der Matomo-Server bei jeder Anfrage.
Produktansicht Artikelnummer, Titel, Kategoriepfad, Bruttopreis
Warenkorb je Position Artikelnummer, Titel, Brutto-Einzelpreis, Menge; Brutto-Gesamtwert
Bestellung Bestellnummer, Umsatz, Zwischensumme, Steuer, Versandkosten, je Position Artikelnummer, Titel, Preis, Menge

Das Modul selbst übermittelt keine Kundendaten wie Name, Adresse oder E-Mail-Adresse.

Opt-Out für Besucher

Besucher können über die Seite index.php?cl=matomo_optout oder über das Widget einem Tracking widersprechen. Beides bindet das Opt-Out-iFrame deiner Matomo-Installation ein. Details stehen unter Storefront und Templates.

Rechtlicher Hinweis

Ob für Analytics eine Einwilligung nötig ist, hängt von deiner Rechtslage und deiner Konfiguration ab. Das Modul liefert die technischen Schalter, trifft aber keine rechtliche Bewertung. Lass dich dazu rechtlich beraten.