KYC-frei — eine E-Mail und ein Passwort, sonst nichts.
Bereits eingeschrieben?
Wiederherstellung
Schlüssel verloren?
Geben Sie Ihre E-Mail ein — wir senden einen Reset-Link an die Garnison.
Erinnern Sie sich?
Zwei-Faktor
Geben Sie Ihren Code ein.
Öffnen Sie Ihre Authenticator-App und geben Sie den aktuellen 6-stelligen Code ein.
Anleitung · Analytics·18 Min. Lesezeit · 40 Min. Praxis
Sie haben ein Skript installiert, um Ihre Leser zu beobachten. Es schaut zurück, und es meldet anderswohin.
Analytics ist das letzte Drittanbieter-Tag, das die meisten Menschen noch einsetzen, und es ist dasjenige, das alles sieht: jede Seite, jeden Leser, jede Stunde, auf einem System, das Sie nicht besitzen und nicht prüfen können. Sechs Schritte, um es durch einen Zähler zu ersetzen, der Ihnen gehört — Umami, Plausible Community Edition, Matomo oder nichts als das Server-Log — betrieben auf einer nordischen Maschine, gemietet ohne Ausweisdokument. Standardmäßig cookielos, kein Banner, über das man streiten müsste, keine Übermittlung Ihrer Leserschaft in ein Drittland. Ab $3.90 im Monat. Getestet auf Debian 12.
Die sechs Schritte
01
Wählen
Vier Werkzeuge, eine ehrliche Tabelle
02
Bereitstellen
Eine Subdomain, drei Ports
03
Bereitstellen
Compose, Caddy, erste Anmeldung
04
Instrumentieren
Ein Tag, und der First-Party-Pfad
05
Einhalten
Zwei Gesetze, nicht eines
06
Behalten
Aufbewahrung, Backups, das vergessene Log
Bevor Sie beginnen · Was das Tag ist
Es ist kein Zähler. Es ist eine Meldeleitung.
Besucher zu zählen ist wirklich nützlich, und daran ist nichts Finsteres. Sie müssen wissen, ob die Überarbeitung geholfen hat, welchen Artikel Menschen tatsächlich zu Ende lesen, welcher Verweis echte Leser bringt statt nur Absprünge, und ob das gestrige Deployment den Checkout in einem Browser im Stillen zerschossen hat. Jede dieser Fragen wird von einer Tabelle mit Seitenaufrufen beantwortet, und jede von ihnen ist ein legitimer Grund zu messen.
Was einen genauen Blick wert ist, ist die Vereinbarung, die fast jeder akzeptiert hat, um an diese Antworten zu kommen. Das gängige Analytics-Tag ist ein Stück Code, geschrieben von einem Werbeunternehmen, das Sie auf jeder Seite Ihrer Website platzieren und anweisen, im Browser Ihres Lesers zu laufen. Es liest die Seitenadresse, den Referrer, den Bildschirm, die Sprache, das Gerät; es setzt oder liest eine Kennung auf dem Gerät; es sendet all das an ein System, das Sie nicht einsehen können, in einem Land, dessen Regeln Sie nicht gewählt haben; und es übergibt die entstehende Datei an ein Unternehmen, dessen Umsatz daher kommt, zu wissen, was Menschen tun. Der Website-Betreiber bekommt ein Dashboard. Das Dashboard ist die kleinere Hälfte des Geschäfts.
Die Rechnung kommt in vier Raten, und nur eine davon ist offensichtlich. Da ist das Cookie-Banner, das fast ausschließlich wegen dieses einen Tags existiert, das Sie an der Tür einen messbaren Anteil Ihrer Besucher kostet, und für dessen Verwaltung Sie dann einen zweiten Anbieter bezahlen. Da ist die Übermittlungsfrage, weil die Daten Ihrer Leser in ein Drittland abwandern und irgendjemand irgendwann aufschreiben muss, warum das rechtmäßig ist. Da sind die Daten selbst, also Ihre Leserschaft, in einer Datenbank, die Sie nur über die angebotenen Berichte abfragen können. Und da ist die Abhängigkeit: Das Produkt wird nach dem Zeitplan eines anderen eingestellt, umbenannt oder umstrukturiert, und als das zuletzt geschah, gingen die alten Messwerte gleich mit.
Self-Hosting beseitigt alle vier auf einmal, und das ist kein großer Aufwand. Die Software ist ausgereift, kostenlos und unspektakulär; die Maschine kostet ein paar Dollar im Monat; die Arbeit ist ein Abend. Was Sie dafür bekommen, ist eine Tabelle, die Ihnen gehört, auf Hardware in einer Rechtsordnung, die Sie gewählt haben, ohne Dritte, die offengelegt werden müssten, und — bei den meisten Konfigurationen — ohne Banner, über das man streiten müsste. Vier Wege, um zu erfahren, wie viele Menschen Ihre Website lesen, und was jeder davon kostet:
Eigenschaft
Das große kostenlose Analytics-Tag
Ein datenschutzorientierter Analytics-SaaS
Die gleiche Software, Ihr VPS
Wer die Leserschaftstabelle hält
Ein Werbeunternehmen
Ein Anbieter, vertraglich gebunden
Sie, auf der Festplatte
Cookie-Banner nötig
Ja, in der Praxis immer
Normalerweise nicht
Normalerweise nicht — siehe Schritt 05
Daten verlassen den EWR
Ja, so konzipiert
Kommt auf den Anbieter an
Nur wenn Sie eine Maschine außerhalb davon wählen
Offenzulegende Dritte
Mindestens einer, plus seine Unterauftragsverarbeiter
Ein Auftragsverarbeiter
Keine
Von Filterlisten blockiert
Stark
Oft anhand des Hostnamens
Selten, sobald es First-Party ist
Rohdaten für Sie zugänglich
Nein — nur Berichte
Über eine API, solange Sie zahlen
Es ist Ihre Datenbank
Monatliche Kosten bei 100k Aufrufen
Finanziell nichts
Zig Dollar, steigend mit dem Traffic
$3.90–$7.90, pauschal
Wählen Sie sie, wenn
Sie brauchen die Integration mit der Werbeplattform und nehmen den Rest in Kauf
Sie wollen die Ethik, ohne selbst etwas zu betreiben
Die Leserschaft gehört Ihnen, und die Tabelle auch
Die dritte Spalte ist eine echte Antwort, kein Strohmann: Ein gehosteter, auf Datenschutz ausgerichteter Anbieter beseitigt die meisten derselben Probleme für Menschen, die keine eigenen Server betreiben sollten, und einen solchen zu bezahlen ist ein besseres Ergebnis, als das Werbe-Tag zu behalten. Diese Anleitung ist für den Fall gedacht, dass Sie bereits eine Maschine mieten — oder es vorhatten.
Schritt 01 · Wählen
Vier Werkzeuge. Die Datenbank bestimmt die Rechnung.
Diese vier sind nicht vier Geschmacksrichtungen ein und derselben Sache. Sie unterscheiden sich darin, worin sie die Daten speichern, und diese eine Entscheidung bestimmt den Speicherbedarf, das Wachstum auf der Festplatte, das Upgrade-Risiko und die Tiefe der Berichte. Lesen Sie zuerst die Spalte zum Speicher und danach die Spalte zu den Funktionen; das ist die Reihenfolge, in der die Entscheidung tatsächlich getroffen wird.
Werkzeug
Stack und Speicher
Sinnvolle Stufe
Wählen Sie sie für
Umami
Node-Anwendung + PostgreSQL oder MySQL. Zwei Container.
Sentinel · $3.90
Die Standardantwort. Leichtgewichtig, übersichtlich, cookielos, multisite-fähig, MIT-lizenziert.
Plausible Community Edition
Elixir-Anwendung + PostgreSQL + ClickHouse. Vier Container.
Garrison · $7.90
Ziele, Funnels und öffentliche Dashboards; schnelle Abfragen bei hohem Volumen.
Matomo
PHP-Anwendung + MariaDB, plus ein geplanter Archivierungsjob.
Garrison · $7.90
Funktionsgleichheit mit dem etablierten Platzhirsch — Segmente, Kohorten, E-Commerce, Log-Import.
GoAccess
Eine einzige Binärdatei, die das Zugriffslog des Webservers liest. Keine Datenbank.
Was auch immer Sie bereits betreiben
Überhaupt kein JavaScript — statische Websites, Dokumentationen, APIs.
Umami ist die erste Wahl, sofern Sie keinen Grund haben, es nicht zu sein. Es ist eine Node-Anwendung über einer einzigen relationalen Datenbank, kommt mit einem Gigabyte Arbeitsspeicher aus, das Schema besteht aus einer Handvoll Tabellen, die Sie selbst abfragen können, und die Berichte zeigen genau das, wofür die meisten Menschen ein Dashboard überhaupt öffnen: Seiten, Referrer, Länder, Geräte, plus benutzerdefinierte Ereignisse, wenn Sie sie wollen. Es ist standardmäßig cookielos, ohne dass Sie das konfigurieren müssten.
Plausible Community Edition ist die selbst hostbare Ausgabe des gehosteten Produkts, und das zusätzliche Element ist ClickHouse — eine spaltenorientierte Datenbank, die aggregierte Abfragen über zig Millionen Zeilen gefühlt augenblicklich macht und sich dabei so viel Arbeitsspeicher nimmt, wie Sie ihr lassen. Oberhalb einiger Millionen Aufrufe im Monat ist das ein fairer Tausch, darunter ein merkwürdiger. Lesen Sie die Lizenzbedingungen des Projekts, bevor Sie es bereitstellen: Die Community Edition ist für den Betrieb Ihrer eigenen Analyse gedacht, nicht für den Weiterverkauf als Dienstleistung.
Matomo ist als einziges der vier Werkzeuge dem etablierten Platzhirsch tatsächlich funktionsgleich, und diese Aussage ist in beide Richtungen ehrlich: Sie bekommen Segmente, Funnels, Kohorten, E-Commerce-Attribution, Heatmaps über Plugins und die Möglichkeit, eigene Server-Logs zu importieren — und Sie bekommen zugleich eine große PHP-Anwendung, deren Rohdatentabellen schnell wachsen und deren Berichte von einem Archivierungsjob vorberechnet werden, den Sie selbst einplanen müssen. Zwei Dinge rechtfertigen trotzdem einen Blick darauf: Es lässt sich so konfigurieren, dass keine Cookies gesetzt werden, und Konfigurationen zur reinen Reichweitenmessung sind bereits auf veröffentlichten Listen von Aufsichtsbehörden aufgetaucht, die Werkzeuge von der Einwilligungspflicht ausnehmen — prüfen Sie die aktuelle Liste und nicht einen Blogbeitrag, aber auf dem Papier ist es ein echter Vorteil.
GoAccess ist die Option, die niemand vorschlägt und die einige durchaus wählen sollten. Es liest das Zugriffslog, das Ihr Webserver ohnehin schon schreibt, und gibt es als Terminal-Bericht oder als einzelne, in sich geschlossene HTML-Seite aus. Nichts läuft im Browser, nichts wird auf dem Gerät gespeichert, und es gibt keine Einwilligungsfrage zu beantworten, weil es über die Anfrage selbst hinaus keine Erhebung gibt. Was Sie aufgeben, ist alles, was innerhalb der Seite passiert, und jede Hoffnung, Menschen statt Anfragen zu zählen. Für eine Dokumentationsseite oder einen statischen Blog ist das oft ein fairer Tausch — und es ergänzt eines der anderen Werkzeuge gut, statt es zu ersetzen.
Die Entscheidung in einer Zeile
Wenn Sie das Feature, das Sie von Plausible oder Matomo brauchen, nicht benennen können, brauchen Sie Umami. Stellen Sie es in zwanzig Minuten bereit, betreiben Sie es einen Monat lang, und lassen Sie die Frage, die Sie sich nicht beantworten können, entscheiden, ob Sie wechseln sollten. Später zu migrieren kostet Sie nur den Verlauf und sonst nichts, und der Verlauf, den Sie dabei verlieren würden, ist ein Monat.
Schritt 02 · Bereitstellen
Eine Maschine, ein Name. Klären Sie zuerst den Namen.
Bestellen Sie den VPS und wählen Sie die Bastion danach, wo Ihre Leser sind und wo die Daten liegen sollen — Stockholm, Helsinki, Oslo und Reykjavík liegen alle im EWR, und genau das ist der Punkt. Führen Sie dann die Härtung der ersten Stunde durch, bevor irgendetwas anderes die Maschine berührt: SSH nur mit Schlüssel, ein verschobener Port, eine Default-Deny-Firewall, unbeaufsichtigte Updates. Es sind dieselben vierzig Minuten wie bei jeder Anleitung dieser Serie, und sie sind nicht optional auf einer Maschine, die ein Jahr der Leserschaft eines Menschen speichern wird.
Legen Sie dann den Hostnamen fest, denn er ist fest in das Tracking-Snippet auf jeder Seite jeder Website, die Sie messen, eingebacken, und ihn später zu ändern bedeutet, alle davon zu bearbeiten, während der alte Name weiterhin Treffer empfängt. Zwei Formen funktionieren. Eine dedizierte Subdomain der Website, die Sie messen — der Reverse-Proxy auf der Analytics-Maschine antwortet dafür, und das ist die einfachste Lösung, die funktioniert. Oder ein neutraler Name auf einer eigenen Domain, falls eine Instanz mehreren nicht zusammenhängenden Websites dienen soll und Sie lieber nicht möchten, dass der Quelltext jeder Website die anderen verrät. Legen Sie den Eintrag an und lassen Sie ihn auflösen, bevor Sie weitermachen: Der Proxy fragt beim ersten Start eine Zertifizierungsstelle nach einem Zertifikat, und die Stelle prüft den Namen von außen.
dig +short stats.example.com # must return the VPS address before you deploy
ufw default deny incoming
ufw allow 47222/tcp # administrative SSH, moved off 22
ufw allow 80/tcp # ACME challenge and the redirect to 443
ufw allow 443/tcp # the dashboard and the collection endpoint
ufw enable && ufw status numbered
Drei Ports, und nichts sonst. Die Datenbank darf nicht veröffentlicht werden: Sie lebt im internen Docker-Netzwerk, erreichbar für den Anwendungscontainer und für niemanden im Internet. Das ist die mit Abstand häufigste Art, wie eine selbst gehostete Analytics-Maschine in einem Scan-Ergebnis landet — ein PostgreSQL- oder MySQL-Port, der an die öffentliche Adresse gebunden ist, weil in einer Compose-Datei aus einem Tutorial ein Ports-Mapping stand, das dort für die lokale Entwicklung gedacht war.
Was die Dimensionierung angeht, widerstehen Sie dem Drang, zu groß zu kaufen. Eine Sentinel — 2 vCPU, 4 GB, 120 GB NVMe, $3.90 im Monat — betreibt Umami plus Postgres mit Reserven und hält Jahre an Ereignissen für eine Website mit sechsstelligen monatlichen Aufrufen. Steigen Sie auf eine Garrison — 4 vCPU, 8 GB, 240 GB — um, wenn Sie sich für Plausible entschieden haben, weil ClickHouse dort zufriedener ist, oder für Matomo, weil der Archivierungsjob die Kerne will. Die Bandbreite ist bei jeder Stufe unbegrenzt, und Analytics-Traffic ist dagegen ein Rundungsfehler: Jeder Treffer sind ein paar hundert Byte.
Schritt 03 · Deploy
Zwei Container und ein Proxy. Dann die Tür schließen.
Das Referenz-Deployment weiter unten ist Umami, weil es dasjenige ist, das die meisten Leser betreiben sollten, und weil sich die Struktur verallgemeinern lässt: ein Anwendungscontainer, ein Datenbankcontainer, den er erreichen kann und sonst niemand, und ein Reverse-Proxy, der das Zertifikat hält. Plausible und Matomo unterscheiden sich in der Anzahl der Container und den Namen der Variablen, nicht in der Struktur — nehmen Sie deren offizielle Compose-Dateien und wenden Sie dieselben drei Regeln an.
Die drei Regeln, in der Reihenfolge, wie teuer sie Sie zu stehen kommen, wenn Sie ignoriert werden. Pinnen Sie jedes Image auf einen exakten Tag, niemals auf einen gleitenden: Ein Analytics-Stack, der während eines nicht damit zusammenhängenden Neustarts still und leise eine neue Hauptversion zieht, ist eine Schema-Migration, die Sie nicht geplant haben. Erzeugen Sie das Anwendungsgeheimnis aus einer echten Zufallsquelle und bewahren Sie es auf — es verschlüsselt Sitzungsmaterial, und es später zu ändern loggt im besten Fall alle aus. Veröffentlichen Sie keinen Datenbank-Port: Die beiden Container teilen sich ein Netzwerk, und das ist die gesamte Zugriffskontrolle, die sie brauchen.
mkdir -p /srv/analytics && cd /srv/analytics
openssl rand -base64 32 > .app_secret # keep this file; back it up with the database
openssl rand -base64 24 > .db_password
chmod 600 .app_secret .db_password
Die Compose-Datei. Zwei Dienste, ein privates Netzwerk, ein benanntes Volume für die Datenbank, und kein einziger veröffentlichter Port — der Proxy ist das Einzige, das mit der Außenwelt spricht:
Caddy ist hier der kürzeste Weg zu einem korrekten TLS-Setup: zwei Zeilen Konfiguration, ein Zertifikat, das ohne Cronjob bezogen und erneuert wird, und moderne Standardeinstellungen, die Sie nicht erst recherchieren müssen. Wenn auf der Maschine bereits nginx läuft, bleiben Sie bei nginx — die Anforderung ist ein Proxy davor, nicht speziell dieser Proxy. In jedem Fall darf die Analytics-Anwendung niemals selbst auf Port 443 lauschen.
# Caddyfile — Caddy runs as a third service in the same Compose project, so
# "umami" resolves on the internal network. It is the only service that
# publishes ports (80 and 443).
stats.example.com {
encode zstd gzip
reverse_proxy umami:3000
}
Fahren Sie es hoch, und tun Sie dann das eine, das wirklich zeitkritisch ist. docker compose up -d, warten Sie auf die Migrationen, und öffnen Sie das Dashboard. Jedes dieser Werkzeuge liefert entweder ein dokumentiertes Standard-Administratorkonto oder einen offenen Erstregistrierungs-Bildschirm, und der Hostname wurde in dem Moment öffentlich bekannt, in dem das Zertifikat ausgestellt wurde, weil Certificate-Transparency-Logs öffentlich sind und fortlaufend durchsucht werden. Ändern Sie das Standardpasswort und schließen Sie die Registrierung innerhalb von Minuten nach dem ersten erfolgreichen Laden, nicht erst morgen.
docker compose up -d
docker compose logs -f umami # wait for the schema migration to finish
docker compose ps # both services healthy, no published ports listed
ss -tlnp | grep -E ':(5432|3306)' # must print nothing at all
Die fünf Minuten, die entscheiden, wem die Instanz gehört
Umami liefert ein dokumentiertes Administratorkonto aus, dessen Passwort auf jeder Installation weltweit dasselbe ist. Bei Plausible wird der erste Besucher zum Eigentümer, sofern die Registrierung nicht in der Umgebung deaktiviert ist. Matomo führt den ersten Besucher durch einen Installer, der den Superuser anlegt. In allen drei Fällen ist das Zeitfenster zwischen „das Zertifikat existiert" und „Sie haben sich eingeloggt" ein Fenster, in dem sich stattdessen jemand anderes einloggen kann — und diese Person muss den Hostnamen nicht einmal erraten, denn er ist für sie bereits veröffentlicht. Loggen Sie sich zuerst ein, ändern Sie die Zugangsdaten, schalten Sie dann die Registrierung auf geschlossen, und laden Sie die Seite neu, um zu bestätigen, dass es funktioniert hat.
Schritt 04 · Instrumentieren
Ein Tag. Dann entscheiden, auf wessen Domain es liegt.
Registrieren Sie die Website im Dashboard, kopieren Sie die Kennung, die Sie dabei erhalten, und setzen Sie ein einziges, verzögert geladenes Skript-Tag in das Template — im Head oder am Ende des Bodys, das spielt kaum eine Rolle, aber in jedem Fall verzögert geladen, damit es die Seite nie verzögern kann. Das ist die gesamte Integration. Es gibt keinen Tag-Manager, keinen Container, keine Data Layer und keine Consent-Mode-Verkabelung, und genau diese Abwesenheit ist der Hauptgrund, warum Sie hier sind.
Laden Sie eine Seite der Website und sehen Sie dann ins Dashboard: Der Treffer sollte innerhalb von Sekunden da sein. Falls nicht, beantworten die Browser-Konsole und der Netzwerk-Tab die Frage in unter einer Minute — die zwei Fehlerarten sind eine falsch eingegebene Kennung, die eine Anfrage erzeugt, die angenommen und verworfen wird, und eine Anfrage, die überhaupt nie hinausgeht, was bedeutet, dass eine Erweiterung sie verschluckt hat. Schließen Sie Ihren eigenen Traffic aus, bevor Sie anfangen, die Zahlen zu lesen, sonst sind Ihre eigenen Neuladungen eine Woche lang Ihr Top-Referrer.
Nun zur Entscheidung, über die es sich nachzudenken lohnt. Das Snippet oben stellt eine Anfrage an einen Hostnamen, der nicht der der Website selbst ist, und ein Teil Ihrer Besucher nutzt Software, die solche Anfragen anhand von Mustern blockiert. Die Listen erfassen die bekannten Dateinamen — alles, was auf den eigenen Skriptnamen des Anbieters endet — sowie die bekannten gehosteten Domains, unabhängig davon, auf welchen Server sie verweisen. Die Lösung besteht aus zwei Teilen: die Skriptdatei und den Erfassungs-Endpunkt umbenennen in etwas, das kein Tracker-Name ist — das unterstützt jedes dieser Werkzeuge —, und sie vom eigenen Ursprung der Website ausliefern, über einen Pfad, den Ihr bestehender Proxy weiterleitet. Danach bleibt keine Drittanbieter-Anfrage mehr zu blockieren.
# On the site's own web server — the two paths the tracker needs, first-party:
example.com {
handle /p/s.js { reverse_proxy https://stats.example.com { header_up Host stats.example.com } }
handle /p/collect { reverse_proxy https://stats.example.com { header_up Host stats.example.com } }
# ... the rest of the site
}
Zwei Details entscheiden, ob das funktioniert oder nur halb funktioniert. Der Proxy muss die Adresse des Besuchers in einem Header weiterleiten, dem die Analytics-Anwendung zu vertrauen konfiguriert ist, sonst wird jeder Treffer Ihrem eigenen Webserver zugeschrieben, und der Länderbericht besteht aus einem einzigen Balken. Und dem Tracker muss gesagt werden, wohin er seine Daten senden soll — bei allen drei Werkzeugen ein data-Attribut am Skript-Tag —, denn die Datei umzubenennen, ohne den Endpunkt neu zu verweisen, ergibt ein Skript, das lädt und nirgendwohin berichtet.
Das ist zugleich das ehrliche Ende der Messgeschichte. Ein Besucher mit deaktiviertem JavaScript, oder mit einer strikten Liste plus einer First-Party-Kosmetikregel, wird nicht gezählt, und es sollte kein technischer Aufwand darauf verwendet werden, ihn zu jagen — ein Filter auf Netzwerkebene ist eine erklärte Präferenz, und die höfliche Antwort darauf ist das Server-Log, das ihn zählt, ohne irgendetwas Zusätzliches zu erheben. Ereignisse und Single-Page-Applications sind die andere Hälfte der Instrumentierung: Jedes Werkzeug stellt eine kleine Funktion für benutzerdefinierte Ereignisse bereit, und jedes von ihnen braucht bei einem Routenwechsel einen expliziten Aufruf, weil ein Framework, das die Ansicht ohne Navigation wechselt, keinen Seitenaufruf erzeugt, den das Skript bemerken könnte.
Schritt 05 · Einhalten
Zwei Gesetze, nicht eines. Die meisten im Internet vermengen sie.
Der Grund, warum man sich nicht einig wird, ob Analytics ein Banner braucht, ist, dass hier über zwei verschiedene Regeln gestritten wird, als wären sie eine. Trennt man sie, wird die Antwort greifbar. Artikel 5(3) der ePrivacy-Richtlinie — in jedem Mitgliedstaat in nationales Recht umgesetzt, und die eigentliche Quelle des Cookie-Banners — besagt, dass das Speichern von Informationen auf der Endeinrichtung eines Teilnehmers oder der Zugriff auf dort bereits gespeicherte Informationen dessen Einwilligung erfordert, sofern das nicht unbedingt erforderlich ist, um einen von ihm ausdrücklich gewünschten Dienst zu erbringen. Bemerkenswert ist, was er nicht sagt: Er sagt nicht Cookie, und er sagt nicht personenbezogene Daten. Er erfasst localStorage, er erfasst Device-Fingerprinting, und er gilt sogar für einen Wert, der niemanden identifiziert.
Die DSGVO ist die zweite Regel und betrifft eine andere Frage: was Sie mit personenbezogenen Daten tun dürfen, sobald Sie sie haben. Sie gilt für Ihre Analyse unabhängig davon, ob Sie irgendetwas auf dem Gerät speichern, denn eine Web-Anfrage liefert eine IP-Adresse, und der Gerichtshof der Europäischen Union hat in der Rechtssache Breyer (C-582/14) entschieden, dass eine IP-Adresse in den Händen eines Website-Betreibers personenbezogene Daten sein kann. Die beiden Regeln stapeln sich also: 5(3) fragt haben Sie auf das Gerät geschrieben, die DSGVO fragt was haben Sie mit dem getan, was ankam.
Ein cookieloser Analytics-Server ist darauf ausgelegt, beide Fragen eng zu beantworten. Er speichert nichts auf dem Gerät — kein Cookie, kein localStorage-Eintrag, keine Kennung irgendeiner Art —, wodurch 5(3) außen vor bleibt, weil es weder Speicherung noch Zugriff auf Speicher gibt. Und er nimmt die IP-Adresse, die er notwendigerweise erhält, verbindet sie mit dem User-Agent, der Website und einem geheimen Salt, das täglich rotiert wird, hasht das Ergebnis, behält den Hash und verwirft die Adresse. Dieser Hash erlaubt es dem Werkzeug, zwei Besucher innerhalb eines Tages zu unterscheiden, und wird in dem Moment nutzlos, in dem das Salt rotiert — genau deshalb zählt dieselbe Person morgen als neuer Besucher. Die Verarbeitung ist real, und sie ist so klein, wie Verarbeitung nur sein kann.
Was übrig bleibt, ist eine Rechtsgrundlage für diesen engen Vorgang, und in der Praxis stützen sich Betreiber auf berechtigte Interessen nach Artikel 6(1)(f), dokumentiert mit einer Interessenabwägung, die kurz ausfällt, weil die Fakten einfach sind: kein Profiling, keine Weitergabe, kein site-übergreifendes Tracking, ein Pseudonym, das täglich stirbt, eine festgelegte Aufbewahrungsdauer. Mehrere Aufsichtsbehörden sind noch weiter gegangen und haben Kriterien veröffentlicht, unter denen streng begrenzte Reichweitenmessung vollständig von der Einwilligungspflicht ausgenommen ist — die Kriterien unterscheiden sich von Land zu Land, sie werden aktualisiert, und die, die für Sie zählen, sind die Ihres eigenen Landes. Das ist keine Rechtsberatung. Es ist die Landkarte, welche Instrumente zur Anwendung kommen, damit der Rat, den Sie einholen, sich auf Ihre Situation beziehen kann statt auf die allgemeine Form des Problems.
Die Frage
Ad-Tech-Analytics-Tag
Cookielos, selbst gehostet im EWR
Schreibt auf das Gerät des Besuchers?
Ja — also gilt die Einwilligungspflicht nach Artikel 5(3)
Nein — 5(3) greift nicht
Dauerhafte Kennung gespeichert?
Monate bis Jahre, über mehrere Websites hinweg
Ein gesalzener Hash, der täglich abläuft
Zu dokumentierende Drittlandübermittlung?
Ja, mit einem Übermittlungsmechanismus, der aufrechterhalten werden muss
Keine — die Maschine steht im EWR
Verarbeiter zu benennen und vertraglich zu binden
Der Anbieter und seine Unterauftragsverarbeiter
Ihr Host, für die Hardware, und sonst niemand
Wer ein Auskunftsersuchen beantworten kann
Sie, über welchen Export auch immer existiert
Sie, mit SQL — und oft gibt es nichts zurückzugeben
Eine weitere Zeile gehört in die Akte, denn sie ist das leise Argument für diese ganze Übung. Die Rechtmäßigkeit, die Daten europäischer Besucher an einen US-amerikanischen Analytics-Dienst zu senden, wird seit einem Jahrzehnt gerichtlich verhandelt: Der Gerichtshof der Europäischen Union kippte 2020 das bisherige Übermittlungsabkommen in der Rechtssache Schrems II (C-311/18), mehrere nationale Aufsichtsbehörden urteilten 2022 auf dieser Grundlage gegen das gängige Analytics-Tag — Österreich im Januar, Frankreich im Februar, Italien im Juni, weitere folgten —, und ein neuer Angemessenheitsbeschluss, das EU-US Data Privacy Framework, stellte im Juli 2023 einen Übermittlungsweg wieder her und steht selbst unter Beschuss. Sie müssen keine Meinung dazu haben, wie das ausgeht. Eine Maschine in Helsinki entfernt die Frage dauerhaft aus Ihrer Akte, und das ist mehr wert, als mit dem aktuellen Stand der Dinge recht zu haben.
Schritt 06 · Erhalten
Aufbewahrung, Backups, Upgrades. Und das Log, das Sie vergessen haben.
Legen Sie die Aufbewahrungsdauer am ersten Tag fest, solange sie noch eine abstrakte Zahl ist und nicht ein Jahr an Daten, an dem Sie hängen. Jedes dieser Werkzeuge kann Rohereignisse nach einem Zeitplan löschen und dabei die verdichteten Zusammenfassungen behalten; zwölf Monate an Detail sind für fast jeden Zweck großzügig bemessen, und das bedeutet, dass die ehrliche Antwort auf „wie lange bewahren Sie das auf" eine Zahl ist statt „unbegrenzt". Das löst außerdem das Speicherplatzproblem, bevor es entsteht, was am meisten für Matomo zählt, dessen Rohdatentabellen diejenigen sind, die wachsen.
Sichern Sie die Datenbank an einem Ort, der nicht diese Maschine ist, und verschlüsseln Sie sie auf dem Weg hinaus — der Backup-Leitfaden behandelt das ausführlich, die Kurzversion ist ein nächtlicher Dump, der in ein append-only-Repository auf einer zweiten Maschine geleitet wird, idealerweise in einer zweiten Rechtsordnung. Sichern Sie das Anwendungsgeheimnis gleich mit: Eine Datenbank, die Sie wiederherstellen können, und ein Geheimnis, das Sie nicht wiederherstellen können, ergeben ein Dashboard, in das sich niemand einloggen kann. Stellen Sie es dann einmal absichtlich auf einem Wegwerf-VPS wieder her, bevor Sie es wirklich brauchen.
Upgrades verdienen etwas mehr Sorgfalt als ein gewöhnliches Anheben eines Containers, weil diese Anwendungen ein Schema besitzen. Lesen Sie die Release-Notes für die Hauptversionen, die Sie überspringen, erstellen Sie das Backup vorher statt nachher, ändern Sie dann den gepinnten Tag und fahren Sie den Stack hoch, während Sie die Logs beobachten — eine Migration, die auf halbem Weg fehlschlägt, lässt sich aus dem Dump der letzten Nacht wiederherstellen und ist ohne ihn sehr unangenehm. Es gibt keinen Grund, schon in der Woche des Erscheinens auf dem neuesten Release zu sein, und einen guten Grund, es nicht zu sein.
Das Log, das die ganze Übung zunichtemacht
Sie haben gerade einen Stack bereitgestellt, der absichtlich niemals eine IP-Adresse speichert. Zwei Meter weiter schreibt Ihr Reverse-Proxy die vollständige IP-Adresse jedes einzelnen Besuchers im Klartext in ein Zugriffslog und bewahrt sie so lange auf, wie die Standardrotation es vorsieht — sowohl auf der Analytics-Maschine als auch auf dem Webserver vor Ihrer eigentlichen Website. Dieses Log ist ein größerer und sensiblerer Datensatz als die Analytics-Datenbank, es ist ein Verarbeitungsvorgang, den Sie rechtfertigen müssen, und fast niemand denkt daran. Entscheiden Sie, wofür es da ist: Wenn es nur zum Debuggen dient, kürzen oder maskieren Sie das letzte Oktett im Log-Format und rotieren Sie aggressiv; wenn Sie es für log-basierte Messung wollen, sagen Sie das in der Datenschutzerklärung und geben Sie ihm eine echte Aufbewahrungsdauer. Was Sie nicht tun dürfen, ist, es auf der Standardeinstellung zu lassen und zu behaupten, Ihre Website erhebe keine IP-Adressen.
Zum Schluss die Grenzen, bei denen Ehrlichkeit angebracht ist, denn ein selbst gehosteter Zähler ist keine strikt bessere Version von dem, was Sie entfernt haben. Sie verlieren die geräte- und tagesübergreifende Identität, sodass wiederkehrender Besucher etwas Engeres bedeutet als zuvor. Sie verlieren die Integration mit der Werbeplattform, was wichtig ist, wenn Sie Traffic kaufen, und irrelevant, wenn nicht — die Search-Console-Daten sind ein eigenständiges Produkt und davon nicht betroffen. Sie übernehmen ein Upgrade und ein Backup, was ein echter, in Abenden gemessener wiederkehrender Aufwand ist. Und die Maschine selbst wird zu etwas, das es zu schützen gilt: Sie enthält Ihre Leserschaft, sie steht im öffentlichen Internet, und die Hardening-Checkliste zusammen mit einem privaten Zugang zum Dashboard sind die zwei Dinge, die sie langweilig halten.
Feldnotizen · Sechs Fallen
Sechs Arten, wie das schiefgehen kann. Zwei davon sind lautlos.
Falle 01 · Fatal
Das Standardpasswort, das jeder kennt
Eines dieser Werkzeuge liefert auf jeder Installation weltweit dieselben Administrator-Zugangsdaten aus; die anderen übergeben die Eigentümerschaft an die erste Person, die sich registriert. Der Hostname wird in dem Moment, in dem TLS funktioniert, in Certificate-Transparency-Logs veröffentlicht. Loggen Sie sich ein, ändern Sie sie, schließen Sie die Registrierung — in den ersten fünf Minuten, nicht erst morgen.
Falle 02 · Fatal
Der Datenbank-Port aus dem Tutorial
Compose-Dateien, die für einen Laptop geschrieben wurden, veröffentlichen 5432 oder 3306, damit der Autor sich per GUI verbinden konnte. Kopieren Sie eine davon auf eine öffentliche Maschine, und die Leserschaftstabelle ist nur ein erratenes Passwort entfernt. Der Anwendungscontainer erreicht die Datenbank über das interne Netzwerk; nichts außer dem Proxy muss veröffentlicht werden.
Die Software auf die eigene Maschine zu verlagern beantwortet die Übermittlungsfrage und die Frage nach dem Auftragsverarbeiter. Sie beantwortet nicht Artikel 5(3), wenn Sie anschließend ein Feature aktivieren, das auf das Gerät schreibt, und sie schreibt nicht Ihre Datenschutzerklärung. Die Ausnahme ist eine Eigenschaft der Konfiguration, nicht des Hostings.
Falle 04 · Lautlos
Jeder Besucher kommt aus demselben Land
Ein Reverse-Proxy, der die Adresse des Clients nicht weiterleitet, lässt jeden Treffer so aussehen, als käme er vom Proxy selbst. Das Dashboard füllt sich, die Summen sehen richtig aus, und die Spalten für Geografie und Eindeutigkeit sind stillschweigend Fiktion. Prüfen Sie die Länderaufteilung am ersten Tag, nicht erst in der Quartalsauswertung.
Falle 05 · Lautlos
Das Zugriffslog, das Sie immer noch führen
Der Stack wurde gewählt, weil er niemals eine IP-Adresse speichert. Der Proxy davor speichert standardmäßig jede einzelne davon im Klartext, und ebenso der Webserver vor Ihrer eigentlichen Website. Maskieren oder rotieren Sie sie gezielt, und beschreiben Sie das in der Datenschutzerklärung — oder hören Sie auf zu behaupten, Sie würden sie nicht erheben.
Falle 06 · Vermeidbar
Den alten Zahlen nachjagen
Die neuen Gesamtzahlen werden nicht zu den alten passen, und keine Konfiguration wird das ändern. Andere Zählregeln, ein anderer blockierter Anteil, und kein Banner, das die Stichprobe filtert. Verwenden Sie die zwei Wochen darauf, Ihr eigenes Verhältnis zu lernen, behandeln Sie die neue Zahl dann als Basislinie, und hören Sie auf, zwei Definitionen abzugleichen.
FAQ · Selbst gehostete Analytics
Fragen, beantwortet.
Elf Fragen, die dabei aufkommen — angefangen mit der, die alle in beide Richtungen falsch verstehen.
Kann ich das Cookie-Banner wirklich weglassen, wenn ich selbst hoste?
Oft ja, und der Grund ist präziser als „selbst gehostet ist unbedenklich". Zwei getrennte Regeln kommen ins Spiel. Artikel 5(3) der ePrivacy-Richtlinie — das, was alle das Cookie-Gesetz nennen — verlangt eine Einwilligung, um Informationen auf dem Gerät eines Besuchers zu speichern oder von dort auszulesen, sofern das nicht für einen von ihm ausdrücklich gewünschten Dienst unbedingt erforderlich ist. Er gilt für Cookies, aber auch für localStorage, für sessionStorage und für alles andere, was Sie zurücklassen, und er gilt unabhängig davon, ob die Daten personenbezogen sind. Ein Werkzeug, das nichts auf das Gerät schreibt, löst ihn schlicht nicht aus. Die DSGVO ist die zweite Regel, und sie verschwindet nicht: Sie erhalten bei jeder Anfrage weiterhin eine IP-Adresse und eine User-Agent-Zeichenfolge, und eine IP-Adresse zählt in den Händen eines Website-Betreibers zu den personenbezogenen Daten (Gerichtshof der Europäischen Union, Rechtssache Breyer, C-582/14). Was ein cookieloser Analytics-Server tut, ist, diese IP mit einem täglich rotierenden Salt zu hashen und sie dann zu verwerfen, sodass in der Datenbank ein Pseudonym pro Tag und pro Website landet, keine Person. Das ist ein enger, gut dokumentierter Verarbeitungsvorgang, den die meisten Betreiber auf berechtigte Interessen stützen, und mehrere Aufsichtsbehörden haben Kriterien veröffentlicht, unter denen reine Reichweitenmessung von der Einwilligungspflicht ausgenommen ist. Das ist eine vertretbare Position, kein Zauberwort: Schreiben Sie auf, was Sie erheben, warum, und für wie lange, und lesen Sie die Leitlinien Ihrer eigenen Aufsichtsbehörde statt der Landingpage eines Anbieters. Nichts auf dieser Seite ist Rechtsberatung.
Welches sollte ich wählen, wenn ich nicht darüber nachdenken will?
Umami. Es ist eine einzige Node-Anwendung und eine PostgreSQL-Datenbank, es ist mit 1 GB Arbeitsspeicher komfortabel unterwegs, das Dashboard ist beim ersten Besuch verständlich, es ist von Haus aus cookielos, und eine Instanz bedient klaglos jede Website, die Ihnen gehört. Für die überwältigende Mehrheit der Menschen, die Google Analytics auf einem Blog, einer Dokumentationsseite, einem Shop oder einer Firmenwebsite ersetzen, ist es die richtige Antwort, und die anderen drei sind eine Diskussion, die Sie nicht führen mussten. Wählen Sie stattdessen Plausible Community Edition, wenn Sie Funnels, Umsatzziele und eine stärkere öffentliche Dashboard-Geschichte wollen und bereit sind, dafür ClickHouse zu betreiben. Wählen Sie Matomo, wenn Sie wirklich den Funktionsumfang von Google Analytics brauchen — Segmente, Kohorten, benutzerdefinierte Berichte, E-Commerce-Attribution, Rohlog-Import — und akzeptieren, dass Sie eine große PHP-Anwendung mit einem geplanten Archivierungsjob betreiben. Wählen Sie GoAccess, wenn Sie überhaupt kein JavaScript auf der Seite wollen.
Warum stimmen die Zahlen nicht mit Google Analytics überein?
Weil sie unterschiedliche Dinge zählen, und die Lücke in beide Richtungen zugleich verläuft. Nach oben: Google Analytics sieht hinter einem Cookie-Banner nur die Besucher, die auf Akzeptieren gedrückt haben, in Europa routinemäßig die Hälfte davon, während ein bannerloser, cookieloser Zähler jeden sieht. Noch weiter nach oben: Ihr neuer Endpunkt liegt auf Ihrer eigenen Domain und steht nicht auf den Filterlisten, die Anfragen an bekannte Tracker verwerfen. Nach unten: Ein täglich rotierender Hash kann dieselbe Person am nächsten Tag nicht wiedererkennen, sodass ein Leser, der am Montag und am Donnerstag vorbeischaut, zwei Besucher sind, nicht ein wiederkehrender — Sitzungen werden nur innerhalb eines Tages verknüpft, niemals über Tage oder Geräte hinweg. Noch weiter nach unten: Die meisten selbst gehosteten Werkzeuge liefern einen konservativen Bot-Filter und keine Discover-artige Aufblähung. Der praktische Ratschlag lautet, mit dem Abgleichen aufzuhören. Lassen Sie beide zwei Wochen parallel laufen, um Ihr eigenes Verhältnis zu lernen, schreiben Sie es auf einen Zettel, löschen Sie dann das Google-Tag und verwenden Sie die neuen Zahlen als die Basislinie, die sie jetzt sind. Für Entscheidungen zählt die Form des Trends und die relative Rangfolge von Seiten und Quellen, und beides überlebt den Wechsel unversehrt.
Blockieren Adblocker auch meine eigene Instanz?
Teilweise, und es lohnt sich, genau zu wissen, wie, denn der Mechanismus ist simpler, als man annimmt. Die großen Filterlisten arbeiten mit Mustern: den Hostnamen der gehosteten Dienste und einer Reihe bekannter Datei- und Pfadnamen — eine Anfrage nach etwas, das auf plausible.js, umami.js oder matomo.php endet, ist erkennbar, egal an welchen Server sie geht. Verlagern Sie die Software mit den Standard-Dateinamen auf stats.example.com, verlieren Sie trotzdem einen Teil des technisch versierten Publikums. Es gibt zwei ehrliche Lösungsansätze, und sie summieren sich. Benennen Sie das Skript und den Erfassungs-Endpunkt in etwas um, das kein Tracker-Name ist — jedes dieser Werkzeuge erlaubt das, und es kostet eine Zeile Konfiguration. Liefern Sie sie vom selben Ursprung wie die Website selbst aus, über einen Pfad auf Ihrer Hauptdomain, den der Reverse-Proxy weiterleitet, sodass keine Drittanbieter-Anfrage zum Blockieren übrigbleibt. Zusammen gewinnen Sie den größten Teil des Verlusts zurück. Sie werden nicht alles zurückgewinnen, und das sollten Sie auch nicht wollen: Ein Besucher, der eine strikte Liste plus deaktiviertes JavaScript nutzt, hat sich entschieden, und die richtige Antwort darauf ist das Server-Log, kein Wettrüsten.
Ist es ein Dark Pattern, das Skript über meine eigene Domain zu proxen?
Die Frage ist berechtigt, und die Antwort hängt davon ab, was der Blocker eigentlich schützen sollte. Eine Filterliste hat ein stumpfes Werkzeug und zwei sehr unterschiedliche Ziele: das Ad-Tech-Netzwerk, das eine Person über zehntausend Websites verfolgt und ein Profil aufbaut, und den Zähler, der einem einzelnen Website-Betreiber sagt, dass seine Dokumentationsseite gestern vierhundert Mal gelesen wurde. Das Erste zu blockieren ist eine Person, die sich gegen Überwachung wehrt. Das Zweite zu blockieren ist Kollateralschaden einer Regel, die beide nicht unterscheiden kann. Den eigenen Zähler von der eigenen Domain auszuliefern schmuggelt keinen Tracker an einer Abwehr vorbei; es entfernt eine Drittanbieter-Anfrage, die es nie hätte geben sollen, und derselbe Besuch erzeugt trotzdem eine Zeile in Ihrem Zugriffslog. Vertretbar bleibt das nur so lange, wie das, was Sie proxen, tatsächlich das hier Beschriebene ist — wenn Sie site-übergreifende Kennungen, Fingerprinting oder eine Pipeline zu einer Werbeplattform hinzufügen, hatte der Blocker recht, und der Proxy ist eine Lüge. Der Test ist einfach und es lohnt sich, ihn einmal an sich selbst anzuwenden: Könnten Sie eine Seite veröffentlichen, die genau beschreibt, was dieser Endpunkt erhebt, und würde ein Leser nur mit den Schultern zucken? Wenn ja, proxen Sie es. Wenn nicht, liegt das Problem nicht beim Proxy.
Wie groß muss der VPS tatsächlich sein?
Kleiner, als Sie fürchten, mit einer Ausnahme. Umami ist ein Node-Prozess und eine Postgres-Datenbank: Es pendelt sich für eine normale Website unter 1 GB Arbeitsspeicher ein, und die Datenbank wächst etwa um die Größe einer Textzeile pro Seitenaufruf, sodass eine Sentinel — 2 vCPU, 4 GB, 120 GB NVMe, $3.90 im Monat — Jahre an Spielraum hat. GoAccess ist ein Rundungsfehler. Matomo liegt in der Mitte: PHP und MariaDB sind anspruchslos, bis der Archivierungsjob läuft — das ist der CPU-Spitzenwert, auf den Sie dimensionieren müssen —, und seine Rohdatentabellen wachsen schneller als die der anderen, weil es mehr pro Treffer speichert. Die Ausnahme ist Plausible Community Edition, und der Grund ist ClickHouse, nicht Plausible: Eine spaltenorientierte Datenbank ist darauf ausgelegt, Arbeitsspeicher gegen Abfragegeschwindigkeit zu tauschen, und nimmt sich, was immer Sie herumliegen lassen. Sie läuft mit 4 GB, wenn Sie ihre Caches in der mitgelieferten Konfiguration begrenzen, und ist komfortabel bei 8 GB — weshalb die Garrison-Stufe bei $7.90 für sie die sinnvolle Untergrenze ist. In jedem Fall ist die Zahl, die irgendwann ein Upgrade erzwingt, der Speicherplatz, nicht der Arbeitsspeicher, und Schritt 06 zeigt, wie Sie das verhindern.
Kann eine einzige Instanz mehrere verschiedene Websites messen?
Ja, und das ist die normale Art, diese Werkzeuge zu betreiben. Alle drei JavaScript-Werkzeuge sind von Natur aus multisite-fähig: Sie registrieren jede Domain im Dashboard, jede erhält ihre eigene Kennung, und derselbe Skript-Endpunkt nimmt Treffer für alle entgegen, während die Berichte getrennt bleiben. Eine Maschine, ein Zertifikat, ein Backup, ein Upgrade — zwanzig Websites. Zwei Dinge, die Sie im Hinterkopf behalten sollten, wenn die Liste wächst. Berichte sind nach Website getrennt; wenn Sie also Websites für Kunden verwalten, nutzen Sie die eigenen Benutzer- und Team-Berechtigungen des Werkzeugs, statt jedem das Administratorkonto zu geben, und prüfen Sie, was eine gemeinsam genutzte Instanz bedeutet, bevor Sie ihr in einem Vertrag zustimmen: Sie werden zur Partei, die die Daten ihrer Besucher hält. Und der Tracking-Endpunkt ist ein gemeinsamer Name, was bedeutet, dass die Domain, die ihn bedient, im Quelltext jeder Website auf der Liste erscheint — eine Tatsache, die es wert ist, einem Kunden zu erwähnen, dessen Konkurrenten den Seitenquelltext lesen, und ein Argument für den First-Party-Pfad aus Schritt 04.
Brauche ich überhaupt JavaScript? Was ist mit der Analyse des Server-Logs?
Für eine große Klasse von Websites reicht das Log aus, und es ist die ehrlichste verfügbare Messung: Es erhebt nichts Zusätzliches, weil die Zeilen bereits existieren. GoAccess liest ein Webserver-Zugriffslog und erstellt daraus einen Terminal-Bericht oder ein in sich geschlossenes HTML-Dashboard — Top-Seiten, Referrer, Statuscodes, Bandbreite, Antwortzeiten, User-Agents — für eine statische Website, eine Dokumentation oder eine API ist das das meiste von dem, was ein Skript-Tag Ihnen ohnehin verraten hätte. Zwei Grenzen entscheiden, ob das für Sie ausreicht. Ein Log kann nicht sehen, was innerhalb der Seite passiert: keine Scroll-Tiefe, keine Klicks auf ausgehende Links, keine Button-Ereignisse, keine Routenwechsel einer Single-Page-Application, weil nichts davon den Server berührt. Und ein Log zählt Anfragen statt Menschen, sodass Sie dem Caching und einer Bot-Population ausgeliefert sind, die inzwischen die Mehrheit des Rohtraffics ausmacht — Filtern ist eine dauerhafte Wartungsaufgabe und kein einmaliger Einrichtungsschritt. Es gibt außerdem eine Datenschutzfalle in die entgegengesetzte Richtung von der, die Sie erwarten, und Schritt 06 behandelt sie: Das Log, das Sie analysieren, enthält vollständige IP-Adressen — mehr personenbezogene Daten, als das JavaScript-Werkzeug gespeichert hätte, das Sie abgelehnt haben.
Kann ich meinen Google-Analytics-Verlauf importieren?
Realistisch gesehen: nein, und sich darauf einzustellen ist besser, als dagegen anzukämpfen. Matomo ist als einziges der vier Werkzeuge mit einer nennenswerten Import-Geschichte ausgestattet, und selbst dort bestehen die praktikablen Wege im Import eigener Webserver-Logs und in der Nutzung der Migrationswerkzeuge für ältere Matomo-Instanzen, nicht in einer sauberen Übernahme der von Google verarbeiteten Berichte. Umami und Plausible Community Edition können über ihre APIs einen Massenimport entgegennehmen, wenn Sie bereit sind, das Mapping selbst zu schreiben, aber dabei würden Sie Sitzungen und Besucher aus aggregierten Exporten erfinden, und das Ergebnis ist ein Diagramm, das durchgängig aussieht und über den Übergang hinweg nicht vergleichbar ist. Was tatsächlich funktioniert: Exportieren Sie die Berichte, die Ihnen wichtig sind, aus Google, bevor die Property verschwindet — die monatlichen Gesamtzahlen, die Top-Seiten, die Top-Quellen, die Conversion-Zahlen — als CSV, bewahren Sie sie am selben Ort auf wie Ihre übrigen Unterlagen, und starten Sie das neue Werkzeug an einem Datum, das Sie sich aufschreiben, als frische Basislinie. Sie werden den alten Export im ersten Jahr zweimal konsultieren und danach nie wieder, und jede Zahl darin wurde ohnehin nach einer anderen Definition gemessen.
Was muss ich tatsächlich in die Datenschutzerklärung schreiben?
Weniger, als Sie denken, und die Kürze ist der Punkt — ein Absatz, den Sie verteidigen können, schlägt eine Seite, die Sie kopiert haben. Sagen Sie, was das Werkzeug ist und dass Sie es selbst betreiben; nennen Sie den Standort des Servers und den rechtlichen Betreiber, denn sagen zu können „auf einer Maschine, die wir in Finnland mieten" ist der ganze Nutzen dieser Übung. Sagen Sie, was pro Besuch erfasst wird: die Seite, der Referrer, das Land, das Gerät und die Browserfamilie, sowie eine pseudonyme Kennung, die aus der IP-Adresse und dem User-Agent mit einem täglich wechselnden Salt abgeleitet wird und aus der sich die ursprüngliche IP nicht wiederherstellen lässt. Sagen Sie, was nicht erfasst wird: keine Cookies, keine site-übergreifende Kennung, kein Profil, keine verkauften oder weitergegebenen Daten. Nennen Sie die Rechtsgrundlage, auf die Sie sich stützen, und die Aufbewahrungsdauer, und stellen Sie sicher, dass die Zahl, die Sie aufschreiben, auch die Zahl ist, mit der das Werkzeug konfiguriert ist. Falls Ihr Reverse-Proxy Zugriffslogs führt, ist das ein eigenständiger Verarbeitungsvorgang mit eigener Aufbewahrungsdauer — erwähnen Sie ihn, denn er ist derjenige, den man vergisst. Halten Sie den Absatz dann mit der Konfiguration synchron: Eine Datenschutzerklärung, die den Aufbau beschreibt, den Sie vor zwei Jahren hatten, ist schlechter als eine vage.
Warum spielt der Host eine Rolle für eine Maschine, die nur Seitenaufrufe speichert?
Weil „nur Seitenaufrufe" untertreibt, was eine Analytics-Datenbank tatsächlich ist. Über ein Jahr aggregiert, ist sie die Leserschaft Ihrer Website: welche Seiten, in welcher Reihenfolge, aus welchen Ländern, zu welchen Stunden, über welche Links ankommend — und für einen kleinen Verlag oder einen Nischenshop ist das ein Businessplan und eine Quellenliste in einer einzigen Tabelle. Es ist zudem, rechtlich betrachtet, genau die Art von Daten, nach der ein Angreifer einen Anbieter fragt, statt Sie zu fragen. Daraus folgen zwei Eigenschaften. Wo die Maschine steht, entscheidet, welcher Rechtsweg sie erreicht: Eine Maschine in Stockholm, Helsinki, Oslo oder Reykjavík liegt innerhalb des EWR, wodurch die Frage der internationalen Datenübermittlung vollständig aus Ihrer Compliance-Akte verschwindet, und innerhalb von vier Verfassungsordnungen mit einer starken Tradition der Pressefreiheit. Und wessen Name auf dem Konto steht, entscheidet, was das Konto selbst verrät: Bei NordBastion gibt es kein Ausweisdokument, keinen bürgerlichen Namen und keine Karte, die Rechnung wird in Monero oder Bitcoin beglichen, und die Maschine, die Ihre Leserschaft hält, ist nirgendwo eine Zeile in einer Kundendatenbank mit Ihrem Pass daran geheftet. Der Leitfaden zu den Rechtsordnungen behandelt die rechtlichen Mindeststandards jeder der vier im Detail.
Die Maschine beschaffen
Ihre Leserschaft, auf einer Maschine im EWR, die nicht auf Ihren Namen registriert ist.
Sentinel — 2 vCPU, 4 GB und 120 GB NVMe für $3.90 im Monat, in Helsinki, Stockholm, Oslo oder Reykjavík — betreibt Umami und seine Datenbank mit Raum für Jahre an Ereignissen. Steigen Sie bei $7.90 auf Garrison um, wenn Sie sich für Plausible oder Matomo entschieden haben. Keine E-Mail bei der Anmeldung, kein Ausweisdokument, keine Karte, und kein Dritter, der die Liste aller hält, die je Ihre Website gelesen haben.
Zuletzt überprüft · 2026-10-12 · Quellen · Dokumentation von Umami, Plausible Community Edition, Matomo und GoAccess; ePrivacy-Richtlinie 2002/58/EG Artikel 5(3); Verordnung (EU) 2016/679; Urteile des Gerichtshofs der Europäischen Union in den Rechtssachen Breyer (C-582/14) und Schrems II (C-311/18); Angemessenheitsbeschluss EU-US Data Privacy Framework vom Juli 2023 · Rhythmus · jährlich
Part of the series
Anonymous VPS hosting in 2026 — the cluster.
This guide is one spoke of a larger series. The pillar walks the three privacy layers end to end — the sibling spokes below dive into the specifics.