Diese Anleitung zeigt, wie du Google Analytics 4 an Claude Code anbindest, sodass Claude Sessions, Conversions, Channels und Events direkt aus der GA4 Data API auswerten kann. Sie ist Teil einer Serie über das Anbinden von Marketing-Daten an Claude Code.
Service Account oder OAuth: welcher Weg?
Für den Zugriff auf die GA4 Data API gibt es zwei Authentifizierungs-Wege. Diese Anleitung nutzt den Service Account. Damit du bewusst entscheidest, hier beide transparent im Vergleich.
Service Account (in dieser Anleitung verwendet)
- Vorteile: kein menschlicher Login, kein Browser-Flow, kein ablaufender Token. Insgesamt stabiler und die bessere Wahl für Teams, weil der Zugang nicht an eine einzelne Person gebunden ist. Verlässt jemand das Team, bleibt die Anbindung bestehen.
- Nachteil: Der Service Account muss in jeder einzelnen GA4-Property als Nutzer berechtigt werden. Wer als Agentur viele Kund*innen-Properties auswertet, trägt also überall einen zusätzlichen Nutzer ein.
OAuth, also persönlicher Login
- Vorteil: keine zusätzliche Berechtigung pro Property nötig. Der Login nutzt deinen bestehenden Google-Account, der ohnehin schon Zugriff auf die Properties hat.
- Nachteil: ein interaktiver Browser-Login, dazu ein Token, der ablaufen und erneuert werden muss. Der Zugang hängt an einer Person und ihrem Account.
Kurz: Für ein dauerhaftes, team- oder agenturtaugliches Setup ist der Service Account trotz des Mehraufwands bei der Berechtigung die robustere Wahl. Geht es nur um wenige eigene Properties und einen schnellen Start, ist OAuth völlig in Ordnung. Den OAuth-Flow zeigt die Search-Console-Anleitung, er funktioniert für GA4 analog.
Wie es funktioniert
Wie bei der Search Console spricht Claude Code nicht direkt mit Google. Es schreibt ein Python-Script, das die GA4 Data API abfragt und das Ergebnis als JSON speichert, und liest diese Datei aus.
Ein Service Account ist ein technischer Account ohne menschlichen Login, den du in der Google Cloud Console anlegst und dem du anschliessend in GA4 Leserechte gibst.
Voraussetzungen
- Du bist Administrator*in der GA4-Property, die du auswerten willst.
- Python 3 ist installiert.
- Claude Code ist installiert.
- Ein Google-Cloud-Projekt. Du kannst dasselbe nutzen wie für die Search Console.
Schritt 1: Service Account anlegen
- Öffne die Google Cloud Console und wähle dein Projekt.
- Aktiviere die Google Analytics Data API: “APIs & Services” zu “Library”, suchen, dann “Enable”.
- Erstelle den Service Account: “IAM & Admin” zu “Service Accounts” zu “Create Service Account”. Name zum Beispiel “ga4-reader”. Die Rollen-Zuweisung kannst du leer lassen, die Berechtigung kommt gleich direkt in GA4.
- Erzeuge einen Schlüssel: den neuen Account anklicken, Tab “Keys” zu “Add Key” zu “Create new key” zu JSON. Die Datei wird heruntergeladen.
In der JSON-Datei steht eine E-Mail-Adresse der Form ga4-reader@dein-projekt.iam.gserviceaccount.com. Diese Adresse brauchst du gleich, also merken.
Schritt 2: Zugangsdaten sicher ablegen
Speichere die JSON ausserhalb deines Projektordners:
~/.api-credentials/ga4-service-account.json
Diese Datei ist ein vollwertiger Zugang. Niemals in git, nie per Mail oder Chat weitergeben.
Schritt 3: Service Account in GA4 berechtigen
Das ist der Schritt, den die meisten übersehen. Der Service Account existiert jetzt in Google Cloud, hat aber noch keinen Zugriff auf deine Analytics-Daten. Den erteilst du in GA4 selbst:
- Öffne analytics.google.com und wähle die Property.
- Unten links auf das Zahnrad (“Admin”).
- In der Property-Spalte auf “Property access management”.
- Oben rechts auf ”+” zu “Add users”.
- Die E-Mail-Adresse des Service Accounts einfügen.
- Rolle Viewer, das genügt für reines Lesen.
- “Notify by email” abwählen, ein Service Account hat kein Postfach.
- “Add”.
Schritt 4: Property ID notieren
Für die API brauchst du die GA4 Property ID, eine reine Zahl, nicht die Mess-ID der Form G-XXXXXXX. Du findest sie in GA4 unter Admin, Property-Spalte, “Property details”.
Schritt 5: Verbindung testen lassen
Das nötige Paket:
pip install google-analytics-data
Das Abfrage-Script schreibt Claude Code für dich. Du gibst die Property ID und den Pfad zur JSON-Datei an und sagst, was du auswerten willst, zum Beispiel Sessions und Conversions pro Channel der letzten 14 Tage. Sobald du eine saubere Liste pro Channel siehst, steht die Verbindung.
Ein Detail, das Claude berücksichtigt: GA4 hat einen Delay von rund 24 bis 48 Stunden für vollständige Conversion-Daten. Für stabile Auswertungen endet der Zeitraum auf “gestern”, nicht “heute”.
Schritt 6: Claude Code die Auswertung überlassen
Sobald das Pull-Script JSON liefert, fragst du in normaler Sprache:
- “Vergleiche Sessions und Conversions der letzten 14 Tage mit den 14 Tagen davor, pro Channel.”
- “Welche Landingpages haben die höchste Conversion-Rate bei mindestens 100 Sessions?”
- “Wo bricht der Funnel: Sessions, Engaged Sessions, Conversion, pro Channel?”
Die GA4 Data API kennt dieselben Dimensionen und Metriken wie die Oberfläche, nur in technischer Schreibweise. Du musst sie nicht auswendig kennen. Claude wählt die passenden Felder und baut die Abfrage.
Sicherheit
- Die Service-Account-JSON ist ein vollwertiger Zugang. Ausserhalb des Repos ablegen, nie in git.
- Die Viewer-Rolle in GA4 ist reiner Lesezugriff. Der Service Account kann nichts verändern.
- Zugriff entziehen: in GA4 unter “Property access management” den Account entfernen, oder in Google Cloud den Schlüssel löschen.
Häufige Stolpersteine
- 403, “User does not have sufficient permissions for this property”: Du hast Schritt 3 vergessen, den Service Account also in Google Cloud angelegt, aber nicht in GA4 berechtigt. Das ist mit Abstand der häufigste Fehler.
Property not foundoder 404: Du verwendest wahrscheinlich die Mess-ID (G-XXXXXXX) statt der Property ID. Die richtige Zahl steht in GA4 unter “Property details”.- “API has not been used in project … or it is disabled”: Die Google Analytics Data API ist im Cloud-Projekt nicht aktiviert. In der Library nachholen.
- Leere oder unerwartete Resultate: den Zeitraum prüfen. Wegen des GA4-Delays sollte er auf “gestern” enden.
Fazit
Eine JSON-Datei, eine Berechtigung in GA4, danach läuft es ohne ablaufende Tokens. Besonders stark wird die Anbindung in Kombination: GA4 zeigt das Verhalten auf der Website, Google Ads die Kosten davor. Erst zusammen ergibt sich ein belastbarer Cost-per-Lead.
Häufige Fragen
Kann der Service Account etwas in GA4 verändern?
Nein. Mit der Viewer-Rolle kann er ausschliesslich lesen.
Funktioniert das mit mehreren Properties?
Ja. Du fügst den Service Account einfach in jeder gewünschten Property unter “Property access management” hinzu.