Wie man Matomos Server Side Tracking verwendet

Verwenden Sie Server Side Tracking auf Matomo, um Ihre Analysen zu verbessern

Mit Matomo können wir das serverseitige Analytics-Tracking aktivieren und so eine genauere und bessere Überwachung des Traffics deiner Website erhalten.

Server-Side Tracking vs. Client-Side Tracking: kurz und bündig

Um es in wenigen Worten zu erklären: Client-Side-Tracking funktioniert im Browser des Nutzers und wird im Allgemeinen mit Javascript durchgeführt. Der Vorteil ist, dass es ziemlich einfach ist, einige Metriken zu sammeln und auch leichtgewichtig auf dem Server.

Andererseits verwendet das serverseitige Tracking kein Javascript und wird direkt vom Server selbst ausgeführt. Wir könnten PHP verwenden, um die Anfragen unserer Nutzer zu analysieren.

Es gibt auch Log-Analytics-Programme wie Awstats oder GoAccess, die die Log-Dateien des Servers analysieren, um die Aufrufe der Nutzer auf unseren Webseiten zu ermitteln.

Der Hauptvorteil des serverseitigen Trackings und der Log-Analyse besteht darin, dass wir sogar Benutzer überwachen können, die AdBlock oder ähnliche Systeme verwenden, die verhindern, dass der Javascript-Tracking-Code korrekt funktioniert.

Wie man serverseitiges Tracking mit Matomo einrichtet

Eigentlich ist die Verwendung von serverseitigem Analytics-Tracking mit Matomo ziemlich einfach.

Wir werden die PHP-Bibliothek als Beispiel verwenden, da dies eine der am häufigsten verwendeten Sprachen bei der Erstellung von Webseiten ist.

  1. Laden Sie MatomoTracker.php und PiwikTracker.php von Github oder einer anderen serverseitigen Tracking-Bibliothek herunter
  2. Laden Sie die Dateien MatomoTracker.php und PiwikTracker.php auf Ihren Webserver hoch, z.B. in den Ordner /public_html/matomo/, mit Filezilla oder einer anderen FTP-Software
  3. In unserer Webanwendung fügen wir den folgenden PHP-Code auf allen Seiten oder in der Vorlage ein, je nachdem, welche Art von Tool wir verwenden
# Datei template.php oder ähnlich, stellen Sie sicher, dass dieser Code in jeder Seite geladen wird $matomoSiteId = 1; $matomoUrl = '{url-to-matomo-platform}'; $matomoToken = '{inser-auth-token-here}'; $matomoPageTitle = ''; require_once '{path-to-file}/MatomoTracker.php'; try { $matomoTracker = new MatomoTracker($matomoSiteId, $matomoUrl); $matomoTracker->setRequestTimeout(2); $matomoTracker->setTokenAuth($matomoToken); } catch (Exception $e) { } # Datei Seite.php, um den Seitentitel für Matomo anzupassen if (!empty($matomoTracker)) { $matomoTracker->doTrackPageView($matomoPageTitle); }

Schauen wir uns einige weitere Details an:

  • $matomoSiteId ist die ID der Webseite, die auf Matomo konfiguriert ist, du kannst sie in den Einstellungen finden, indem du zu Einstellungen > Webseiten > Verwalten gehst
  • $matomoUrl ist die von Matomo verwendete öffentliche URL, z.B. https://matomo.yourwebsite.com
  • $matomoToken ist ein eindeutiger Zufallscode, der konfiguriert werden muss (siehe den Abschnitt Auth Token konfigurieren)
  • $matomoPageTitle ist der Titel der Seite, die an Matomo gesendet werden soll, wenn man ein CMS oder Framework verwendet, muss man einen Weg finden, diese Variable richtig zu konfigurieren, während wenn man einzelne PHP-Dateien für jede Seite verwendet, kann man sie in jeder Datei hinzufügen
  • require_once wird die MatomoTracker.php Datei laden, ersetzen Sie {path-to-file} mit dem tatsächlichen Pfad zu MatomoTracker.php, ein Beispiel könnte /var/www/html/website.com/vendor/matomo/MatomoTracker.php sein
  • $matomoTracker enthält die MatomoTracker Klasse mit ihren eigenen Eigenschaften und Methoden
  • setRequestTimeout wird verwendet, um eine maximale Zeitspanne für das Senden einer Anfrage an unseren Matomo festzulegen: wenn Ihr Matomo-Server nicht funktioniert, wird die Seite sonst stark verlangsamt
  • setTokenAuth setzt das Autorisierungs-Token für Matomo
  • doTrackPageView ist die Funktion, die das PageView-Ereignis an Matomo sendet, sie funktioniert genauso wie im Javascript-Code. Es ist zwingend erforderlich , dieser Funktion einen String zu geben, der als Seitentitel verwendet wird, dieser wird dann von Matomo im Besuchsbericht verwendet
  • der try/catch-Block und das if am Ende sind nützlich, um zu verhindern, dass PHP's Fatal Errors ausgelöst werden, falls unser Matomo nicht antwortet

Das Auth Token konfigurieren

Um das Auth Token in PHP zu konfigurieren, gehen Sie in Matomo's Einstellungen auf das Menü Einstellungen > Persönlich > Sicherheit und am Ende finden Sie Auth Token, klicken Sie auf Neues Token erstellen.

Create a new Auth Token on Matomo
Ein neues Auth Token auf Matomo erstellen

Sie müssen erneut Ihr Administrator-Passwort eingeben , dann werden Sie aufgefordert, eine Beschreibung einzugeben und das Token zu generieren. Es erscheint eine zufällige Zeichenkette , und Sie erhalten möglicherweise eine Sicherheitsbenachrichtigung per E-Mail.

Insert a description to generate your token
Geben Sie eine Beschreibung ein, um Ihr Token zu generieren

Token-Beispiel: 2a96a7df4c6f09272bf445d1c753d4a8 (jeder Token ist einzigartig)

Matomo Auth Token has been generated
Matomo Auth Token wurde generiert

Nach dem Einfügen des Tokens in den PHP-Code können wir testen, ob das Tracking wie vorgesehen funktioniert, indem wir die öffentliche Website aufrufen und überprüfen, ob die Sitzung von Matomo registriert wird.

Kann ich sowohl Javascript als auch Server Side Tracking verwenden?

Ja, Sie müssen die Javascript-Zeile, die das PageView-Ereignis an Matomo sendet, entfernen oder auskommentieren, andernfalls werden Sie doppelte Ansichten finden. Ich habe diese Möglichkeit getestet und es kann wirklich zu doppelten Besuchen kommen, wenn man das Pageview-Tracking sowohl mit Javascript als auch mit PHP verwendet.

Code-Beispiel:

var _paq = window._paq = window._paq || []; /* Tracker-Methoden wie "setCustomDimension" sollten vor "trackPageView" aufgerufen werden */ _paq.push(['enableHeartBeatTimer', 15]); // Die folgende Zeile wurde entfernt, um doppelte Aufrufe zu vermeiden // _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u = "https://matomo.ihrewebsite.com/"; _paq.push(['setTrackerUrl', u + 'matomo.php']); _paq.push(['setSiteId', '1']); var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script'))[0]; g.type = 'text/javascript'; g.async = true; g.src = u + 'matomo.js'; s.parentNode.insertBefore(g, s); })();

Sie werden sehen, dass ich auch enableHeartBeatTimer verwendet habe, eine Funktion, die es ermöglicht, die Zeit, die ein Benutzer auf der Seite verbringt, genauer zu verfolgen, indem alle N Sekunden (mindestens 15) eine Ping-Anfrage an Matomo gesendet wird. Werfen Sie auch einen Blick auf die Javascript-Dokumentation für Matomo.

Sie können auch Event-Tracking auf Matomo konfigurieren, z.B. wenn Sie wissen wollen, welche Links von Ihren Nutzern angeklickt werden.

Bitte beachten Sie, dass einige Tracking-Modi durch die "Do Not Track" -Funktion in Firefox und anderen Browsern oder durch Werbeblocker blockiert werden.

AdBlocker und "Do Not Track

Die meisten AdBlocker (AdBlock, uBlock und ähnliche) blockieren das von Matomo initiierte Tracking. So kann zum Beispiel das Wort "matomo" gesperrt werden, so dass Ressourcen wie matomo.js oder matomo.php nicht geladen werden.

Gleichzeitig blockiert der "Do Not Track"-Modus von Firefox einige Arten von Trackern, wenn der Browser des Benutzers ihn verwendet und wenn der Server den relativen Header verwendet.

Ich habe diese beiden Fälle getestet und sie können mit dem serverseitigen Tracking gelöst werden. Die Verwendung von Javascript zur Verfolgung von Aktionen oder Ereignissen wird jedoch ohnehin blockiert. Vielleicht möchten Sie Ihre Ereignisverfolgung serverseitig konfigurieren, aber das erfordert mehr Arbeit.

Sie könnten Ihre Links mit einer eigenen php-Datei namens link.php erstellen, die dafür sorgt, dass der Benutzer auf die richtige Seite weitergeleitet wird. Bevor dies geschieht, kann ein Ereignis in PHP an Matomo gesendet werden. Das Hauptproblem dieses Ansatzes ist, dass es die Verwaltung von Links und Ressourcen deutlich erschwert und mehr Dateneingaben von Ihnen erfordert.

Datenschutzrechtliche Bedenken

Diejenigen zu verfolgen, die nicht verfolgt werden wollen, ist eine schlechte Idee, aber wir müssen nicht unbedingt auf die Überwachung unserer Ansichten verzichten.

Wir müssen sicherlich unser Bestes tun, um die Privatsphäre der Nutzer zu respektieren. Wenn wir nur aggregierte Daten zu statistischen Zwecken sammeln, gibt es keine Probleme, aber wenn wir Remarketing und Profilerstellung betreiben wollen, müssen wir die ausdrückliche Zustimmung des Nutzers einholen und das Tracking erst nach Erhalt dieser Zustimmung aktivieren.

Wir könnten zum Beispiel eine PHP-Seite so konfigurieren , dass sie die Zustimmung verlangt und ein technisches Cookie setzt, wenn sie erteilt wird.

Danach wird überprüft, ob das Cookie gesetzt wurde , und in diesem Fall wird das Tracking gestartet:

if (!empty($_COOKIE['matomoTrackingConsent'])) { # Datei template.php oder ähnlich, stelle sicher, dass dieser Code in jeder Seite geladen wird $matomoSiteId = 1; $matomoUrl = 'https://matomo.yourwebsite.com'; $matomoToken = '2a96a7df4c6f09272bf445d1c753d4a8 '; $matomoPageTitle = 'Seitentitel'; require_once '/var/www/html/yourwebsite/vendor/matomo/MatomoTracker.php'; try { $matomoTracker = new MatomoTracker($matomoSiteId, $matomoUrl); $matomoTracker->setRequestTimeout(2); $matomoTracker->setTokenAuth($matomoToken); } catch (Exception $e) { } # Datei page.php, um den Seitentitel für Matomo anzupassen if (!empty($matomoTracker)) { $matomoTracker->doTrackPageView($matomoPageTitle); } }

Natürlich könnten wir dadurch den ersten Zugang verlieren, da wir das Tracking nicht aktivieren können, bevor der Benutzer sein Einverständnis dazu gegeben hat.

Schlussfolgerungen

Jetzt ist dein Matomo Server Side Tracking eingerichtet!

Wenn dir dieser Artikel gefallen hat, folge mir auf Facebook und abonniere unseren Youtube-Kanal! Wenn du Unterstützung brauchst, schreibe mir im Chat oder per E-Mail!

*