Das Bundesgericht hat sich mit der Frage beschäftigt, in welcher Form eine Einwilligung zur Akzeptierung von Cookies realisiert werden muss. Der Hintergrund war ein voreingestelltes Ankreuzkästchen. Das Gericht hat nun geurteilt, dass dies nicht ausreichend ist. Der Benutzer muss aktiv einwilligen (Zusammenfassung).
Wird Matomo als Statistiksoftware eingesetzt, ist dies eine elegante Lösung, um komplett auf Cookies zu verzichten. Das danken auch die Besucher, da sie nicht mit einer Einwilligung genervt werden. Daher stelle ich hier vor, wie Matomo konfiguriert werden muss, damit keine Cookies verwendet werden und somit keine Zustimmung oder Cookie-Banner notwendig sind.
Matomo Konfiguration
Um Besuche zu analysieren, verwendet Matomo standardmäßig 1st Party Cookies, die auf der Domain der Website gesetzt werden. Die von Matomo erstellten Cookies beginnen mit: _pk_ref, _pk_cvar, _pk_id und _pk_ses.
Wenn ein Besucher in der Datenschutzerklärung die Verwendung von Matomo mit der iFrame-Opt-out-Methode ausschließt, erstellt Matomo das Cookie matomo_ignore, das innerhalb der Domain des Matomo-Servers gesetzt ist. Wenn Matomo auf einer anderen Domain als der Website eingerichtet ist, die verfolgt wird, wird das Cookie ein Cookie von Drittanbietern. Der Cookie matomo_ignore beinhaltet keine personenbezogenen Daten oder eine ID. Der Cookie-Wert ist für alle Besucher gleich.
Dank der aktiven Community hinter dem Open-Source-Projekt kann Matomo flexibel konfiguriert werden. Dazu muss nicht das System an sich angepasst werden, es reicht aus, den Trackingcode zu modifizieren.
Cookies deaktivieren
Um Matomo ohne Cookies zu betreiben, reicht es aus, den folgenden Eintrag direkt vor dem trackPageView Eintrag im Trackingcode hinzuzufügen:
_paq.push(['disableCookies']);
Hier der komplette Trackingcode von Matomo (ohne Cookies):
<script type="text/javascript"> var _paq = window._paq || []; _paq.push(['disableCookies']); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="//example.com/matomo/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '1']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script>
Auswirkungen
Auf meinen Seiten habe ich schon länger die Verwendung von Cookies deaktiviert und konnte keine negativen Folgen feststellen. Matomo speichert in den Cookies eine eindeutige Besucher-ID, mit der Besucher aus früheren Besuchen erkannt werden können. Wenn Cookies deaktiviert sind, kann Matomo weiterhin eindeutige Besucher anhand von IP-Adressen und anderen Footprints ermitteln. Bei der Kennzahl der wiederkehrenden Besucher kann es unter Umständen zu ungenauen Angaben kommen. Da mich aber nur interessiert, wie häufig einzelne Artikel aufgerufen werden und wie lange die Besucher bei einem Artikel bleiben, ist es für mich nicht relevant.
Allerdings kann es bei den Kampagnen und der Zielverfolgung zu Einschränkungen kommen. Wird zum Beispiel ein Newsletter verschickt und der Besucher klickt auf einen Link, wird der Besuch erfasst. Kehrt der Besucher drei Tage später auf die Seite zurück und führt eine Aktion durch, kann dies nicht mehr in Zusammenhang mit dem Newsletter gebracht werden. Die sollte aber nur einen kleinen Teil der Zielverfolgung betreffen.
Cookies Zeitvorgabe
Die Cookies von Matomo werden auf dem Client gespeichert und besitzen eine automatische Verfallszeit. Das heißt, dass sie nach Ablauf des Zeitraumes automatisch vom Webbrowser gelöscht werden. Mit Matomo können die Zeitvorgaben, also wie lange ein Cookie gespeichert wird, flexibel konfiguriert werden. Dazu stehen verschiedene Konfigurationsmöglichkeiten für insgesamt drei Cookies zur Verfügung.
Der erste Eintrag wird verwendet, um die Aufrufe von Unterseiten einem Besucher zuzuordnen. Daher kann das Cookie nach dem letzten Besuch relativ schnell gelöscht werden. Im Beispiel habe ich den Wert auf 30 Minuten gesetzt, dies entspricht auch dem Standard. Alle Angaben erfolgen dabei als Sekunden.
setSessionCookieTimeout(seconds)
Werden Kampagnen oder Ziele eingesetzt, wird dafür ein zusätzliches Cookie gesetzt. Im Beispiel wird nach 7 Tagen das Cookie vom Webbrowser wieder gelöscht. Der Standard ist hier 6 Monate.
setReferralCookieTimeout(seconds)
Der letzte Cookie wird verwendet, um wiederkehrende Besucher zu tracken. In diesem Beispiel habe ich die Speicherdauer auf 14 Tage gesetzt. Der Standard ist hier 13 Monate.
setVisitorCookieTimeout(seconds)
Hier der komplette Trackingcode von Matomo mit den gesetzten Cookies-Konfigurationen:
<script type="text/javascript"> var _paq = window._paq || []; _paq.push(['setSessionCookieTimeout', '1800']); _paq.push(['setReferralCookieTimeou', '604800']); _paq.push(['setVisitorCookieTimeout', '1209600']); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="//example.com/matomo/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '1']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script>
Weitere Fragestellungen
Im Vordergrund des Urteils des Bundesgerichtshofs stand die aktive Einwilligung der Benutzer. Dies ist nun ausreichend geklärt. Allerdings gibt es noch weitere Fragestellungen rund um Cookies und DSGVO.
Technisch notwendig
Fest steht, dass keine Einwilligung für technisch notwendige Cookies erforderlich ist. Allerdings gibt es für technisch notwendig keine festen Regeln, daher werden die Auslegungen von den Anbietern immer wieder weit gedehnt. Grundsätzlich werden als Beispiele Session-Cookies für die Verwaltung eines Logins oder das Speichern eines Warenkorbs aufgeführt. Dazu zählen auch Opt-Out-Cookies, in denen eine Ablehnung gespeichert worden ist.
Die Einwilligung entfällt außerdem gemäß der ePrivacy Richtlinie (PDF) (Art. 5 Abs. 3 der Cookie-Richtlinie 2002/58/EG), wenn ein Cookie zur elektronischen Kommunikation notwendig ist. Dies betrifft zum Beispiel Chats oder Messanger.
Bisher ist noch nicht abschließend geklärt, welche Cookies zur Abwehr von Angriffen gesetzt werden dürfen. Einige Systeme und Frameworks sehen es vor, dass ein Cookie mit einer eindeutigen Session ID beim ersten Aufruf gesetzt wird. Auf den Serverseiten werden die IP-Adresse und die Webbrowser Kennung (Referrer) gespeichert. Bei einer Aktion, wie einem Login oder das Absenden eines Kontaktformulars, werden die Daten abgeglichen. Stimmen sie überein, handelt es sich um einen normalen Besucher. Wenn nicht, könnte es ein Bot oder ein Angreifer sein. Es gibt auch Systeme, die die Zeit zwischen zwei Login-Versuchen messen. Sind die Zeiten zu kurz, handelt es sich nicht um einen Menschen, sondern um ein Angriffstool.
Damit die IP-Adresse als personenbezogenes Datum eingestuft wird, müsste dafür vorher eine eindeutige Zustimmung erfolgen. Allerdings funktionieren viele solcher Systeme im Hintergrund, ohne dass der Benutzer davon etwas mitbekommt. Außerdem wird ein Angreifer keine Zustimmung geben. Hier ist noch nicht geklärt, ob dies als technisch notwendig gilt, da die Seite auch ohne die Schutzmaßnahmen funktionieren würde. Auf der anderen Seite muss ein Betreiber aber die Daten seiner Besucher vor Angreifern schützen.
Der momentane Weg ist, dass alle Techniken anonymisierte Verfahren einsetzen. Interessant in diesem Zusammenhang ist das „Whitepaper zur Pseudonymisierung“ der Fokusgruppe Datenschutz.
Cookies vs. Local Storage
Momentan liegt der Fokus sehr stark auf dem Einsatz von Cookies. Eine weitere Möglichkeit, Daten zu speichern, ist die Methode Web Storage, die in Session Storage und Local Storage aufgeteilt werden können. Beide funktionieren wie eine Art Datenbank. Daten können mit Schlüsselworten gespeichert werden, über diese sind sie auch wieder abrufbar. Die Daten im Session Storage werden gelöscht, sobald die Seite geschlossen wird.
Beim Local Storage sieht die Sache anders aus. Hier gibt es kein automatisches Löschen und es ist, anders als beim Cookie, kein Ablaufdatum vorgesehen. Die Daten können nur durch Leeren des Verlaufs gelöscht werden. Da immer mehr Anwendungen dazu übergehen, den Local Storage anstatt Cookies zu nutzen, führen viele Regelungen ins Leere, da die Dauer, wie lange Daten gespeichert werden, nicht festgelegt werden kann. Wie oben beschrieben, dass ein Cookie eine Verfallszeit von 14 Tagen hat, lässt sich damit nicht realisieren.
Hallo Tobias,
vielen Dank für diesen ausführlichen Artikel.
Es ist super, dass man Matomo Cookies frei betreiben kann. Aber eigentlich stellt sich nur die Frage, dass man Besucher nicht ohne Einwilligung tracken darf. Da wird man nicht drumherum kommen, auch wenn man es lokal auf seinem Server installiert hat und eine ADV mit dem Hoster abgeschlossen hat.
Gruß Ralf