Seite auswählen

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.

Fehler in Matomo Installation

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?

MySQL Workbench Einrichtung

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.

Wichtige Tabellen in Matomo

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 Matomo

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.