In diesem Beitrag werden einige grundlegende Hinweise gegeben, die nach der Installation von Piwik von Bedeutung sind. Vor allem, wer Piwik für ein Multisite-System einrichten möchte, dem fehlen zu Beginn einige Administrationsroutinen, um Piwik für eine bestimmte Seite wieder in den Ausgangszustand zu versetzen. Es gibt außerdem ein paar zu beachtende Fallstricke, die zu Daten-Chaos führen können, z.B. aufgrund von Cookie-Problemen. Wer Piwik genauer einstellen möchte, der sei auf die Dokumentation verwiesen.
Grundlegende Einstellungen
Als erstes sollte man nach der Installation von Piwik die Standorterkennung von "Standard" auf "GeoIP (PHP)" umstellen, da hiermit die ungefähre Lokalisierung der Besucher (Land, Stadt) möglich wird. Für die meisten Zwecke reicht diese Genauigkeit. Alle höherwertigeren Auswahlmöglichkeiten erfordern das Vorhandensein spezifischer Libraries, die unter Umständen noch nicht installiert sind und damit die grundlegende Einrichtung von Piwik erschweren.
Datenchaos vermeiden
Einige Cookie-Probleme, die eine häufige Ursache für Daten-Chaos beim Tracking mit Piwik sind, lassen sich vermeiden, wenn man frühzeitig dafür sorgt, dass die Seite mit wirklich nur einer Domain aufgerufen werden kann, also entweder mit oder ohne "www.". In diesem Beitrag wurde begründet, dass für Drupal die Lösung ohne 'www.' die bessere ist und es wurde gezeigt, wie man dies mit Hilfe der .htaccess-Datei von Drupal einstellen kann.
Grundlegende Datenbank-Verwaltung per SQL
Wer mit Piwik beginnt, möchte während der Test-Phase die Datenbank häufig komplett zurücksetzen.
1) Komplettes Löschen aller Tracking-Daten
Es gibt in Piwik zwei Tabellen-Typen die man ohne Probleme komplett "leeren" (truncate) kann, wenn man historische Daten noch nicht benötigt:
- piwik_archive_xy und
- piwik_log_xy.
Für das komplette Löschen aller Daten braucht man noch kein SQL, da z.B. phpMyAdmin dies komfortabel über die Administrationsoberfläche ermöglicht. In der Tabellenliste gibt es in der Spalte "Aktion" das Mülleimer-Symbol, auf das man für jede zu leerende Tabelle klickt. Wem das für alle Tabellen zu umständlich ist, der kann sich aus dem folgenden Snippet sein eigenes Lösch-Skript zusammenbasteln.
Truncate table piwik_logger_message; Truncate table piwik_log_action; Truncate table piwik_log_conversion; Truncate table piwik_log_conversion_item; Truncate table piwik_log_link_visit_action; Truncate table piwik_log_profiling; Truncate table piwik_log_visit; Truncate table piwik_archive_blob_2014_02; Truncate table piwik_archive_blob_2014_03; Truncate table piwik_archive_numeric_2014_01; Truncate table piwik_archive_numeric_2014_02; Truncate table piwik_archive_numeric_2014_03;
Die Archive-Tabellen muss man natürlich an das eigene System anpassen.
Wer eine universellere Lösung haben möchte, z.B. um die Monatsarchive nicht immer anpassen zu müssen, dem bleibt nichts anderes übrig, als eine MySql-Prozedur zu entwickeln und diese dann aufzurufen. Da allerdings das komplette Löschen nur für die Test-Phase von Piwik in Frage kommt und nicht im späteren laufenden Betrieb, lohnt sich der Aufwand meiner Meinung nicht.
2) Löschen der Daten einer einzigen Site
Diese Operation wird in den Piwik-FAQs beschrieben.
Solange man die piwik_log_xy-Tabellen erhält, werden die piwik_archive_xy-Tabellen daraus nach dem Reload von Piwik wieder rekonstruiert. Dies ist für das Verständnis der Vorgehensweise bei der gezielten Löschung von Daten eines bestimmten Portals von Bedeutung.
Man löscht zunächst alle piwik_archive_xy-Tabellen:
DROP TABLE piwik_archive_numeric_2011_01, piwik_archive_numeric_XX;
Leeren geht aber auch. Man kann also den entsprechenden Teil des Snippet aus 1) verwenden.
Dann führt man folgenden Befehl aus:
DELETE FROM piwik_log_visit WHERE idsite = X; DELETE FROM piwik_log_link_visit_action WHERE idsite = X; DELETE FROM piwik_log_conversion WHERE idsite = X; DELETE FROM piwik_log_conversion_item WHERE idsite = X;
Dabei ist "X" die Site-Id des Portals, für das man Piwik zurücksetzen möchte.
3) Löschen aller Daten, die älter als eine bestimmte Frist sind
Mit folgendem SQL-Skript, das ich hier gefunden habe, kann man alle Daten löschen, die älter als 30 Tage sind. Dies dient der Begrenzung des Speicherplatzes, den das Tracking mit Piwik benötigt.
DELETE piwik_log_visit, piwik_log_link_visit_action FROM piwik_log_visit INNER JOIN piwik_log_link_visit_action WHERE piwik_log_visit.idvisit = piwik_log_link_visit_action.idvisit AND visit_first_action_time <= DATE_SUB(CURDATE(), INTERVAL 30 DAY);# MySQL lieferte ein leeres Resultat zurück (d. h. null Zeilen). OPTIMIZE TABLE piwik_log_visit, piwik_log_link_visit_action;# Zeilen: 2
Dieses Snippet kann man auch zur Erstellung eines Cron-Jobs verwenden, der dann die Begrenzung der Speicheranforderung automatisiert.
Module, die man zusätzlich zu Piwik verwenden kann
Da Piwik Zugriffe auf das Portal sehr stark filtert, sollte man parallel Module nutzen, die einen Überblick erlauben, welche Suchmaschinen wann auf die Seite zugreifen oder auch, welche Spam-Bots sich am Portal zu schaffen machen.
Hierfür ist Piwik nicht geeignet, was ich persönlich als Vorteil empfinde, da ich mich bei der Zugriffsanalyse dann ausschließlich auf das Benutzerverhalten realer Anwender konzentrieren kann.
Will man aber Suchmaschinen und Spam-Bots beobachten, sollte man in einem ersten Schritt einfach das "Statistic"-Core-Module aktivieren. Dort werden sämtliche Zugriffe z.B. in den letzten 3 Tagen protokolliert und in Listen dargestellt. Das Modul ist sicherlich nicht komfortabel, aber um penetrante Spam-Bots zu erkennen und zu sperren oder um die Frequenz, mit der Suchmaschinen das Portal beehren, zu ermitteln, reicht es völlig aus.
Es gibt eine Vielzahl weiterer Module zu dem Thema, die man sich unter diesem Aspekt ebenfalls anschauen sollte.
Eigene Zugriffe auf das Portal nicht tracken
Baut man ein Portal auf, ist man selbst der häufigste Nutzer und die eigenen Zugriffe verhunzen einem die Statistik. Deshalb sucht der Entwickler schnell nach einer Möglichkeit, mit der die eigenen Zugriffe auf das Portal nicht mehr erfasst werden.
Piwik bietet unter "Einstellungen / Privatsphäre" unter "Piwik-Deaktivierung für Ihre Besucher" ein Code-Snippet an, mit dem jedem Benutzer unter dem Aspekt "Datenschutz" die Möglichkeit geboten wird, das Tracken seiner Daten durch Piwik zu deaktivieren.
Das von Piwik erzeugte Code-Snippet sieht z.B. so aus:
<iframe frameborder="no" width="600px" height="200px"
src="http://www.mypiwik.de/index.php?module=CoreAdminHome&action=optOut&language=de"></iframe>
Stellt man dies jedem Benutzer z.B. auf einer eigenen Portalseite "Datenschutzhinweise" zur Verfügung, kann der Entwickler diese Option ebenfalls nutzen.
Will er vermeiden, dass auch der erste Zugriff auf sein System nicht getracked wird, kann er im Piwik-System unter Einstellungen/Benutzereinstellungen "die Erfassung via Cookie ausschließen". Dies hat dann die gleiche Wirkung, als wenn er das Tracking als Besucher der Portalseite z.B. unter "Datenschutzhinweis" deaktiviert.
Wichtig für das Verständnis ist, dass die Piwik-Installation - nicht das aufgerufene Portal - für den Zugriff gesperrt wird. Durch das Deaktivieren von Piwik für den jeweiligen lokalen Rechner wird ein Cookie "piwik_ignore" für das Web-Analyse-Tool gesetzt. Versucht eine Portal-Seite nun, Piwik zum Tracken aufzufordern, erkennt Piwik, dass es dieses Portal nicht tracken soll.