Wenn dein Server Side GTM Container bei owntag läuft, hat er zunächst keinen Zugriff auf dein Google Cloud-Projekt. Ein Google Service Account schließt diese Lücke — er ermöglicht deinem SGTM Container, sich gegenüber Google Cloud-Diensten wie BigQuery und Firestore zu authentifizieren, direkt aus deinen Tags und Variablen heraus.
In dieser Anleitung zeigen wir dir, wie du einen Service Account erstellst, die richtigen Berechtigungen vergibst und ihn mit deinem owntag Container verbindest.
Was ermöglicht ein Google Service Account?
Server Side GTM bringt eingebaute APIs für BigQuery und Firestore mit, die von Tag- und Variablen-Templates genutzt werden können. Viele Community-Templates setzen diese APIs voraus. Ohne verbundenen Service Account funktionieren sie schlicht nicht — mit einem eröffnen sie dir mächtige Möglichkeiten:
| Integration | Was du damit machen kannst |
|---|---|
| BigQuery | Event-Rohdaten direkt in dein Data Warehouse streamen — ohne GA4-Sampling und Datenlimits. Eigene Analytics-Pipelines aufbauen, Conversion-Daten für Offline-Matching speichern oder Looker Studio-Dashboards befüllen. |
| Firestore | Events in Echtzeit anreichern, z. B. durch Lookup von Kundendaten (gehashte E-Mails für Meta CAPI), Session-Management, Konfigurationswerte oder Zähler für wertbasiertes Bidding. |
| Google Sheets | Tabellen als leichtgewichtige Lookup-Tabellen nutzen — praktisch für Kampagnen-Konfiguration, Produkt-Margen oder kleine Referenzlisten. |
| Vertex AI | ML-Modelle in Echtzeit abfragen, z. B. für prognostizierten Customer Lifetime Value (Smart Bidding), Lead Scoring oder Betrugserkennung. |
| Pub/Sub | Nachrichten an nachgelagerte Pipelines senden — CRM-Updates, Benachrichtigungssysteme oder Datenvalidierungs-Workflows. |
BigQuery und Firestore sind mit Abstand die häufigsten Anwendungsfälle. Wenn du gerade erst einsteigst, konzentriere dich auf diese beiden.
Der Service Account wird nur deshalb benötigt, weil dein SGTM Container auf owntag-Infrastruktur läuft und nicht in deinem eigenen Google Cloud-Projekt. Würde er direkt auf Google Cloud (z. B. Cloud Run) laufen, wäre die Authentifizierung automatisch. Die JSON Key-Datei stellt genau diese Authentifizierung von einer externen Umgebung aus her.
Schritt 1: Service Account in Google Cloud erstellen
Du benötigst ein Google Cloud Platform-Projekt. Falls du noch keines hast, kannst du eins unter console.cloud.google.com erstellen.
- Navigiere in der Google Cloud Console zu IAM & Admin → Service Accounts (bzw. IAM & Verwaltung → Dienstkonten).
- Klicke auf Create Service Account (bzw. Dienstkonto erstellen).
- Vergib einen aussagekräftigen Namen, zum Beispiel
sgtm-owntag. Die E-Mail-Adresse wird automatisch generiert. - Klicke auf Create and Continue (bzw. Erstellen und fortfahren).
Schritt 2: IAM-Rollen zuweisen
Im nächsten Schritt wirst du aufgefordert, dem Service Account Rollen zuzuweisen. Die Rollen legen fest, auf welche Google Cloud-Dienste dein SGTM Container zugreifen darf.
Vergib nur die Rollen, die du tatsächlich brauchst. Hier sind die gängigsten:
| Was du tun möchtest | Benötigte IAM-Rolle |
|---|---|
| Daten in BigQuery schreiben | BigQuery Data Editor |
| Firestore-Dokumente lesen und schreiben | Cloud Datastore User |
| BigQuery-Abfragen ausführen (z. B. über Custom Templates) | BigQuery Job User |
Für Google Sheets ist keine IAM-Rolle nötig — stattdessen teilst du die Tabelle direkt mit der E-Mail-Adresse des Service Accounts (genauso wie mit einem Kollegen).
Wähle die benötigten Rollen aus und klicke anschließend auf Continue und Done.
Rollen kannst du jederzeit nachträglich unter IAM & Admin → IAM in der Google Cloud Console anpassen.
Schritt 3: JSON Key erstellen und herunterladen
- Klicke in der Service Accounts-Liste auf den gerade erstellten Service Account.
- Wechsle zum Tab Keys.
- Klicke auf Add Key → Create new key.
- Wähle JSON als Schlüsseltyp und klicke auf Create.
- Die JSON Key-Datei wird automatisch auf deinen Rechner heruntergeladen.
Bewahre diese Datei sicher auf. Die JSON Key-Datei kann nicht erneut heruntergeladen werden — falls du sie verlierst, musst du einen neuen Schlüssel erstellen.
Schritt 4: Benötigte APIs aktivieren
Jeder Google Cloud-Dienst erfordert, dass seine API in deinem Projekt aktiviert ist. Navigiere zu APIs & Services → Library in der Google Cloud Console und aktiviere die APIs, die du brauchst:
- BigQuery API — wenn du Daten in BigQuery streamen möchtest
- Cloud Firestore API — wenn du Firestore für Datenanreicherung oder Lookups nutzen möchtest
Der API-Name in der Suchleiste reicht in der Regel aus, um die richtige API schnell zu finden. Klicke bei jeder auf Enable.
Wenn du diesen Schritt überspringst, erhältst du bei deinen SGTM-Tags und -Variablen Authentifizierungsfehler, sobald sie auf den jeweiligen Dienst zugreifen. Die Fehlermeldungen im Preview Mode des SGTM zeigen dir in der Regel direkt, welche API fehlt.
Schritt 5: Key bei owntag hochladen
- Logge dich in der owntag Console unter console.owntag.eu ein.
- Öffne den Container, den du verbinden möchtest.
- Klicke in der Seitenleiste auf Google Service Account.
- Ziehe deine JSON Key-Datei per Drag & Drop in den Upload-Bereich — oder klicke auf Select JSON file, um sie über den Datei-Dialog auszuwählen.
Das war’s. owntag validiert die Datei, speichert sie sicher ab und stellt sie deinem SGTM Container bereit. Die Änderung wird innerhalb weniger Sekunden wirksam.
Nach dem Upload siehst du die Metadaten deines Keys — den Dateinamen, deine Google Cloud Project ID und die E-Mail-Adresse des Service Accounts. Der eigentliche Schlüsselinhalt wird aus Sicherheitsgründen nie angezeigt.
Key verwalten
Du kannst den Key jederzeit ersetzen, indem du eine neue JSON-Datei hochlädst. Das ist besonders praktisch für die Schlüsselrotation: Erstelle einen neuen Key in Google Cloud, lade ihn bei owntag hoch, überprüfe, ob alles funktioniert, und lösche anschließend den alten Key in Google Cloud.
Um den Service Account komplett zu entfernen, klicke auf Delete key. Dein SGTM Container läuft danach ganz normal weiter, nur BigQuery, Firestore und andere Google Cloud-Integrationen funktionieren dann nicht mehr.
Integration prüfen
Am einfachsten prüfst du die Verbindung über den Preview Mode deines SGTM:
- Öffne im Google Tag Manager deinen Server Container und klicke auf Preview (Vorschau).
- Richte ein Tag oder eine Variable ein, die BigQuery oder Firestore nutzt (z. B. die eingebaute Firestore Lookup-Variable oder ein BigQuery-Tag aus der Template Gallery).
- Löse ein Event aus und prüfe das Debug-Panel.
Wenn der Service Account korrekt konfiguriert ist, siehst du erfolgreiche Lese- oder Schreibvorgänge. Bei Problemen zeigt das Debug-Panel in der Regel eine aussagekräftige Fehlermeldung — meistens fehlt entweder eine API (zurück zu Schritt 4) oder die Berechtigungen reichen nicht aus (zurück zu Schritt 2).
Anwendungsfall: Events zu BigQuery streamen
BigQuery ist einer der häufigsten Gründe, einen Service Account einzurichten. Damit kannst du jedes Event, das an deinem SGTM Container ankommt, direkt in BigQuery streamen — und bekommst so Zugriff auf ungesampelte Rohdaten, die du vollständig kontrollierst.
Was du dafür brauchst:
- Ein BigQuery-Dataset und eine Tabelle in deinem Google Cloud-Projekt (erstelle sie in der BigQuery Console)
- Die Rolle BigQuery Data Editor auf deinem Service Account
- Die BigQuery API muss in deinem Projekt aktiviert sein
- Ein Tag-Template, das Daten in eine BigQuery Tabelle schreibt (z. B. Googles GA4-to-BigQuery-Tag aus der Template Gallery)
Installiere das Tag-Template in deinem Server GTM Container, konfiguriere es mit deinen Dataset- und Table-IDs und richte einen Trigger für die gewünschten Events ein. Jedes passende Event wird nahezu in Echtzeit in deine BigQuery-Tabelle gestreamt.
Anwendungsfall: Events mit Firestore anreichern
Firestore ermöglicht deinem SGTM Container, Daten in Echtzeit nachzuschlagen und an ausgehende Events anzuhängen. Ein klassischer Anwendungsfall: gehashte Kunden-E-Mails in Firestore speichern und bei jedem Event nachschlagen, um die Match Quality für Meta Conversions API (CAPI) oder Google Ads Enhanced Conversions zu verbessern.
Was du dafür brauchst:
- Eine Firestore-Datenbank im Native Mode in deinem Google Cloud-Projekt
- Die Rolle Cloud Datastore User auf deinem Service Account
- Die Cloud Firestore API muss in deinem Projekt aktiviert sein
Server GTM hat eine eingebaute Firestore Lookup-Variable — es muss kein Template installiert werden. Konfiguriere sie mit einem Collection-Pfad und einer Document-ID, und sie gibt die Dokumentdaten zur Verwendung in deinen Tags zurück.
Sicherheitsempfehlungen
Ein Service Account JSON Key gewährt dauerhaften Zugriff auf deine Google Cloud-Ressourcen. Gehe entsprechend sorgfältig damit um:
- Minimale Rechte. Vergib nur die IAM-Rollen, die dein SGTM Container tatsächlich braucht. Verwende niemals breite Rollen wie “Editor” oder “Owner”.
- Ein Service Account pro Zweck. Erstelle einen dedizierten Service Account für owntag, anstatt einen vorhandenen wiederzuverwenden.
- Keys regelmäßig rotieren. Erstelle einen neuen Key, lade ihn bei owntag hoch, stelle sicher, dass alles funktioniert, und lösche dann den alten Key in Google Cloud.
- Datei nicht weitergeben. Versende die Key-Datei nicht per E-Mail oder Messenger. Wenn du sie übergeben musst, nutze einen sicheren Kanal.
Wenn du deinen Key bei owntag hochlädst, wird die Datei in einem dedizierten Secret Manager gespeichert und zur Laufzeit in deinen SGTM Container eingebunden. owntag nutzt deinen Key für keinen anderen Zweck, als ihn deinem Container zur Verfügung zu stellen. Trotzdem ist das Prinzip der minimalen Rechte immer eine gute Idee — vergib nur die Berechtigungen, die du wirklich brauchst.
Datenschutz
Der Google Service Account verbindet deinen SGTM Container mit deinem eigenen Google Cloud-Projekt. Die Daten fließen direkt zwischen deinem Container und Google Cloud — owntag fängt die Daten, die über diese Verbindung laufen, weder ab, noch speichert oder verarbeitet es sie.
Dein SGTM Container läuft weiterhin auf owntag’s europäischer Infrastruktur. Der Service Account ermöglicht lediglich die Authentifizierung gegenüber Google Cloud APIs. Wo die Daten letztlich landen (z. B. ein BigQuery-Dataset in der EU-Region europe-west3), bestimmst du über die Konfiguration deines Google Cloud-Projekts.
Kurzreferenz: IAM-Rollen
| Anwendungsfall | IAM-Rolle | Role ID |
|---|---|---|
| Daten in BigQuery schreiben | BigQuery Data Editor | roles/bigquery.dataEditor |
| BigQuery-Abfragen ausführen | BigQuery Job User | roles/bigquery.jobUser |
| Firestore-Dokumente lesen/schreiben | Cloud Datastore User | roles/datastore.user |
| Google Sheets lesen | Tabelle mit der SA-E-Mail teilen | — |
| Vertex AI-Vorhersagen | Vertex AI User | roles/aiplatform.user |
| In Pub/Sub publizieren | Pub/Sub Publisher | roles/pubsub.publisher |
| Secrets abrufen | Secret Manager Secret Accessor | roles/secretmanager.secretAccessor |
Kurzreferenz: Zu aktivierende APIs
| Dienst | API-Name in GCP |
|---|---|
| BigQuery | BigQuery API |
| Firestore | Cloud Firestore API |
| Google Sheets | Google Sheets API |
| Vertex AI | Vertex AI API |
| Pub/Sub | Cloud Pub/Sub API |