微信客服
Telegram:guangsuan
电话联系:18928809533
发送邮件:xiuyuan2000@gmail.com

超越Google Trends官方版|7個必學的谷歌趨勢分析指南

本文作者:Don jiang

傳統的關鍵字熱度比較,本質上是資料的被動接收,而非商業機會的主動捕捉。

本文揭露的超越Google Trends的黑科技,將徹底打破地域與時間的限制、實現即時監控,經過20多個產業驗證的方法,正在幫助頂尖企業提早14天預判市場轉折點,在競品察覺前完成資源佈局。

谷歌趋势

Google Trends未公開的3大API呼叫技巧

城市級資料擷取(突破國家/州限制)

  • 痛點:官方介面最小只顯示州/省維度資料
  • 操作:在API請求URL的geo參數中直接輸入城市ID
python
# 範例:擷取洛杉磯(地理編碼US-CA-803)的"vr glasses"資料
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])  # 輸出前500個字元驗證

效果:可精準到紐約曼哈頓(US-NY-501)、東京都市區(JP-13-1132)等3000多個城市

3種快速取得Google Trends城市ID的實戰方法

方法一:維基百科地理編碼直查法

瀏覽城市維基百科頁面(例如:洛杉磯)

查看網址中的「地理編碼」(頁面右側資訊欄)

url
https://zh.wikipedia.org/wiki/洛杉磯
# 頁面右側「地理編碼」顯示:GNS=1662328

轉換格式:US-CA-1662328(國家-州編碼-GNS碼)

方法二:GeoNames資料庫批次下載

用Excel開啟檔案,篩選「國家代碼+城市名」

csv
5368361,Los Angeles,US,CA,34.05223,-118.24368,PPLA2,...
# 欄位說明:GeonameID | 城市名 | 國家代碼 | 州代碼 | 經緯度...
  • 組合ID格式:US-CA-5368361

方法三:Google Trends介面逆向解析(即時驗證)​

  • 開啟Google Trends
  • 按F12開啟開發者工具 → 切換到「Network」標籤
  • 在搜尋欄輸入城市名(例如輸入”New York”)

查看網路請求中的geo參數:

http
GET /trends/api/explore?geo=US-NY-501&hl=zh-CN
# 參數中的US-NY-501就是紐約市ID

即時搜尋脈衝監控(分鐘級更新)

  • 痛點:官方資料延遲4-8小時
  • 操作:在time參數使用”now 1-H”擷取最近60分鐘的資料
bash
# 終端快速測試(需安裝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'

輸出:每分鐘的搜尋量指數(例如07:45:00=87,07:46:00=92)

5年以上歷史資料重建

  • 痛點:官方最多只顯示5年資料
  • 方法:分段爬取後資料拼接(2004年至今)

步驟

  1. 按年產生多個請求連結(例如:2004-2005,2005-2006…)
  2. 使用comparisonItem參數保持關鍵字一致性
  3. 用Pandas合併時間序列
python
# 資料合併核心程式碼
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()

執行:所有請求需加入headers = {"User-Agent": "Mozilla/5.0"}偽裝瀏覽器存取,建議控制在每分鐘3次請求以內避免被封鎖。

注意:此操作需要安裝Python環境(建議3.8以上版本),並確保您的資料檔案是JSON格式(例如2004-2005.json2005-2006.json

機器學習+GT資料的預測框架

滯後性規律

  • 痛點:Google Trends的搜尋熱度與實際市場需求存在時間差(例如使用者搜尋”防曬乳”後2週才會產生購買行為)
  • 操作:用滯後相關性分析找到最佳預測視窗
python
import pandas as pd
from scipy.stats import pearsonr

# 載入資料(sales_df=銷量資料,gt_df=搜尋量資料)
combined = pd.merge(sales_df, gt_df, on='date')

# 計算1-30天滯後期的相關係數
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)

# 視覺化最佳滯後天數(通常出現在峰值)
pd.Series(correlations).plot(title='滯後相關性分析')

異常波動偵測演算法

痛點:傳統門檻值警報無法識別漸變型趨勢變化

方法:基於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

# 應用範例(觸發預警的日期會標記True)
gt_df['alert'] = detect_anomaly(gt_df['search_index'])
print(gt_df[gt_df['alert']].index)

自訂預測指標範本(附Python程式碼)​

原理:將搜尋量資料與外部指標(例如天氣、股價)融合建模

範本

# 產生時間序列特徵
df['7d_ma'] = df['search_index'].rolling(7).mean()  # 7日移動平均
df['yoy'] = df['search_index'] / df.shift(365)['search_index']  # 同比變化

# 加入外部資料(範例:天氣API擷取溫度資料)
df['temperature'] = get_weather_data()  

# 輕量級預測模型(線性迴歸範例)
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(df[['7d_ma', 'yoy', 'temperature']], df['sales'])

模型驗證與最佳化

資料切割:按時間順序劃分訓練集(前80%)和測試集(後20%)

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

評估指標:使用MAE(平均絕對誤差)而非準確率

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

迭代建議

調整時間視窗(window參數)適應不同產業節奏

引入Google Trends的「相關查詢」資料作為情緒指標


即時追蹤對手的7個維度

維度1:品牌關聯字動態比較

痛點:競品透過SEO挾持你的品牌字流量(例如搜尋「你的品牌+評測」時競品出現在首位)

操作

  1. Ahrefs批次匯出競品品牌字排名
  2. 透過Google Trends API擷取關聯字搜尋量
  3. 產生關鍵字攻防熱力圖(範例程式碼):
python
import seaborn as sns
# 資料範例:matrix_data = {"你的品牌": ["評測", "官網"], "競品品牌": ["評測", "優惠"]}
sns.heatmap(matrix_data, annot=True, cmap="YlGnBu")

維度2:產品功能需求熱度差值分析

方法:比較雙方產品核心功能的GT搜尋量差值(單位:%)
公式

需求差值 = (我方功能字搜尋量 - 競品功能字搜尋量) / 總搜尋量 × 100  

實戰案例

  • 當「手機防水」差值連續3天<-5%,需緊急升級產品宣傳策略

維度3:危機公關效果量化評估

指標系統

  • 負面聲量下降率 = (T日負面搜尋量 – T-7日負面搜尋量) / T-7日負面搜尋量
  • 品牌字CTR回升率 = 透過Google Search Console擷取點擊率變化

自動化腳本

python
if 負面聲量下降率 > 20% & CTR回升率 > 15%:
    評估為"危機處理成功"
else:
    觸發二次公關預案

維度4:價格敏感區監控

資料來源

  1. 擷取競品官網價格變動(Selenium自動化監測)
  2. 監控GT中「競品品牌+降價」搜尋量
    決策邏輯
當競品降價且相關搜尋量週環比上漲>50%時,觸發價格防禦機制

維度5:內容行銷策略逆向工程

擷取方法

  1. Scrapy爬取競品部落格/影片標題
  2. 提取高頻字生成N-gram模型

分析輸出

python
from sklearn.feature_extraction.text import CountVectorizer
# 範例:競品標題庫 = ["5種用法", "終極指南", "2024趨勢"]
vectorizer = CountVectorizer(ngram_range=(2,2))
X = vectorizer.fit_transform(競品標題庫)
print(vectorizer.get_feature_names_out())  # 輸出['5種用法', '終極指南']

維度6:廣告投放動態感知

監測工具鏈

  1. SpyFu擷取競品Google Ads關鍵字
  2. Pandas計算關鍵字重疊率:
python
overlap = len(set(我方關鍵字) & set(競品關鍵字)) / len(我方關鍵字)
print(f"廣告競爭強度: {overlap:.0%}")

應對策略

  • 重疊率>30%時啟動長尾字包圍戰術

維度7:流量來源脆弱性分析

破解方法

  1. 透過SimilarWeb API擷取競品流量管道佔比
  2. 辨識單一依賴管道(例如「自然搜尋>70%」)

打擊策略

  • 針對競品依賴管道發起飽和攻擊(例如大量註冊其核心論壇帳號發佈評測)

執行工具包


社群媒體×搜尋資料的黃金公式

Twitter討論量→搜尋量預測

公式

未來3天搜尋量增幅 = (當前推文量 / 前3天平均推文量) × 產業係數

操作步驟

  1. Twitter API統計目標關鍵字的每日推文數
  2. 計算3天移動平均推文量
  3. 產業係數參考(科技類0.8、美妝類1.2、金融類0.5)

範例

今日「AI手機」推文量=1200則,前3天平均=800則

預測搜尋量增幅 = (1200/800) × 0.8 = 1.2倍

TikTok挑戰賽熱度→爆款預判

公式

爆款機率 = (24小時播放成長% + 參與創作者粉絲中位數) × 0.7

操作步驟

  1. TikTok Creative Center擷取挑戰賽資料
  2. 計算播放量成長率:(當前播放 - 昨日播放)/ 昨日播放
  3. 擷取前50個影片作者的粉絲數,取中位數

範例

#夏季防曬挑戰 播放量24小時成長180%,創作者粉絲中位數=5.8萬

爆款機率 = (180% + 5.8) × 0.7 = 89.3% → 立即啟動相關廣告

Reddit等效搜尋值

公式

等效搜尋指數 = (貼文upvotes × 0.4) + (留言數 × 0.2) + ("購買"類關鍵字出現次數 × 10)  

操作步驟

  1. Reddit API擷取目標版塊的貼文資料
  2. 統計upvotes、留言數和含”where to buy”/”best deal”的留言數
  3. 代入公式計算等效值(超過50分觸發行動)

範例

某耳機貼:upvotes=1200,留言=350,含「購買」關鍵字15次

等效值 = (1200×0.4)+(350×0.2)+(15×10) = 480+70+150=700 → 立刻補貨

YouTube留言情緒→搜尋需求轉換率

公式

購買意願強度 = (積極情緒留言佔比 × 2) + (問題類留言佔比 × 0.5)

操作步驟

  1. YouTube API提取影片留言(至少500則)
  2. 情緒分析工具:TextBlob函式庫(Python)
    from textblob import TextBlob
    comment = "這台相機的防手震太棒了,哪裡買得到?"
    polarity = TextBlob(comment).sentiment.polarity  # 輸出0.8(積極)
  3. 分類統計:積極(polarity>0.3)、問題(含「?」)

範例

積極留言佔比60%,問題留言佔比25%

購買意願 = (60%×2)+(25%×0.5)=120%+12.5%=132.5% → 提高廣告出價


Zapier+GT即時監控流

基礎監控流

場景:當目標關鍵字搜尋量單日暴漲超過150%時,立即透過電子郵件通知團隊

配置步驟

Zapier觸發器設定

選擇「Webhook by Zapier」作為觸發器

設定Catch Hook模式,複製產生的Webhook URL(例如:https://hooks.zapier.com/hooks/12345

Python腳本部署​(Google Cloud Functions)

import requests
from pytrends.request import TrendReq

def fetch_gt_data(request):
    pytrends = TrendReq()
    pytrends.build_payload(kw_list=["元宇宙"], timeframe='now 1-d')
    data = pytrends.interest_over_time()
    
    # 計算日環比
    today = data.iloc[-1]['元宇宙']
    yesterday = data.iloc[-2]['元宇宙']
    growth_rate = (today - yesterday)/yesterday * 100
    
    # 觸發Zapier
    if growth_rate > 150:
        requests.post(
            "你的Webhook URL",
            json={"keyword": "元宇宙", "growth": f"{growth_rate:.1f}%"}
        )
    return "OK"

Zapier動作配置

加入「Gmail」動作:當收到Webhook資料時傳送預警電子郵件

電子郵件範本變數:{{keyword}}搜尋量暴漲{{growth}},立即查看詳情→Google Trends連結

自動產生趨勢週報

流程架構Google Trends API → Google Sheets → Zapier → ChatGPT → Notion

配置步驟

資料同步到表格

使用Google Apps Script每小時擷取GT資料到Google Sheets範本

關鍵欄位:關鍵字、週搜尋量、同比變化、關聯查詢字

Zapier觸發條件

選擇「Schedule by Zapier」每週五15:00觸發

動作1:「Google Sheets」擷取最新資料行

動作2:「OpenAI」產生分析報告

你是一位資深市場分析師,根據以下資料產生週報:
搜尋量前三關鍵字:{{前3關鍵字}}  
最大漲幅字:{{增長最快字}}({{增長率}})
需要重點關注:{{關聯查詢字}}

自動歸檔到Notion

使用「Notion」動作建立新頁面

插入動態欄位:{{AI分析內容}} + 趨勢曲線截圖(透過QuickChart產生)

動態調整廣告預算

全自動化流GT資料 → Zapier → Google Ads API → Slack通知

配置詳解

即時資料管道

  • Python每分鐘請求一次GT的now 1-H介面
# 簡化版程式碼(需部署為定時任務)
current_index = requests.get("GT實時接口").json()['默認值']
if current_index > threshold:
    adjust_budget(current_index)  # 呼叫Google Ads API

Zapier中介軟體配置

觸發器:「Webhook」接收目前搜尋指數

篩選器:僅當{{搜尋指數}} > 80時繼續

動作1:「Google Ads」調整關鍵字出價

新出價 = 原出價 × (1 + (搜尋指數 - 50)/100)

動作2:「Slack」傳送#marketing頻道通知

【自動調價】{{關鍵字}}出價已從{{原出價}}調整為{{新出價}}

爆款選題的3層過濾機制

第一層:熱度真實性驗證

核心任務:剔除虛假熱度與短期雜訊

驗證維度

跨平台趨勢一致性

  • Google Trends搜尋量週環比 ≥50%
  • Twitter相關推文量日增長 ≥30%
  • Reddit相關版塊新貼文數 ≥20則/天

相關查詢擴散性

python
# 擷取Google Trends相關查詢的增長速度
related_queries = pytrends.related_queries()
rising_queries = related_queries['rising'].sort_values('value', ascending=False)
if len(rising_queries) < 5: # 至少5個關聯字在上升
    return False

範例

選題「AI手機殼」初步驗證:

  • GT週增長120%,Twitter日推文+45%
  • 關聯字「AI散熱手機殼」週搜尋量暴漲300%

結果:通過第一層

第二層:持續潛力評估

核心演算法:生命週期階段判斷模型

評估指標

同比歷史峰值

python
current_index = 80 # 目前搜尋指數
historical_peak = gt_data['AI手機殼'].max()
if current_index < historical_peak * 0.3: # 未達歷史峰值的30%
    return "衰退期"

關聯話題健康度

  • 正向關聯字佔比(例如「評測」/「購買」) ≥60%
  • 負面關聯字(例如「缺點」/「投訴」) ≤10%

實戰工具

預算重分配

演算法流程

  1. 預測模型:用GT歷史資料訓練ARIMA模型預測未來7天搜尋量

python

from statsmodels.tsa.arima.model import ARIMA
model = ARIMA(gt_data, order=(3,1,1))
results = model.fit()
forecast = results.forecast(steps=7)

SEMrush…

“`

滚动至顶部