Piwik PHP API Tracking unter WordPress

Von | 30. November 2017

Ich hab heute mal etwas mit Piwik und dem Tracking über PHP gespielt. Sobald ein User ein AddBlocker wie uBlock nutzt, ist auch der Java-Tracker dahin. Das Tracking über PHP ist zwar nicht so umfangreich, aber für mich reicht das so.

Leider ist die Dokumentation dazu veraltet und hat mich einige Zeit gekostet. Der wichtigste Punkt, welcher in der Doku fehlt, ist die Authentifikation über ein Token. Dafür habe ich mir in Piwik extra ein User angelegt (hab ihn API-User genannt) und bekomme damit auch ein Authent-Token. Dieser Nutzer muss SuperUserRechte haben, sonnst wird eine falsche IP-Adresse übergeben!

Als erstes brauchen wir die Datei PiwikTracker.php. Diese findest Du in deiner Piwik-Installation unter „/vendor/piwik/piwik-php-tracker/PiwikTracker.php“. Diese solltest Du in dein WP-Verzeichnis kopieren.

Dann fügst Du folgenden Code vor dem in deiner footer.php ein:

<?php $PageTitle = get_the_title(); ?>       <!-- der Variable $PageTitle den aktuellen SeitenTitle zuweisen  -->

<?php
  require_once "/voller/Path/zu/der/PiwikTracker.php";  <!-- z.B: /var/www/Seite/PiwikTracker.php -->
  PiwikTracker::$URL="https://piwik.deineSeite.de/";    <!-- URL deiner Piwik-Installation -->
  $tracker = new PiwikTracker(17);                      <!-- SiteID der Seite meist 1 -->
  $tracker->setTokenAuth("xxxxxxxxxxxxxxxxxxxxxxxxxx"); <!-- Authent-Token deines Piwik-Nutzers -->
  $tracker->doTrackPageView($PageTitle);                <!-- SeitenTitel senden -->
  $tracker->setUrlReferrer($_SERVER['HTTP_REFERER']);   <!-- Refferer senden wenn vorhenden -->
?>

diesen musst Du natürlich für deine Seite noch anpassen.

Den Java-Tracker solltest Du jetzt jedoch deaktivieren. Sonnst wird es vermutlich zu doppelten Zählungen kommen.

 

Update: ich war zu schnell, der Code gibt immer die IP-Adresse des Servers als Client-IP an… ich muss noch mal testen