Die Implementierung des Zustimmungsmodus – Matomo und die initiale Zustimmung des Users
Der erste und wichtigste Schritt besteht darin, Matomo anzuweisen, keine Tracking-Anfragen zu senden und keine Cookies zu setzen, bis eine explizite Zustimmung erteilt wurde. Dies geschieht durch Hinzufügen der Funktion requireConsent() oder requireCookieConsent() zum Matomo-Tracking-Code auf allen Seiten der Website.
Der Code muss vor der Funktion trackPageView platziert werden:
var _paq = window._paq = window._paq ||;
// Matomo in Wartestand setzen, bis Zustimmung erteilt/verweigert wird
_paq.push([‚requireConsent‘]);
// Hier folgt der reguläre Matomo-Tracking-Code
_paq.push([‚trackPageView‘]);
_paq.push();
(function() {
…….
Nach der Ausführung von _paq.push([‚requireConsent‘]); wird Matomo keine Tracking-Anfragen senden und keine Cookies setzen, bis ein nachfolgender Befehl zur Erteilung der Zustimmung empfangen wird.
Der Code für das Zustimmungs-Banner
Sobald Matomo auf Zustimmung wartet, muss das Zustimmungs-Banner die Benutzeroberfläche zur Einholung dieser Zustimmung bereitstellen. Abhängig davon, wie die Zustimmung gespeichert werden soll, gibt es zwei Hauptszenarien für den Code, der bei der Annahme der Zustimmung ausgeführt wird.
Szenario A: Matomo verwaltet die Zustimmung
In diesem Szenario soll Matomo die Zustimmung des Nutzers in einem eigenen Cookie speichern, damit dieser die Zustimmung nicht bei jedem Seitenbesuch erneut erteilen muss. Dies ist die einfachste und gängigste Methode. Bei Zustimmung: Der Button oder das Ereignis, das die Zustimmung des Nutzers signalisiert, muss die Methode rememberConsentGiven() aufrufen. Diese Funktion markiert die Zustimmung und speichert sie in einem Matomo-Cookie mit einer einstellbaren Gültigkeitsdauer.
Beispiel-Code für den „Akzeptieren“-Button:
JavaScript
// Beispiel für einen Zustimmungs-Button in Ihrem Banner
document.getElementById(‚acceptConsentButton‘).addEventListener(‚click‘, function() {
// Zustimmung erteilen und für 395 Tage (365*24 Stunden) merken
_paq.push([‚rememberConsentGiven‘, 365 * 24]);
// Jetzt können weitere Matomo-Tracking-Funktionen aufgerufen werden,
_paq.push([‚trackPageView‘]);
});
Der Aufruf von rememberConsentGiven() markiert die Zustimmung für die aktuelle Sitzung und speichert sie in einem Cookie. Nachfolgende Seitenaufrufe werden dann automatisch getrackt, ohne dass ein weiterer Aufruf erforderlich ist. Die Funktion
setConsentGiven() muss in diesem Fall nicht zusätzlich aufgerufen werden.
Szenario B: Eine externe CMP verwaltet die Zustimmung
Wenn bereits eine externe CMP zur Verwaltung aller Zustimmungen verwendet wird, kann diese Matomo lediglich über den Zustimmungsstatus informieren. Die CMP ist dann für die Speicherung der Präferenzen in einem eigenen Cookie oder einem anderen Mechanismus verantwortlich.
Bei Zustimmung: Die CMP muss auf jeder Seite, bei der eine Zustimmung vorliegt, die Methode setConsentGiven() aufrufen. Diese Methode markiert die Zustimmung nur für die aktuelle Sitzung. Da Matomo die Zustimmung nicht selbst speichert, muss dieser Befehl bei jedem Seitenaufruf erneut ausgeführt werden.
Beispiel-Code, der von der CMP auf jeder Seite ausgeführt wird:
JavaScript
// Beispiel-Logik in Ihrer CMP
function checkConsentStatus() {
var userHasConsented = yourCmp.hasConsent(‚analytics‘); // Eigene CMP-Logik
if (userHasConsented) {
// Zustimmung erteilen (nur für diese Sitzung)
_paq.push([’setConsentGiven‘]);
// Tracking-Befehle ausführen
_paq.push([‚trackPageView‘]);}
}
// Dies muss auf jeder Seite ausgeführt werden
checkConsentStatus();
Die Verwendung von setConsentGiven() ist notwendig, wenn die Zustimmung nicht von Matomo verwaltet wird. Diese Lösiung ist im Prinzip nicht praktikabel, da der Besuchsverlauf erheblich gestört wird.
Deaktivierung des Trackings bei Ablehnung oder Widerruf
Die Deaktivierung des Trackings ist ein entscheidender Bestandteil des Zustimmungsmanagements. Es gibt zwei unterschiedliche Fälle: die anfängliche Ablehnung der Zustimmung und der spätere Widerruf einer erteilten Zustimmung.
Bei Ablehnung (Initial Rejection): Wenn ein Nutzer das Tracking im Banner ablehnt, ist kein spezieller Code zur Deaktivierung erforderlich. Da Matomo bereits durch _paq.push([‚requireConsent‘]); in den Wartezustand versetzt wurde, wird die Abwesenheit eines nachfolgenden setConsentGiven oder rememberConsentGiven-Befehls als Ablehnung interpretiert. Matomo sendet einfach keine Tracking-Anfragen. Dies ist der korrekte und passiv-konforme Ansatz.
Bei Widerruf (Revocation): Wenn ein Nutzer, der zuvor zugestimmt hat, seine Entscheidung revidiert (z.B. über eine Einstellungsseite), muss der Matomo-Zustimmungsstatus aktiv gelöscht werden. Dies geschieht mit der Methode forgetConsentGiven().
Beispiel-Code für den „Widerrufen“-Button:
JavaScript
// Beispiel für einen Button zur Aufhebung der Zustimmung
document.getElementById(‚revokeConsentButton‘).addEventListener(‚click‘, function() {
// Zustimmung widerrufen und Matomo-Cookie löschen
_paq.push([‚forgetConsentGiven‘]);
alert(‚Ihre Zustimmung wurde widerrufen. Matomo-Tracking ist deaktiviert.‘);
});
Diese Funktion löscht das Matomo-Zustimmungs-Cookie, sodass Matomo beim nächsten Seitenaufruf wieder den Zustand „keine Zustimmung“ annimmt und das Tracking unterlässt.
Ich möchte an dieser Stelle betonen, dass der Text in keiner Weise als rechtssichere Grundlage für das Matomo Webtracking gelten kann, sondern meine Interpretation der Funktionen von Matomo im Zusammenhang mit Datenschutzvorschriften darstellt. Ich selbst bin auch immer noch der Meinung, dass die meisten Dimensionen und Metriken keine personenbezogenen Daten sind. Unternehmen sollten also stets einen versierten Datenschutzbeauftragten oder juristische Expertise hinzuziehen.