Analytics müssen heute mehr können als nur Klicks zählen: Sie sollen verlässlich, performant und vor allem DSGVO‑konform sein. In diesem Artikel zeige ich dir, wie ich einen Analytics‑Stack aufgebaut habe, der Plausible, Matomo und serverseitiges Tracking kombiniert — so profitierst du von einfacher, privacy‑freundlicher Web‑Analyse und hast gleichzeitig die Möglichkeit zu tieferen Insights ohne Nutzer*innen unnötig zu tracken.
Warum diese Kombination?
Plausible ist schlank, consentfrei einsetzbar (in der Standardkonfiguration) und liefert schnelle, leichte Reports — ideal für einen ersten, datenschutzfreundlichen Überblick. Matomo (selbst gehostet) ist mächtiger, erlaubt event‑basierte Analyse, Custom Dimensions und eine volle Datenkontrolle. Das serverseitige Tracking dient als Brücke: es erlaubt, clientseitige Limitierungen (Browser‑AdBlocker, ITP, Signal‑Blocker) zu umgehen, Events zu validieren und sensible Daten schon vor dem Speichern zu anonymisieren.
Ich kombiniere die drei Tools in einer Architektur, in der Plausible für aggregate, consentless Metriken läuft, Matomo alle Events (mit Zustimmung) sammelt und ein kleiner Server‑Endpoint (eigener Collector) eingehende Tracking‑Requests verarbeitet, filtert und an Matomo weiterleitet. So habe ich Transparenz, Performance und Kontrolle.
Architekturübersicht
Die vereinfachte Architektur sieht bei mir so aus:
- Frontend: Plausible Script (leicht, keine Cookies nötig) + Consent‑Banner
- Client‑Side (mit Einwilligung): Matomo JS oder ein Tag Manager, der Events an einen eigenen Server‑Endpoint sendet
- Server‑Endpoint (eigener Tracker): validiert Events, anonymisiert IPs/IDs, loggt nur notwendige Felder und gibt die Daten an Matomo (Tracking API) weiter
- Self‑hosted Matomo: Speicherung, Reports, Custom Dimensions
Was du vorab klären musst
- Rechtsgrundlage: Prüfe, welche Daten ohne Einwilligung verarbeitet werden dürfen. Plausible bietet eine minimalistische, nicht‑personenbeziehbare Statistik, die in vielen Fällen ohne Consent auskommt. Matomo benötigt normalerweise Einwilligung, wenn Cookies gesetzt werden oder personenbezogene Daten verarbeitet werden.
- Data Retention: Lege Aufbewahrungsfristen fest (z. B. 6–13 Monate) und konfiguriere Matomo entsprechend.
- Hosting: Self‑hosting für Matomo und den Server‑Collector auf einer EU‑gehosteten VM/Container verringert Datenschutzrisiken.
- Security: TLS, Härtung der Server, Firewall, regelmäßige Backups.
Konkrete Schritte — Setup und Konfiguration
Ich beschreibe hier die Schritte, wie ich das eingerichtet habe. Passe Pfade, Domainnamen und Policies an deine Umgebung an.
Plausible einbinden
- Registriere deine Domain bei Plausible (cloud) oder hoste Plausible selbst. Für maximale Datenschutzkontrolle kannst du Plausible OSS selbst auf einem VPS betreiben.
- Füge das Plausible Script ins Head ein. Standardmäßig schreibt Plausible keine Cookies und kann ohne Consent genutzt werden. Überprüfe die Dokumentation, falls du Custom Events nutzen willst.
- Konfiguriere Plausible in der Datenschutzerklärung: erkläre, dass keine personenbezogenen Daten gespeichert werden.
Matomo selbst hosten
- Installiere Matomo in einem Container (Docker Compose) oder auf einem Webserver. Matomo bietet klare Installationsanweisungen.
- Konfiguriere HTTPS und sichere Zugangsdaten. Aktiviere IP‑Anonymisierung (z. B. 2 oder 3 Bytes).
- Setze Daten‑Aufbewahrungsrichtlinien in Matomo unter "Einstellungen → Datenschutz".
- Deaktiviere Tracking Cookies, wenn du ausschließlich mit Einwilligung arbeiten willst, oder setze Cookieless‑Tracking ein (Matomo unterstützt cookieless tracking in Kombination mit serverseitigem Processing).
Serverseitigen Collector aufsetzen
Der zentrale Bestandteil meines Setups ist ein kleiner, eigener Tracker‑Endpoint (z. B. https://collector.deinedomain.de/track). Das kann ein minimaler Node/Go/Python Dienst sein. Aufgaben des Collectors:
- Empfang von Events vom Client (z. B. fetch/POST vom Browser)
- Validierung (Rate limits, Schema‑Check)
- Anonymisierung (IP Kürzung, Entfernen von User IDs, Hashing wenn nötig)
- Weiterleitung an Matomo Tracking API (oder direktes Schreiben in DB, falls nötig)
- Rückgabe eines 1x pixel/204 No Content, damit der Client nichts speichert
Wichtig: Der Collector darf keine persistente ID herausgeben, die als Tracking‑Fingerprint genutzt werden kann. Wenn du User‑IDs brauchst (z. B. für Login‑Analysen), speichere diese nur nach expliziter Einwilligung und mit klar dokumentierter Rechtsgrundlage.
Client‑Integration mit Consent Management
Das Consent‑Banner ist der Dreh‑ und Angelpunkt. Ich nutze ein CMP, das consent states als JavaScript‑Variable bereitstellt. Ablauf:
- Beim Laden lädt das Plausible‑Script sofort (kein Consent nötig).
- Matomo oder der Tag Manager wird nur dann initialisiert, wenn die Nutzerin Einwilligung für „Statistiken/Analytics“ gegeben hat.
- Ist Consent gegeben, sendet der Client Events an den Collector‑Endpoint. Ist kein Consent vorhanden, werden nur Plausible‑Events erfasst.
Beispiel‑Pseudocode (Browser):
| Wenn consent analytics == true |
| fetch('https://collector.deinedomain.de/track', { method: 'POST', body: JSON.stringify(event) }) |
Matomo Tracking API nutzen
Der Collector kann Matomo mittels Measurement Protocol (Tracking HTTP API) ansprechen. Wichtig:
- Nutze anonymisierte IPs
- Setze "cid" oder "uid" nur wenn zulässig
- Vermeide Persistente Client‑IDs ohne Consent
Beispiel für eine Weiterleitung an Matomo (vereinfachte):
- POST an https://matomo.deinedomain.de/matomo.php mit Parametern wie idsite, rec=1, action_name, url, cip (anonymisierte IP) usw.
Privacy‑Hacks, die ich verwende
- Server‑Side IP‑Kürzung: Kürze IPs bereits im Collector (z. B. letzte 8 Bits entfernen).
- Event‑Sampling: Sample komplexe Events (z. B. 10 %), wenn du nur Trends brauchst.
- Rate Limiting: Schütze den Collector vor Abuse.
- Keine Third‑Party Cookies: Tracker läuft unter deiner Domain; so vermeidest du third‑party cookie‑Probleme.
- Logs minimieren: Schreibe in Serverlogs keine vollständigen URLs oder Tokens.
Was du der Rechtsabteilung/deinem Datenschutzbeauftragten zeigen kannst
Ich dokumentiere folgenden Punktestand für Prüfungszwecke:
- Architekturdiagramm (welche Datenpunkte wo fließen)
- Aufbewahrungsfristen in Matomo und Plausible
- IP‑Anonymisierung und Pseudonymisierungsmaßnahmen
- Consent Management Implementation und Code‑Snippets
- Hosting‑Standort und Zugriffsberechtigungen
Typische Fragen, die in Kommentaren auftauchen
Muss ich Matomo oder Plausible in der Datenschutzerklärung angeben? Ja. Transparenz ist Pflicht: erkläre Zweck, Rechtsgrundlage und Aufbewahrungsdauer. Für Plausible kannst du zusätzlich angeben, dass keine personenbezogenen Daten gesammelt werden (sofern du es nicht erweiterst).
Können Browser‑Addons das Tracking komplett blockieren? Ja. AdBlocker blockieren oft Matomo‑JS und Tracking‑Endpoints. Das serverseitige Tracking kann diese Fälle reduzieren, aber wenn Nutzer*innen Skripte komplett blockieren, ist kein Tracking möglich — und das ist auch in Ordnung.
Ist serverseitiges Tracking legal? Ja, wenn es DSGVO‑konform umgesetzt ist: nur notwendige Daten speichern, Einwilligung einholen, transparente Information und Rechte der Betroffenen garantieren.
Tipps aus der Praxis
- Teste dein Setup mit Browser‑Privacy Tools (uBlock, Ghostery) und in verschiedenen Consent‑States.
- Erstelle ein kleines Dashboard mit Matomo Custom Reports für wichtige KPI (Conversion, Funnel, technische Metriken).
- Automatisiere Backups und Updates (Matomo & OS) — Sicherheitslücken sind ein Datenschutzrisiko.
- Beobachte die Datenqualität: serverseitiges Tracking kann Zeitstempel verschieben — synchronisiere Zeitzonen und vermeide doppelte Events.
Wenn du willst, kann ich dir ein Beispiel‑Repo für einen einfachen Node‑Collector bereitstellen oder eine Checkliste für DSGVO‑dokumentation vorbereiten. Schreib mir, welche Infrastruktur (Managed‑Hosting oder VPS) du nutzt — dann helfe ich beim konkreten Setup.