Google Search Console einrichten
Richten Sie Google Search Console ein, wenn Workspace externe Suchmetriken wie Suchanfragen, Seiten, Länder, Geräte, Impressionen, Klicks, CTR und durchschnittliche Position im Analytics-Tab einer Site anzeigen soll. Nach der Einrichtung importiert Workspace Search-Console-Daten als Taskstream-Job und schreibt sie in den provider-neutralen Search-Metric-Speicher.
Diese Seite richtet sich an Administratoren und Betreiber. Nach Abschluss ist die veröffentlichte Workspace-Site mit einer verifizierten Google-Search-Console-Property verbunden, ein erster Sync ist geprüft und ein täglicher Sync kann über das aktive Binding laufen. Workspace ersetzt keinen Google-Search-Console-Zugriff: Die Property muss bei Google vorhanden und für den verwendeten Google-Nutzer zugänglich sein.
Platzhalter
Die Beispiele verwenden diese Platzhalter:
| Platzhalter | Bedeutung |
|---|---|
<tenant> | Workspace-Mandant oder Tenant-Kontext der Site. |
<siteId> | ID der veröffentlichten Site in Workspace. |
<productionHost> | Finaler öffentlicher Produktionshost der Site. |
<propertyUrl> | Google-Search-Console-Property, zum Beispiel https://www.example.com/ oder sc-domain:example.com. |
<googleCloudProject> | Google-Cloud-Projekt für API und OAuth-Konfiguration. |
<credentialId> | ID des verschlüsselt gespeicherten Workspace-Credentials. |
<bindingId> | ID des aktiven Workspace-Bindings zwischen Site, Property und Credential. |
<dailyCronSpec> | Cron-Ausdruck für den täglichen Sync, zum Beispiel 30 3 * * * für 03:30 UTC. |
Voraussetzungen
Prüfen Sie diese Punkte, bevor Sie Credential, Binding oder Sync anlegen:
| Bereich | Voraussetzung |
|---|---|
| Workspace-Site | Die Site ist veröffentlicht. |
| Produktionsdomain | Die Ziel-Domain ist die finale Produktionsdomain, nicht Preview oder Staging. |
| HTTPS | https://<productionHost>/ ist öffentlich erreichbar. |
| Domain-Bindung | Die Workspace-Domain ist gebunden und die Readiness ist grün. |
| SEO-Dateien | https://<productionHost>/sitemap.xml und https://<productionHost>/robots.txt sind erreichbar, soweit die Site sie verwendet. |
| Google Property | Eine Google-Search-Console-Property existiert oder wird vor der Anbindung angelegt. |
| Property-Typ | Domain Property für Domain inklusive Subdomains und Protokolle oder URL-Prefix Property für exakt eine HTTPS-URL. |
| Ownership | Die Property ist verifiziert, bei Domain Properties bevorzugt per DNS-TXT. |
| Google-Nutzer | Der OAuth-Google-Nutzer hat Zugriff auf die Search-Console-Property. |
| Google Cloud | <googleCloudProject> existiert, die Search Console API ist aktiviert und der OAuth Consent Screen ist eingerichtet. |
| OAuth-App | Für produktive Nutzung ist die OAuth-App veröffentlicht, verifiziert oder durch den Google-Workspace-Admin freigegeben. Der Testing-Modus eignet sich nur für kurzfristige Tests. |
| OAuth-Client | Ein passender OAuth-Client existiert und erlaubt die Redirect URI aus System > Integrationen > Provider-Verbindungen. |
| OAuth-Scope | Es wird ausschließlich https://www.googleapis.com/auth/webmasters.readonly verwendet. |
| Workspace-Rechte | Der ausführende Nutzer hat external_search_metrics:read und external_search_metrics:sync. |
Legen Sie das Google-OAuth-Credential über System > Integrationen > Provider-Verbindungen an. Die allgemeine Anleitung steht in Provider-Verbindungen einrichten. Legen Sie danach das Search-Console-Binding über den freigegebenen Betreiber- oder Migrationsprozess an. Speichern Sie Access Token, Refresh Token, Client Secret, OAuth-Codes, DNS-Verifizierungswerte und private Schlüssel niemals in Tickets, Chats, Logs, Dokumentation oder Taskstream-Payloads.
Die Google-API-Dokumentation beschreibt die Autorisierung über OAuth 2.0 und den lesenden Scope webmasters.readonly in der Search-Console-Autorisierung. Die importierten Kennzahlen stammen aus der Search Analytics Query API. Google beschreibt im Search-Central-Leitfaden zu Traffic-Einbrüchen die Auswertung über die letzten 16 Monate und empfiehlt API oder Export, wenn Sie Daten darüber hinaus dauerhaft in eigenen Systemen speichern wollen: Debug Google Search Traffic Drops.
Kurzablauf
- Prüfen Sie Workspace-Site, Domain-Bindung, Readiness und externe HTTPS-Erreichbarkeit.
- Legen Sie die Google-Search-Console-Property an oder öffnen Sie die bestehende Property.
- Aktivieren Sie die Search Console API im passenden Google-Cloud-Projekt.
- Richten Sie den OAuth Consent Screen und den OAuth-Client mit ausschließlich lesendem Scope ein.
- Legen Sie das Google-OAuth-Credential über System > Integrationen > Provider-Verbindungen an.
- Legen Sie ein aktives Binding zwischen Tenant, Site, Property und Credential an.
- Starten Sie einen Test-Sync und prüfen Sie ImportRun, Taskstream-Job und Summary.
- Importieren Sie verfügbare historische Daten in Fenstern von höchstens 30 Tagen.
- Richten Sie einen täglichen Sync ohne feste
dateFrom/dateToein.
Bestehendes OAuth nach Release prüfen
Nach dem Release auf Provider-Verbindungen müssen vorhandene Search-Console-OAuths normalerweise nicht neu autorisiert werden. Workspace liest weiter aus provider_auth_tokens; der neue Resolver prüft zusätzlich Provider, Tenant, Credential-ID, Capability und Scope.
Prüfen Sie ein bestehendes Setup in dieser Reihenfolge:
- Öffnen Sie System > Integrationen > Provider-Verbindungen.
- Suchen Sie die Verbindung mit Provider
google_search_console. - Vergleichen Sie die Konto-ID mit der Search-Console-Property oder der im Betreiberprozess verwendeten Property-Referenz.
- Notieren Sie die angezeigte
<credentialId>. - Führen Sie Testen für die Verbindung aus.
- Prüfen Sie das Search-Console-Binding der Site:
- Tenant ist
<tenant>. - Site ist
<siteId>. - Provider ist
google_search_console. - Property ist
<propertyUrl>. - Credential ist dieselbe
<credentialId>. - Das Binding ist aktiv.
- Starten Sie einen Test-Sync für ein kleines Zeitfenster oder ohne Body über
syncLookbackDays.
Sie müssen das OAuth nur neu verbinden, wenn einer dieser Befunde auftritt:
| Befund | Aktion |
|---|---|
| Keine Provider-Verbindung sichtbar | Legen Sie die Verbindung über den Wizard neu an und übernehmen Sie die neue <credentialId> ins Binding. |
| Verbindungstest meldet Scope-Fehler | Verbinden Sie neu und verwenden Sie nur https://www.googleapis.com/auth/webmasters.readonly. |
| Verbindungstest oder Sync meldet Refresh-/Credential-Fehler | Prüfen Sie OAuth-Client, Client Secret, Consent Screen, Google-App-Status und Google-Nutzerzugriff; verbinden Sie danach neu. |
| Binding zeigt auf eine andere Credential-ID | Aktualisieren Sie das Binding auf die aktive <credentialId> oder legen Sie ein neues Binding an. |
| Google meldet keinen Property-Zugriff | Geben Sie dem OAuth-Google-Nutzer Zugriff auf die Property oder verbinden Sie mit einem passenden Nutzer neu. |
Wenn Sie neu verbinden und dieselbe Konto-ID verwenden, aktualisiert Workspace den bestehenden Token-Datensatz. Wenn eine neue Credential-ID entsteht, muss das Search-Console-Binding auf diese neue ID zeigen.
Workspace prüfen
Prüfen Sie Workspace, bevor Sie Google-OAuth oder Bindings anfassen:
- Melden Sie sich im richtigen Tenant-Kontext an.
- Prüfen Sie die Rechte
external_search_metrics:readundexternal_search_metrics:sync. - Prüfen Sie die Site-Liste und bestätigen Sie
<siteId>. - Prüfen Sie die Domain-Liste und bestätigen Sie
<productionHost>. - Prüfen Sie die Web-Readiness der Site.
- Prüfen Sie die externe HTTPS-Erreichbarkeit:
https://<productionHost>/
https://<productionHost>/sitemap.xml
https://<productionHost>/robots.txtBrechen Sie ab, wenn die finale Produktionsdomain noch nicht gebunden, nicht öffentlich erreichbar oder nicht readiness-grün ist.
Google vorbereiten
- Öffnen Sie Google Search Console und legen Sie die Property an oder öffnen Sie die bestehende Property.
- Wählen Sie den Property-Typ bewusst:
- Domain Property für Domain, Subdomains und Protokolle.
- URL-Prefix Property für exakt eine HTTPS-URL.
- Notieren Sie
<propertyUrl>exakt. Verwenden Sie bei Domain Properties die von Google verwendetesc-domain:-Referenz, wenn Ihr Betreiberprozess diese Form erwartet. - Verifizieren Sie die Ownership, bei Domain Properties bevorzugt per DNS-TXT.
- Prüfen Sie, dass der OAuth-Google-Nutzer Zugriff auf die Property hat.
- Öffnen Sie Google Cloud Console und wählen Sie
<googleCloudProject>. - Aktivieren Sie die Search Console API.
- Richten Sie den OAuth Consent Screen ein:
- App-Name
- Support-E-Mail
- Entwicklerkontakt
- keine unnötigen Scopes
- Fügen Sie nur diesen Scope hinzu:
https://www.googleapis.com/auth/webmasters.readonly- Veröffentlichen, verifizieren oder erlauben Sie die OAuth-App für den produktiven Betrieb. Verwenden Sie den Testing-Modus nur für kurzfristige Tests.
- Erstellen Sie den OAuth-Client und tragen Sie die Redirect URI aus System > Integrationen > Provider-Verbindungen ein.
- Speichern Sie die OAuth-Client-Daten nur in einem sicheren Betreiberkontext. Committen Sie Client Secret oder OAuth-Client-JSON nicht und kopieren Sie diese Werte nicht in Chat, Ticket oder Dokumentation.
Credential anlegen
Legen Sie das Credential im Admin-Wizard an:
- Öffnen Sie System > Integrationen > Provider-Verbindungen.
- Wählen Sie Provider verbinden.
- Wählen Sie Google Search Console.
- Verwenden Sie als Konto-ID
<propertyUrl>oder die im Betreiberprozess erwartete Property-Referenz. - Erfassen Sie Client ID und Client Secret des OAuth-Clients.
- Prüfen Sie die angezeigte Redirect URI gegen den OAuth-Client in Google Cloud.
- Öffnen Sie die Zustimmung und schließen Sie den OAuth-Dialog ab.
- Dokumentieren Sie
<credentialId>aus der Verbindungsliste, aber keine Secret-Werte.
Das Credential ist erfolgreich angelegt, wenn die Verbindungsliste Provider google_search_console, die Konto-ID, die Credential-ID und einen aktiven Status zeigt. Ein erfolgreicher Verbindungstest bestätigt Credential, Verschlüsselung, Refresh-Material und Scope. Er ersetzt nicht das fachliche Binding der Site.
Wenn der Verbindungstest nicht verfügbar oder auth_failed meldet, konnte Workspace das gespeicherte Google-Credential nicht erneuern. Ein bereits ungültiger oder widerrufener Refresh Token lässt sich nicht serverseitig reparieren. Prüfen Sie OAuth-App, Client Secret, Search-Console-Zugriff und Google-App-Status und nutzen Sie danach Neu verbinden in der Provider-Verbindungsliste. Workspace verwendet dabei die gespeicherte Client-ID und das verschlüsselte Client-Secret; Sie geben beide Werte nicht erneut ein. Nach erfolgreicher Zustimmung aktualisiert Workspace die bestehende Verbindung. Das bestehende Search-Console-Binding bleibt dann gültig.
Manuelle Search-Console-Sync-Jobs retryen solche Credential-Fehler nicht weiter. Starten Sie den Sync erst erneut, nachdem der Verbindungstest wieder erfolgreich ist.
Binding anlegen
Legen Sie ein aktives Binding zwischen Workspace und Google Search Console an:
| Feld | Wert |
|---|---|
| Tenant | <tenant> |
| Site | <siteId> |
| Provider | google_search_console |
| Property | <propertyUrl> |
| Credential | <credentialId> |
syncLookbackDays | 1 bis 30, empfohlen 7 |
Dokumentieren Sie <bindingId>. Stellen Sie sicher, dass nur ein aktives Binding pro Site und Property existiert, wenn der Sync ohne explizite bindingId laufen soll. Bei mehreren aktiven Bindings muss jeder Sync die gewünschte bindingId angeben.
Das Binding ist korrekt, wenn Workspace die Credential-Referenz tenant- und provider-scoped akzeptiert. Ein Binding darf nie auf ein Credential eines anderen Tenants oder eines anderen Providers zeigen. Wenn Sie nach einem erneuten OAuth-Onboarding eine neue Credential-ID erhalten, aktualisieren Sie das Binding, bevor Sie den nächsten Sync starten.
Mit nucli prüfen
nucli kann Search-Console-Setup und Provider-Verbindungen prüfen, aber das OAuth-Onboarding nicht selbst durchführen. Der OAuth-Dialog läuft über System > Integrationen > Provider-Verbindungen.
Nützliche Prüfaufrufe:
nucli --tenant <tenant> api GET /api/v1/provider-connections --redact --save provider-connections.json
nucli --tenant <tenant> api POST /api/v1/provider-connections/<credentialId>/test --summary
nucli --tenant <tenant> api POST /api/v1/site/analytics/sites/<siteId>/external-search/google-search-console/sync --input sync.json --summary
nucli --tenant <tenant> api GET /api/v1/site/analytics/sites/<siteId>/external-search/google-search-console/status --summary
nucli --tenant <tenant> api GET '/api/v1/site/analytics/sites/<siteId>/external-search/summary?provider=google_search_console' --summaryBeispiel für sync.json mit explizitem Binding:
{
"bindingId": "<bindingId>"
}Nutzen Sie --summary oder --redact, wenn Sie Ergebnisse dokumentieren. Speichern Sie keine OAuth-Client-Daten, Tokens oder Google-Secret-Dateien für nucli-Aufrufe. Wenn ein Aufruf eine Eingabedatei braucht, legen Sie diese in einem geschützten Arbeitsverzeichnis ab und entfernen Sie sie nach der Prüfung.
Test-Sync starten
Starten Sie den ersten Import über den Site-Analytics-Endpunkt:
POST /api/v1/site/analytics/sites/<siteId>/external-search/google-search-console/sync
Authorization: Bearer <token-mit-external_search_metrics:sync>
Content-Type: application/jsonOhne Body nutzt Workspace das aktive Binding der Site und syncLookbackDays:
{}Ein erfolgreicher Aufruf liefert 202 Accepted mit Job-ID:
{
"jobId": "<jobId>",
"status": "accepted",
"alreadyRunning": false
}Wenn für dieselbe Binding-/Property-Kombination bereits ein aktiver Job läuft, liefert Workspace denselben aktiven Job zurück und setzt alreadyRunning auf true.
Überwachen Sie den Taskstream-Job bis zum Abschluss. Prüfen Sie danach den ImportRun:
| Feld | Erwartung |
|---|---|
status | completed |
dateFrom / dateTo | Geprüfter Zeitraum |
rowsRead | Von Google gelesene Tages-Total- und Detailzeilen |
rowsWritten | In Workspace gespeicherte Aggregatzeilen |
Leere Werte können gültig sein, wenn Google für Property und Zeitraum noch keine Daten liefert.
Historischen Backfill importieren
Google Search Console stellt historische Performance-Daten nur begrenzt bereit. Google dokumentiert für den Performance-Kontext aktuell 16 Monate; prüfen Sie vor großen Backfills die aktuelle Google-Dokumentation und beginnen Sie mit dem ältesten noch verfügbaren vollständigen Tag.
Workspace akzeptiert pro Sync-Fenster höchstens 30 inklusive Tage. Teilen Sie den Backfill deshalb in Fenster von maximal 30 Tagen auf und warten Sie nach jedem Start auf den Taskstream-Abschluss.
Starten Sie jedes Fenster mit expliziter bindingId, dateFrom und dateTo:
{
"bindingId": "<bindingId>",
"dateFrom": "YYYY-MM-DD",
"dateTo": "YYYY-MM-DD"
}Workspace akzeptiert Datumswerte im Format YYYY-MM-DD. dateTo darf nicht nach gestern in UTC liegen. Dokumentieren Sie für jedes Fenster Zeitraum, Job-ID, ImportRun-ID, rowsRead, rowsWritten und Status.
Prüfen Sie nach dem Backfill die Summary über das volle Fenster. Der Parameter to ist exklusiv:
GET /api/v1/site/analytics/sites/<siteId>/external-search/summary?provider=google_search_console&from=<start>&to=<exclusiveEnd>
Authorization: Bearer <token-mit-external_search_metrics:read>Dokumentieren Sie danach:
- frühestes gespeichertes Datum,
- spätestes gespeichertes Datum,
- Summe Impressionen,
- Summe Klicks,
- CTR,
- Average Position,
- Anzahl gespeicherter Aggregate Rows.
Täglichen Sync planen
Richten Sie nach Test-Sync und Backfill einen täglichen Sync ein:
- Planen Sie den Sync einmal täglich.
- Nutzen Sie nachts oder frühmorgens UTC, zum Beispiel 03:30 UTC.
- Verwenden Sie keine festen
dateFrom- oderdateTo-Werte. - Lassen Sie den Sync über
<bindingId>undsyncLookbackDayslaufen, typischerweise mit7Tagen. - Begrenzen Sie die Parallelität pro Tenant, Site und Property auf
1. - Setzen Sie
MaxRetriesauf3. - Setzen Sie
RetryDelayauf10Minuten.
Der Lookback synchronisiert mehrere zurückliegende Tage erneut. So übernimmt Workspace verspätete oder von Google nachkorrigierte Daten, ohne alte Buckets zu duplizieren.
Nutzen Sie bevorzugt einen unterstützten Produkt- oder Admin-API-Pfad, wenn Ihre Installation dafür einen freigegebenen Scheduler-Pfad anbietet. Wenn kein solcher Pfad verfügbar ist, dürfen nur Plattformadmins einen begrenzten Taskstream-Cron-Job direkt anlegen. Die Taskstream-Payload enthält nur Referenzen:
{
"tenant_id": "<tenant>",
"site_id": "<siteId>",
"binding_id": "<bindingId>"
}Die Payload enthält keine Tokens, Client Secrets, OAuth-Codes, DNS-Verifizierungswerte oder privaten Schlüssel.
Prüfen Sie den angelegten täglichen Job:
| Feld | Erwartung |
|---|---|
| Status | pending |
| Scheduler | cron |
| Scheduler Spec | <dailyCronSpec> |
| Runnable Type | publicanalytics.google_search_console.sync |
| Runnable Data | Nur Tenant-, Site- und Binding-Referenzen |
| Concurrency Limit | 1 |
| Retries | 3 |
| Retry Delay | 10m |
| Stats | Statistikzeile vorhanden |
Dokumentieren Sie klar, warum eine direkte Taskstream-Anlage nötig war, wenn kein unterstützter Produkt- oder Admin-API-Pfad verfügbar war.
Ergebnis prüfen
Lesen Sie die importierten Search-Metriken über:
GET /api/v1/site/analytics/sites/<siteId>/external-search/summary?provider=google_search_console
Authorization: Bearer <token-mit-external_search_metrics:read>Die Antwort enthält aggregierte Werte für Impressionen, Klicks, CTR, durchschnittliche Position sowie Aufschlüsselungen nach Suchanfragen, Ländern, Seiten und Geräten. Die KPI-Summen verwenden eigene Tages-Totals aus Google Search Console. Die Aufschlüsselungen verwenden die detailbasierten Search-Console-Zeilen nach Query, Page, Country und Device. Wenn für einen alten Zeitraum noch keine Tages-Totals vorliegen, kann die API für die KPI- Summen auf Detailzeilen zurückfallen und totalsSource entsprechend ausweisen.
Prüfen Sie den Importzustand über:
GET /api/v1/site/analytics/sites/<siteId>/external-search/google-search-console/status
Authorization: Bearer <token-mit-external_search_metrics:read>Der Status zeigt pro Binding den letzten Lauf, den letzten erfolgreichen Lauf, das letzte importierte Datum sowie getrennte letzte Datumswerte für Tages- Totals und Detailzeilen. Die Antwort enthält keine OAuth-Tokens, Client Secrets oder Credential-Daten. Taskstream-Jobdaten enthalten nur Tenant-, Site-, Binding- und Datumsreferenzen.
Im Site Manager sehen berechtigte Nutzer die importierten Kennzahlen unter CMS > Sites im Tab Analyse, Abschnitt Externe Suche, sobald der Taskstream-Job abgeschlossen ist und Google für den Zeitraum Daten geliefert hat.
Speicherung und Historie
Workspace speichert externe Search-Metriken provider-neutral aggregiert.
| Dimension | Bedeutung |
|---|---|
| Datum | Tag des Search-Console-Buckets. |
| Query | Suchanfrage, soweit Google sie bereitstellt. |
| Page URL / Path | Zielseite oder normalisierter Pfad. |
| Country | Land des Search-Signals. |
| Device | Geräteklasse. |
| Search Type | Suchtyp, aktuell Google Web Search. |
| Wert | Bedeutung |
|---|---|
impressions | Impressionen. |
clicks | Klicks. |
ctr | Klickrate. |
position | Durchschnittliche Position. |
Workspace speichert zusätzlich interne Tages-Total-Buckets. Diese Buckets liefern die KPI-Summen der Summary. Detail-Buckets liefern die Tabellen nach Suchanfragen, Ländern, Seiten und Geräten. Google kann detailbasierte Zeilen aus Datenschutz- oder Aggregationsgründen unterzählen; deshalb dürfen diese Detailzeilen nicht als vollständiger Tages-Total-Vertrag interpretiert werden.
Re-Syncs derselben Buckets werden per Upsert aktualisiert, nicht als neue Version dupliziert. ImportRuns bleiben als Sync-Protokoll erhalten. Der Summary-Endpunkt aggregiert über gespeicherte Daten und unterstützt from und to.
Erfolg erkennen
Die Einrichtung funktioniert, wenn diese Prüfungen erfüllt sind:
| Prüfung | Erwartetes Ergebnis |
|---|---|
| Google Property | Die Property existiert in Google Search Console und der OAuth-Nutzer hat Zugriff. |
| Google API | Die Search Console API ist im Google-Cloud-Projekt aktiviert. |
| Scope | Das Credential enthält https://www.googleapis.com/auth/webmasters.readonly. |
| Workspace Credential | Ein verschlüsselter Provider-Token für google_search_console existiert im Tenant. |
| Binding | Ein aktives Binding verbindet Tenant, Site, Property-URL und Credential-ID. |
| Rechte | Lesende Nutzer haben external_search_metrics:read; Sync-Starter haben external_search_metrics:sync. |
| Test-Sync | Der Sync-Endpunkt liefert 202 Accepted und eine Job-ID. |
| Status | Der Status-Endpunkt zeigt letzten Lauf, letzten erfolgreichen Lauf und letztes importiertes Datum ohne Credential-Daten. |
| Auswertung | Die Summary zeigt nach Jobabschluss Impressionen, Klicks oder leere, aber gültige Breakdowns für den geprüften Zeitraum. |
| Täglicher Job | Der tägliche Job läuft über Binding und Lookback, nicht über feste Datumswerte. |
Abbrechen, wenn
Brechen Sie die Einrichtung ab, wenn einer dieser Punkte zutrifft:
| Kriterium | Grund |
|---|---|
| Produktionsdomain nicht final | Search-Daten würden an eine falsche Property oder Staging-Domain gebunden. |
| Site nicht öffentlich erreichbar | Google und Workspace können die produktive Site nicht belastbar prüfen. |
| Readiness nicht grün | Die Site ist noch nicht bereit für den produktiven Suchmetriken-Import. |
| Google Property nicht verifiziert | Der OAuth-Nutzer kann keine belastbaren Search-Daten liefern. |
| OAuth-Nutzer ohne Property-Zugriff | Der Sync würde mit Provider- oder Credential-Fehlern scheitern. |
| Search Console API nicht aktiviert | Google akzeptiert die API-Anfragen nicht. |
| OAuth Consent blockiert Nutzer | Der Admin-OAuth-Flow kann nicht sicher abgeschlossen werden. |
| Scope nicht exakt read-only | Workspace benötigt nur webmasters.readonly; breitere Scopes sind nicht erforderlich. |
| Secret-Werte müssten kopiert werden | Secrets dürfen nicht in Chat, Ticket, Log, Doku oder Taskstream-Payload gelangen. |
| Kein sicherer Credential-Store | Token und Client Secret dürfen nicht unverschlüsselt gespeichert werden. |
| Mehrere aktive Bindings unklar | Der Sync braucht eine eindeutige bindingId. |
Betreiberprotokoll pflegen
Dokumentieren Sie die Einrichtung in Ihrem Betriebsprotokoll oder in der zuständigen Work Order. Halten Sie nur Referenzen und Ergebnisse fest:
- Status und Scope der Einrichtung,
<tenant>und<siteId>,<productionHost>und beobachtete Readiness,<propertyUrl>,<credentialId>,<bindingId>,syncLookbackDays,- Job-IDs und ImportRun-IDs,
- Sync- und Backfill-Zeiträume,
rowsRead,rowsWrittenund Status je Fenster,- frühestes und spätestes gespeichertes Datum,
- täglicher Job mit
<dailyCronSpec>, - offene Risiken.
Dokumentieren Sie keine Secret-Werte. Prüfen Sie vor Commit oder Übergabe:
- keine OAuth-Client-JSON-Dateien im Git-Status,
- keine Access Tokens, Refresh Tokens, Client Secrets, OAuth-Codes, DNS-Verifizierungswerte oder privaten Schlüssel in Artefakten,
- Secret-Muster-Scan ausgeführt,
- Format-, Lint- oder Doku-Checks für neue Betreiberhilfen ausgeführt,
git diff --checkohne Befund.
Fehlersuche
Nutzen Sie diese Prüfschritte, wenn der Import nicht startet oder keine Werte erscheinen:
| Symptom | Prüfen Sie |
|---|---|
| 404 auf OAuth Callback | Prüfen Sie Redirect URI, Admin-Origin und den verwendeten OAuth-Client. |
Google meldet App nicht überprüft | Prüfen Sie im Testmodus, ob der ausführende Google-Nutzer als Testnutzer eingetragen ist und ob der richtige Consent Screen verwendet wird. |
ERR_GSC_BINDING_NOT_FOUND | Für die Site fehlt ein aktives Binding, die bindingId ist falsch oder mehrere aktive Bindings erfordern eine eindeutige bindingId. |
ERR_GSC_BINDING_INACTIVE | Das Binding ist inaktiv. Aktivieren Sie es oder legen Sie ein neues Binding an. |
ERR_GSC_DATE_RANGE_INVALID | dateFrom liegt nach dateTo, das Fenster ist größer als 30 Tage oder dateTo liegt nach gestern UTC. |
ERR_GSC_CREDENTIAL_INVALID | Prüfen Sie Token, Scope, Refresh-Material, Property-Zugriff und Provider google_search_console. |
| Credential-Fehler im ImportRun | Prüfen Sie Provider google_search_console, Tenant-Zuordnung, verschlüsselten Token, Refresh-Material und Scope. |
| Google liefert 403 oder keine Daten | Prüfen Sie, ob der OAuth-Nutzer Zugriff auf die Search-Console-Property hat und die Property-URL exakt zum Binding passt. |
| Summary bleibt leer | Prüfen Sie, ob Google für den Zeitraum bereits Search-Daten bereitstellt und ob der Taskstream-Job abgeschlossen ist. Search-Console-Daten können verzögert verfügbar sein. |
| Täglicher Sync überschreibt nichts sichtbar | Prüfen Sie syncLookbackDays, Google-Datenverfügbarkeit und ob der Job ohne feste Datumswerte läuft. |
| Nutzer sehen keine Auswertung | Prüfen Sie external_search_metrics:read und den Zugriff auf die Site. |
| Nutzer können keinen Sync starten | Prüfen Sie external_search_metrics:sync. |
Sicherheitsgrenzen
Verwenden Sie für Workspace nur den lesenden Scope https://www.googleapis.com/auth/webmasters.readonly. Der schreibende Scope https://www.googleapis.com/auth/webmasters ist für den Import von Search-Analytics-Daten nicht erforderlich.
Workspace schreibt keine Google-Credentials in Taskstream-Jobdaten, API-Antworten oder ImportRun-Fehlermeldungen. Behandeln Sie Google-OAuth-Daten trotzdem als Secrets und geben Sie sie nicht an Support-Tickets, Dokumentationsbeispiele oder Chatnachrichten weiter.
Taskstream-Payloads enthalten nur Tenant-, Site-, Binding- und Datumsreferenzen. Betreiberprozesse dürfen Secret-Werte weder loggen noch in Fehlermeldungen, Screenshots oder Betriebsprotokolle übernehmen.
Nächste Schritte
- Lesen Sie Website-Analytics im fachlichen Kontext: Website-Analytics und Marketing-Attribution
- Prüfen Sie API-Konventionen: OpenAPI verwenden