Das Internet ist ein anderes geworden, seit dem die DSGVO in Kraft getreten ist. Der Schutz der Daten der Benutzer steht immer deutlicher im Vordergrund. Ohne Einwilligungen geht es bei personenbezognenen Daten in den meisten Fällen nicht. Dazu kommt, dass auch die Browser immer mehr Analyse- und Vermarktungstools von sich aus sperren. Und wenn es nicht die Browser selber machen, dann geschieht dies auch durchaus über Erweiterungen und Add-Ons.

Der Macher seiner Seite möchte aber schon gerne wissen, welche Seiten am Beliebtesten sind. Welche Seiteninhalte sollte man mehr machen sollte und wovon weniger, weil es keinen Interessiert. Das wird zunehmen schwieriger, je mehr auch die Besucheranalyse für den Seitenbetreiber verhindert wird.

Vollumfängliche Messung

Die Quote der Besucher, die eine solche Messung verhindern, lässt sich schwer vorhersagen. Aber es gibt eine Stelle, bei der alle Anfragen auftauchen: in den Logs des Webservers. Diese halten nicht nur fest, welche Seiten, sondern auch, welche Grafiken oder andere Seitenbestandteile aufgerufen werden. Um eine solche Analyse über Logfiles umzusetzen, ist kein Tracking im Browser notwendig. Dafür sollte man aber darauf achten, dass die Logs DSGVO-konform erstellt werden, in dem die IP-Adresse anonymisiert wird.

Zu berücksichtigen

Wie schon angesprochen spielt das Thema Datenschutz eine große Rolle. Eine rechtliche Einschätzung kann ich nicht geben. Zu beachten ist, dass die Logs, die Matomo auswertet, vollständige IP-Adressen enthält. Im Idealfall sind diese anonymisiert (gekürzt o.ä.). Außerdem wird in den Datenschutzerklärungen der Website darauf hingewiesen, dass die Logfiles für statistische Seitenaufrufzählungen genutzt werden. Genauere Formulierungshilfen können sicher Datenschutzexperten liefern, wie zum Beispiel https://datenschutz-generator.de/.

Voraussetzungen

Zur Umsetzung benötigt ihr:

  • eine Matomo-Installation,
  • die Programmiersprache python muss installiert sein,
  • einen Zugriff auf die Konsole des Servers
  • das Logfile zum Import.

Die Schritte zur Umsetzung

Benötigte Zeit: 30 Minuten.

Einrichtung der Logfileanalyse durch Matomo

  1. Matomo Site einrichten

    Die LogFiles sollten auf jeden Fall als eigene Site in Matomo importiert werden. Es sollte also keine Mischung aus Logfile-Analyse und Trackinganalyse in einer Seite geben. Das lässt sich nur schwer splitten. Dazu kommt, dass sich hinterher Einträge doppeln können. Im Admin muss also eine neue Seit angelegt werden. Die ID im Admin bitte notieren, denn sie muss später beim Import angegeben werden.

  2. LogFile sammeln und ablegen

    Es entsteht täglich ein neues Logfiles. Dieses sollte an einer wiederkehrenden Stelle abgelegt werden, um dann für den Import verwendet werden zu können. Im Beispiel gehen wir davon aus, dass das Log unter /var/data/matomo/today.log liegt.

  3. Ausführungsdatei suchen

    In der Konsole muss der Befehl zum Logfileimport direkt aufgerufen werden. Dabei handelt es sich um ein Python-Skript, welches in der Regel in Matomo im Ordner /misc/log-analytics/import-logs.py liegt. Diesen Pfad bitte merken, denn wir müssen ihn im nächsten Schritt in unser Skript einbauen.

  4. Erstes Ausführen

    Mit diesen Informationen lässt sich schon das Skript zusammenbauen. Der Aufruf sieht dabei wie folgt aus:
    python <pfad-zu-matomo-import-logs-aus-Schritt-3> –url=<vollständige-url-unter-der-matomo-läuft> –idsite=<id-aus-schritt-1> <einige-options> <pfad-zum-log-aus-Schritt-2>

    Zu den möglichen Options gebe ich untgen noch Hinweise und einen Link. Bei mir in der Konsole sieht der Aufruf dann mit allen Einstellungen so aus:

    python3.6 /matomotest/misc/log-analytics/import_logs.py –url=https://matomo.jamul.koeln –exclude-path=’/\?dm‘ –exclude-path=’/\?pwa‘ –exclude-path=’/feed/*‘ –idsite=1 –recorders=4 –enable-http-errors –enable-bots /tools/website.log

  5. Automatisieren

    Dieser Aufruf ist eine gute Grundlage, das Skript jeden Tag auszuführen. Man könnte es in ein Bash-Skript ablegen, dass folgendes tut:
    * Log des Vortages an den immer gleichen Ort ablegen,
    * Importfunktion aus Schritt 4 ausführen,
    * das alte Log löschen.

    Das Skript könnte dann einmal Nachts ausgeführt werden und so die Daten des Vortages aufbereiten.

Weitere Optionen

In meinem Skript aus Schritt 4 sind schon einige Optionen gesetzt, die ich kurz erklären möchte:

  • –exclude-path= gibt an, welche Einträge im Log nicht ausgewertet werden sollen. Das können zum Beispiel Skriptaufrufe sein, die nicht interessant sind oder Aufrufe, die nur von Bots geätigt werden, wie zum Beispiel die robots.txt.
  • –recorder= stellt ein, wieviele Threads bei der Ausführung durchgeführt werden dürfen. Gerade, wenn man sich den Server teilt, würde ich den Wert nicht zu hoch ansetzen. Aber klar: je mehr Threads, desto schneller kann die Verarbeitung abgeschlossen sein.
  • –enable-http-errors aktiviert die Auswertung der HTTP-Fehler. Das ist insofern interessant, als das diese Info beim einfachen Tracking unter Umständen nicht erhoben wird. Da diese Fehler in den Logs stehen, lassen sie sicih hier sichtbar machen. Deswegen habe ich es aktiviert um zu sehen, wo evtl. Seitenfehler auftreten, die mir gar nicht bekannt sind.
  • –enable-bots wertet auch die Aufrufe der Suchmaschinen aus. Ich kann also dann in der Statistik sehen ,welche Seiten gecrawlt wurden.

Die Log-Analtyics bieten noch mehr Optionen. Eine Anleitung dazu gibt es von Matomo selbst. Da werden die Optionen auch nochmal vollständig umschrieben und es gibt eine alternative Anleitung zur Integration der Matomo-Log-Analytics.

Habt Ihr schon Erfahrungen mit Matomo-Anlytics? Wie sehen die aus? Oder was gibt es noch beachten? Schreibt es gerne in die Kommentare oder mir eine E-Mail.