Tracking mit dem Matomo Tag Manager – Teil 2

Auf der Matomo Webseite fehlen bezüglich dem Zusammenspiel zwischen herkömmlichen Tracking und dem Tag Manager bislang Informationen. Insbesondere gibt es keinen Leitfaden, für die Beantwortung folgender Fragen:

  1. Wie geht man vor, wenn man eine Webseite bislang mit herkömmlichen Tracking misst und nun den Tag Manager einsetzen möchte?
  2. Kann man eine bestehende oder neue Webseite nur mit dem Tag Manager tracken oder braucht man auch das herkömmliche Tracking-Snippet?

Die Dokumentationen vermitteln leider den Eindruck als gibt es jeweils nur die eine Welt. Klassisches Tracking auf der einen Seite und Matomo Tag Manager auf der anderen Seite, die jeweils von sich nichts wissen. Das ist schade, so dass ich nachfolgend darauf näher eingehen möchte.

Tracking mit dem Matomo Tag Manager

Der Matomo Tag Manager muss, wie in Teil 1 geschrieben, nicht zum Tracking mit Matomo geschweige denn überhaupt zum Tracking mit einem Drittwerkzeug eingesetzt werden. Es ist auch möglich, ihn beispielsweise „nur“ zum Einfügen von Widgets und Code von Drittplattformen für Kampagnen, Störer oder A/B-Tests zu verwenden.

Um die verschiedenen Szenarien vorzustellen, gibt folgende Tabelle einen Überblick:

Einsatzzweck
Tag Manager
Trackingansatz wie? Szenario
Widgets Herkömmliches Tracking-Snippet mit Matomo Szenario 1
Widgets Tracking mit Dritttool, wie Google Analytics Szenario 1
Tracking Ausschließlich mit Matomo Tag Manager Szenario 2
Widgets und Tracking Ausschließlich mit Matomo Tag Manager Szenario 2
Widgets und Tracking Herkömmliches Tracking-Snippet mit Matomo sowie zusätzliches Tracking mit Matomo Tag Manager Szenario 3

Szenario 1 – Tag Manager trackt nicht nach Matomo, Tracking mit herkömmlichen Matomo

Wenn der Matomo Tag Manager nur für das Einfügen von eigenem JavaScript oder CSS sowie von Drittcode (Google Analytics, Facebook Pixel, andere Widgets) verwendet werden soll und das Tracking mit dem herkömmlichen Matomo-Ansatz erfolgen soll, reicht es aus, in die Webseite beide Snippet-Codes vom herkömmlichen Matomo und vom Matomo Tag Manager zu integrieren.

Beide JavaScript-Codes stören sich nicht und verrichten unabhängig voneinander ihre Arbeit.

Matomo HTML Snippets für Tag Manager und herkömmliches Tracking

Bild 1: Trackt man nicht mit dem Matomo Tag Manager, können beide JavaScript-Blöcke von Matomo parallel im HTML stehen.

Achtung:
Sollte man „versehentlich“ nur ein Tag im Tag Manager vom Typ „Matomo Analytics“ veröffentlicht haben, funktioniert dieses Vorgehen nicht mehr. Das Matomo-Analytics-Tag würde einen ähnlichen Code mitbringen, wie das herkömmliche Tracking-Snippet. Bei der Initialisierung kommen sich beide in die Quere. Je nach Reihenfolge der Einbettung und nach Verhalten der Tags funktionieren dann die Messungen falsch (entweder gar nicht oder auch doppelt). Hier sollte man auf Szenario 2 oder Szenario 3 umstellen.

Auch wenn Szenario 1 funktionsfähig ist und sich schnell einrichten lässt, so halte ich diesen Ansatz in der Praxis für eher selten. Nur Drittcode einzufügen, ist in der Regel mit jedem Content Management System möglich. Dafür auf den Tag Manager zurückzugreifen, führt zu einer unnötigen Komplexität und Intransparenz durch ein weiteres Werkzeug (siehe mein Post über das Antipattern des Goldenen Hammers). Wenn man allerdings in seinem Webprojekt für jede Code-Einfügung einen Entwickler benötigt, ist es überlegenswert, einmal den Tag Manager Code wie hier beschrieben einbetten zu lassen, um ab dem Zeitpunkt unabhängig zu sein.

Szenario 2 – Mit dem Matomo Tag Manager die gesamte Webseite tracken

Setzt man das Tracking einer Webseite neu auf und möchte mit dem Tag Manager mittel- und langfristig Erweiterbarkeit beim Tracking und gleichzeitig Unabhängigkeit von Entwicklern empfehle ich Szenario 2. Ebenso ist dies in meinen Augen der bevorzugte Ansatz, um bei einer Webseite mit bestehendem „herkömmlichen“ Matomo-Tracking nun auch den Tag Manager aus den in Teil 1 genannten Gründen einzuführen.

Hinweis:
Das „herkömmliche“ Tracking bleibt die bessere und sicherere Alternative, wenn der Redakteur des Matomo Tag Managers sich mit HTML, JavaScript und vor allem den Prinzipien, wie Nutzerverhalten in einer Webseite gemessen werden kann, nur wenig bis gar nicht auskennt oder kaum Zeit mitbringt.

Um eine Webseite mit dem Matomo Tag Manager zu tracken, muss von Matomo der Code vom Matomo Tag Manager in die Webseite eingefügt werden. Das Code-Snippet vom herkömmlichen Matomo-Tracking darf dagegen nicht (mehr) im HTML enthalten sein.

Matomo-Verpixelungen, also HTML-Attribute an bestimmten HTML-Tags (z.B. beim Inhalttracking) oder „paq.push“ Anweisungen (z.B. beim Ereignis-Tracking), können im HTML eingesetzt werden bzw. darin verbleiben. Sie funktionieren sowohl mit dem herkömmlichen Tracking als auch mit dem Matomo Tag Manager.

Es darf nur das Script des Matomo Tag Managers im HTML stehen

Bild 2: Möchte man dem Matomo Tag Manager tracken, darf das JavaScript-Snippet vom herkömmlichen Tracking nicht mehr im HTML der zu trackenden Webseite stehen.

Matomo HTML-Verpixelunge

Bild 3: Der Matomo Tag Manager erkennt auch die im HTML einprogrammierten Tracking-Anweisungen, die von einem vorherigen Tracking mit dem herkömmlichen Snippet vorhanden sind.

Um mit dem Tag Manager dieselben Eckdaten wie mit dem herkömmlichen Tracking-Snippet messen zu können, reicht es nicht aus, einfach nur das Tag Manager-Code-Snippet in die HTML-Seite einzubetten.

Es ist erforderlich ein Tag vom Typ „Matomo Analytics“ anzulegen, welches beim Auslösen des Impulstyps „Seitenansicht“ ausgeführt wird. Dieses Tag soll sämtliche Seitenaufrufe in Matomo speichern. Ferner muss zudem die in dem Tag verwendete Matomo-Konfiguration so eingestellt sein, dass sie die gewünschten Messungen (z.B. Link-Tracking, Inhaltstracking) durchführt oder Parametrisierungen (z.B. zu Cookies) enthält.

Folgende Einzelschritte sind erforderlich:

  1. Impuls vom Typ „Seitenansicht“ anlegen. Seitenansicht bedeutet, dass dieser Impuls ausgelöst wird, sobald der Matomo Tag Manager in der Webseite vom Browser geladen wurde.
  2. Tag vom Typ „Matomo Konfiguration“ anlegen und
    1. dabei eine Matomo-Konfiguration erstellen (oder falls vorhanden auswählen), die in die gewünschte Matomo-Website (SiteId) trackt und die erforderlichen Einstellungen für Messverfahren besitzt.
    2. als Tracking-Typ „Pageview“ verwendet, d.h. beim Auslösen des Tags einen Seitenaufruf in Matomo speichert
    3. als Impuls den unter 1. angelegten Seitenansicht-Impuls verwendet

Folgende Abbildungen zeigen die Einzelschritte.

Bild 4: Impuls bei Seitenansicht

Bild 5: Matomo „Tag“, welches bei jeder Seitenansicht einen Pageview misst und dabei in Matomo abspeichert

Bild 6: Matomo-Analytics-Konfiguration im Matomo Tag Manager. Die Einstellungen sollten entsprechend den gewünschten Tracking-Methoden vorgenommen werden.

Matomo Tag Manager Dashboard mit Pageload Tag

Bild 7: Das Ergebnis auf dem Dashboard: Ein Tag, der bei jedem Seitenladen in Matomo Analytics trackt.

Nach einer Veröffentlichung dieser Anpassungen misst der Tag Manager vergleichbar zum (bisherigen) herkömmlichen Tracking das Nutzerverhalten. Er geht auch automatisch mit eventuell im Projekt vorhandenen Verpixelungen für Content- oder Event-Tracking um, die im HTML von einem Entwickler einprogrammiert wurden. Diese müssen nicht separat durch ein Tag „behandelt“ werden.

Für zusätzliche, neue Messungen können nun weitere Tags vom Typ „Matomo Analytics“  angelegt werden, die dieselbe Matomo-Konfiguration verwenden sollten. Es ist dabei darauf zu achten, keine weiteren Tags mit dem Tracking-Typ „Pageview“ anzulegen, weil es sonst zu Mehrfachzählungen von Seitenaufrufen käme. Diese weiteren Tags können Matomo-Ereignisse (Events) oder Matomo-Ziele (Goals) speichern.

Ich habe für Szenario 2 den Standardweg beschrieben.

Gerade bei der nachträglichen Einführung des Matomo Tag Managers in eine bereits getrackte Seite, die eventuell mit individuell programmierten JavaScript-Funktionen Matomo-Messungen durchgeführt hat, schließe ich Seiteneffekte (keine Messung oder zuviele Messungen oder JavaScript-Fehler) nicht aus.

Hier ist eventuell Szenario 3 in Betracht zu ziehen.

Szenario 3 – Tracking mit Matomo mit herkömmlichen Tracking und zusätzlich mit Matomo Tag Manager

Wenn ein ausschließliches Tracking mit dem Matomo Tag Manager, wie in Szenario 2 beschrieben, nicht funktioniert, kann der von mir im folgenden beschriebene Workarround ausprobiert werden. In diesem Szenario messen in einer bestehenden Webseite, die bereits Matomo einsetzt, sowohl das „herkömmliche“ Tracking-Snippet als auch zusätzliche Tags des Matomo Tag Managers die Nutzeraktivitäten.

Diesen Workarround habe ich in einer eigenen Testwebseite herausgearbeitet. Ich schließe nicht aus, dass negative Seiteneffekte (JavaScript-Fehler, falsche Messungen) in anderen Webseiten auftreten könnten. Ein gründlicher Test ist daher erforderlich.

Ansatz für den Workarround

Das herkömmliche Tracking-Snippet wird wie schon bei Szenario 2 aus dem HTML der Webseite entfernt. Stattdessen wird in das HTML der Webseite der Code vom Matomo Tag Manager eingefügt.

Das herkömmliche Tracking-Snippet wird zunächst in ein Tag „Benutzerdefiniertes HTML“ „verlagert“ und dort als Code eingefügt. Als notwendiger Impuls wird ein Impulstyp „Seitenansicht“ gewählt.

Es ist nun beim Laden der Seite entscheidend, dass ein beliebiges Tag vom Typ „Matomo Analytics“ immer als erstes ausgelöst wird, bevor jenes Tag ausgelöst wird, das den Snippet-Code enthält. Stellt man das nicht sicher, tritt in den meisten Fällen ein JavaScript-Fehler auf („A siteId must be given to add a new tracker“) und die weiteren Matomo Tags vom Typ „Matomo Analytics“ funktionieren nicht.

Ein „Matomo-Analytics“-Tag vorher auszulösen heißt, dass man bei jedem Seitenladen (Pageview) eine Statistik von „irgendetwas“ rein zu Dummy-Zwecken erzeugen muss und das andere Tag mit dem Snippet-Code zeitlich verzögern muss. Tags, die durch denselben Impuls wie ein anderes Tag ausgelöst werden, kann man in den erweiterten Tag-Einstellungen dazu entweder in der Priorität herabstufen oder die Auslösung durch die Angabe von Millisekunden verzögern.  Ich habe mich für eine Verzögerung von 1000ms beim Tag mit dem Snippet Code entschieden.

Das „Dummy-Matomo-Analytics“-Tag muss wie oben geschrieben ein Tracking in dasselbe Matomo-Projekt (identische siteId) durchführen. Eine andere Matomo-siteId (bspw. für ein Dummy-Projekt) funktioniert leider nicht, da dann wieder obiger JavaScript-Fehler auftritt. Das heißt man erzeugt Statistiken, die man nicht braucht. Dies ist der „saure Apfel“ für diesen hier beschriebenen Workarround. Drei Optionen stehen für diese Dummy-Messung zur Wahl (Seitenaufruf, Ereignis, Ziel). Ich habe mich für ein „Ereignis“ entschieden, weil es von den drei Möglichkeiten am wenigsten wichtige Statistiken verfälscht und man ein getracktes Ereignis leichter ignorieren kann. Das Ereignis wird übrigens von Matomo beim Seitenladen zweimal gespeichert. Zunächst durch das Dummy-Tag und dann auch nochmal durch das herkömmliche Tracking-Snippet, was mit dem Tag „Benutzerdefiniertes HTML“ geladen wird.

Für zusätzliche, weitere Tags, die etwas Neues in Matomo tracken sollen (bspw. Ereignisse, Ziele), sind im Matomo Tag Manager wiederrum Tags vom Typ „Matomo Analytics“ anzulegen, die dieselbe Konfiguration verwenden müssen, wie das „Dummy-Matomo-Analytics“-Tag.

Mit diesem Vorgehen konnte ich in einem Testsystem, abgesehen vom Dummy-Ereignis, dieselben Messergebnisse wie in Szenario 2 erreichen.

Ob Szenario 3 wirklich Sinn ergibt, bezweifle ich, jedoch ist es eine Methode um das bisherige Tracking-Snippet im Code weiterzuverwenden, falls das erforderlich ist.

Ein Überblick des Vorgehens bzw. der Ergebnisse findet sich in nachfolgenden Bildern.

Benutzerdefiniertes HTML Tag Matomo Tag Manager

Bild 8: Ein Tag vom Typ „Benutzerdefiniertes HTML“ nimmt den herkömmlichen (ggf. angepassten) Tracking-Code auf. Dieses Tag wird bei jedem Seitenladen zeitverzögert ausgeführt.

Tag mit Dummy Event

Bild 9: Ein Tag, was nur dazu dient, dass ein Matomo Analytics Tag als erstes ausgeführt wird, noch bevor das benutzerdefinierte HTML-Tag mit dem Matomo-Script geladen wird. Die Daten werden in ein „Dummy“-Event weggeschrieben.

Besucherlog von Matomo

Bild 10: Das Dummyevent finde sich im Besucher-Log und der Ereignisstatistik von Matomo

Matomo Tag Manager "siteId must be given to add a new tracker"

Bild 11: Ohne den Zeitversatz kommt es zu einem JavaScript-Fehler.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.