Oltre la versione ufficiale di Google Trends丨7 guide indispensabili per l’analisi delle tendenze di Google

本文作者:Don jiang

L’analisi tradizionale della popolarità delle parole chiave è principalmente una ricezione passiva dei dati, e non una cattura attiva delle opportunità di business.

Quello che stiamo per rivelare in questo articolo è una tecnologia avanzata che va oltre Google Trends, in grado di rompere i limiti di tempo e spazio e di monitorare in tempo reale. Grazie a un metodo verificato in oltre 20 settori, stiamo aiutando le aziende leader a prevedere i punti di svolta del mercato con 14 giorni di anticipo, completando la distribuzione delle risorse prima che i concorrenti se ne accorgano.

谷歌趋势

3 trucchi per utilizzare le API non documentate di Google Trends

Raccolta di dati a livello di città (oltrepassando i limiti di stato/nazione)

  • Problema: L’interfaccia ufficiale mostra solo i dati a livello di stato/provincia
  • Soluzione: Inserire direttamente l’ID della città nel parametro geo della richiesta API
python
# Esempio: ottenere i dati di "occhiali VR" per Los Angeles (codice geografico 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])  # Controlla i primi 500 caratteri

Risultato: Puoi ottenere dati precisi da oltre 3000 città, come Manhattan (US-NY-501), centro di Tokyo (JP-13-1132) e molte altre.

3 metodi veloci per ottenere gli ID delle città di Google Trends

Metodo 1: Cercare direttamente il codice geografico su Wikipedia

Visita la pagina di Wikipedia della città (es. Los Angeles)
Controlla il “codice geografico” nella sezione a destra della pagina

url
https://zh.wikipedia.org/wiki/洛杉矶
# Il "codice geografico" sulla destra della pagina è GNS=1662328

Formato: US-CA-1662328 (Codice Nazione-Stato-GNS)

Metodo 2: Scaricare il database GeoNames

  • Visita GeoNames
  • Scarica cities15000.zip (dati delle città con popolazione superiore a 15.000)

Apri il file in Excel e filtra per “codice paese + nome città”

csv
5368361,Los Angeles,US,CA,34.05223,-118.24368,PPLA2,...
# I campi: GeonameID | Nome città | Codice paese | Codice stato | Latitudine/Longitudine...
  • Formato finale: US-CA-5368361

Metodo 3: Analisi inversa tramite l’interfaccia di Google Trends

  • Apri Google Trends
  • Premi F12 per aprire gli strumenti per sviluppatori → Vai alla scheda “Network”
  • Cerca il nome della città (ad esempio, “New York”)

Trova la linea del parametro geo:

http
GET /trends/api/explore?geo=US-NY-501&hl=zh-CN
# US-NY-501 rappresenta l'ID di New York

Monitoraggio dei trend in tempo reale (aggiornamenti ogni minuto)

  • Problema: I dati ufficiali sono in ritardo di 4-8 ore
  • Soluzione: Usa time con “now 1-H” per ottenere i dati degli ultimi 60 minuti
bash
# Test rapido nel terminale (è necessario installare 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'

Risultato: Indice di volume di ricerca per ogni minuto (ad esempio 07:45:00=87, 07:46:00=92)

Ricostruzione dei dati storici di oltre 5 anni

  • Problema: I dati ufficiali sono limitati agli ultimi 5 anni
  • Soluzione: Scarica i dati anno per anno e uniscili (dal 2004 ad oggi)

Come fare:

  1. Genera più richieste API per ogni anno (ad esempio: 2004-2005, 2005-2006…)
  2. Usa il parametro comparisonItem per mantenere coerenti le parole chiave
  3. Unisci le serie temporali con Pandas
python
# Codice per unire i dati
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()

Esecuzione: ogni richiesta deve includere headers = {"User-Agent": "Mozilla/5.0"} per simulare l’accesso tramite browser. Si consiglia di limitare le richieste a 3 al minuto per evitare il blocco.

Nota: è necessario installare l’ambiente Python (si consiglia la versione 3.8 o superiore) e assicurarsi che i tuoi file di dati siano in formato JSON (come 2004-2005.json e 2005-2006.json).

Framework di previsione basato su Machine Learning + Dati GT

Pattern di Latenza

  • Problema: c’è un ritardo tra il volume di ricerca su Google Trends e la domanda effettiva del mercato (ad esempio, un utente cerca “crema solare” ma acquista dopo 2 settimane)
  • Soluzione: utilizza l’analisi di correlazione con ritardo per trovare la finestra di previsione ottimale
python
import pandas as pd
from scipy.stats import pearsonr

# Carica i dati (sales_df = dati di vendita, gt_df = dati di ricerca)
combined = pd.merge(sales_df, gt_df, on='date')

# Calcola la correlazione con ritardo da 1 a 30 giorni
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)

# Visualizza i giorni con la miglior correlazione (di solito al picco)
pd.Series(correlations).plot(title='Analisi della Correlazione con Ritardo')

Algoritmo di Rilevamento delle Fluttuazioni Anomale

Problema: gli allarmi con soglia tradizionali non riescono a rilevare i cambiamenti graduali

Metodo: rilevamento dei punti di cambiamento basato sullo 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

# Esempio di applicazione (i giorni con allarme saranno segnati come True)
gt_df['alert'] = detect_anomaly(gt_df['search_index'])
print(gt_df[gt_df['alert']].index)

Modello di previsione personalizzato (con codice Python)

Principio: Creazione di un modello che unisce i dati delle ricerche con indicatori esterni (come meteo o prezzi delle azioni).

Modello:

# Creazione delle caratteristiche della serie temporale
df['7d_ma'] = df['search_index'].rolling(7).mean()  # Media mobile a 7 giorni
df['yoy'] = df['search_index'] / df.shift(365)['search_index']  # Confronto anno su anno

# Aggiunta di dati esterni (esempio: temperatura tramite API meteo)
df['temperature'] = get_weather_data()  

# Modello di previsione semplice (esempio: regressione lineare)
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(df[['7d_ma', 'yoy', 'temperature']], df['sales'])

Validazione e ottimizzazione del modello

Divisione dei dati: Separazione del set di dati in set di allenamento (80%) e set di test (20%) in base al tempo.

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

Metriche di valutazione: Utilizzo dell’errore assoluto medio (MAE) invece dell’accuratezza.

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

Consigli per l’ottimizzazione:

Regolare la finestra temporale (parametro window) in base ai cicli specifici dell’industria.

Aggiungere i dati di “query correlate” di Google Trends come indicatore del sentiment.

Monitoraggio in tempo reale dei concorrenti: 7 modi

Metodo 1: Analisi dinamica delle parole chiave del brand

Problema: I concorrenti rubano traffico dalle parole chiave del tuo brand tramite SEO (ad esempio, quando si cerca “il tuo brand + recensioni”, il concorrente appare in cima).

Soluzione:

  1. Esportare la classifica delle parole chiave del brand concorrente usando Ahrefs
  2. Estrarre i volumi di ricerca delle parole correlate usando Google Trends API
  3. Creare una heatmap delle parole chiave per visualizzare la competizione (esempio di codice):
python
import seaborn as sns
# Esempio di dati: matrix_data = {"il tuo brand": ["recensioni", "sito ufficiale"], "brand concorrente": ["recensioni", "offerte"]}
sns.heatmap(matrix_data, annot=True, cmap="YlGnBu")

Matric 2: Analisi della domanda delle caratteristiche del prodotto

Metodo: Confrontare il volume di ricerca delle nostre caratteristiche principali con quelle dei concorrenti su Google Trends (unità: %)
Formula:

Gap di domanda = (ricerca nostra caratteristica - ricerca caratteristica concorrente) / ricerca totale × 100

Esempio:

  • Se la domanda di “impermeabilità” scende del 5% o più per 3 giorni consecutivi, sarà necessario aggiornare immediatamente i contenuti della campagna.

Matric 3: Valutazione quantitativa della gestione della crisi

Indicatore:

  • Riduzione della ricerca negativa = (ricerca giorno T – ricerca giorno T-7) / ricerca giorno T-7
  • Recupero del CTR del marchio = Modifica visibile su Google Search Console

Script automatico:

python
if riduzione_ricerca_negativa > 20% & ctr_recupero > 15%:
    valutazione = "Gestione della crisi riuscita"
else:
    attiva_fase_2

Matric 4: Monitoraggio della sensibilità al prezzo

Fonte dei dati:

  1. Monitoraggio dei prezzi dei concorrenti su sito ufficiale tramite Selenium
  2. Analisi delle tendenze di ricerca su Google per “nome del marchio + calo prezzo”

Logica di reazione:

Se l'aumento delle ricerche del prezzo ridotto supera il 50%, attiva il piano di difesa del prezzo.

Matric 5: Analisi inversa della strategia dei contenuti

Raccolta dati:

  1. Estrazione dei titoli dei blog/video dei concorrenti tramite Scrapy
  2. Creazione di un’analisi di frequenza e modello N-gram

Output:

python
from sklearn.feature_extraction.text import CountVectorizer
# Esempio: contenuti concorrenti = ["Top 5 app", "Guida completa", "Tendenze 2024"]
vectorizer = CountVectorizer(ngram_range=(2,2))
X = vectorizer.fit_transform(contenuti_concorrenti)
print(vectorizer.get_feature_names_out())  # Esempio: ['top app', 'guida completa']

Matric 6: Monitoraggio in tempo reale degli annunci dei concorrenti

Strumenti:

  1. Estrazione delle parole chiave dei concorrenti tramite SpyFu
  2. Confronto delle parole chiave con le nostre tramite Pandas
intersezione = len(set(nostre_kw) & set(concorrenti_kw)) / len(nostre_kw)
print(f"Percentuale di competizione delle parole chiave: {intersezione:.0%}")

Reazione:

  • Se l’intersezione è > 30%, usa parole chiave a coda lunga

Matric 7: Analisi delle debolezze delle fonti di traffico

Piano:

  1. Monitoraggio delle fonti di traffico dei concorrenti tramite SimilarWeb API
  2. Se un canale ha una dipendenza superiore al 70%, annotalo

Strategia:

  • Focalizzati sui loro canali più forti (es. inserisci recensioni nei forum che frequentano)

Strumenti consigliati:

Formula aggiuntiva: Social Media × Dati di ricerca

Discussioni su Twitter → Previsione del picco di ricerca

Formula:

Ricerca tra 3 giorni = (tweet di oggi / media degli ultimi 3 giorni) × Fattore dell'industria

Passaggi:

  1. Ottieni i tweet tramite Twitter API
  2. Calcola la media degli ultimi 3 giorni
  3. Fattore: Tecnologia = 0.8, Bellezza = 1.2, Finanza = 0.5

Esempio:

Oggi: 1200 tweet su “AI phone”, media = 800

= (1200 / 800) × 0.8 = 1.2× = 20% di crescita prevista

Tendenze su TikTok → Previsione di viralità

Formula:

Score virale = (Crescita delle visualizzazioni in 24 ore + Mediana dei follower) × 0.7

Passaggi:

  1. Ottieni i dati tramite TikTok Creative Center
  2. Crescita = (Oggi - Ieri) / Ieri
  3. Calcola la mediana dei follower per i primi 50 creatori

Esempio:

#SummerCare Tag: Crescita = +180%, Mediana = 58000

→ Score virale ≈ (180 + 58000) × 0.7 = buon segnale

Reddit → Previsione dell’intento di acquisto

Formula:

Indice = (Like × 0.4) + (Commenti × 0.2) + (Parole come “compra” × 10)

Passaggi:

  1. Ottieni i dati sui post tramite Reddit API
  2. Conta i like, commenti e parole come “dove comprare”
  3. Se l’indice > 50, agisci subito

Esempio:

Post cuffie: 1200 like, 350 commenti, 15 “compra”

Score = 1200×0.4 + 350×0.2 + 15×10 = 480 + 70 + 150 = 700 → Aumenta le scorte!

Commenti YouTube → Previsione di acquisto

Formula:

Probabilità di acquisto = (% commenti positivi × 2) + (% commenti di domanda × 0.5)

Passaggi:

  1. Ottieni 500+ commenti tramite YouTube API
  2. Analizza con TextBlob
    from textblob import TextBlob
    commento = "La fotocamera è fantastica! Dove posso comprarla?"
    polarità = TextBlob(commento).sentiment.polarity  # Risultato: 0.8 (positivo)
  3. Polarità >0.3 = positivo, “?” significa domanda

Esempio

60% di commenti positivi, 25% di commenti problematici

Intenzione di acquisto = (60%×2)+(25%×0.5)=120%+12.5%=132.5% → Aumenta l’offerta pubblicitaria

Flusso di Monitoraggio in Tempo Reale Zapier+GT

Flusso di Monitoraggio Base

Scenario:Quando il volume di ricerca per una parola chiave aumenta più del 150% in un giorno, invia immediatamente un’email al team
Passaggi di Configurazione

Impostazione Trigger Zapier

Scegli “Webhook by Zapier” come trigger

Imposta la modalità Catch Hook e copia l’URL Webhook generato (esempio: https://hooks.zapier.com/hooks/12345)

Distribuzione dello 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()
    
    # Calcola la crescita giornaliera
    today = data.iloc[-1]['metaverso']
    yesterday = data.iloc[-2]['metaverso']
    growth_rate = (today - yesterday)/yesterday * 100
    
    # Attiva Zapier
    if growth_rate > 150:
        requests.post(
            "URL del tuo Webhook",
            json={"keyword": "metaverso", "growth": f"{growth_rate:.1f}%"}
        )
    return "OK"

Impostazione dell’Azione Zapier

Aggiungi un’azione “Gmail”: invia un’email di avviso quando ricevi i dati del Webhook

Variabili del template dell’email: Il volume di ricerca per {{keyword}} è aumentato di {{growth}}, dai un’occhiata subito → Link a Google Trends

Rapporto Settimanale dei Trend Generato Automaticamente

Architettura del Flusso: Google Trends API → Google Sheets → Zapier → ChatGPT → Notion

Passaggi di Configurazione

Sincronizzazione dei Dati nel Foglio

Usa Google Apps Script per raccogliere i dati da GT ogni ora e inserirli nel modello Google Sheets

Campi principali: Parola chiave, volume di ricerca settimanale, variazione annuale, query correlate

Condizione di Trigger Zapier

Scegli “Schedule by Zapier” per attivare il trigger ogni venerdì alle 15:00

Azione 1: Ottieni la riga di dati più recente da “Google Sheets

Azione 2: Genera il report con “OpenAI

Sei un analista di mercato esperto, crea un report settimanale basato sui seguenti dati:
Top 3 delle parole chiave: {{Top 3 delle parole chiave}}  
Parola chiave con la maggiore crescita: {{Parola chiave con la maggiore crescita}} ({{tasso di crescita}})
Cosa monitorare: {{Query correlate}}

Archiviazione Automatica su Notion

Usa l’azione “Notion” per creare una nuova pagina

Aggiungi campi dinamici: {{Contenuto dell'analisi AI}} + screenshot della curva dei trend (generato tramite QuickChart)

Regolazione Dinamica del Budget Pubblicitario

Flusso Completamente Automatizzato: Dati GT → Zapier → Google Ads API → Notifica Slack
Configurazione dettagliata

Pipeline dati in tempo reale

  • Ogni minuto uno script Python chiama l’API di Google Trends now 1-H
# Codice semplice (può essere eseguito tramite cron)
current_index = requests.get("Google Trends API in tempo reale").json()['default']
if current_index > threshold:
    adjust_budget(current_index)  # Chiama l'API di Google Ads

Impostazione intermedia tramite Zapier

Trigger: “Webhook” ottiene l’indice delle tendenze attuali

Filtro: continua solo se {{indice}} > 80

Azione 1: “Google Ads” regola l’offerta per la parola chiave

new_bid = old_bid × (1 + (indice - 50)/100)

Azione 2: Invia un avviso al canale #marketing su “Slack”

【Aggiornamento automatico】L'offerta per la parola chiave {{keyword}} è cambiata da {{old_bid}} a {{new_bid}}

Filtro delle tendenze in 3 fasi

Fase 1: Verifica dell’autenticità

Obiettivo: Rimuovere tendenze false o temporanee

Criteri di validazione

Aumento costante su più piattaforme

  • Aumento del 50% in una settimana su Google Trends
  • Aumento di almeno il 30% nei tweet correlati
  • 20+ post su Reddit al giorno

Crescita nelle ricerche correlate

python
# Verifica le ricerche correlate in crescita
related_queries = pytrends.related_queries()
rising_queries = related_queries['rising'].sort_values('value', ascending=False)
if len(rising_queries) < 5:
    return False

Esempio

Il topic “AI Phone Case” ha passato la validazione:

  • Aumento del 120% su GT, +45% nei tweet
  • Il termine correlato “AI Cooling Case” è aumentato del 300%

Risultato: Fase 1 superata

Fase 2: Verifica della sostenibilità

Metodo: Ciclo di vita della tendenza

Metriche principali

Confronto con il picco storico

python
current_index = 80
historical_peak = gt_data['AI Phone Case'].max()
if current_index < historical_peak * 0.3:
    return "La tendenza sta scendendo"

Salute dei termini correlati

  • Parole positive (“recensione” / “comprare”) ≥ 60%
  • Parole negative (“lamentela” / “difetto”) ≤ 10%

Strumento

Analisi del sentiment con TextBlob:

python
from textblob import TextBlob
sentiment = TextBlob("AI case salvato dalla caduta, ottimo!").sentiment.polarity
if sentiment < 0.2:
    return False

Esempio

L’indice per “AI Phone Case” è il 65% del picco storico, parole positive 78%

Risultato: Tendenza in crescita, fase 2 superata

Fase 3: Valutazione della capacità commerciale

Formula di base

Indice commerciale = (volume di ricerca con intento d'acquisto × 0.6) + (engagement recensioni × 0.4)

Raccolta dati

Monitoraggio delle ricerche con intenti d’acquisto

python
buy_keywords = ["dove comprare", "prezzo", "sconto"]
buy_volume = sum([gt_data[keyword] for keyword in buy_keywords])

Engagement recensioni

YouTube: Mi piace / visualizzazioni ≥ 5%

Xiaohongshu: ≥ 500 preferiti

Decisioni automatiche

python
if commercial_score >= 75:
    Avviare campagna e-commerce + SEO
elif commercial_score >= 50:
    Avviare solo marketing dei contenuti
else:
    Abbandonare il topic

Esempio

  • Volume di ricerca con intento d’acquisto per “AI Phone Case” = 1200/giorno
  • Tasso di mi piace per le recensioni video = 7.2%
  • Indice commerciale = (1200×0.6)+(7.2×0.4)=72+2.88=74.88 → Avviare marketing dei contenuti

Flusso di esecuzione del filtro a tre livelli

graph TD
    A[Banca di idee] --> B{Primo livello: Verifica della popolarità}
    B -- Accettato --> C{Secondo livello: Potenziale di lungo periodo}
    B -- Rifiutato --> D[Archivio]
    C -- Accettato --> E{Terzo livello: Capacità di conversione}
    C -- Rifiutato --> D
    E -- Accettato --> F[Esecuzione principale]
    E -- Rifiutato --> G[Osservazione]

SEMrush × Strategia di ottimizzazione ROI di GT

Motore di regolazione dinamica delle offerte

Logica principale: Ottimizzazione dinamica delle offerte combinando i dati delle offerte per parole chiave della concorrenza di SEMrush con gli indici di tendenze di ricerca in tempo reale di GT.

Passaggio 1: Raccolta dei dati

python
# Ottenere il CPC della concorrenza tramite l'API di SEMrush (esempio)
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])  # Estrai il valore del CPC

# Ottenere l'indice di ricerca in tempo reale di GT (da 0 a 100)
gt_index = pytrends.interest_over_time()['vr glasses'].iloc[-1]

Formula per la regolazione delle offerte:

Offerta suggerita = CPC della concorrenza × (Indice di GT / 100) × Fattore competitivo  
(Fattore competitivo: Nuovo mercato = 1.2; Mercato saturo = 0.8)

Sincronizzazione automatica con Google Ads

python
# Aggiornamento dell'offerta tramite API di Google Ads (versione semplificata)
ads_api.update_keyword_bid(keyword_id=123, new_bid=offerta_suggerita)

Esempio: Quando l’indice di GT per “vr glasses” aumenta da 40 a 70, l’offerta diventa:
1.5 × (70/100) × 1.2 = €1.26 → Riduzione del 16% nel costo per clic

Strategia delle parole chiave: attacco e difesa

Passaggi:

  1. SEMrush: Estrai le prime 50 parole chiave con maggiore traffico della concorrenza
  2. Google Trends: Seleziona le parole chiave con crescita mensile della ricerca > 20%
  3. Creazione della heatmap: Rosso = alto valore + alta concorrenza; Blu = basso valore + bassa concorrenza
python
import matplotlib.pyplot as plt
plt.scatter(x=competizione, y=gt_growth, c=cpc_parola_chiave, cmap='RdYlGn')
plt.colorbar(label='CPC (€)')

Riassegnazione dinamica del budget

Come fare:

  1. Previsione: Allena un modello ARIMA sui dati storici di GT per prevedere il volume di ricerca dei prossimi 7 giorni
python
from statsmodels.tsa.arima.model import ARIMA
model = ARIMA(gt_dati, order=(3,1,1))
results = model.fit()
forecast = results.forecast(steps=7)

Assegnazione del budget basata su SEMrush:

  • Valore parola chiave = (Tasso di conversione × Valore medio ordine) ÷ CPC
  • Formula:
Budget giornaliero = (Volume previsto × Valore parola chiave) ÷ Budget totale

In un’epoca in cui i dati sono onnipresenti, il 99% delle aziende ancora pianifica il futuro in base ai trend del passato.

La vera forza di Google Trends non sta nel “prevedere” il futuro — ma nel ridurre il divario tra “intento di ricerca” e “azione aziendale”.