Google Bewertungen in BigQuery

Jede Google Bewertung als Zeile in Ihrem eigenen Projekt, mit dem Standort, der sie verdient hat. Damit hört die Frage auf, wie hoch die Bewertung ist, und wird zu: welcher Standort weicht von denen ab, die ihm ähneln.

In unter fünf Minuten eingerichtet • Keine Demo nötig

BigQuery halcyon-analytics.reviews.google_reviews
Google Business Profile 61,482 rows · 34 locations
location
review_date
score
Sheffield Crookes
2026-09-05 09:12
2.0
Bristol Gloucester Rd
2026-09-05 08:47
5.0
Leeds Headingley
2026-09-04 19:30
4.0
Manchester Chorlton
2026-09-04 17:02
5.0
Sheffield Crookes
2026-09-04 16:41
1.0
  • chewy
  • qonto
  • brevo
  • jins
  • filmin
  • lugg

Die Frage ist, welcher Standort abweicht

Google Business Profile gibt Ihnen eine Bewertung pro Standort und eine Liste der Bewertungen darunter. Es wird Ihnen nie sagen, dass einunddreißig Standorte zwischen 4,5 und 4,7 liegen, während einer bei 3,4 steht, denn es hat keine Möglichkeit, diese Zahlen nebeneinanderzustellen. Im Warehouse ist das ein GROUP BY und ein ORDER BY, und es passt auf einen Bildschirm.

Google ordnet jede Bewertung einem Standort zu, und Reviewflowz gibt jedem Standort sein eigenes Profil, also wird der Standortname auf jede Zeile geschrieben, statt aus dem Text abgeleitet zu werden. Ein standortförmiges Problem hat dann eine Form, nach der Sie abfragen können.

Diese Form ist die Diagnose. Eine Preisänderung liest sich so, als würde das ganze Filialnetz gemeinsam abdriften. Eine Lücke im Dienstplan, ein Kartenlesegerät, das ausgefallen ist, ein Manager, der im März gegangen ist, liest sich so, dass ein Standort fällt, während seine Nachbarn stabil bleiben. Welcher Standort sagt Ihnen, wen Sie anrufen müssen, und das ist eine Abfrage, keine Vermutung.

Die Anschlussfrage ist eine WHERE-Klausel, denn der vollständige Bewertungstext ist eine gewöhnliche Spalte. Zählen Sie die Bewertungen, die seit März Parken erwähnen, aufgeteilt nach Standort, und Sie kennen das Problem im Filialnetz, bevor es jemand in einem Regionalmeeting anspricht.

BigQuery Query editor
-- which sites are behind their own region
SELECT r.location,
       ROUND(AVG(r.score), 1) AS rating,
       COUNT(*) AS reviews
FROM `halcyon-analytics.reviews.google_reviews` r
JOIN `halcyon-analytics.ops.sites` s USING (location)
WHERE r.review_date >= '2026-03-01'
GROUP BY r.location
ORDER BY rating
Results 5 of 34 locations in 0.6s
location rating reviews
Sheffield Crookes 3.4 96
Nottingham W Bridgford 4.5 88
Leeds Headingley 4.6 118
Manchester Chorlton 4.6 173
Bristol Gloucester Rd 4.7 141

Eine Tabelle, kein Bericht

Was ankommt, ist eine Tabelle, kein Dashboard, das jemand anders entworfen hat. Eine Zeile pro Google Bewertung: der Standort, die Bewertungs-ID, der Zeitstempel, die Bewertung, der vollständige Text, die erkannte Sprache, die Tags und ein Link zurück zur Bewertung auf Maps. Einfache Spalten, nichts zum Reverse Engineering, nichts, wofür Sie uns extra bitten müssen.

Der Standort steht auf jeder Zeile, weil Google Ihnen ein Profil pro Standort gibt und Reviewflowz es dabei belässt. Er kommt als der Name an, den Google führt, nicht als ID, also benennen Sie diese Spalte selbst, wenn Sie die Tabelle deklarieren.

Der Bewertungstext ist eine STRING-Spalte wie jede andere, also wird der Begriff, der Sie interessiert, zu einer WHERE-Klausel statt zu einem Nachmittag Lesearbeit. Reviewflowz erkennt die Sprache direkt aus dem Text, weshalb eine französische Bewertung auf einem Brüsseler Eintrag trotzdem so gruppiert wird, wie Sie es erwarten würden.

Eine Spalte, die Sie nicht finden werden, und das sagen wir lieber laut: Diese Tabelle trägt die Bewertung, nicht die Antwort. Antwortabdeckung pro Standort ist eine berechtigte Frage, und eine Seite, die stillschweigend suggeriert, dass diese Tabelle sie beantwortet, würde Sie einen Vormittag kosten.

BigQuery halcyon-analytics.reviews.google_reviews Schema
location STRING

One row per review, tagged to the site

Join key
review_id STRING Stable, so updates land in place
review_date TIMESTAMP When the review was posted
score FLOAT64 1.0 to 5.0
review_text STRING The full text, queryable
language STRING Detected from the text
tags STRING Themes, filled as reviews arrive
review_url STRING Back to the review on Google Maps

Google gives one profile per location, so the site name is on every row.

Wie die Zeilen tatsächlich in BigQuery ankommen

Es gibt kein verwaltetes BigQuery-Ziel zum Anklicken, und diese Seite wird nicht so tun, als gäbe es eins. Was Reviewflowz Ihnen gibt, ist ein Google Sheet in Ihrem eigenen Drive, das es aktuell hält: eine neue Google Bewertung wird innerhalb einer halben Stunde zu einer neuen Zeile, eine bearbeitete Bewertung aktualisiert ihre Zeile direkt, und eine Bewertung, die Google entfernt, verliert ihre Zeile.

BigQuery liest ein Drive-basiertes Google Sheet als externe Tabelle. Ein CREATE EXTERNAL TABLE gegen die Sheet-URL, und google_reviews existiert in Ihrem Dataset, lässt sich wie jede andere Tabelle abfragen und stimmt zum Abfragezeitpunkt, weil es das Sheet selbst liest, nicht eine Kopie davon. Nichts zu planen, nichts am Laufen zu halten.

Wenn Sie lieber eine native, partitionierte Tabelle hätten, ist die Review API der andere Weg. Fragen Sie sie ab oder nutzen Sie den Webhook, und laden Sie sie dann mit dem Job, den Sie schon für jede andere Quelle nutzen. Das ist Arbeit, die ein Datenteam einmal schreibt.

So oder so kommt die Historie gleich mit. Auf einem bezahlten Plan lädt ein einziger Klick jede vergangene Google Bewertung über alle Standorte, sodass die Trendlinie sofort vollständig ist, statt sich erst im nächsten Quartal zu füllen.

resyncs every 30 min
Google Business Profile Google Sheets BigQuery
Google
reviews
Sheet in
your Drive
External table
in BigQuery
BigQuery Run once
CREATE EXTERNAL TABLE
  `halcyon-analytics.reviews.google_reviews`
OPTIONS (
  format = 'GOOGLE_SHEETS',
  uris = ['https://docs.google.com/spreadsheets/d/1a9F...'],
  skip_leading_rows = 1
)

Reads the sheet at query time, so there is nothing to schedule and nothing to keep alive.

Verknüpfen Sie sie mit dem, was Sie schon pro Standort führen

Standort ist ein Join-Schlüssel, den Sie bereits haben. Jedes Unternehmen mit mehr als einem Standort führt eine Tabelle mit einer Zeile pro Standort: Umsatz, Personalstunden, Kundenfrequenz, Öffnungszeiten, das Datum der letzten Renovierung. Google Bewertungen kommen genauso getaggt an, also ist das Zusammenführen ein JOIN und kein Projekt.

Genau dort leben die interessanten Zahlen. Bewertung neben Umsatz pro Besuch zeigt, was ein schlechtes Quartal in einer Filiale tatsächlich kostet. Bewertung neben Dienstplanstunden zeigt, ob der Standort, über den sich alle beschweren, derjenige ist, den niemand besetzt hat.

Es korrigiert auch den Vergleich. Eine 3,4 bedeutet nur etwas neben den Standorten, die ihr ähneln, also verknüpfen Sie mit Ihren eigenen Segmenten, Innenstadtlage gegen Fachmarktzentrum, und vergleichen Sie einen Standort mit seinesgleichen statt mit dem Netzdurchschnitt.

Das ist der ganze Grund, Google Bewertungen in ein Warehouse zu bringen, statt sie in einem Tool zu lesen. Ein Bewertungstool kann Ihnen immer nur etwas über Bewertungen sagen. Das Warehouse ist der Ort, an dem eine Bewertung neben der Besetzung, den Einnahmen und der Renovierung liegt, die sie erklären, und an dem die Erklärung eine Spalte ist, keine Theorie.

BigQuery
reviews.google_reviews
location
review_date
score
review_text
USING (location)
Your data
ops.sites
location
revenue
staff_hours
footfall
Result
location rating ops.sites revenue_per_visit
Sheffield Crookes 3.4 GBP 11.20
Leeds Headingley 4.6 GBP 18.40
Bristol Gloucester Rd 4.7 GBP 19.10

Was ein Monatsdurchschnitt verbirgt

Das Volumen der Google Bewertungen folgt der Kundenfrequenz, keinem Veröffentlichungsplan. Es steigt am Freitag, verdoppelt sich am Samstag und bleibt am Sonntag hoch, und springt dann für zwei Wochen nach einer lokalen Kampagne erneut an. Ein Monatsdurchschnitt liegt über fünf dieser Tage und deutlich unter den anderen zwei, beschreibt also keinen von ihnen.

Das ist ein Modellierungsproblem, kein Reporting-Problem, und genau dafür ist ein Warehouse da. Vergleichen Sie Gleiches mit Gleichem nach Wochentag, legen Sie ein Sieben-Tage-Fenster auf den Trend, und ein schlechter Samstag versteckt sich nicht mehr in einer Monatszahl.

Sie entscheiden, was herausfließt. Wählen Sie die Standorte, und fügen Sie bei Bedarf einen Bewertungsfilter hinzu, sodass das Filialteam jeden Standort bekommt und die Support-Leitung eine Tabelle mit nur ein bis drei Sternen erhält.

Und die Tabelle liegt in Ihrem eigenen Google Cloud Projekt, in der Region, die Sie gewählt haben, unter dem IAM, das Sie bereits betreiben, und der Aufbewahrungsrichtlinie, die Sie bereits geschrieben haben. Einem Data Scientist Zugriff zu geben, sind dieselben paar Klicks wie bei jedem anderen Dataset dort, und ihn wieder zu entziehen sind dieselben paar Klicks zurück.

BigQuery reviews by day_of_week 1,092 reviews · 34 locations
avg 72
41
38
44
47
66
148
121
Mon Tue Wed Thu Fri Sat Sun

A monthly average sits above five days and under two, which is why the warehouse models this and a report does not.

Eine Bewertung für sich erklärt nichts. Der Standort daneben schon.

In unter fünf Minuten eingerichtet. Keine Demo nötig.

Gibt es einen nativen BigQuery Connector?

Nein, und es wäre unehrlich, das Gegenteil zu behaupten. Reviewflowz synchronisiert ein Google Sheet in Ihrem eigenen Drive, und BigQuery liest dieses Sheet mit einem einzigen CREATE EXTERNAL TABLE Statement als externe Tabelle. Wenn Sie lieber eine native, partitionierte Tabelle hätten, führt die Review API plus ein geplanter Lade-Job dorthin. Beides ist gewöhnliche Arbeit für ein Datenteam, und keins von beiden braucht eine Demo.

Landet der Standort wirklich auf jeder Zeile?

Ja. Google gibt Ihnen ein Profil pro Standort, und Reviewflowz behält dieses Eins-zu-eins bei, also trägt jede Bewertungszeile den Standort, zu dem sie gehört. Er kommt als der Standortname an, den Google führt, nicht als eine eigene ID, also deklarieren Sie diese Spalte beim Erstellen der externen Tabelle als Standort und ordnen die Namen einmal Ihren eigenen Standortschlüsseln zu. Danach ist es ein gewöhnlicher Join-Schlüssel.

Wie aktuell ist die Tabelle?

Das Sheet synchronisiert sich alle 30 Minuten neu, und eine externe Tabelle liest das Sheet zum Abfragezeitpunkt, also sieht eine Abfrage, die Sie jetzt ausführen, das, was die letzte Synchronisierung geschrieben hat. Ein Lade-Job in eine native Tabelle ist so aktuell wie der Zeitplan, den Sie ihm geben.

Welche Spalten hat die Tabelle?

Das synchronisierte Sheet hat einen festen Header mit 28 Spalten, eine Zeile pro Bewertung: die Bewertungs-ID, der Standort, die Plattform, das Bewertungsdatum, die Bewertung, der Titel, der vollständige Text, die erkannte Sprache, der Name des Bewertenden, die Tags, ein Link zurück zur Bewertung, und der Rest. Es gibt keine Antwort-Spalte und keine plattformspezifischen Tabs, also liegt alles in einer flachen Tabelle, auf die Sie ein Schema legen können.

Enthält das erste Laden unsere Google-Bewertungshistorie?

Ja, auf einem bezahlten Plan: Ein Klick lädt jede vergangene Google Bewertung über all Ihre Standorte, sodass die Trendlinie schon am ersten Tag vollständig ist, statt erst nach drei Monaten. Während der kostenlosen Testversion treffen neue Bewertungen ein, sobald sie veröffentlicht werden, und die Historie lädt, sobald Sie ein Abo abschließen.

Was passiert, wenn ein Bewertender seine Bewertung bearbeitet oder löscht?

Die Zeile aktualisiert sich direkt mit der neuen Bewertung und dem neuen Text, sodass eine Abfrage darüber mit der Korrektur mitzieht. Wenn eine Bewertung von Ihrem Google-Eintrag verschwindet, verschwindet ihre Zeile bei der nächsten Synchronisierung, sodass die Tabelle nie eine Version der Wahrheit hält, die Google nicht mehr hat.

Brauche ich eine Demo, um anzufangen?

Nein. Verbinden Sie Ihr Google Business Profile und das Google Sheet selbst in unter fünf Minuten, und führen Sie dann ein CREATE EXTERNAL TABLE dagegen aus. 14 Tage kostenlose Testversion, keine Kreditkarte.