Reseñas de Google a BigQuery

Cada reseña de Google como una fila en su propio proyecto, con la sede que la generó. Así, la pregunta deja de ser cuál es la valoración y pasa a ser qué sede se aparta de las que se le parecen.

Configúrelo en menos de cinco minutos • Sin necesidad de demo

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

La pregunta es qué sede se aparta

Google Business Profile le da una valoración por sede y una lista de reseñas debajo. Nunca le dirá que treinta y una sedes están entre 4,5 y 4,7 mientras una está en 3,4, porque no tiene forma de poner esos números uno junto a otro. En el almacén de datos eso es un GROUP BY y un ORDER BY, y cabe en una sola pantalla.

Google archiva cada reseña bajo una sede, y Reviewflowz le da a cada sede su propio perfil, así que el nombre de la sede queda escrito en cada fila en lugar de deducirse del texto. Un problema con forma de sede tiene entonces una forma que puede consultar.

Esa forma es el diagnóstico. Un cambio de precios se lee como todo el conjunto moviéndose junto. Un hueco en el turno, un datáfono que dejó de funcionar, un gerente que se fue en marzo, se lee como una sede que cae mientras sus vecinas se mantienen. Qué sede le dice a quién llamar, y basta una consulta en vez de una corazonada.

El siguiente paso es una cláusula WHERE, porque el texto completo de la reseña es una columna normal. Cuente las reseñas que mencionan el aparcamiento desde marzo, divididas por sede, y tiene el problema del conjunto antes de que nadie lo mencione en una reunión regional.

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

Una tabla, no un informe

Lo que llega es una tabla, no un panel que diseñó otra persona. Una fila por reseña de Google: la sede, el id de la reseña, la marca de tiempo, la puntuación, el texto completo, el idioma detectado, las etiquetas y un enlace a la reseña en Maps. Columnas simples, nada que hacer ingeniería inversa, nada que tenga que pedirnos que añadamos.

La sede está en cada fila porque Google le da un perfil por sede y Reviewflowz lo mantiene así. Llega como el nombre que guarda Google, no como un id, así que usted mismo nombra esa columna al declarar la tabla.

El texto de la reseña es una columna STRING como cualquier otra, así que el término que le interesa es una cláusula WHERE en vez de una tarde de lectura. Reviewflowz detecta el idioma a partir del propio texto, por eso una reseña en francés dejada en una ficha de Bruselas se agrupa como cabría esperar.

Una columna que no va a encontrar, y merece decirlo en voz alta: esta tabla lleva la reseña, no la respuesta. La cobertura de respuestas por sede es una pregunta legítima, y una página que diera a entender en silencio que esta la responde le costaría una mañana.

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.

Cómo llegan realmente las filas a BigQuery

No hay un destino gestionado de BigQuery al que darle clic, y esta página no va a fingir que lo hay. Lo que Reviewflowz le da es una hoja de Google en su propio Drive que mantiene al día: una reseña nueva de Google es una fila nueva en menos de media hora, una reseña editada actualiza su fila, y una reseña que Google retira pierde su fila.

BigQuery lee una hoja de Google respaldada por Drive como tabla externa. Un solo CREATE EXTERNAL TABLE contra la URL de la hoja y google_reviews existe en su conjunto de datos, se consulta como cualquier otra tabla, y está en lo cierto en el momento de la consulta porque lee la hoja y no una copia de ella. Nada que programar, nada que mantener activo.

Si prefiere una tabla particionada nativa, la Review API es el otro camino. Consúltela periódicamente o use el webhook, y cárguela con el mismo trabajo que ya ejecuta para el resto de sus fuentes. Eso es trabajo que un equipo de datos escribe una sola vez.

En cualquier caso, el historial viene incluido. En un plan de pago, un solo clic carga todas las reseñas de Google pasadas de todas las sedes, así que la línea de tendencia empieza completa en lugar de irse llenando durante el trimestre siguiente.

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.

Combínela con lo que ya guarda por sede

La sede es una clave de combinación que ya tiene. Todo negocio con más de una sede mantiene una tabla con una fila por sede: ingresos, horas de personal, afluencia, horarios de apertura, la fecha de la última reforma. Las reseñas de Google llegan etiquetadas de la misma forma, así que juntar ambas es un JOIN, no un proyecto.

Ahí es donde viven los números interesantes. La valoración junto a los ingresos por visita muestra lo que cuesta de verdad un mal trimestre en una sucursal. La valoración junto a las horas de turno muestra si la sede de la que todos se quejan es la sede que nadie cubrió de personal.

También arregla la comparación. Un 3,4 solo significa algo junto a las sedes que se le parecen, así que combínelo con sus propios segmentos, calle comercial frente a parque comercial, y compare una sede con sus semejantes en vez de con la media del conjunto.

Esta es toda la razón para llevar las reseñas de Google a un almacén de datos en vez de leerlas en una herramienta. Una herramienta de reseñas solo puede hablarle de reseñas. El almacén de datos es donde una reseña se sienta junto al personal, la facturación y la reforma que la explican, y donde la explicación es una columna en vez de una teoría.

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

Lo que oculta una media mensual

El volumen de reseñas de Google sigue la afluencia, no un calendario de lanzamientos. Sube el viernes, se duplica el sábado y se mantiene alto el domingo, y vuelve a subir durante dos semanas después de una campaña local. Una media mensual queda por encima de cinco de esos días y muy por debajo de los otros dos, así que no describe ninguno.

Eso es un problema de modelado, no de informes, y para eso está precisamente un almacén de datos. Compare lo comparable por día de la semana, ponga una ventana de siete días a la tendencia, y un mal sábado deja de esconderse dentro de un número mensual.

Usted elige lo que sale. Escoja las sedes, y añada un filtro de puntuación si quiere, así el equipo del conjunto recibe todas las sedes y el responsable de soporte recibe una tabla con solo de una a tres estrellas.

Y la tabla vive en su propio proyecto de Google Cloud, en la región que eligió, bajo el IAM que ya gestiona y la política de retención que ya redactó. Dar acceso a un científico de datos son los mismos clics que para cualquier otro conjunto de datos ahí dentro, y quitárselo de nuevo son los mismos clics a la inversa.

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.

Una valoración por sí sola no explica nada. La sede junto a ella, sí.

Configúrelo en menos de cinco minutos. Sin necesidad de demo.

¿Hay un conector nativo de BigQuery?

No, y sería deshonesto dar a entender que sí. Reviewflowz sincroniza una hoja de Google en su propio Drive, y BigQuery lee esa hoja como tabla externa con una sola sentencia CREATE EXTERNAL TABLE. Si prefiere una tabla particionada nativa, la Review API más un trabajo de carga programado le llevan hasta ahí. Ambas son tareas normales para un equipo de datos, y ninguna necesita una demo.

¿La sede llega de verdad en cada fila?

Sí. Google le da un perfil por sede, y Reviewflowz mantiene esa relación uno a uno, así que cada fila de reseña lleva la sede a la que pertenece. Llega como el nombre de la sede que guarda Google, no como un id suyo, así que declara esa columna como sede al crear la tabla externa y hace una sola vez el mapeo de nombres a sus propias claves de sede. Después de eso es una clave de combinación normal.

¿Cómo de actualizada está la tabla?

La hoja se resincroniza cada 30 minutos, y una tabla externa lee la hoja en el momento de la consulta, así que una consulta que ejecute ahora ve lo que escribió la última sincronización. Un trabajo de carga a una tabla nativa está tan actualizado como el calendario que le asigne.

¿Qué columnas tiene la tabla?

La hoja sincronizada tiene una cabecera fija de 28 columnas, una fila por reseña: el id de la reseña, la sede, la plataforma, la fecha de la reseña, la puntuación, el título, el texto completo, el idioma detectado, el nombre de quien la dejó, las etiquetas, un enlace a la reseña, y el resto. No hay columna de respuesta ni pestañas por plataforma, así que todo está en una sola tabla plana a la que puede apuntar un esquema.

¿La primera carga incluye nuestro historial de reseñas de Google?

Sí, en un plan de pago: un solo clic carga todas las reseñas de Google pasadas de sus sedes, así que la línea de tendencia está completa desde el primer día en lugar de en tres meses. Durante la prueba gratuita, las reseñas nuevas llegan a medida que se publican, y el historial se carga en cuanto se suscribe.

¿Qué pasa cuando alguien edita o elimina su reseña?

La fila se actualiza con la nueva puntuación y el nuevo texto, así que una consulta sobre ella refleja la corrección. Cuando una reseña desaparece de su ficha de Google, su fila se va en la siguiente sincronización, así que la tabla nunca guarda una versión de la realidad que Google ya no sostiene.

¿Necesito una demo para empezar?

No. Conecte usted mismo su Google Business Profile y la hoja de Google en menos de cinco minutos, y luego ejecute un CREATE EXTERNAL TABLE contra ella. Prueba gratuita de 14 días, sin tarjeta de crédito.