von Sebastian Bartmann
Server Side Tagging (SST) bedeutet das Senden der Tracking-Daten über einen eigenen Server mit voller Kontrolle darüber, welche Daten wohin geschickt werden. Diese Kontrolle und ein genauerer Einblick in den Datenfluss verbessern die Umsetzbarkeit der GDPR-Richtlinien. Zusätzlich können die gesendeten Daten angereichert werden. Ebenso werden durch effizientere Datenströme die Endgeräte entlastet. Der Google SST-Server wird als Docker-Image bereitgestellt und kann auf verschiedenen Hosting Anbietern eingesetzt werden. Anhand eines Beispiels wird das Hosting auf einem eigenen VPS (Virtual Private Server) erklärt.
Webanalyse steht für Messbarkeit und ist die Grundlage für langfristige Erfolgskontrolle und Effizienzsteigerung Ihrer (Online) Marketing Aktivitäten.
Mehr ErfahrenBei Server Side Tagging (bzw. Tracking) werden Daten über einen eigenen Server umgeleitet, anstatt direkt vom Benutzer an die verarbeitenden Server (z.B. Google Analytics) gesendet zu werden.
Bisher sind die Trackingdaten direkt vom Browser des Webbesuchers an diverse andere Plattformen gesendet worden. Mit SST werden die Informationen nun an eine eigene Domain bzw. den eigenen Server gesendet, welcher dann erst die Informationen an diverse weitere Plattformen sendet.
Dies hat mehrere Vorteile:
Der Nachteil ist der erhöhte Aufwand der Implementierung und Wartung, da man den Server selbst kontrolliert und dafür verantwortlich ist. Zusätzlich fallen Kosten für das Hosten des Tracking Servers an.
Es existieren diverse Möglichkeiten und verschiedene Anbieter, um Tracking-Daten über einen eigenen Server zu senden. Wir fokussieren uns auf die Google Suite, da Google in diesem Bereich viel Erfahrung und qualitative Lösungen bietet.
Google Server Side Tagging kann auf drei verschiedene Varianten umgesetzt werden:
Die einfachste und schnellste Möglichkeit der Umsetzung ist das Bereitstellen und Verwalten des Servers direkt von Google. In der Praxis ist dies allerdings nicht sinnvoll, da Google derzeit nur den Serverstandort Amerika zulässt.
Die gängigste Lösung ist es, den Tracking Server über die Google Cloud zu hosten. Dabei nutzen Sie Google Cloud Run oder Google App Engine, um das von Google bereitgestellte Docker Image zu hosten. Die Anleitung kann hier gefunden werden.
Das von Google bereitgestellte Server Side Docker Image kann auch selbst auf einem eigenen Server gehostet werden. Diese Variante ist mit mehr Arbeit verbunden, da man die Netzwerk-Infrastruktur sowie die Server (Ausfallsicherheit, Load-Balancing) selbst verwalten muss.
Die Daten fließen bei derzeit gängigen Tracking-Lösungen zwischen einem Client (Webbrowser, Smartphone, PC) und einem Service-Anbieter (Google Analytics, Meta, TikTok).
Mit Server Side Tagging steht zwischen dem Website-Besucher und dem Service ein eigener Server. Dieser Server erhält die Requests vom Benutzer, kann sie verarbeiten, modifizieren sowie aufbereiten und dann an diverse Drittanbieter weiterleiten.
Anhand folgender Grafiken erkennt man den Performance-Vorteil, da im Fall ohne Server Side Tagging der Client (z.B. das Handy) drei eigene Verbindungen zu den unterschiedlichen Anbietern aufbauen muss, während mit SST nur eine Verbindung notwendig ist und sich der Server um das Verteilen kümmert. Somit ist das Endgerät des Benutzers entlastet und die Website lädt bzw. reagiert schneller.
Der Tagging-Server ist ein von Google bereitgestelltes Docker Image. Dies ist eine Technologie, um virtuelle Server zu betreiben. Innerhalb dieses Docker Images befindet sich ein nodeJS Server, der ein Script von Google lädt. Dieses Script lädt einen Google Tag Manager (GTM) Container, in welchem die Datenverarbeitungsregeln konfiguriert werden können.
Durch das Docker Image kann also auf Ihrem Server ein Server Side GTM Container gehostet werden. Der Server Side Container wird, wie auch bei Client GTM Containern, über das Tag Manager Interface verwaltet.
Über das GTM Interface können “Clients” definiert werden. Das sind im Grunde Javascript basierende Request Handler, mit welchen die eingehenden Requests verarbeitet bzw. geroutet werden können.
Wie auch bei Client Side GTM Containern gibt es die Möglichkeit, den Server Side Container in einem Vorschau-Modus zu starten. Damit können noch nicht veröffentlichte Änderungen lokal getestet werden.
Startet man den Server Container im Vorschau-Modus, öffnet sich ein Browser-Fenster, in welchem man die eigenen eingehenden Anfragen sieht und ebenso, welche Tags von den Anfragen ausgelöst werden. Dies ist besonders praktisch, um neue Versionen zu testen, ohne sie für die Produktion zu veröffentlichen.
Achtung: Um den Vorschau-Modus nutzen zu können, benötigt man dafür einen eigenen Docker Container bzw. Server sowie eine eigene Subdomain.
Wir empfehlen das Hosten des Server Side Tagging Containers in der Google Cloud. Diese bietet eine übersichtliche Verwaltung und Steuerung des Containers und abstrahiert technische Details.
Die hier beschriebene Lösung wird von uns für Debugging und Development benutzt und sollte nicht auf produktiven Systemen übernommen werden. Sie gibt allerdings einen grundsätzlichen Überblick darüber, wie das Selber-Hosten eines SST GTM Containers funktionieren kann.
Google stellt Docker Images bereit, um den GTM Container zu nutzen. Diese Container können sowohl in der Google Cloud als auch auf einem eigenen Server genutzt werden.
Im Gegensatz zu Google hosted Server Side Tagging, auf der die Google Cloud Platform das Routing und Load Balancing übernimmt, muss man sich beim selbst gehosteten SST auch um das Bereitstellen des Netzwerks und Proxies kümmern. In diesem Beispiel nutzen wir den gängigen Nginx Proxy.
Je nach Traffic reicht ein Server nicht aus. Während man bei der Google Cloud einfach skalierende Services nutzen kann, fällt dies beim privaten Server unter die eigene Verantwortung. Dieses Thema ist technisch anspruchsvoll und geht über den Umfang dieses Artikels hinaus.
Zusätzlich zum SST Container muss wie gewohnt auch ein Client Container vorhanden sein. Dieser wird auf der Website eingebunden. Über diesen Container werden die vom Client ausgehenden HTTP Requests konfiguriert.
Als Beispiel werden wir Google Analytics 4 (GA4) Events über einen Server schicken. Deshalb benötigen wir am Client einen GA4 Konfigurations-Tag. Der Trigger soll “All Pages” sein, damit er auf jeder Seite feuert.
Der Tag benötigt eine gültige Measurement-ID, welche in den Google Analytics Einstellungen gefunden werden kann. Zusätzlich benötigen wir eine Server-Container-URL, z.B. tracking.e-dialog.group
Wir belassen es in diesem Beispiel bei dem Page View Event, das auch über diesen Tag gefeuert wird. Natürlich können in diesem Container diverse weitere Events erstellt werden.
Den Server-Side-Container kann man einfach über die Auswahl “Server” beim Erstellen des Containers auswählen:
Nachdem Click auf Create/Erstellen öffnet sich ein Popup:
Für das Tracking auf einem eigenen Server muss die manuelle Option gewählt werden. Die hier angezeigte Container Config werden wir später in der Docker Konfiguration benötigen. Sie kann jederzeit über die Einstellungen abgerufen werden.
Es werden mit der Server-Side-Container Erstellung auch automatisch zwei Server Side Clients angelegt, einer für Universal Analytics und einer für GA4. Somit können sofort Analytics Requests verarbeitet werden. Man muss hier nichts ändern.
Ebenso wird ein Tag benötigt, welcher die Google Analytics Events verarbeitet:
Die Measurement ID kann leer bleiben, sie wird dann vom Request, der vom Client Container gesendet wird, übernommen.
Die IP-Adresse zu anonymisieren ist für den Datenschutz ein wichtiges Instrument und ein großer Vorteil des Server Side Trackings.
Hier haben Sie freie Hand, einen Server auszuwählen. Von Vorteil ist es, wenn Sie bei der Auswahl des Servers an Erweiterbarkeit denken, um z.B. Ihren Tagging-Server hinter einem Load Balancer zu positionieren.
Im Grunde kann jeder Server benutzt werden, auf welchem Sie Docker Container hosten können – also praktisch jedes gängige Betriebssystem sowie gängige Cloud Lösungen.
Für diesen Artikel habe ich eine CPX 21 Instanz von Hetzner verwendet und auf dieser das bereitgestellte Docker-Ubuntu Image installiert, um dann über SSH weitere Einstellungen vorzunehmen.
Da der Tracking-Server unter Ihrer Kontrolle steht und auch unter derselben Domain wie Ihre Website erreichbar sein sollte, müssen passende DNS Einstellungen vorgenommen werden.
Dazu muss ein DNS Eintrag erstellt werden, welcher auf die IP des Tracking-Servers verweist.
In der Hetzner Cloud kann die IP-Adresse des Servers einfach abgerufen werden:
Für den normalen Betrieb wird eine Subdomain benötigt. Um den Preview Modus nutzen zu können benötigt man eine zweite Subdomain. In diesem Beispiel hat der Tracking-Server die Subdomain “gtm” und der Preview Server die Subdomain “preview”:
Da wir Nginx als Proxy nutzen, muss der Service zuerst am Server installiert sein. Eine Anleitung für Ubuntu kann unter diesem Link gefunden werden.
Nachdem Nginx installiert wurde, sollte unbedingt geprüft werden, ob der Server öffentlich erreichbar ist. Die Default Nginx Konfiguration hostet statische Webfiles, was das Testen einfach gestaltet. Wenn man die IP des Servers aufruft, sollte man also die Nginx Willkommensseite sehen.
Damit Google Server Side Tagging funktioniert, wird ein gültiges SSL Zertifikat benötigt. Wie man ein solches installiert, kommt auf den genutzten Server an. Für dieses Beispiel haben wir den Certbot mit Let’s Encrypt genutzt.
Alle für dieses Beispiel benötigten Konfigurationsdateien können hier gefunden werden.
Um übersichtlich zu bleiben, verwenden wir zwei docker-compose Dateien.
Ein Docker-Compose, um den Proxy zu starten und ein Docker-Compose für die GTM Container.
docker-compose.proxy.yml
version: '3.8'
services:
proxy:
image: nginx
ports:
- 80:80
- 443:443
- 8080:8080
networks:
- gtm_network
external_links:
- gtm_production
- gtm_preview
volumes:
- ./logs/:/etc/nginx/logs/
- ./nginx.conf:/etc/nginx/nginx.conf
- ./webroot/:/var/www/html/
- /etc/letsencrypt/:/etc/letsencrypt/
networks:
gtm_network:
driver: bridge
Die Ports 80, 443 sowie 8080 werden für den Proxy Container gemapped. Ein Netzwerk für die benötigten Docker Container wird erstellt. Dabei sind gtm_production und gtm_preview Referenzen auf die jeweiligen Docker Container.
Ebenso werden Ordner mit dem Host geteilt:
docker-compose.gtm.yml
version: '3.8'
services:
gtm_production:
image: gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
environment:
ENVIRONMENT: production
CONTAINER_CONFIG: xxxxxxxxxxxxxxxxxxxx #needs to be changed
PREVIEW_SERVER_URL: 'https://preview.yourdomain.com' #needs to be changed
networks:
- gtm_network
restart: always
gtm_preview:
image: gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
environment:
ENVIRONMENT: preview
CONTAINER_CONFIG: xxxxxxxxxxxxxxxxxxxx #needs to be changed
RUN_AS_PREVIEW_SERVER: 'true'
networks:
- gtm_network
restart: always
networks:
gtm_network:
driver: bridge
Das docker-compose des Proxyservers muss nicht unbedingt angepasst werden. Je nach Ihrem Setup könnten aber andere Ports oder Volume Bindings notwendig sein.
Um die Container zu starten, müssen Sie Ihre Config Files auf den Server laden. Mit folgenden Befehlen können die Container gestartet werden:
docker-compose -f docker-compose.gtm.yml up -d
docker-compose -f docker-compose.proxy.yml up -d
Mithilfe von docker ps können die aktuell laufenden Container gelistet werden.
Es sollten nun 3 Container laufen; der Proxy, der Tracking Server und der Preview Server.
Wenn alles richtig konfiguriert ist, laufen jetzt Events ein und über den GTM können die Website bzw. der aktuelle GTM Container im Preview Modus getestet werden.
Achtung: Diese Anleitung zeigt ein simples Beispiel des Betriebs eines Tracking Servers. Für einen Echtbetrieb müssen die Nginx Konfiguration, die Netzwerkstruktur sowie das Servermanagement gut durchdacht und an Ihre konkreten Bedürfnisse angepasst werden.
Debugging:
Wenn etwas nicht funktioniert, kann im Nginx Access Log geprüft werden, ob Verbindungen aufgebaut werden. Zusätzlich kann im Error Log geprüft werden, ob es zu Verbindungsfehlern kommt.
Es ist möglich, den Server Side GTM vollkommen unabhängig von Google Servern zu hosten. Dies ist allerdings mit deutlich mehr Aufwand und Know-How verbunden. Alternativ kann die Google Cloud als Host verwendet werden. Da der SST GTM in einem Docker Container läuft ist der Wechsel zwischen selbst gehosteten und Google gehosteten Lösungen leicht möglich.
Es wird derzeit über die GDPR Compliance viel diskutiert. Der SST GTM von Google ist flexibel genug um jegliches Szenario des Datenflusses abzubilden. Die Herausforderung liegt darin, die bereitgestellte Technologie richtig einzusetzen.
Wir freuen uns auf Ihre Anfrage und beraten Sie gerne unverbindlich! Füllen Sie dazu einfach das Kontaktformular aus oder rufen uns direkt an.
Jetzt kontaktierenNewsletter
Holen Sie sich unsere Online Marketing-Insights und Trends direkt in Ihr Postfach!