Aller au contenu

Projekt

Selbstgehostete Webanalyse ohne Cookies und ohne Drittanbieter

maxa-analytics ist das Werkzeug, das ich geschrieben habe, um die Besuche auf meinen eigenen Websites zu messen, einschließlich maxadev.fr. Es dient hier als Demonstration: Der Name gehört mir, die Mechanik lässt sich übertragen.

0

gesetzte Cookies bei Ihren Besuchern

Das Ausgangsproblem

Ich musste mehrere Websites im Blick behalten (maxadev.fr, maxa-movies, maxence-os), und dafür gab es drei Anlaufstellen. Die Statistiken von maxadev.fr bei Google, hinter einem Cookie-Banner, also ohne die Besucher, die Cookies ablehnen. Die Server-Logs in einem Terminal. Und die Ausfälle, von denen ich womöglich erst durch andere erfahren hätte.

Jede dieser Anlaufstellen zeigte nur einen Teil des Bildes. Antwortet die Website nicht mehr, wird die Seite nicht angezeigt und der Besuch nicht gezählt: Die Kurve sinkt, ohne zu verraten, warum. Und die meisten Bots führen das Mess-Skript gar nicht erst aus: In den Statistiken fehlen sie, die Logs dagegen füllen sie. Beides von Hand abzugleichen ist genau die Art von Prüfung, die man auf später verschiebt.

Was gebaut wurde

Ein einziges Werkzeug, installiert auf meinem Server. Auf jeder Website ein Skript, das komprimiert unter 3 KB bleibt, oder ein Konnektor für Next.js, Nuxt oder Node, auch für Electron. Das Dashboard zeigt Seiten, Quellen (bis hin zu Besuchen, die über ChatGPT oder Claude kommen), Klicks, Nutzerpfade, Funnels und die Aktivität in Echtzeit. Das Ganze ohne Cookies und ohne dauerhafte Kennung.

Daneben schickt ein kleiner Agent die Logs von Nginx Proxy Manager, dem Reverse-Proxy vor den Websites, an das Werkzeug. Aus ihnen liest das Dashboard ab, was dem Skript entgeht: Bots, Fehler, Scanner auf der Suche nach einer .env-Datei oder einer WordPress-Installation, mit einer Detailseite pro IP-Adresse. Alarme, deren Schwellenwerte sich per Schieberegler einstellen lassen, landen auf meinem iPhone und führen direkt zur Detailseite des Vorfalls.

Die Demonstration

Von den Besuchern über die Server-Logs bis zu den Fragen im GesprächVideo ohne Ton · 1 Min. 45 · Demodaten

Die technischen Entscheidungen, und warum

Drei strukturelle Entscheidungen, damit das Werkzeug schlank bleibt, die Privatsphäre Ihrer Besucher achtet und bei Ihnen läuft.

Ein Container, eine SQLite-Datenbank

Dashboard und Erfassung passen in einen einzigen Container mit einer SQLite-Datenbank, auf Ihrem Server. Kein CDN, kein Pixel: An der Erfassung ist kein Drittanbieter beteiligt, die Daten bleiben bei Ihnen, und für den weiteren Zugriff darauf sind Sie von keinem Anbieter abhängig.

Cookiefrei von Grund auf

Im Browser wird nichts abgelegt. Gezählt wird der Besucher über eine Kennung, die mit einem täglich wechselnden Salt gehasht wird; das Salt wird nach zwei Tagen gelöscht. Die IP-Adresse wird nie in Seitenaufrufen oder Ereignissen gespeichert: Nur die Sitzung behält die Adresse von ihrem Beginn, zur Diagnose, standardmäßig 30 Tage lang, und löscht sie danach. Per Einstellung lässt sich ihre Speicherung auch ganz abschalten.

MCP-Server mit OAuth 2.1

Der MCP-Server ist in das Werkzeug integriert: Claude oder jeder andere MCP-Client fragt im Gespräch die Statistiken Ihrer Websites und die Logs Ihres Reverse-Proxys ab, ohne Export und ohne dass eine öffentliche API freigegeben werden muss. Das Video zeigt drei solcher Gespräche, darunter einen Wochenrückblick und die Frage, an welcher Stelle Käufer abspringen.

Was sich im Alltag ändert

Sinkt eine Kurve, stellt die Serveransicht der Website die Proxy-Antworten einschließlich der Fehler den Seitenaufrufen gegenüber: Man sieht, ob tatsächlich weniger Besucher kommen oder ob die Website nicht mehr antwortet. Und sind die Alarme aktiviert, löst eine Häufung von Serverfehlern eine Benachrichtigung samt Belegen auf meinem iPhone aus, bevor ein Besucher das Problem melden muss.

Auch maxadev.fr selbst wird mit diesem Werkzeug gemessen, und nur damit, mit Einwilligung der Besucher: keine Cookies, kein Google Analytics, keine großen Datensammler. Die MaxaDev-Zahlen im Video sind dagegen fiktiv, wie der Rest der Demonstration.

Dieselbe Mechanik, für Ihren Fall

Der Name gehört mir, die Mechanik nicht. Daten, die man sonst einem Dritten anvertraut, bei sich behalten, sie mit den Logs abgleichen, die ohnehin anfallen, gewarnt werden, sobald ein Schwellenwert überschritten wird, und sie im Gespräch abfragen können: Das gilt für die Besucherzahlen einer Website ebenso wie für vieles andere.

Ich liefere das auf Ihren Fall zugeschnittene Werkzeug, das Hosting und den Quellcode. Wenn Ihre Statistiken von einem Cookie-Banner abhängen oder Sie von Ausfällen erst durch Ihre Kunden erfahren, ist das wahrscheinlich der richtige Ausgangspunkt.

  • Cookiefreie Webanalyse für die Websites Ihrer Kunden
  • Nutzungsanalyse einer Web- oder Desktop-Anwendung
  • Server-Monitoring mit Alarmen aufs Smartphone
  • Geschäftskennzahlen, in natürlicher Sprache abfragbar

Häufige Fragen

  • Nein. Es ist das Werkzeug, das ich für meine eigenen Websites nutze, hier gezeigt als Beleg dafür, was machbar ist. Geliefert wird ein für Ihren Anwendungsfall gebautes Werkzeug, mit Hosting und Quellcode.
  • Die üblichen Funktionen sind vorhanden: Seiten, Quellen und UTM-Kampagnen, Ereignisse, Nutzerpfade, Funnels und Echtzeit. Der Unterschied liegt in dem, was das Werkzeug nicht tut: keine Cookies, keine Nutzung zu Werbezwecken, keine Weitergabe von Besucherdaten an Dritte für die Messung. Und die Serveransicht ergänzt, was ein klassisches Analysewerkzeug nicht sieht.
  • Das Werkzeug ist darauf ausgelegt, ohne Cookies und ohne dauerhafte Kennung auszukommen, und an der Erfassung ist kein Drittanbieter beteiligt. Ob ein Banner nötig ist, hängt vom anwendbaren Recht ab: In Deutschland sind § 25 TDDDG und die DSGVO maßgeblich, in Frankreich sieht die Datenschutzbehörde CNIL für bestimmte Reichweitenmessungen eine Ausnahme von der Einwilligungspflicht vor. In jedem Fall kommt es auf die Konfiguration an (Speicherung der IP-Adressen, Abgleich mit den Server-Logs, Inhalt der gesendeten Ereignisse) und auf die Nutzung. Die Entscheidung liegt beim Verantwortlichen, in der Regel dem Websitebetreiber; ich dokumentiere genau, was gespeichert wird und wie lange.
  • Das Skript sieht nur die Browser, die es ausführen. Der Reverse-Proxy dagegen sieht alles, was durchläuft, auch Bots, Scanner und 5xx-Fehler, wenn die Anwendung nicht mehr antwortet. Diese Logs gibt es bereits: Ein Agent überträgt sie aus Nginx Proxy Manager. Die Einzeleinträge samt IP-Adressen werden standardmäßig 14 Tage lang aufbewahrt; danach bleiben nur stündliche Summen, ohne IP-Adresse.
  • MCP ist das Protokoll, über das ein Assistent wie Claude eine Anwendung abfragen kann. Hier ist der MCP-Server in das Werkzeug integriert und mit OAuth 2.1 gesichert: Sie fragen im Gespräch, warum Ihre Verkäufe eingebrochen sind oder wo Sie Ihre Käufer verlieren, oder lassen sich die Woche zusammenfassen, und der Assistent holt die Antwort aus Ihren Statistiken und Logs. Was er dabei abruft, wird an das Sprachmodell übermittelt, das ihn antreibt: Bei sensiblen Daten ist deshalb ein Modell, das auf Ihrer eigenen Maschine läuft, die bessere Wahl.