Google Cloud Platform-Anbindung

So verbindest du deinen Google Cloud Service Account mit owntag, um BigQuery, Firestore und weitere Google Cloud-Dienste in deinem Server Side GTM Container zu nutzen.

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:

IntegrationWas du damit machen kannst
BigQueryEvent-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.
FirestoreEvents 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 SheetsTabellen als leichtgewichtige Lookup-Tabellen nutzen — praktisch für Kampagnen-Konfiguration, Produkt-Margen oder kleine Referenzlisten.
Vertex AIML-Modelle in Echtzeit abfragen, z. B. für prognostizierten Customer Lifetime Value (Smart Bidding), Lead Scoring oder Betrugserkennung.
Pub/SubNachrichten 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.

  1. Navigiere in der Google Cloud Console zu IAM & AdminService Accounts (bzw. IAM & VerwaltungDienstkonten).
  2. Klicke auf Create Service Account (bzw. Dienstkonto erstellen).
  3. Vergib einen aussagekräftigen Namen, zum Beispiel sgtm-owntag. Die E-Mail-Adresse wird automatisch generiert.
  4. Klicke auf Create and Continue (bzw. Erstellen und fortfahren).
Google Cloud Console mit der Service Accounts-Übersicht unter IAM & Admin, der Button 'Create service account' ist hervorgehoben
Google Cloud Console Formular zum Erstellen eines Service Accounts mit 'sgtm-owntag' als Name und der automatisch generierten E-Mail-Adresse

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öchtestBenötigte IAM-Rolle
Daten in BigQuery schreibenBigQuery Data Editor
Firestore-Dokumente lesen und schreibenCloud 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.

Google Cloud Console Rollenzuweisung mit den Rollen 'BigQuery Data Editor' und 'Cloud Datastore User' für den Service Account

Rollen kannst du jederzeit nachträglich unter IAM & AdminIAM in der Google Cloud Console anpassen.

Schritt 3: JSON Key erstellen und herunterladen

  1. Klicke in der Service Accounts-Liste auf den gerade erstellten Service Account.
  2. Wechsle zum Tab Keys.
  3. Klicke auf Add KeyCreate new key.
  4. Wähle JSON als Schlüsseltyp und klicke auf Create.
  5. Die JSON Key-Datei wird automatisch auf deinen Rechner heruntergeladen.
Google Cloud Console Keys-Tab des sgtm-owntag Service Accounts mit geöffnetem 'Add key'-Dropdown und hervorgehobenem 'Create new key'
Google Cloud Console Dialog 'Create private key' mit ausgewähltem JSON-Schlüsseltyp und dem Create-Button
Google Cloud Console Bestätigung, dass der private Schlüssel auf deinem Rechner gespeichert wurde, mit angezeigtem Dateinamen der JSON-Datei

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 & ServicesLibrary 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.

GCP API Library mit der BigQuery API-Produktseite und dem Badge 'API Enabled'

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

  1. Logge dich in der owntag Console unter console.owntag.eu ein.
  2. Öffne den Container, den du verbinden möchtest.
  3. Klicke in der Seitenleiste auf Google Service Account.
  4. 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.
owntag Console mit der Google Service Account-Seite, ausgewählt in der Seitenleiste, mit Upload-Bereich und dem Button 'Select JSON file'

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.

owntag Console nach erfolgreichem Upload des Service Account Keys, mit Anzeige von Dateiname, Project ID, Client E-Mail sowie den Buttons 'Replace key' und 'Delete key'

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:

  1. Öffne im Google Tag Manager deinen Server Container und klicke auf Preview (Vorschau).
  2. 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).
  3. 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

AnwendungsfallIAM-RolleRole ID
Daten in BigQuery schreibenBigQuery Data Editorroles/bigquery.dataEditor
BigQuery-Abfragen ausführenBigQuery Job Userroles/bigquery.jobUser
Firestore-Dokumente lesen/schreibenCloud Datastore Userroles/datastore.user
Google Sheets lesenTabelle mit der SA-E-Mail teilen
Vertex AI-VorhersagenVertex AI Userroles/aiplatform.user
In Pub/Sub publizierenPub/Sub Publisherroles/pubsub.publisher
Secrets abrufenSecret Manager Secret Accessorroles/secretmanager.secretAccessor

Kurzreferenz: Zu aktivierende APIs

DienstAPI-Name in GCP
BigQueryBigQuery API
FirestoreCloud Firestore API
Google SheetsGoogle Sheets API
Vertex AIVertex AI API
Pub/SubCloud Pub/Sub API