Seit über einer Woche diskutiere ich vergeblich im deutschsprachigen Matomo darüber, wie ich den Matomo-Tracking Code verändern muss, damit Matomo mir meine Arbeiten mit dem Pagebuilder nicht trackt. Leider verlief die Diskussion bisher ohne Ergebnis aber mit viel Zweitaufwand.
Das Thema "unerwünschtes Tracking im Backend bei Nutzung von Pagebuildern müsste eigentlich viele Joomla-User angehen. Deshalb habe ich mir erlaubt, dieses eigen tlich Matomo-spezielle Thema hier rein zu bringen. Deshalb poste ich das Thema jetzt hier.
Wenn man einen WYSIWYG-Pagebuilder im Backend benutzt, so lädt der die sonst auf dem Frontend zu sehende Seite in einen Zwischenspeicher. Dieser Ladevorgang wird bisher bei meinem YooThemePagebuilder getrackt. Im Zwischenspeicher wird die Seite bearbeitet und wenn eine Änderung erfolgreich war, so speichere ich diese natürlich sofort ab. Hierdurch wird die bearbeitete Seite sofort erneut geladen und ich erhalte erneut ein Tracking. Das ist natürlich unerwünscht: Selbst wenn ich aus dem Besucher-Log mir die Besuche wegdenke, die auf meine PC-Ausstattung schließen lassen = eigener Besuch, ist die Sache doch sehr störend, wenn ich die grafische Besucherstatistik nutzen will.
Die von Matomo vorgesehenen Dinge wie Cookies / do-not-track usw. greifen bei mir nicht, da ich meine Websites streng so aufgebaut habe, dass ich keinen Cookie-Banner oder vom Besucher eine sonstige Zustimmung zum Tracking benötige. Also muss man in den Tracking-Code mit einer "if"-Bedingung eingreifen.
Die URL, die der Pagebuilder im Backend nutzt, bietet da einen scheinbar einfachen und sicheren Angriffspunkt:
Jede URL meiner Website, die den Begriff "administrator" beinhaltet, soll nicht getrackt werden. Vielleicht reicht diese Bedingung nicht aus, denn die typische URL im Backend sieht so aus:
Diese URL erscheint, wenn ich die Webseite "mein-blog" bearbeiten will. Der erste Teil der URL bezieht sich auf das Backend und der letzte Teil bezieht sich auf die URL der zu bearbeitenden Seite. In diesem letzten Teil ist ja das "administrator" nicht enthalten. Vielleicht müsste man die "if"-Kondition auf den begriff "&site=" beziehen, denn damit wird offensichtlich die im Pagebuilder zu bearbeitende Seite im Backend geladen?
Aktuell habe ich aufgrund der Vorschläge aus dem Matomo-Forum folgenden Tracking-Code ausprobiert (der aber nicht das gewünschte Ergebnis brachte):
script type="text/javascript">
if (window.location.pathname.startsWith("/administrator") === false) {
var _paq = window._paq = window._paq || [];
_paq.push(['disableCookies']);
_paq.push(['enableHeartBeatTimer', 1]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://matomo.meine-domain.de/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})()};
</script>
<noscript><img referrerpolicy="no-referrer-when-downgrade" src="https://matomo.meine-domain.de/matomo.php?idsite=1&rec=1" style="border:0;" alt="" /></noscript>
Alles anzeigen
Es gibt aus einer anderen Diskussion im Matomo-Forumfolgenden Vorschlag für die "if"-Bedingung:
script type="text/javascript">
if (!window.location.pathname.match("/administrator") {
var _paq = window._paq = window._paq || [];
_paq.push(['disableCookies']);
_paq.push(['enableHeartBeatTimer', 1]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://matomo.meine-domain.de/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})()};
</script>
<noscript><img referrerpolicy="no-referrer-when-downgrade" src="https://matomo.meine-domain.de/matomo.php?idsite=1&rec=1" style="border:0;" alt="" /></noscript>
Alles anzeigen
Aber auch dieser TrackingCode hat nicht funktioniert, sondern sogar das gesamte Tracking verhindert – auch im Frontend.
Der Tracking-Code ohne die Bedingung am Anfang funktioniert seit Jahren zuverlässig auf mehreren Websites, daran kann es nicht liegen.
Leider habe ich nicht die Zeit und die Fähigkeit, mich jetzt noch in Javascript einzuarbeiten, um dieses Problem zu lösen. Mein Beruf ist Heilpraktiker und nicht Software-Mensch. Dass ich aufgrund ständig knapper Finanzen diesen Mangel durch eigene Arbeitskraft ersetzen und mich viel zu oft mit Dingen beschäftigen muss, die mich eigentlich nicht interessieren und keine Freude machen, ist schon schlimm genug.
Hier fehlt mir einfach nur die passende Formulierung der "if"-Bedingung. Bin gespannt, ob mir jemand diese hier mitteilt!