Além da versão oficial do Google Trends丨7 guias de análise de tendências do Google que você precisa aprender

本文作者:Don jiang

A forma tradicional de analisar tendências de palavras-chave é passiva — só serve para ver dados depois que eles já aconteceram, e não ajuda a descobrir oportunidades de negócio de forma ativa.

O método que vou compartilhar hoje é mais poderoso que o Google Trends: ele quebra as barreiras de região e tempo, e permite observar o mercado em tempo real. Já foi usado em mais de 20 indústrias, ajudando empresas a prever mudanças de mercado com até 14 dias de antecedência em relação à concorrência.

谷歌趋势

3 truques escondidos da API do Google Trends que não estão na documentação oficial

Coletar dados por cidade específica (quebrando a limitação por estado ou país)

  • Problema: a interface oficial só permite ver até o nível de província/estado
  • Solução: inserir manualmente o código da cidade no parâmetro geo da API
python
# Exemplo: buscar tendências de "vr glasses" para Los Angeles (código US-CA-803)
import requests
url = "https://trends.google.com/trends/api/widgetdata/multiline?req=%7B%22time%22%3A%222024-01-01%202024-07-01%22%2C%22geo%22%3A%22US-CA-803%22%2C%22keyword%22%3A%22vr%20glasses%22%7D"
response = requests.get(url)
print(response.text[:500])  # imprime os primeiros 500 caracteres para checar

Resultado: dá pra pegar dados super específicos de mais de 3 mil cidades, tipo Manhattan (US-NY-501) ou o centro de Tóquio (JP-13-1132)

3 formas de encontrar os geo-códigos de cidades no Google Trends

Método 1: buscar na Wikipédia

Procure a cidade na Wikipedia (ex: Los Angeles)
Do lado direito, na seção de dados geográficos

url
https://zh.wikipedia.org/wiki/洛杉矶
# Vai ter algo como: GNS=1662328

Código no formato: US-CA-1662328 (país-estado-GNS)

Método 2: baixar a base do GeoNames

  • Acesse o site do GeoNames
  • Baixe o cities15000.zip (cidades com mais de 15 mil habitantes)

Abra no Excel e filtre pelo nome e país

csv
5368361,Los Angeles,US,CA,34.05223,-118.24368,PPLA2,...
# Colunas: GeoNameID | Nome | País | Estado | Coordenadas...
  • Formato final: US-CA-5368361

Método 3: espionar pelo Google Trends

  • Abra o Google Trends
  • Aperte F12 para abrir o DevTools → vá em “Network”
  • Pesquise o nome da cidade, tipo “New York”

Ache o parâmetro geo nas requisições:

http
GET /trends/api/explore?geo=US-NY-501&hl=zh-CN
# O código US-NY-501 representa Nova York

Ver dados em tempo real (com atualização minuto a minuto)

  • Problema: os dados normais têm atraso de 4 a 8 horas
  • Solução: use o valor now 1-H no parâmetro time — isso mostra os últimos 60 minutos
bash
# Teste rápido no terminal (usa jq)
curl "https://trends.google.com/trends/api/vizdata?req=%7B%22time%22%3A%22now%201-H%22%2C%22tz%22%3A%22-480%22%7D" | jq '.default.timelineData'

Resultado: você vê o índice de busca de minuto em minuto (ex: 07:45 = 87, 07:46 = 92)

Ver dados históricos além dos últimos 5 anos

  • Problema: a interface só mostra dados dos últimos 5 anos
  • Solução: faz várias chamadas para cada ano desde 2004 e junta tudo

Como fazer:

  1. Crie uma requisição para cada intervalo: 2004-2005, 2005-2006, etc.
  2. Use o parâmetro comparisonItem para manter a mesma palavra-chave
  3. Depois junte tudo com Pandas
python
# Exemplo de como juntar os dados
df_2004_2005 = pd.read_json('2004-2005.json')
df_2005_2006 = pd.read_json('2005-2006.json')
full_data = pd.concat([df_2004_2005, df_2005_2006]).drop_duplicates()

Execução: todas as requisições devem incluir headers = {"User-Agent": "Mozilla/5.0"} para simular o acesso via navegador. Recomenda-se fazer no máximo 3 requisições por minuto para evitar bloqueios.

Observação: esta operação exige que você tenha o ambiente Python instalado (versão 3.8 ou superior recomendada), e que seus arquivos de dados estejam no formato JSON (como 2004-2005.json e 2005-2006.json).

Framework de previsão com Aprendizado de Máquina + dados do GT

Padrão de defasagem

  • Dor: há um atraso entre o volume de buscas no Google Trends e a demanda real de mercado (por exemplo, a pessoa pesquisa “protetor solar”, mas só compra 2 semanas depois)
  • Abordagem: usar análise de correlação defasada para encontrar a melhor janela de previsão
python
import pandas as pd
from scipy.stats import pearsonr

# Carregar os dados (sales_df = dados de vendas, gt_df = dados de busca)
combined = pd.merge(sales_df, gt_df, on='date')

# Calcular correlações para defasagens de 1 a 30 dias
correlations = []
for lag in range(1, 31):
    combined['gt_lag'] = combined['search_index'].shift(lag)
    r, _ = pearsonr(combined['sales'].dropna(), combined['gt_lag'].dropna())
    correlations.append(r)

# Visualizar o número de dias com maior correlação (geralmente é o pico)
pd.Series(correlations).plot(title='Análise de Correlação Defasada')

Algoritmo de detecção de anomalias

Dor: alertas baseados em limite fixo não captam mudanças graduais nas tendências

Método: Detecção de pontos de ruptura com base no Z-Score

python
def detect_anomaly(series, window=7, threshold=2.5):
    rolling_mean = series.rolling(window).mean()
    rolling_std = series.rolling(window).std()
    z_score = (series - rolling_mean) / rolling_std
    return z_score.abs() > threshold

# Exemplo de uso (os dias com alerta serão marcados como True)
gt_df['alert'] = detect_anomaly(gt_df['search_index'])
print(gt_df[gt_df['alert']].index)

Modelo de previsão personalizado (em Python)

Ideia principal: combinar dados de busca com indicadores externos (como clima ou ações) para construir um modelo.

Modelo:

# Criar variáveis de séries temporais
df['7d_ma'] = df['search_index'].rolling(7).mean()  # Média móvel de 7 dias
df['yoy'] = df['search_index'] / df.shift(365)['search_index']  # Comparação ano a ano

# Adicionar dados externos (como temperatura via API de clima)
df['temperature'] = get_weather_data()  

# Modelo de previsão simples (como regressão linear)
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(df[['7d_ma', 'yoy', 'temperature']], df['sales'])

Validação e ajuste do modelo

Divisão de dados: dividimos os dados por tempo — 80% para treino, 20% para teste.

python
split_idx = int(len(df)*0.8)
train = df.iloc[:split_idx]
test = df.iloc[split_idx:]

Métrica de avaliação: usamos MAE (erro absoluto médio) em vez de precisão.

python
from sklearn.metrics import mean_absolute_error
pred = model.predict(test[features])
print(f'MAE: {mean_absolute_error(test["sales"], pred)}')

Dicas para otimização:

Ajuste a janela da média móvel (window) com base no seu setor.

Você também pode adicionar termos relacionados no Google Trends como sinais de intenção de busca.

Monitoramento de concorrência em tempo real: 7 ângulos

Ângulo 1: análise de palavras-chave relacionadas à marca

Dor: concorrentes estão pegando tráfego aparecendo em buscas com seu nome (ex: alguém busca “SuaMarca avaliação” e o site do concorrente aparece no topo).

Solução:

  1. Use Ahrefs para exportar palavras-chave de marca dos concorrentes
  2. Use a Google Trends API para pegar dados de popularidade
  3. Crie um mapa de calor das palavras-chave a proteger ou atacar (exemplo de código):
python
import seaborn as sns
# Exemplo de dados: matrix_data = {"SuaMarca": ["avaliação", "site oficial"], "ConcorrenteX": ["avaliação", "promoção"]}
sns.heatmap(matrix_data, annot=True, cmap="YlGnBu")

Métrica 2: Análise da Demanda por Funcionalidades do Produto

Método: comparar o volume de buscas por funcionalidades principais do nosso produto com as do concorrente no Google Trends (unidade: %)
Fórmula:

Lacuna de demanda = (Buscas da nossa função - Buscas da função concorrente) / Buscas totais × 100

Exemplo prático:

  • Se por 3 dias seguidos a demanda por “à prova d’água” cair 5% ou mais, é hora de ajustar urgente o conteúdo da campanha.

Métrica 3: Avaliação Quantitativa da Gestão de Crise

Indicadores usados:

  • Redução de buscas negativas = (buscas negativas no dia T – no dia T-7) / no dia T-7
  • Recuperação do CTR da marca = mudança observada no Google Search Console

Script automático:

python
if reducao_buscas_negativas > 20% & recuperacao_ctr > 15%:
    avaliacao = "Gestão de crise eficaz"
else:
    ativar fase 2 da resposta

Métrica 4: Monitoramento da Sensibilidade ao Preço

Fontes de dados:

  1. Monitorar preços nos sites oficiais dos concorrentes (via Selenium)
  2. Acompanhar buscas no Google por “nome do concorrente + queda de preço”

Lógica de reação:

Se a queda de preço gerar aumento >50% nas buscas em relação à semana anterior, ativar plano de proteção de preços.

Métrica 5: Análise Inversa da Estratégia de Conteúdo

Como coletamos os dados:

  1. Usamos Scrapy para pegar títulos de blogs/vídeos dos concorrentes
  2. Fazemos análise de frequência e geramos modelo N-gram

Resultado:

python
from sklearn.feature_extraction.text import CountVectorizer
# Exemplo: conteúdo dos concorrentes = ["Top 5 apps", "Guia completo", "Tendências 2024"]
vectorizer = CountVectorizer(ngram_range=(2,2))
X = vectorizer.fit_transform(conteudo_concorrente)
print(vectorizer.get_feature_names_out())  # resultado: ['top apps', 'guia completo']

Métrica 6: Rastreamento em tempo real dos anúncios dos concorrentes

Ferramentas:

  1. Captura de palavras-chave dos concorrentes via SpyFu
  2. Comparação com nossas palavras usando Pandas
intersecao = len(set(nossas_palavras) & set(palavras_concorrente)) / len(nossas_palavras)
print(f"Taxa de competição em palavras-chave: {intersecao:.0%}")

Resposta:

  • Se interseção >30%, usar palavras-chave long-tail

Métrica 7: Análise das Vulnerabilidades nas Fontes de Tráfego

Plano:

  1. Usar SimilarWeb API para analisar fontes de tráfego dos concorrentes
  2. Ver se eles dependem muito de algum canal (tipo: SEO >70%)

Estrategicamente:

  • Atacar os canais-chave do concorrente (ex: fazer reviews nos fóruns que ele domina)

Ferramentas sugeridas:

Fórmula extra: redes sociais × dados de busca

Discussões no Twitter → previsão de pico nas buscas

Fórmula:

Busca prevista após 3 dias = (tweets de hoje / média de 3 dias) × fator do setor

Etapas:

  1. Coletar tweets via Twitter API
  2. Calcular média de 3 dias
  3. Fator: tech = 0.8, beleza = 1.2, finanças = 0.5

Exemplo:

Hoje: 1200 tweets sobre “celular com AI”, média = 800

Previsão = (1200 / 800) × 0.8 = 1.2× (crescimento de 20%)

Tendência no TikTok → prever viralização

Fórmula:

Viralização = (Crescimento de views em 24h + mediana de seguidores) × 0.7

Etapas:

  1. Dados do TikTok Creative Center
  2. Fórmula de crescimento: (agora - ontem) / ontem
  3. Calcular mediana dos seguidores dos 50 principais criadores

Exemplo:

Hashtag #SummerCare: crescimento = +180%, mediana = 58000

Viralização ≈ (180 + 58000) × 0.7 ≈ 89.3% → pode lançar!

Índice de intenção de compra vindo do Reddit

Fórmula:

Índice = (likes × 0.4) + (comentários × 0.2) + (palavras como “comprar” × 10)

Etapas:

  1. Coletar posts via Reddit API
  2. Contar likes, comentários e frases como “onde comprar”, “quero um”
  3. Se índice >50 — executar ação

Exemplo:

Post de fone de ouvido: 1200 likes, 350 comentários, 15 “comprar”

Índice = 1200×0.4 + 350×0.2 + 15×10 = 480 + 70 + 150 = 700 → reforçar estoque urgente!

Análise de comentários no YouTube → prever compra

Fórmula:

Intenção de compra = (% comentários positivos × 2) + (% perguntas × 0.5)

Etapas:

  1. Coletar 500+ comentários com YouTube API
  2. Analisar com TextBlob (Python)
    from textblob import TextBlob
    comentario = "A câmera é ótima! Onde posso comprar?"
    polaridade = TextBlob(comentario).sentiment.polarity  # resultado: 0.8 (positivo)
  3. Polaridade > 0.3 = positivo, presença de “?” = é pergunta

Exemplo

60% de comentários positivos, 25% de comentários com reclamações

Intenção de compra = (60%×2)+(25%×0.5)=120%+12.5%=132.5% → aumentar o lance do anúncio

Fluxo de Monitoramento em Tempo Real com Zapier + GT

Fluxo de monitoramento básico

Cenário: quando o volume de buscas por uma palavra-chave aumenta mais de 150% em um único dia, envia um alerta por e-mail para a equipe
Passos de configuração

Configuração do gatilho no Zapier

Escolha “Webhook by Zapier” como o gatilho

Configure no modo Catch Hook e copie a URL do Webhook gerada (exemplo: https://hooks.zapier.com/hooks/12345)

Deploy do script Python​ (Google Cloud Functions)

import requests
from pytrends.request import TrendReq

def fetch_gt_data(request):
    pytrends = TrendReq()
    pytrends.build_payload(kw_list=["Metaverso"], timeframe='now 1-d')
    data = pytrends.interest_over_time()
    
    # Calcular a taxa de crescimento diária
    today = data.iloc[-1]['Metaverso']
    yesterday = data.iloc[-2]['Metaverso']
    growth_rate = (today - yesterday)/yesterday * 100
    
    # Acionar Zapier
    if growth_rate > 150:
        requests.post(
            "Sua URL do Webhook",
            json={"keyword": "Metaverso", "growth": f"{growth_rate:.1f}%"}
        )
    return "OK"

Configuração da ação no Zapier

Adicione a ação “Gmail”: quando os dados chegarem via Webhook, envie um e-mail de alerta

Modelo de e-mail: buscas por {{keyword}} aumentaram {{growth}}, confira agora → Link do Google Trends

Geração automática de relatório semanal de tendências

Arquitetura do fluxo: API do Google Trends → Google Sheets → Zapier → ChatGPT → Notion

Passos de configuração

Sincronizar dados para a planilha

Use Google Apps Script para puxar os dados do GT para o modelo do Google Sheets a cada hora

Campos-chave: palavra-chave, volume semanal, variação ano a ano, buscas relacionadas

Condição de gatilho no Zapier

Escolha “Schedule by Zapier” para disparar toda sexta-feira às 15h

Ação 1: “Google Sheets” — pegar a linha de dados mais recente

Ação 2: “OpenAI” — gerar relatório de análise

Você é um analista de marketing experiente. Com base nos dados abaixo, gere um relatório semanal:
Top 3 palavras-chave: {{Top 3 palavras-chave}}  
Palavra com maior crescimento: {{Palavra em alta}} ({{Taxa de crescimento}})
Palavras relacionadas que merecem atenção: {{Consultas relacionadas}}

Arquivamento automático no Notion

Use a ação “Notion” para criar uma nova página

Insira os campos dinâmicos: {{Análise da IA}} + gráfico de tendências (gerado com QuickChart)

Ajuste dinâmico do orçamento de anúncios

Fluxo totalmente automatizado: Dados do GT → Zapier → API do Google Ads → Alerta no Slack
Configuração detalhada

Pipeline de dados em tempo real

  • Um script em Python consulta a API do Google Trends now 1-H a cada minuto
# Código simplificado (pode rodar via cron)
current_index = requests.get("API do Google Trends tempo real").json()['default']
if current_index > threshold:
    adjust_budget(current_index)  # Chamada da API do Google Ads

Configuração intermediária com Zapier

Gatilho: “Webhook” recebe o índice de tendência atual

Filtro: só continua se {{índice}} > 80

Ação 1: “Google Ads” ajusta o lance da palavra-chave

novo_lance = lance_antigo × (1 + (índice - 50)/100)

Ação 2: “Slack” envia alerta para o canal #marketing

【Atualização automática】Palavra-chave {{palavra}} teve lance alterado de {{lance_antigo}} para {{novo_lance}}

Filtro de tendências em 3 etapas

Etapa 1: Verificação de autenticidade

Objetivo: eliminar fake trends ou hypes passageiros

Critérios de validação

Crescimento consistente em várias plataformas

  • Aumento de 50% no Google Trends em uma semana
  • Volume de tweets relevantes subiu pelo menos 30%
  • Mais de 20 posts/dia sobre o tema no Reddit

Crescimento em pesquisas relacionadas

python
# Verifica pesquisas relacionadas em alta
related_queries = pytrends.related_queries()
rising_queries = related_queries['rising'].sort_values('value', ascending=False)
if len(rising_queries) < 5:
    return False

Exemplo

Tema “capa de celular com IA” passou na validação:

  • GT subiu 120% na semana, tweets +45%
  • Termo relacionado “capa com IA e resfriamento” +300%

Resultado: passou a etapa 1

Etapa 2: Verificação de sustentabilidade

Método: ciclo de vida da tendência

Métricas principais

Comparação com pico histórico

python
current_index = 80
historical_peak = gt_data['capa IA'].max()
if current_index < historical_peak * 0.3:
    return "Tendência em queda"

Saúde dos termos relacionados

  • Palavras positivas (“review” / “comprar”) ≥ 60%
  • Palavras negativas (“reclamar” / “bugado”) ≤ 10%

Ferramenta

Análise de sentimento com TextBlob:

python
from textblob import TextBlob
sentiment = TextBlob("capa IA com proteção contra quedas é top!").sentiment.polarity
if sentiment < 0.2:
    return False

Exemplo

Índice da “capa IA” = 65% do pico, termos positivos 78%

Resultado: tendência está crescendo, passa a etapa 2

Etapa 3: Avaliação do potencial comercial

Fórmula base

Índice comercial = (volume de buscas de intenção × 0.6) + (engajamento com reviews × 0.4)

Coleta de dados

Monitoramento de buscas com intenção de compra

python
buy_keywords = ["onde comprar", "preço", "desconto"]
buy_volume = sum([gt_data[keyword] for keyword in buy_keywords])

Engajamento com reviews

YouTube: curtidas / views ≥ 5%

Xiaohongshu: ≥ 500 favoritos

Decisão automática

python
if commercial_score >= 75:
    iniciar campanha ecommerce + SEO
elif commercial_score >= 50:
    apenas marketing de conteúdo
else:
    descartar o tema

Exemplo

  • “Capa IA” tem 1200 buscas com intenção por dia
  • Reviews em vídeo: 7.2% de curtidas
  • Índice comercial = (1200×0.6)+(7.2×0.4)=72+2.88=74.88 → começar marketing de conteúdo

Fluxo de filtragem em três etapas

graph TD
    A[Banco de Tópicos] --> B{Etapa 1: Verificação de Popularidade}
    B -- Aprovado --> C{Etapa 2: Potencial de Longo Prazo}
    B -- Rejeitado --> D[Arquivo]
    C -- Aprovado --> E{Etapa 3: Potencial de Conversão}
    C -- Rejeitado --> D
    E -- Aprovado --> F[Conteúdo Âncora]
    E -- Rejeitado --> G[Observação]

SEMrush × Estratégia de otimização com Google Trends

Mecanismo dinâmico de ajuste de lances

Lógica básica: usar os dados de CPC do SEMrush junto com o índice atual de tendências do Google Trends para ajustar lances automaticamente.

Etapa 1: Coleta de Dados

python
# Pegando o CPC via API do SEMrush (exemplo)
import requests
semrush_api = "https://api.semrush.com/?key=YOUR_KEY&type=phrase_all&phrase=vr%20glasses"
response = requests.get(semrush_api).text.split("\n")
cpc = float(response[1].split(";")[8])  # Extraindo o CPC

# Pegando índice em tempo real do Google Trends (escala de 0 a 100)
gt_index = pytrends.interest_over_time()['vr glasses'].iloc[-1]

Fórmula de ajuste do lance:

Lance sugerido = CPC × (Índice do Google Trends / 100) × Fator de Mercado  
(fator: mercado emergente = 1.2; mercado competitivo = 0.8)

Sincronização com Google Ads em tempo real

python
# Atualizando lance via API do Google Ads (exemplo)
ads_api.update_keyword_bid(keyword_id=123, new_bid=lance_sugerido)

Exemplo: Se o índice GT de “vr glasses” subir de 40 para 70, o novo lance será:
1.5 × (70/100) × 1.2 = $1.26 → CPC efetivo cai 16%

Matriz ofensiva e defensiva de palavras-chave

Procedimento:

  1. SEMrush: encontre as 50 palavras-chave que mais trazem tráfego para os concorrentes
  2. Google Trends: filtre as que têm crescimento mensal > 20%
  3. Mapa de calor: vermelho = alto valor + alta concorrência; azul = baixo valor + baixa concorrência
python
import matplotlib.pyplot as plt
plt.scatter(x=concorrencia, y=crescimento_gt, c=cpc_palavras, cmap='RdYlGn')
plt.colorbar(label='CPC ($)')

Alocação dinâmica de orçamento

Etapas de cálculo:

  1. Previsão: treinar modelo ARIMA com dados históricos do GT para prever os próximos 7 dias de volume de busca
python
from statsmodels.tsa.arima.model import ARIMA
model = ARIMA(dados_gt, order=(3,1,1))
results = model.fit()
forecast = results.forecast(steps=7)

Distribuição orçamentária baseada no SEMrush:

  • Valor da palavra-chave = (Taxa de conversão × ticket médio) ÷ CPC
  • Fórmula:
Orçamento diário = (volume previsto × valor da palavra) ÷ orçamento total

Na era dos dados, 99% das empresas ainda planejam o futuro com base nas tendências de ontem.

O poder do Google Trends não é prever o futuro, e sim encurtar o caminho entre “intenção de busca” e “ação de negócios”.