Matomo Segmente zeigen scheinbar falsche Ergebnisse
Viele Kunden von mir denken, dass Matomo falsche Ergebnisse bei der Verwendung von Segmenten anzeigt. Häufig liegt jedoch kein Fehler vor und stattdessen ist die Erwartungshaltung an Segmente eine andere.
Zunächst möchte ich das Verhalten beschreiben. Wer die Hintergründe jedoch schon kennt, kann nach unten zum Lösungsansatz springen.
Zum Hintergrund: Segmente sind keine Filter
Tatsächlich handelt es sich bei dem von vielen Anwendern als falsch empfundenen Verhalten aus Sicht von Matomo um keinen Fehler. Kurz zur Situation:
- Ich lege ein Segment bspw. auf eine Seiten-URL an (siehe mein Beitrag) , in dem ich diese auf eine konkrete URL einschränke. Siehe Abbildung unten.
- Anschließend verwende ich dieses Segment und sehe in dem Bericht auch andere Seiten. Siehe übernächste Abbildung.
Für Matomo ist das ein korrektes Verhalten. Dies kann man im Matomo-Forum oder im Entwickler-Projekt bei Github nachlesen. Mit Einführung von Matomo Version 3.12 am 29.10.2019 wurde für die Allermeisten unbemerkt das Verhalten eines Segmentes von einem Filter weg zu einer Segment-Bildung auf Besuchsebene verändert.
Wie ist also die Definition von Segmenten ab Version 3.12?
Vor Version 3.12 wurden nur die Aktionen in den Bericht aufgenommen, die mit den Kriterien des Segmentes auch übereinstimmten.
Gründe und aktueller Stand
Die Gründe für die Umstellung sind für mich nicht klar erkennbar bzw. man muss an mehreren Stellen nachlesen, um die Hintergründe zu verstehen. Matomo-Entwickler schreiben, dass diese Änderung zum einen das eigentlich erwartete Verhalten von Matomo-Anwendern sei (also das Besuche und nicht Aktionen betrachte) und das ein falsches früheres Verhalten damit korrigiert wurde und andererseits die Performance der Berichtserstellung sich dadurch wesentlich bessere.
Ferner wurde auf das kostenpflichtige Plugin Custom Reports (siehe mein Review) verwiesen, welches das alte, von vielen gewünschte Verhalten ja bereitstelle.
Als gefühltes Damokles-Schwert für alle Matomo-Anweder wurde erwähnt, dass mit Einführung von Matomo Version 4 das alte Verhalten ohnehin nicht mehr funktionieren würde. Nach zahlreichen Anwender-Protesten, das alte Verhalten wieder bereitzustellen, wurde eine Server-seitige Konfigurationsmöglichkeit als Workarround geschaffen, Matomo nach dem alten Verhalten arbeiten zu lassen. Dazu unten mehr.
Mit Matomo 4 (Ende 2020) wurde dieser Workarround nicht abgeschafft. Auch Stand heute (Version 4.2.1 April 2021) kann diese Konfigurationsmöglichkeit genutzt werden.
Eine Erweiterungsanfrage aus der Community von Anfang 2020, das alte Verhalten nun als optimierte, aber explizite Filter-Möglichkeit im Matomo-Kernprodukt bereitzustellen, wurde noch nicht in die Milestone Planung (siehe Entwickler-Issue in Github Full support for Filters ) aufgenommen.
Was empfiehlt Matomo?
Zum einen empfiehlt Matomo das kostenpflichtige Plugin Custom Reports, was ich in einem weiteren Beitrag vorstelle, einzusetzen.
Zum zweiten könne man, wenn man nur die Anzahl Besucher auf einer bestimmten Seite beispielsweise in einem Email-Bericht wissen möchte, den Aufruf dieser bestimmten Seite als Ziel messen und konkret das Ziel in den Email-Bericht aufnehmen. Wie das mit Zielen funktioniert, habe ich in einem anderen Beitrag zum Erstellen von Zielen beschrieben.
Matomo umkonfigurieren für Segmente als simpler Filter
Der bereits erwähnte Workarround, um Segmente als wirklichen Filter auf Aktionen zu legen, kann nur von Server-Administratoren und Matomo-Administratoren aktiviert werden.
Zwei Schritte sind erforderlich, wobei Schritt 2 nicht durchgeführt werden muss, wenn bisher keine Segmente vorhanden sind oder deren frühere Zeitraumsdaten nicht mehr interessieren.
Schritt 1: Auf dem Server (also auf Ebene der Matomo-Installation) muss in die config.ini.php im Ordner /config ein Eintrag neu hinterlegt werden: Im Bereich „[General]“ muss enable_segments_cache=0 eingefügt werden:
[General] enable_segments_cache=0
Matomo hat diesen Schritt in seiner FAQ Matomo Segments as Filters beschrieben.
Die Anpassung ist sofort für alle neuen Segmente gültig. Bei bestehenden Segmenten wirkt sich die Anpassung nur für künftige Zeiträume aus.
Lässt man sich bspw. wöchentlich auf Basis von Segmenten Wochenberichte zusenden, muss nichts weiter getan werden, weil man ja nur auf künftige Zeiträume schaut.
Möchte man bei bestehenden Segmenten jedoch das Filter-Verhalten für vergangene Zeiträume haben, so ist Schritt 2 auszuführen.
Schritt 2: Da die Berichtsdaten bestehender Segmente für vergangene feste Zeiträume (Tage, Wochen, Monate) bereits in der Datenbank abgespeichert sind, ändert die Anpassung aus Schritt 1 bei diesen Berichten zunächst nichts. Dafür ist Schritt 2 erforderlich.
Dies mit der Speicherung in der Datenbank trifft jedoch nur zu, wenn Matomo so konfiguriert ist, dass Berichte automatisch im Hintergrund erzeugt werden und in der Datenbank gespeichert sind. Bei jeder mittel- bis größeren Installation sollte dies der Fall sein, da sonst die Segmentierung und Berichtsgenerierung immer sehr lange dauert. Wenn die Berichte erst bei Klick im Browser erzeugt werden, so sind nur jene in der Datenbank gespeichert, für die ein Matomo-Anwender irgendwann mal eine Abfrage durchgeführt hat.
Wenn man nur wenige Segmente angelegt hat und das folgende zu kompliziert ist, kann man auch die Segmente löschen und neu anlegen und braucht das folgende nicht zu beachten.
Was ist nun in Schritt 2 zu tun?
Das schöne in Matomo ist, dass in Matomo auch die Berichtsdaten bestehender Segmente auf Basis von noch vorhandenen Rohdaten erneut erzeugt werden können. Dazu sind alle Berichte vorab mit einem „Ungültig-Kennzeichen“ (invalidate) zu versehen. Wie das geht, beschreibt Matomo in der FAQ How to invalidate historical reports. Man benötigt auch dort für alle der genannten Alternativen Hauptadministrations- oder Superuser-Rechte.
Wichtig in dem Zusammenhang ist jedoch zu verstehen, dass bei aktiver Nutzung der Matomo-DSGVO-Einstellungen in einer Matomo-Installation ggf. die Rohdaten nur noch einen rückwirkend begrenzten Zeitraum vorliegen und somit auch Berichtsdaten nur noch für diesen Zeitraum erzeugt werden können.
Elegant finde ich die Vorgehensweise über ein Matomo-Plugin, welches installiert und für diesen Schritt 2 ausgeführt werden kann.
Nach dem Zurücksetzen werden alle Berichte für bereits angelegte Segmente neu erzeugt, diesmal auf Basis der Filterung. Dies geschieht im Hintergrund (gesteuert mit einem Cronjob) oder bei kleineren Installationen bei Anforderung im Browser.
Schreibe einen Kommentar