Avaliações do Google no BigQuery

Toda avaliação do Google como uma linha no seu próprio projeto, trazendo a unidade responsável por ela. O que significa que a pergunta deixa de ser qual é a nota e vira qual unidade diverge das que se parecem com ela.

Configure em menos de cinco minutos • Sem necessidade 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

A pergunta é qual unidade diverge

O Perfil da Empresa no Google te dá uma nota por unidade e uma lista de avaliações embaixo dela. Ele nunca vai te contar que trinta e uma unidades ficam entre 4,5 e 4,7 enquanto uma fica em 3,4, porque não tem como colocar esses números lado a lado. No warehouse isso é um GROUP BY e um ORDER BY, e cabe numa tela.

O Google arquiva cada avaliação sob uma unidade, e o Reviewflowz dá a cada unidade o seu próprio perfil, então o nome da unidade é escrito em cada linha em vez de deduzido do texto. Um problema com formato de unidade então tem um formato que você pode consultar.

Esse formato é o diagnóstico. Uma mudança de preço aparece como a rede inteira se movendo junto. Uma falha na escala, uma máquina de cartão que parou de funcionar, um gerente que saiu em março, aparecem como uma unidade caindo enquanto as vizinhas se mantêm estáveis. A unidade diz para quem ligar, e isso leva uma consulta, não um palpite.

O acompanhamento é uma cláusula WHERE, porque o texto completo da avaliação é uma coluna comum. Conte as avaliações que mencionam estacionamento desde março, divididas por unidade, e você tem o problema da rede antes de alguém levantar isso numa reunião 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

Uma tabela, não um relatório

O que chega é uma tabela, não um painel que outra pessoa desenhou. Uma linha por avaliação do Google: a unidade, o id da avaliação, o horário, a nota, o texto completo, o idioma detectado, as tags e um link de volta para a avaliação no Maps. Colunas simples, nada para fazer engenharia reversa, nada que você precise nos pedir para adicionar.

A unidade está em cada linha porque o Google te dá um perfil por unidade e o Reviewflowz mantém isso assim. Ela chega como o nome que o Google guarda, não como um id, então você mesmo nomeia essa coluna quando declara a tabela.

O texto da avaliação é uma coluna STRING como qualquer outra, então o termo que importa para você é uma cláusula WHERE em vez de uma tarde inteira lendo. O Reviewflowz detecta o idioma a partir do próprio texto, e é por isso que uma avaliação em francês deixada numa ficha de Bruxelas ainda agrupa do jeito que você esperaria.

Uma coluna que você não vai encontrar, e vale a pena dizer isso abertamente: essa tabela traz a avaliação, não a resposta. Cobertura de resposta por unidade é uma pergunta justa, e uma página que sugerisse em silêncio que esta a responde te custaria uma manhã.

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.

Como as linhas realmente chegam ao BigQuery

Não existe um destino nativo no BigQuery para clicar, e esta página não vai fingir que existe. O que o Reviewflowz te dá é uma planilha do Google Sheets no seu próprio Drive que ele mantém atualizada: uma nova avaliação do Google é uma nova linha em até meia hora, uma avaliação editada atualiza a própria linha no lugar, e uma avaliação que o Google remove perde a sua linha.

O BigQuery lê uma planilha do Google Sheets vinculada ao Drive como uma tabela externa. Um único CREATE EXTERNAL TABLE contra a URL da planilha e google_reviews existe no seu conjunto de dados, é consultável como qualquer outra tabela, e está atualizada no momento da consulta porque lê a planilha em vez de uma cópia dela. Nada para agendar, nada para manter vivo.

Se você preferir uma tabela particionada nativa, a Review API é o outro caminho. Consulte-a periodicamente ou use o webhook, depois carregue com o job que você já roda para toda outra fonte. É um trabalho que um time de dados escreve uma vez.

De qualquer forma, o histórico vem junto. Num plano pago, um clique carrega toda avaliação passada do Google em todas as unidades, então a linha de tendência começa cheia em vez de se preencher ao longo do próximo trimestre.

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.

Junte com o que você já guarda por unidade

Unidade é uma chave de junção que você já tem. Todo negócio com mais de uma unidade mantém uma tabela com uma linha por unidade: receita, horas de escala, movimento de clientes, horários de funcionamento, a data da última reforma. As avaliações do Google chegam marcadas do mesmo jeito, então juntar as duas é um JOIN em vez de um projeto.

É aí que vivem os números interessantes. A nota ao lado da receita por visita mostra quanto um trimestre ruim numa filial realmente custa. A nota ao lado das horas de escala mostra se a unidade de que todo mundo reclama é a unidade que ninguém escalou direito.

Isso também corrige a comparação. Um 3,4 só significa algo ao lado das unidades parecidas com ela, então junte com os seus próprios segmentos, rua principal contra shopping de bairro, e compare uma unidade com as suas pares em vez de com uma média da rede.

Esse é o motivo inteiro para colocar avaliações do Google num warehouse em vez de lê-las numa ferramenta. Uma ferramenta de avaliações só consegue te contar sobre avaliações. O warehouse é onde uma avaliação fica ao lado da escala, do faturamento e da reforma que a explicam, e onde a explicação é uma coluna, não uma teoria.

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

O que uma média mensal esconde

O volume de avaliações do Google acompanha o movimento de clientes, não um calendário de lançamentos. Ele sobe na sexta-feira, dobra no sábado e continua alto no domingo, depois dispara de novo por uma quinzena depois de uma campanha local. Uma média mensal fica acima de cinco desses dias e bem abaixo dos outros dois, então não descreve nenhum deles.

Isso é um problema de modelagem, não de relatório, que é exatamente para o que serve um warehouse. Compare o mesmo com o mesmo por dia da semana, coloque uma janela de sete dias na tendência, e um sábado ruim para de se esconder dentro de um número mensal.

Você escolhe o que sai. Escolha as unidades, e adicione um filtro de nota se quiser um, então o time da rede recebe toda unidade e o líder de suporte recebe uma tabela guardando só de uma a três estrelas e mais nada.

E a tabela vive no seu próprio projeto do Google Cloud, na região que você escolheu, sob o IAM que você já usa e a política de retenção que você já escreveu. Dar acesso a um cientista de dados são os mesmos poucos cliques de qualquer outro conjunto de dados ali, e tirar o acesso depois são os mesmos poucos cliques de volta.

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.

Uma nota sozinha não explica nada. A unidade ao lado dela explica.

Configure em menos de cinco minutos. Sem necessidade de demo.

Existe um conector nativo para o BigQuery?

Não, e seria desonesto sugerir que existe. O Reviewflowz sincroniza uma planilha do Google Sheets no seu próprio Drive, e o BigQuery lê essa planilha como uma tabela externa com uma única instrução CREATE EXTERNAL TABLE. Se você preferir uma tabela particionada nativa, a Review API mais um job de carga agendado te levam lá. As duas são trabalho comum para um time de dados, e nenhuma precisa de demo.

A unidade realmente aparece em cada linha?

Sim. O Google te dá um perfil por unidade, e o Reviewflowz mantém essa relação um para um, então toda linha de avaliação traz a unidade a que pertence. Ela chega como o nome da unidade que o Google guarda, não como um id seu, então você declara essa coluna como unidade ao criar a tabela externa e mapeia os nomes para as suas próprias chaves de unidade uma vez. Depois disso é uma chave de junção comum.

Quão atualizada é a tabela?

A planilha se sincroniza de novo a cada 30 minutos, e uma tabela externa lê a planilha no momento da consulta, então uma consulta que você roda agora vê o que a última sincronização escreveu. Um job de carga numa tabela nativa fica tão atualizado quanto a agenda que você definir.

Quais colunas a tabela tem?

A planilha sincronizada tem um cabeçalho fixo de 28 colunas, uma linha por avaliação: o id da avaliação, a unidade, a plataforma, a data da avaliação, a nota, o título, o texto completo, o idioma detectado, o nome de quem avaliou, as tags, um link de volta para a avaliação, e o resto. Não há coluna de resposta e não há abas por plataforma, então tudo fica numa única tabela plana para a qual você pode apontar um esquema.

A primeira carga inclui o nosso histórico de avaliações do Google?

Sim, num plano pago: um clique carrega toda avaliação passada do Google em todas as suas unidades, então a linha de tendência já está cheia desde o primeiro dia em vez de daqui a três meses. Durante o teste grátis, as avaliações novas chegam à medida que são publicadas, e o histórico é carregado assim que você assina.

O que acontece quando quem avaliou edita ou apaga a avaliação?

A linha se atualiza no lugar com a nova nota e o novo texto, então uma consulta sobre ela se move junto com a correção. Quando uma avaliação sai da sua ficha do Google, a linha dela some na sincronização seguinte, o que significa que a tabela nunca guarda uma versão da verdade que o Google já não guarda mais.

Preciso de uma demo para começar?

Não. Conecte o seu Perfil da Empresa no Google e a planilha do Google Sheets sozinho em menos de cinco minutos, depois rode um único CREATE EXTERNAL TABLE contra ela. Teste grátis de 14 dias, sem cartão de crédito.