Piwik verwalten
Piwik verwalten
Im Folgenden wird eine Aufstellung von Maßnahmen gegeben, die einen sinnvollen Einsatz von Piwik ermöglichen.
Kampagnen verwalten
Mittels sogenannter Kampagnen bietet Piwik eine Möglichkeit, Besucher einer Werbemaßnahme zuzuordnen und so zu ermitteln, wie erfolgreich eine Werbemaßnahme war.
Zur Verwaltung von Kampagnen ist in Piwik selbst keine Pflege nötig. Man muss lediglich einen Parameter pk_campaign
an die URL anfügen (erster Parameter mit ?
, weitere Parameter mit &
anfügen):
https://www.example.com/some/where/?pk_campaign=Newsletter-03-2016
Wenn ein Benutzer diese URL aufruft, dann legt Piwik unter Verweise/Kampagnen automatisch eine Kampagne Newsletter-03-2016
an und zählt die Zugriffe entsprechend. Analog kann man die URLs für weitere Werbemaßnahmen mit dem Parameter für Kampagnen erweitern, z. B. Online-Werbung.
Kampagnenparameter in Google Search Console verwalten
URL-Parameter werden oft eingesetzt, um zwischen Seiteninhalten zu unterscheiden. Der Parameter pk_campaign
hat jedoch keinerlei Einfluss auf Inhalte, die der Benutzer angezeigt bekommt.
Damit eine Suchmaschine wie Google nicht durcheinander kommt, kann man Google mitteilen, dass ein Parameter niemals Einfluss auf Inhalte haben wird. Hierzu kann man sich in der Google Search Console anmelden und unter Crawling/URL-Parameter angeben, dass pk_campaign
keinen Einfluss auf Inhalte hat. Sofern Google den Parameter nicht schon gefunden hat, muss man ihn neu anlegen und dann auswählen: "Nein: Hat keinen Einfluss auf den Seiteninhalt".
Zusätzlich empfiehlt es sich, den Suchmaschinen ein Canonical-Metatag anzubieten, damit Kampagnenparameter im Idealfall nicht in Suchergebnissen Verwendung finden. Und, damit die Suchmaschine die URL-Variante mit Kampagnenparameter der URL-Variante ohne Kampagnenparameter zuschlägt (Vermeidung von duplicate content).
Github-Seiten mit Piwik tracken
Mit etwas Vorwissen lassen sich GitHub-Seiten mit Piwik tracken, sofern die Inhalte in Markdown erstellt werden können. Dies ist bei Issues und bei .md-Dateien im Quellcode der Fall. Bei Markdown-Inhalten lassen sich Bilder einfügen, respektive auch Zählpixelbilder, respektive auch das Zählpixel-Bild von Piwik.
Jedoch hält GitHub Bilder mittels Proxy im eigenen Cache vor und liefert diese selbst an Benutzer aus, um gemischte Inhalte im Zusammenspiel mit HTTPS zu vermeiden. Die Auslieferung gecachter Inhalte durch GitHub führt zunächst dazu, dass ein Besucher auf einer GitHub-Seite eben keinen Request gegen die Piwik-Instanz macht und Piwik somit keine Zählung vornehmen kann.
Jedoch lässt sich das Caching durch GitHub vermeiden, wenn folgende Voraussetzungen erfüllt sind:
- Der Header
Cache-Control: no-cache
muss gesetzt sein und - Einer der Header
Expires
,Last-Modified
oderEtag
muss gesetzt sein
Bezüglich Piwik lässt sich dies mittels Apache-Konfiguration für das Zählpixel wie folgt umsetzen:
<Files ~ "^piwik\.php$">
<IfModule mod_headers.c>
Header set Cache-Control "no-cache"
</IfModule>
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/gif "access plus 1 second"
ExpiresByType text/html "access plus 1 second"
</IfModule>
</Files>
Wenn alles klappt, erhält man die geforderten Header:
curl -I https://piwik.example.com/piwik.php?idsite=9
[...]
Cache-Control: no-cache
Expires: Wed, 27 Jan 2016 10:33:01 GMT
[...]
Anschließend kann man ein Zählpixel-Bild in den Markdown Code einfügen:
![Piwik](https://piwik.example.com/piwik.php?idsite=9&rec=1&url=https://github.com/ghuser/ghproject/issues/11)
Wobei
idsite
die bei Piwik-Hinterlegte Site-ID aus dem Tracking-Code istrec
das Tracking aktivierturl
die URL der GitHub-Seite ist (in diesem Fall die Issue 11)
Anschließend scheint jeder Request vom Proxy tatsächlich gegen Piwik geschickt zu werden. Allerdings geht einiges an Information verloren, denn die Requests kommen eben nur vom Proxy und nicht vom Seitenbesucher.
Rückwirkende Archivierung
Mittels rückwirkender Archivierung können alte Logs nochmalig von Piwik verarbeitet werden. Die Berichte werden hierbei für noch vorhandene Log-Daten an den aktuellen Softwarestand und die aktuelle Konfiguration (z. B. hinterlegte Kampagnen) angepasst.
Die rückwirkende Archivierung sollte allerdings nur durchgeführt werden, wenn alle die Log-Daten noch in der Datenbank vorhanden sind. Sollte dies nicht der Fall sein, z. B. weil diese zwischenzeitlich gelöscht wurden, dann sollte man auf gar keinen Fall eine rückwirkende Archivierung durchführen, denn diese würde zu fehlenden Zeiträumen in den bereits vorhandenen Berichten führen.
Die rückwirkende Archivierung über alle Seiten und über den Zeitraum der letzten 10 Jahre lässt sich erreichen mit dem Befehl
./console core:archive --force-all-websites --force-all-periods=315576000 --force-date-last-n=1000 --url=https://piwik.example.com
Städtenamen anzeigen mit PHP5-PECL-Modul
Installation:
sudo apt-get install geoip-database-contrib php5-geoip
cd /var/lib/geoip-database-contrib
ln -s GeoLiteCity.dat GeoIPCity.dat
ln -s GeoLiteCityv6.dat GeoIPCityv6.dat
Im Apache-vHost:
php_admin_value open_basedir "/path/to/piwik-www:/var/lib/geoip-database-contrib/"
php_admin_value geoip.custom_directory "/var/lib/geoip-database-contrib"
In /etc/php5/cli/conf.d/30-geo-ip.ini
:
geoip.custom_directory=/usr/share/GeoIP/
Der abweichende Pfad kommt zustande, weil die Symlinks in /usr/share/GeoIP/
teilweise auf Dateien in /etc/alternatives
verweisen und dieses Verzeichnis aus Sicherheitsgründen nicht in open_basedir
verwendet werden sollte.
In Piwik unter Administration/Standorterkennung "GeoIP (PECL)" auswählen.
Die GeoIP-Datenbank wird über das Paket geoip-database-contrib
mittels Cron-Job in /etc/cron.d/geoip-database-crontrib
laufend aktualisiert. Diesbezüglich ist daher keine weitere Konfiguration zur Aktualisierung der Datenbank in Piwik notwendig.
Das Paket geoip-database-contrib
verwendet Datenbanken der Firma MaxMind, welche folgende Lizenzbedingungen zugrunde legt: http://dev.maxmind.com/geoip/geoip2/geolite2/