HOKATA
HOKATA

Tag Manager Server

Online Marketing und Analytics Berater Stuttgart

Wolfram Bartke
Marketing Technologie Experte

Kurze Einleitung:

Erfolgreiches Online Marketing basiert auf Erfahrung, Intuition, Kreativität und vor allem: auf Daten.

Aber wie vollständig sind diese Daten? Und wie lange haben wir noch Kontrolle über die Erhebung dieser Daten?

Die aktuellen Entwicklungen im Bereiche Datenschutz und Privatsphäre erschwere das Tracken von Website-Besuchern — und das völlig zu Recht. Denn vielfach ist es unverantwortlich, wie unbedarft manche Seitenbetreiber mit der Einbindung von Drittanbieter-Scripten umgehen.

Um meine Analytics-Daten sicherzustellen habe ich nach alternativen Tracking-Möglichkeiten gesucht und meine eigene Lösung aufgebaut. Was ich bei meiner Recherche gefunden habe, und warum ich diesen Weg eingeschlagen habe, beschreibe ich in diesem Beitrag.

UPDATE: Der Tag Manager Server hat einen neuen Namen und ein neues Zuhause: DLYX - The DataLayer Proxy

Aktuelle Tracking-Lösungen mit JavaScript im Browser

Moderne Web-Analyse-Systeme wie Google Analytics sammeln und senden Daten per JavaScript. Mit einem Tag Management System kann ohne Programmierkenntnisse ein individuelles Tracking aufgebaut werden. Am häufigsten eingesetzt wird hier der Google Tag Manager. Dieser basiert ebenfalls auf JavaScript.

Sind die Tracking-Anforderungen komplexer, können wichtige Informationen vom CMS oder Shop-System in einen DataLayer geschrieben und vom Tag Manager verarbeitet werden. Über diesen Weg werden beispielsweise Produktdetailseiten-Aufrufe, Warenkorb-Interaktionen und Bestellungen eines Online Shops an Analytics gesendet.

Bei dieser Trackingmethode müssen mehrere JavaScript-Dateien vom Analytics-Server geladen und Daten zurückgesendet werden.

Google Analytics Tracking mit dem Tag Manager

Problem: Browser können das Erfassen dieser Daten blockieren

Je nach Konfiguration des Browsers kann das gesamte Tracking blockiert werden. Entweder hat der Besucher spezielle Browser-Erweiterungen installiert oder strengere Privatsphäre-Einstellungen vorgenommen.

Beim Vergleich der realen Bestellungen in einem Online Shop mit den Daten aus Google Analytics wird dieses Problem schnell sichtbar. Üblicherweise fehlen in Analytics 5% bis 15% der Bestellungen.

5% bis 15% weniger Bestellungen

Häufigste Ursache: AdBlocker

Diese Browser-Erweiterungen blockieren von sich aus noch kein Tracking, aber die prominente Position und bedrohliche Beschreibung in den AddOn-Einstellungen bewegt ca. 50% der Nutzer dazu, diese Funktion zu aktivieren.

Nach der Aktivierung kann beispielsweise die Datei analytics.js vom Google Analytics Server nicht geladen werden und blockiert somit das Tracking — auch wenn der Tag Manager noch einwandfrei funktioniert.

Das Google Analytics Script analytics.js wird vom AdBlocker blockiert und kann nicht geladen werden.

Weitere Ursachen: Privatsphäre-Einstellungen der Browser

Etwas anders, aber mindestens genauso effektiv, funktionieren die Privatsphäre-Einstellungen der Browser. Hier kann beispielsweise Firefox mit ETP, Safari mit ITP oder der Brave-Browser im Tor-Modus das Tracking komplett unterbinden.

Hinzu kommen weiter Einschränkungen beim JavaScript-Zugriff auf Cookies und andere Browser-Speicher. Dies reicht von verkürzter Cookie-Laufzeitdauer bis zur Zugriffsverweigerung auf SessionStorage, LocalStorage und IndexDB.

Auch wenn diese Entwicklungen noch keine große Auswirkung zeigen, können zukünftige Updates das Tracking stark beeinflussen.
In diesem Zusammenhang empfehle ich diesen ausführlichen Artikel zum Thema Intelligent Tracking Prevention von Markus Baersch.

Browser können das Tracking komplett unterbinden und den JavaScript-Zugriff auf Cookies und andere Browser-Speicher einschränken.

Selbst gehostete analytics.js und Proxy-Umleitungen sind leicht zu erkennen

Der einfachste Weg die Blockierung zu umgehen wäre die Einbindung einer Kopie der Tracking-Scripte auf dem eigenen Server oder das Zwischenschalten eines Proxy-Server. Diese Techniken werden aber jetzt schon von manchen AdBlockern und Browsern erkannt. Andere andere werden sich dieses Vorgehen eventuell abschauen.

Auch wenn nicht 100% der Besucher erfasst werden müssen, sollte jeder sein aktuelles Tracking-Setup kritisch hinterfragen und wichtige Entwicklungen im Blick behalten.

 

Ein Ausweg: Serverseitiges Tracking

Als Seitenbetreiber möchte ich selbst bestimmen, welche Daten erfasst und wohin diese gesendet werden. Updates von Browsern oder AddOns dürfen meine Analytics-Zahlen nicht negativ beeinflussen. Viel mehr sollte ich mich auf das Tracken relevanter Daten konzentrieren und dabei rechtliche Vorschriften und unternehmerische Risiken berücksichtigen.

Auch mit dem Überwinden technischer Hürden kann ich einen Wettbewerbsvorteil schaffen.

Serverseitiges Google Analytics Tracking

Schwächen einer komplett serverseitigen Lösung

Wenn ein Webserver die Tracking-Daten direkt an den Analytics-Server sendet, ohne den Umweg über einen Browser zu gehen, werden höchstwahrscheinlich Daten fehlen. Zum einen sind es technische Informationen welche nur über JavaScript ausgelesen werden können und zum anderen müssen Interaktionen auf einer Webseite ebenfalls mit JavaScript im Browser erfasst und übermittelt werden.

Zusätzlich möchte ich nur ungern auf den Komfort des Google Tag Manager und den DataLayer verzichten. Und genauso wenig möchte ich den mühsam aufgebauten DataLayer über Bord werfen, denn der Aufbau eines neuen Tracking wird mit Sicherheit nicht einfacher.

Das Zusammenspiel von Backend, DataLayer, Tag Manager und Analytics ist einfach zu gut.

Der Google Tag Manager und der DataLayer sind sehr komfortabel. Darauf möchte ich nicht verzichten.

Lösungsansatz: Der Tag Manager Server

Also einfach den aktuellen Tag Manager Container auf einen Server übertragen und das serverseitige Tracking per Knopfdruck aktivieren? Ja, genau das wäre perfekt!

Technisch ist es möglich den Container über eine API auszulesen oder als JSON-Datei zu exportieren. Dann fehlt eigentlich nur noch das Abfangen der DataLayer-Push-Events — und auch das ist mit wenigen Zeilen JavaScript-Code möglich.
Natürlich ist es nicht notwendig den Google Tag Manager 1:1 auf einem Server nachzubauen, aber beim Großteil der Tags, Trigger und Variablen ist es kein Hexenwerk.

Um den Aufwand und Effekt besser einschätzen zu können, habe ich mich entschieden, einen Prototyp zu erstellen.

Der Google Tag Manager Server verarbeitet den DataLayer und sendet Tracking-Daten an Google Analytics.

Der Prototyp

Ein Container-Import und das Abfangen der DataLayer-Push-Events ist relativ schnell umgesetzt. Komplexer hingegen ist die Verarbeitung des DataLayer innerhalb einer Server-Session. Denn häufig werden viele Push-Events an den DataLayer gesendet, und manchmal sendet ein einziger Besucher viele parallele Events aus mehreren Browser-Tabs.

Ist dieses Problem gelöst, muss auch das Löschen veralteter DataLayer-Daten berücksichtigt werden, denn Sie verschwinden nicht einfach so aus einer Server-Session. Und solche Daten können im Live-Betrieb zu ganz neuen Problemen führen. Zusätzlich benötigt man einen Debug-Mode mit Ausgabe im Browser, um den Blindflug beim Programmieren zu beenden.

Spätestens hier wurde mir klar: Entweder höre ich jetzt auf oder es ist bald mehr als nur ein Prototyp.

Der Tag Manager Server verarbeitet nach dem Import eines GTM-Container alle DataLayer-Push-Events.

Erster Test: Webseite-Tracking

Natürlich konnte ich nicht einfach aufhören. Und glücklicherweise hat mir der erste Testlauf gezeigt, dass ich auf dem richtigen Weg bin. Diese einfache Webseite mit überschaubarem Traffic, ohne Conversions, war ziemlich langweilig. Also wollte ich einen Schritt weiter gehen.

Was ich bei diesem Test gelernt habe:

  • Referrer, Title und Bildschirmauflösung müssen per JavaScript im DataLayer ergänzt werden.
  • An Google Analytics kann ich jede x-beliebige IP-Adresse senden und somit meine Besucher besser schützen.
 

Zweiter Test: Erweitertes E-Commerce Tracking

Nachdem ich einen Online-Shop-Kunden von meinem neuen Tracking-Konzept überzeugen konnte, lief auch dieser Test nach wenigen Tagen. Eine Woche später zeigte der Vergleich der beiden Analytics Properties den erhofften Unterschied. In der neuen Property wurden nicht nur 84% sondern 99% aller Bestellungen angezeigt.

Was ich bei diesem Test gelernt habe:

  • Die verschachtelten DataLayer-Variablen und Suchtabellen funktionieren wirklich!
    • Mehrsprachige Online Shops mit einem Container, verteilt auf separate Domains und Properties, werden also wunderbar funktionieren.
  • EEC-Daten im DataLayer werden verarbeitet.
  • E-Commerce-Daten im DataLayer dürfen bei mehreren Events auf einer Seite nur einmal gesendet werden. So macht es auch der GTM.
  • Manchmal überholen sich Push-Events gegenseitig. Diese müssen ausgebremst und sequenziell abgearbeitet werden.
84% bisheriges Tracking 99% Tag Manager Server

Dritter Test: E-Commerce Tracking über eine Subdomain

Der zweite Online Shop hatte um einiges mehr Traffic und viel mehr Umsatz als der vorherige. Den direkten Zugriff auf Shop-Server hätte ich nicht bekommen und wollte ihn eigentlich auch gar nicht haben.
Also blieb mir nichts anderes übrig als den Kunden um eine Subdomain zu bitten und die Tracking-Scripte auf einem eigenen Server zu betreiben.

Da im Shop-Template nur eine einzige JavaScript-Datei integriert werden musste, war der Aufwand auf Kundenseite sehr gering und konnte innerhalb weniger Tage Live gestellt werden.

Was ich bei diesem Test gelernt habe:

  • Das Handling von Subdomain-Cookies in Verbindung mit Ajax-Requests sind schwieriger, als ich dachte.
  • Ich brauche einen besseren Debug-Modus.
  • Weniger JavaScript-Variablen im GTM machen es leichter.
  • Nachgelagerte Push-Events mit JavaScript im GTM sind vielleicht doch doof.
 

Aktueller Funktionsumfang des Tag Manager Server

Die bisherigen Testläufe haben gezeigt, dass diese serverseitige Tracking-Lösung funktioniert und mit geringem Aufwand auf andere Projekte übertragen werden kann. Auch wenn das Potenzial von diesem Tracking-Server noch nicht komplett entfaltet ist, kann er trotzdem als Tracking Ergänzung bei Online Shops eingesetzt werden.

Ich habe es also geschafft ein serverseitiges Tracking mit dem Google Tag Manager inkl. DataLayer (dlyx.io) aufzubauen.

Tags Manager Server Einstellungen im GTM über ein Custom Template.

GTM Tags

Aktuell wird nur der Universal Analytics Tag mit Pageviews und Events unterstützt. Dabei können benutzerdefinierte Dimensionen und Metriken inkl. Enhanced Ecommerce Daten übermittelt werden.

Alle weiteren Tags werden noch ignoriert. Eine Übersetzung der meisten übrigen Tags kann bei Bedarf nachgezogen werden.

Aktuell wird nur der Universal Analytics Tag mit Pageviews und Events unterstützt.

GTM Trigger

Neben dem Seitenaufruf, DOM ist bereit und Fenster geladen, können auch Benutzdefinierte Ereignisse verarbeitet werden. Auch alle Trigger-Filter, mit Ausnahme des CSS_SELECTOR, werden bereits berücksichtig. Wobei reguläre Ausdrücke nicht von JavaScript, sondern PHP interpretiert werden und eine Übersetzung verlangt.

Je nach Anforderung können später weitere Trigger umgesetzt werden, auch wenn diese zusätzlichen JavaScript-Code benötigen.

Aktuelle GTM-Trigger des Tag Manager Server.
 
Alle Trigger-Filter, mit Ausnahme des CSS_SELECTOR, werden bereits berücksichtig.

GTM Variablen

Auch hier liegt mein Fokus auf den JavaScript-losen Variablen mit einigen wenigen Ausnahmen, welche über den DataLayer an den Server übermittelt werden. Somit stehen aktuell folgende Variablen zur Verfügung:

  • HTTP-Verweis-URL
  • URL
  • Datenschichtvariable
  • Benutzerdefiniertes Ereignis
  • Google Analytics-Einstellungen
  • Konstant
  • RegEx-Tabelle
  • Suchtabelle

Neben den existierenden GTM-Variablen werden spezielle Variablen wie Client-ID, Session-ID und Hit-Timestamp erzeugt und können als Custom Dimension übermittelt werden.

Aktuelle GTM-Variablen des Tag Manager Server.

Enhanced Ecommerce Tracking

Für einen Online Shop sind E-Commerce Daten der wichtigste Bestandteil vom Tracking. Diese werden direkt aus dem DataLayer übernommen und funktionieren jetzt schon mit diesen Aktionen:

  • impression
  • detail
  • addToCart / removeFromCart
  • checkout steps
  • purchase

Weitere folgen, wenn es ein Projekt verlangt.

E-Commerce Daten aus dem DataLayer können bereits verarbeitet werden.

Updates und Zusammenarbeit

Updates werde ich hier, auf Twitter und Facebook veröffentlichen.

Falls ihr an einem Austausch zum serverseitigen Tracking interessiert seid, könnt ihr mich gerne über Facebook oder E-Mal anschreiben: tms@hokata.de

Weitere Informationen unter: www.tagmanagerserver.com (alte Seite)

Online Marketing und Analytics Berater Stuttgart

Wolfram Bartke
Online Marketing Berater

UPDATE: DLYX - The DataLayer Proxy

Um meine Software besser von Googles server-side Tagging Lösung abzugrenzen, setzte ich auf einen neuen Namen. Mein Fokus liegt von Anfang an auf der Weiterverwendung des dataLayer. Aus diesem Grund habe ich einen passenden Namen mit einer .io-Domain gewählt:
DLYX - The DataLayer Proxy - dlyx.io

Serverseitiges Google Analytics Tracking mit dem DLYX DataLayer Proxy