Datenbankabfragen sind in Matomo einfach und völlig kostenlos. Für alle mit besonderen Fragestellungen sowie für diejenigen, die sich einfach mal in SQL ausprobieren wollen, hält das Webanalyse-Tool spannende Möglichkeiten bereit.
1 Wozu Datenbankabfragen?
Datenbankabfragen sind notwendig bei Auswertungen, die nicht in den Tooloberflächen selbst durchgeführt werden können. Das kann der Fall sein, wenn ein Analyse-Interface Beschränkungen hat, weil bestimmte Möglichkeiten nicht integriert wurden. Die Abfragen werden aber auch wichtig, wenn ihr unterschiedliche Datensätze verschiedener Quellen miteinander kombinieren wollt, euer Tool jedoch eher auf dem „Computer sagt NEIN.“-Trip ist.
Kurz: Ihr braucht Datenbankabfragen immer dann, wenn eure Fragestellungen die Toolmöglichkeiten übersteigen, ihr eure Daten wild mixen und neu-arrangieren wollt oder wenn ihr etwas exportieren möchtet, um es anderswo zu verwerten.
2 Viele Möglichkeiten mit Matomo & der Datenbank
Um eine Anfrage an eine Datenbank zu stellen, benötigen wir zuerst eine solche. Das Gute: nahezu jede etwas komplexere Anwendung basiert auf einer Datenbank. So auch Webanalyse-Tools. Das Schlechte: Nicht jedes Tool lässt euch dort hineinschauen und die, die euch diese Möglichkeit bieten, möchten dafür meistens ein paar Scheine sehen… Ja, Googles Big Query kostet nicht gerade die Welt, aber Matomo lässt euch völlig kostenlos in sein Innerstes. Das macht 1:0 für den freundlichen Underdog mit dem merkwürdigen Namen.
Leider hat das Kostenlose an Matomo seinen Preis. Während Bezahllösungen sofort ready to go sind und sich die Anbieter um Wartung, Skalierbarkeit, Geschwindigkeit und das ganze Drumherum kümmern, ist das bei Matomo komplett euch überlassen. Ihr müsst das Tool selber installieren, einrichten, betreiben und warten.

Warnmeldung von Matomo zur Datenbankintegrität: Die Wartung und der Betrieb von Matomo kann einige Zeit beanspruchen.
Ein großer Pluspunkt hingegen ist, dass ihr die volle Kontrolle über nahezu alles habt. Wenn ihr ausreichend fit seid, könnt ihr sogar eigene Plugins basteln, die neue Tabellen ergänzen. Damit lässt sich das Tool flexibel mit weiteren Daten anreichern und im Funktionsumfang stark erweitern. Außerdem ist großartig, dass die allgemeine Struktur bestens dokumentiert ist.
3 Einrichtung
Matomo ist in PHP geschrieben und nutzt eine MySQL-Datenbank. Bereits beim Installieren des Tools habt ihr angeben, welche Datenbank von dem Tool genutzt werden soll. Außerdem musstet ihr einen Datenbanknutzer mit einem Passwort festlegen. Genau diese Angaben braucht ihr jetzt wieder.
Zuerst benötigt ihr ein Tool, mit dem ihr auf die Datenbank zugreift. Bestenfalls hat das Tool noch eine hübsche grafische Oberfläche. Das macht vieles einfacher. Ich nutze dafür die kostenfreie Community-Version von MySQL Workbench. Natürlich geht das auch alles ohne weitere Tools und rein über die Kommandozeile, aber warum sollte man sich das antun, wenn es so viel einfacher geht?

Verbindung von MySQL Workbench mit einer Datenbank.
In dem Tool selbst muss nur die Verbindung zur Matomo-Datenbank hergestellt werden. Dazu wird der Verbindungstyp ausgewählt, Hostname, Nutzername und Passwort eingetippt und los gehts. Für spätere Schnellzugriffe kann die Verbindung gespeichert werden. Gebt dazu einen aussagekräftigen Namen, wie VerbindungNeuNeuNeu_9999, und speichert anschließend. Fertig! Jetzt könnt ihr euch ins Getümmel stürzen.
4 Datenbankschema und Tabellen in Matomo
In Matomo gibt es drei Arten von Tabellen:
- Systemrelevante Tabellen für die Organisation des Tools und das Backend. Die benötigt ihr in der Regel nur, um sehr tief in das System einzugreifen oder um eure Matomo-Instanz komplett gegen die Wand zu fahren. Wenn ihr also nicht genau wisst, was ihr tut, lieber weg mit den Fingerchen.
- Log-Tabellen enthalten reine Trackingdaten. In ihnen finden sich alle gemessenen Hits und die mit ihnen versendeten Parameter.
- Archiv-Tabellen enthalten aggregierte Trackingdaten auf Monats- und Jahresbasis.
Die Tabellen, mit denen wir am meisten herumspielen werden, sind die Log-Tabellen. Dort liegt unser heimlicher Datenschatz. Die Archiv-Tabellen werden wir auch das eine oder andere Mal heranziehen, aber sie sind die klare Nummer Zwei.
Alle Tabellen haben als Prefix matomo_
. Bei den Archivtabellen folgt auf das Standardprefix immer ein archive_numeric_
sowie das Jahr und der Monat, den die Tabelle zusammenfasst. Eine Tabelle für den April 2018 heißt also matomo_archive_numeric_2018_4
. Für den Mai wird eine neue Tabelle angelegt. Die Tabellen haben je nach Setup zwischen 4k und 5k Zeilen und geben aus, wie viele Bounces, Visits, Pageviews (und, und, und…) es in dem jeweiligen Zeitraum gab.

Die wichtigsten Tabellen in Matomo.
Die Log-Tabellen sind unsere Lieblingskinder. In ihnen sind die einzelnen Hits unaggregiert mit IDs enthalten. Während die Archive-Tabellen auf Monatsbasis theoretisch unendlich viele werden könnten, werden die Log-Tabellen „nur“ unendlich lang, sind aber in ihrer Anzahl absolut begrenzt. Es gibt vier Arten dieser Tabellen. Jeweils eine für visits, actions, conversions und e-commerce-Aktionen. Außerdem gibt es noch Zusatztabellen, die euch bei der Aufschlüsselung helfen. Alle Log-Tabellen haben nach dem Matomo-Prefix immer ein log_
und danach ihren Typ im Namen. Zum Beispiel: matomo_log_conversion
. Die beiden interessantesten Tabellen werden für euch matomo_log_visit
und matomo_log_link_visit_action
sein. Erstere enthält alle Visits und Letztere alle Aktionen jeweils mit Verweis auf den Visit, in dem sie stattgefunden haben. Allerdings werden die Aktionen dort nur als IDs aufgeführt. Um die konkrete Interaktion oder URL herauszufinden, benötigt ihr matomo_log_action
, wo alle Aktionen aufgeschlüsselt werden.
Die Logik hinter den Tabellen ist folgende: Alle Log-Daten werden so lange behalten, wie ihr es in den Matomo-Einstellungen festgelegt habt. Theoretisch könntet ihr die Hit-Daten in den Log-Tabellen für immer behalten, allerdings würden die Tabellen dann sehr schnell gigantisch groß und ihr würdet massive Performance-Probleme bekommen. Wählt hier also weise einen passenden Zeitraum und wägt dabei zwischen Performance, Nutzen und Datenschutz (die Log-Tabellen enthalten personenbezogene Daten!) ab.
Für die Archive-Tabellen gilt das Gleiche. Auch hier könnt ihr in der Matomo-Oberfläche auswählen, wie lange die Tabellen vorgehalten werden sollen. Das Gute ist, dass jeder Zeitraum in einer eigenen Tabelle abgelegt wird. Anstatt einige wenige, dafür jedoch gigantisch große Tabellen zu erzeugen, läuft es hier eher auf viele kleine Tabellen für die jeweiligen Zeiträume hinaus. Da die Daten aggregiert werden und nur noch die allgemeinen Infos enthalten, kann der Lösch-Zeitraum hier großzügiger gewählt werden. Es gibt deutlich weniger Performance- und Datenschutz-Probleme.
5 Datenbankabfragen in Matomo stellen
Sobald das Datenbankschema bekannt und ein entsprechendes Tool installiert ist, kann es direkt losgehen. Falls benötigt, findet ihr weitere Infos zum Aufbau der Tabellen direkt auf den Matomo Seiten und Hilfe für SQL-Abfragen bieten euch entweder der Syntax-Helper eures Tools oder die Kollegen von W3C.
Für den ersten Einstieg empfiehlt es sich, einfach komplette Tabellen abzurufen. So macht ihr euch mit der Organisation und dem Aufbau vertraut. Bevor ihr jedoch etwas viel zu Großes abfragt und damit alles in die Knie zwingt, startet zuerst eine Abfrage danach, wie viele Zeilen das Objekt eurer Begiere so bereithält:
SELECT COUNT(*) FROM matomo_log_visit
Falls die Ausgabe zu groß ausfallen würde, müsst ihr eventuell auf einen Teilaspekt eingrenzen. Zum Beispiel auf alle Android Nutzer in einem 1-Monats-Zeitraum:
SELECT COUNT(config_os) AS AnzahlAndroidNutzer FROM matomo_log_visit WHERE config_os = 'AND' AND visit_last_action_time > '2018-03-01 00:00:00' AND visit_last_action_time < '2018-04-01 00:00:00'
Weil das Ergebnis dieser Eingrenzung auf meiner Seite lächerlich wenig Zeilen ausliefert, kann ich anschließend bedenkenlos die entsprechende Tabelle komplett abfragen. Die sieht dann so aus:

Eine Datenbankabfrage in MySQL Workbench an Matomo über Android-Nutzer im März.
Das Gute an den Abfragen und Matomo ist, dass euch keine Begrenzungen – außer eben denen eures Servers – auferlegt sind. Ihr könnt alles wild miteinander kombinieren, vermixen, umschreiben und euch überall austoben. Es gibt kein Sampling, kein Limit, gar nichts. Viel Spaß!
6 Fazit
Matomo ist eine starke Webanalyse-Lösung. Es erfordert allerdings ein wenig mehr Arbeit, das Tool aufzusetzen und zu warten, als bei den üblichen SaaS-Lösungen. Der Aufwand lohnt sich jedoch enorm. Matomo bietet extrem viel Freiheit und sehr viele Einstellmöglichkeiten. Zudem hat man jederzeit die komplette Hoheit über alle Daten sowie das Tool selbst.
Der uneingeschränkte Zugang zur Datenbank der selbst-gehosteten Variante ist ein zusätzlicher Pluspunkt. Dadurch, dass das Tool und sein Aufbau sehr gut dokumentiert sind, macht das Arbeiten in der Matomo-Datenbank wirklich Spaß. Wer es noch nicht getan hat, sollte sich unbedingt einmal mit dem Analyse-Tool und seinen Möglichkeiten beschäftigen.
Vielen Dank für diesen Artikel, Christian. Hilft mir sehr weiter!
Hallo Martina,
vielen Dank für deinen Kommentar. Freut mich, dass dir der Beitrag geholfen hat! 🙂