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
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.
-- 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 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ã.
One row per review, tagged to the site
| 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.
reviews Sheet in
your Drive External table
in BigQuery
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.
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.
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.





