Home > piwik

Archiv für piwik

Piwik

Ich muss zugeben, dass ich mir immer noch nicht ganz im Klaren bin, ob ich nun Google Analytics oder Piwik zur Webanalyse verwenden soll. Google Analytics hat den Vorteil, dass es fast out-of-the-box läuft und ich mir keine Sorgen um Verfügbarkeit und Skalierbarkeit machen muss. Andererseits schickt man seine Daten damit auch zur Datenkrake und man weiss nicht, was dort damit gemacht wird.

Piwik installiert man sich mittlerweile aber auch recht einfach lokal bzw. in seinem Webspace (Das soll jetzt hier nicht das Thema sein). Was allerdings lange Zeit fehlte bzw. nur durch Plugins möglich war, war die Geoanalyse, also die Standorte der Besucher zu bestimmen. Mit der Version 1.9 von Piwik ist dies auch ohne Plugin möglich.

Hierfür benötigt man allerdings eine GeoIP-Datenbank, in der Länder, Regionen und Städte nach IPs aufgeschlüsselt werden. Die wir für Piwik benötigen, gibt es bei Maxmind in einer kostenpflichtigen und in einer kostenlosen Version, wobei die kostenpflichtige genauer ist/sein soll. Für meinen Fall reicht mir die kostenlose Version.

Um eine bestehende Piwikinstallation um dieses Feature zu erweitern sind allerdings ein paar Handgriffe nötig.

In meinem Fall ist der Hostinganbieter HostEurope, wo ich ein Webpack L – Paket habe. Hierauf bezieht sich auch diese Beschreibung. Bei anderen Anbietern dürfte es aber ähnlich sein.

Nachfolgend möchte ich meine Schritte beschreiben.

Download der GeoIP-Datenbank

Wie schon eingangs erwähnt, benötigt man die Datenbank, um die IP und den ISP nach seinem Standort aufzulösen. Die kostenlose Version von Maxmind kann man unter GeoIP-Datenbank beziehen. Ich habe die „GeoLite City“ verwendet.

Installation der Datenbank

Die heruntergeladene Datei müsst Ihr dann entpacken und in GeoIPCity.dat umbenennen, damit Piwik später darauf zugreifen kann. Die Datei legt Ihr dann in Eurer Piwikinstallation unter <PIWIKROOT>/misc ab.

Anmerkung: Die Datenbank muss hin und wieder aktualisiert werden. Ggfs. gibt es aber in einer der zukünftigen Versionen von Piwik eine Aktualisierungsfunktion.

Aktivieren der Standortbestimmung

Damit die Standorte der Besucher auch aufgeschlüsselt werden können, muss diese Funktion noch unter Einstellungen->Standortbestimmung aktiviert werden.

Dafür gibt es vier verschiedene Möglichkeiten:

  • Standard
  • GeoIP (Php)
  • GeoIP (PECL)
  • GeoIP (Apache)

Hier wird Euch auch gleich angezeigt, welche Module bereits installiert sind. Auf der rechten Seite seht Ihr auch gleich, welche Ergebnisse diese Module liefern.

geopipIn meinem Fall war es so, dass nur die  GeoIP (Php)-Extension das Ergebnis mit einer Stadt lieferte. GeoIP (PECL) war zwar installiert, lieferte aber nur das Land. Also habe ich GeoIP (Php) gewählt, welches allerdings nicht die beste Lösung für High-Traffic-Seiten ist. Da sollte man eher auf GeoIP (Apache) oder GeoIP (PECL) zurückgreifen – für mich langt es aber so.

Aktualisieren der aktuellen Logs

Um die aktuellen Logs mit Geodaten zu versehen, gibt es bereits ein fertiges Skript unter misc/others/geoipUpdateRows.php, welches einfach aufgerufen wird.

Da ich aber nur GeoIP (Php) zur Verfügung hatte, welches die korrekten Daten lieferte, bedurfte es einen kleinen Workarounds:

Im Skript habe ich den Bereich für die Bestimmung des PECL-Moduls einfach auskommentiert, sodass GeoIP (Php) als Provider verwendet wird.

// try getting the pecl location provider
#$provider = new Piwik_UserCountry_LocationProvider_GeoIp_Pecl();
#if (!$provider->isAvailable())
#{
#  Piwik::log("[note] The GeoIP PECL extension is not installed.");
#  $provider = null;
#}
#else
#{
#  $workingOrError = $provider->isWorking();
#  if ($workingOrError !== true)
#  {
#     Piwik::log("[note] The GeoIP PECL extension is broken: $workingOrError");
#     if (Piwik_Common::isPhpCliMode())
#     {
#        Piwik::log("[note] Make sure your command line PHP is configured to use the PECL extension.");
#     }
#     $provider = null;
#  }
#}

Danach kann man das Skript einfach einfach aufrufen.

php ./geoipUpdateRows.php

Sofern man keine Console hat, geht dies auch im Browser mit:

http(s)://<MEINPIWIKHOST>/misc/others/geoipUpdateRows.php

Aktualisierung der Archivdaten

Vorsicht: Solltet Ihr Eure Archivdaten regelmäßig löschen, solltet Ihr von den nächsten Schritten absehen, da Ihr sonst alle Altdaten verliert. Schaut am Besten vorher unter Einstellungen->Allgemeine Einstellungen->Alte Besucher-Logs und Berichte löschen nach.

Damit nun auch die Archivdaten älterer Logs mit Geodaten versehen werden, genügt es in der Datenbank alle Tabellen beginnend mit piwik_archive_* zu löschen. Das könnt Ihr wieder auf der Konsole oder aber über phpMyAdmin o.ä. tun. Piwik aktualisiert diese Daten automatisch beim nächsten Aufruf oder aber per cronjob – je nach dem, wie Ihr es konfiguriert habt.

Dies kann je nach Datenmenge ziemlich lange dauern. Am Besten schaut Ihr in der DB nach, wann diese Tabellen wieder verfügbar sind.

Anzeige der Geodaten

Sofern nun alle Aktualisierungen durchgelaufen sind, stehen die Geodaten zur Verfügung. Um diese anzuzeigen, könnt Ihr entweder die Widgets Besucherstandort (Stadt) bzw. Besucherstandort (Region) verwenden oder sie unter Besucher->Standorte und Provider einsehen.

Anmerkung: In der aktuellen Version 1.9.2 von Piwik ist das Abspeichern des Dashboards b0rken. Daher wird das Hinzufügen der Widgets auf das Dashboard nicht abgespeichert und sie sind beim nächsten Aufruf wieder verschwunden.