Google Tag Manager Server (GTM Server) in Kubernetes

Jannik Zinkl
Jannik Zinkl
  • 2023-02-22
  • 5 min to read
Blog Images

Der Tag Manager Server ist ein eine JavaScript Applikation, die zum sog. „Server Side Tagging“ verwendet werden kann. Sie fungiert als Proxy z.B. für Google Analytics oder auch andere Services. Man kann den Service direkt in der Google Cloud (App Engine) starten und einrichten lassen. Dabei fallen durchschnittlich Kosten von mindestens 40$ pro Monat an.

Die Alternative ist, das System selber zu hosten. Speziell wenn schon ein Kubernetes Setup für bestehende Backend Applikationen besteht, bietet sich diese Art besonders an.

Wir stellen dafür benötigte Helm Charts Open-Source zur Verfügung.

Einrichten des Google Tag Manager Servers (GTM Server)

Zuerst muss ein neuer GTM Server bei Google erstellt werden. In diesem Prozess erhalten wir einen Code, welchen wir dem Service in Kubernetes mitgeben müssen, damit er sich erfolgreich bei der Tag Manager Platform anmelden kann. Dafür folgen wir einfach der Anleitung von Google:

  1. Klicken Sie in Tag Manager auf den Tab Konten > Konto erstellen.
  2. Geben Sie einen Kontonamen ein und wählen Sie das Land für das Konto aus.
  3. Geben Sie einen aussagekräftigen Containernamen ein und wählen Sie den Containertyp aus. Hier muss „Server“ gewählt werden.

Screenshot_2023-02-12_at_21.54.47.png

  1. Klicken Sie auf Erstellen und akzeptieren Sie die Nutzungsbedingungen.
  2. In den folgenden Dialogfeldern wählen wir, „manuelle Installation“ aus

Screenshot_2023-02-12_at_21.55.14.png

Die Container Config kopieren wir. Diese wird im nächsten Schritt bei der Installation mit dem Helm Chart benötigt.

Installation mit Helm

Als erstes muss das trieb.work Helm Repo hinzugefügt werden:

helm repo add trieb.work https://trieb-work.github.io/helm-charts/

Anschließend legen wir ein config file an - `values.yml` . Bei `containerSettings` wird der String von Google reinkopiert.

Der Tag Manager Server sollte über einen Subdomain erreichbar gemacht werden. Soll z.B. Tagging für die Domain „example.com“ aufgebaut werden, würde der Tag Manager Server z.B. unter „analytics.example.com“ laufen. Das ermöglicht es dann, Cookies mit längerer Laufzeit zu setzen, da es sich nicht um eine 3rd Party Domain wie „analytics.google.com“ handelt:

autoscaling:
  enabled: true
  maxReplicas: 4
  minReplicas: 2
  targetCPUUtilizationPercentage: 80
gtm:
  containerSettings: sverwetzwtbhwrth&Zu3567356hwrewh6ui3576jh4uk
  replicas: 2
ingress:
  taggingHost: analytics.example.com

Anschließend kann der Tag Manager Server mit einem Befehl eingerichtet werden. Dabei wird ebenfalls der Tag Manager „Preview“ Server eingerichtet, der später für Live-Tests verwendet werden kann.

helm -n gtm-server install gtm-example-com trieb.work/gtm-server-container-cluster -f values.yml

Es sollten sich jetzt entsprechend ein Ingress, ein Deployment für den Tag Manager in Production und eins für Testing gestartet haben.

Jannik Zinkl
Jannik Zinkl

Entrepreneur & Cloud Architect with a passion for Climate Tech