전통적인 키워드 트렌드 비교는 본질적으로 데이터를 수동적으로 받아들이는 것이지, 비즈니스 기회를 능동적으로 포착하는 방식은 아닙니다.
이번 글에서 소개할 Google Trends를 뛰어넘는 초고급 기술은 지역과 시간의 한계를 완전히 깨고, 실시간 모니터링을 가능하게 합니다. 이미 20개 이상의 산업에서 검증된 이 방법은 선두 기업들이 경쟁사보다 14일 먼저 시장 전환점을 예측하고, 자원 배치를 선점하는 데 도움을 주고 있습니다.
Google Trends의 숨겨진 3가지 API 호출 팁
도시 단위 데이터 수집 (국가/주 단위 한계 돌파)
- 문제점 : 공식 페이지에서는 주/도 단위까지만 데이터 제공
- 방법 : API 요청 URL의
geo
파라미터에 도시 ID 직접 입력
# 예시: 로스앤젤레스 (지리코드 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개 이상의 도시까지 정밀 타겟 가능
Google Trends 도시 ID 빠르게 찾는 실전 3가지 방법
방법 1: 위키백과 지리코드 직접 조회
도시의 위키백과 페이지 방문 (예: 로스앤젤레스)
우측 정보 박스에서 ‘지리코드’ 확인
https://zh.wikipedia.org/wiki/洛杉矶
# 페이지 우측 '지리코드' 예시 : GNS=1662328
변환 포맷 : US-CA-1662328
(국가-주코드-GNS코드)
방법 2: GeoNames 데이터베이스 대량 다운로드
- GeoNames 무료 데이터베이스 접속
cities15000.zip
다운로드 (인구 15,000명 이상 도시)
Excel로 열고, “국가코드+도시명” 기준 필터링
5368361,Los Angeles,US,CA,34.05223,-118.24368,PPLA2,...
# 필드 설명: GeonameID | 도시명 | 국가코드 | 주코드 | 위경도 등
- ID 포맷 조합 :
US-CA-5368361
방법 3: Google Trends 화면에서 실시간 분석
- Google Trends 열기
- F12 키로 개발자 도구 → “Network” 탭 전환
- 도시명 검색 (예: “New York”)
요청 중 geo 파라미터 확인:
GET /trends/api/explore?geo=US-NY-501&hl=zh-CN
# 여기서 US-NY-501이 뉴욕 ID
실시간 검색 트렌드 모니터링 (분 단위 업데이트)
- 문제점 : 공식 데이터는 4~8시간 지연
- 방법 :
time
파라미터에 “now 1-H” 사용 → 최근 60분 데이터
# 터미널 테스트 (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년~현재)
절차 :
- 연도별로 요청 URL 생성 (예: 2004-2005, 2005-2006 등)
comparisonItem
파라미터로 키워드 동일하게 유지- Pandas로 시계열 데이터 합치기
# 데이터 합치기 핵심 코드
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.json
, 2005-2006.json
).
머신러닝 + GT 데이터 기반 예측 프레임워크
지연 효과 규칙
- 문제: Google Trends 검색 트렌드와 실제 시장 수요 사이에 시간차가 있어요 (예: 사람들이 “선크림”을 검색하고 나서 2주 후에 실제 구매가 일어나는 경우)
- 방법: 지연 상관 분석으로 가장 예측력 높은 시점을 찾아내요
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 기반 급격한 변화 감지
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%)을 나눠요
split_idx = int(len(df)*0.8)
train = df.iloc[:split_idx]
test = df.iloc[split_idx:]
평가지표: 정확도보다 MAE (평균 절대 오차)를 써요
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로 당신의 브랜드 키워드 트래픽을 가로채는 경우가 있어요 (예: “당신 브랜드 + 리뷰” 검색 시 경쟁사가 먼저 나오는 경우)
방법:
Ahrefs
로 경쟁 브랜드 키워드 순위를 한꺼번에 내보내기Google Trends API
로 연관 키워드 검색량 수집- 키워드 방어/공격 히트맵 생성 (예시 코드):
import seaborn as sns
# 데이터 예시: matrix_data = {"당신 브랜드": ["리뷰", "공식"], "경쟁 브랜드": ["리뷰", "할인"]}
sns.heatmap(matrix_data, annot=True, cmap="YlGnBu")
차원 2: 제품 기능 수요 온도 차이 분석
방법: 양쪽 제품의 핵심 기능에 대한 구글 트렌드 검색량 차이 비교 (단위: %)
공식:
수요 차이 = (우리 기능 키워드 검색량 - 경쟁사 기능 키워드 검색량) / 전체 검색량 × 100
실전 사례:
- “방수 스마트폰”의 차이가 3일 연속 -5% 미만일 경우, 제품 홍보 전략 긴급 조정 필요
차원 3: 위기 대응 효과 정량 평가
지표 체계:
- 부정 검색량 감소율 = (T일 부정 검색량 – T-7일 부정 검색량) / T-7일 부정 검색량
- 브랜드 키워드 CTR 회복률 =
Google Search Console
을 통해 클릭률 변화 확인
자동화 스크립트:
if 부정 검색량 감소율 > 20% & CTR 회복률 > 15%:
평가 = "위기 대응 성공"
else:
2차 PR 플랜 실행
차원 4: 가격 민감 구간 모니터링
데이터 소스:
- 경쟁사 공식 홈페이지 가격 변화 크롤링 (
Selenium
자동화 모니터링) - GT에서 “경쟁사 브랜드 + 가격 인하” 검색량 모니터링
의사결정 로직:
경쟁사 가격 인하 + 관련 검색량이 전주 대비 50% 이상 증가 시 가격 방어 메커니즘 발동
차원 5: 콘텐츠 마케팅 전략 역공학
수집 방식:
Scrapy
를 이용해 경쟁사 블로그/영상 제목 크롤링- 자주 등장하는 단어로 N-gram 모델 생성
분석 결과 출력:
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: 광고 집행 동향 감지
모니터링 툴 체인:
SpyFu
를 통해 경쟁사 Google Ads 키워드 확인Pandas
로 키워드 중복률 계산
overlap = len(set(우리 키워드) & set(경쟁사 키워드)) / len(우리 키워드)
print(f"광고 경쟁 강도: {overlap:.0%}")
대응 전략:
- 중복률이 30% 넘으면 롱테일 키워드로 포위 전략 실시
차원 7: 트래픽 소스 취약성 분석
해결 방식:
SimilarWeb API
로 경쟁사 유입 채널 비중 확인- 단일 의존 채널 판별 (예: 자연 검색 70% 초과)
공격 전략:
- 의존 채널 대상 집중 공략 (예: 핵심 커뮤니티 계정 대량 생성 및 후기 등록)
실행 도구 패키지:
- 데이터 수집: Ahrefs + Python 크롤러 (프록시 IP 회전 설정 필요)
- 실시간 대시보드: Grafana + Google Data Studio 연동
- 경보 임계치: 일간 변동률 15% 초과 시 메일 알림 추천
소셜미디어 × 검색데이터의 황금 공식
Twitter 언급량 → 검색량 예측
공식:
앞으로 3일간 검색량 증가율 = (현재 트윗 수 / 최근 3일 평균 트윗 수) × 업계 계수
실행 단계:
Twitter API
로 대상 키워드의 일일 트윗 수 집계- 3일 이동 평균 계산
- 업계 계수 예: IT 0.8 / 뷰티 1.2 / 금융 0.5
예시:
오늘 “AI폰” 트윗 1200개, 최근 3일 평균 800개
예측 증가율 = (1200 / 800) × 0.8 = 1.2배
TikTok 챌린지 인기 → 히트 가능성 예측
공식:
히트 확률 = (24시간 재생 증가율 + 참여 크리에이터 팔로워 중간값) × 0.7
실행 단계:
TikTok Creative Center
로 챌린지 데이터 수집- 재생 증가율 계산:
(오늘 재생 - 어제 재생) / 어제 재생
- 상위 50명 크리에이터의 팔로워 중간값 산출
예시:
#여름자외선챌린지 24시간 재생 증가 180%, 크리에이터 중간 팔로워 수 5.8만
히트 확률 = (180% + 5.8) × 0.7 = 89.3% → 즉시 관련 광고 시작
Reddit 검색 등가값
공식:
등가 검색 지수 = (업보트 수 × 0.4) + (댓글 수 × 0.2) + ("구매" 키워드 등장 횟수 × 10)
실행 단계:
Reddit API
로 타겟 서브레딧 게시글 수집- 업보트 수, 댓글 수, “where to buy” / “best deal” 포함 댓글 수 카운트
- 공식에 대입해 계산 (50점 초과 시 행동 개시)
예시:
어느 이어폰 관련 글: 업보트 1200, 댓글 350, 구매 키워드 등장 15회
등가값 = (1200×0.4)+(350×0.2)+(15×10) = 480+70+150=700 → 즉시 재고 보충
YouTube 댓글 감정 → 구매 전환 지표
공식:
구매 의향 강도 = (긍정 댓글 비율 × 2) + (질문형 댓글 비율 × 0.5)
실행 단계:
YouTube API
로 최소 500개 댓글 추출- 감정 분석 도구:
TextBlob
(Python)
from textblob import TextBlob
comment = "이 카메라 손떨림 방지 진짜 좋네요, 어디서 사요?"
polarity = TextBlob(comment).sentiment.polarity # 출력 0.8 (긍정)
- 분류 기준: 긍정 (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 트렌드 링크
주간 트렌드 리포트 자동 생성
프로세스 구조: 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개 키워드: {{Top 3 Keywords}}
가장 많이 오른 키워드: {{Fastest Growing Keyword}} ({{Growth Rate}})
특히 주목해야 할 키워드: {{Related Queries}}
Notion에 자동 저장
「Notion」 액션을 사용해 새 페이지 생성
동적 필드 삽입: {{AI Analysis}}
+ 트렌드 그래프 스크린샷 ( QuickChart
로 생성)
광고 예산 동적 조정
완전 자동화 플로우: GT 데이터 → Zapier → Google Ads API → Slack 알림
설정 상세 설명:
실시간 데이터 파이프라인
Python
을 사용해 매분 GT의now 1-H
API를 호출
# 간단한 버전 코드 (스케줄링 작업으로 배포 필요)
current_index = requests.get("GT 실시간 API").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단계 필터링 메커니즘
1단계: 트렌드의 진짜 여부 확인
핵심 과제: 가짜 트렌드 및 단기 노이즈 제거
검증 기준:
플랫폼 간 트렌드 일관성
- Google Trends 주간 검색량 ≥50% 증가
- Twitter 관련 트윗 수 일간 증가율 ≥30%
- Reddit 관련 게시판 하루 신규 글 ≥20개
관련 검색어 확산성
# 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 휴대폰 케이스” 주제의 1차 검토 결과:
- GT 주간 증가율 120%, Twitter 일간 트윗 +45%
- 관련 키워드 “AI 냉각 휴대폰 케이스” 주간 검색량 300% 급증
결과: 1단계 통과
2단계: 지속 가능성 평가
핵심 알고리즘: 생애 주기 단계 판별 모델
평가 지표:
과거 최고치와의 비교
current_index = 80 # 현재 검색 지수
historical_peak = gt_data['AI 휴대폰 케이스'].max()
if current_index < historical_peak * 0.3: # 과거 피크의 30% 미만일 경우
return "쇠퇴기"
연관 토픽의 건강도
- 긍정 키워드 비율 (“리뷰”, “구매” 등) ≥60%
- 부정 키워드 (“단점”, “불만” 등) ≤10%
실전 도구:
TextBlob
으로 감성 분석:
from textblob import TextBlob
sentiment = TextBlob("충격 흡수 AI 폰케이스 진짜 좋음").sentiment.polarity
if sentiment < 0.2: # 긍정 감정이 부족함
return False
예시:
“AI 휴대폰 케이스” 현재 지수는 과거 최고치의 65%, 긍정 키워드 비율 78%
결과: 「성장기」 진입, 2단계 통과
3단계: 전환 능력 분석
핵심 공식:
상업적 가치 지수 = (구매 의도 키워드 검색량 × 0.6) + (리뷰 콘텐츠 참여율 × 0.4)
데이터 수집:
구매 의도 키워드 모니터링
buy_keywords = ["어디서 사지", "얼마야", "할인"]
buy_volume = sum([gt_data[keyword] for keyword in buy_keywords])
리뷰 콘텐츠 참여율
YouTube 리뷰 영상의 「좋아요/조회수 비율」 ≥5%
샤오홍슈 관련 게시글 「저장 수」 ≥500
자동화 의사결정:
if 상업적 가치 지수 >= 75:
이커머스 광고 + SEO 공략 시작
elif 상업적 가치 지수 >= 50:
콘텐츠 마케팅만 진행
else:
주제 포기
예시:
- “AI 휴대폰 케이스” 구매 의도 키워드 일평균 검색량 1200
- YouTube 리뷰 평균 좋아요율 7.2%
- 상업적 가치 지수 = (1200×0.6)+(7.2×0.4) = 72+2.88=74.88 → 콘텐츠 마케팅 시작
3단계 필터링 실행 플로우차트
graph TD
A[주제 풀] --> B{1단계: 인기 검증}
B -- 통과 --> C{2단계: 지속 가능성}
B -- 거절 --> D[폐기 보관함]
C -- 통과 --> E{3단계: 전환력}
C -- 거절 --> D
E -- 통과 --> F[핵심 콘텐츠 실행]
E -- 거절 --> G[관찰 보관함]
SEMrush×GT의 ROI 향상 전략
동적 입찰 조정 엔진
핵심 로직: SEMrush의 경쟁 키워드 입찰 데이터를 GT의 실시간 검색 트렌드와 결합해 입찰 자동 최적화
실행 단계: 데이터 수집
# SEMrush API를 통해 경쟁 키워드 CPC 가져오기 (예시)
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]) # CPC 값 추출
# GT 실시간 검색 지수 가져오기 (0~100)
gt_index = pytrends.interest_over_time()['vr glasses'].iloc[-1]
입찰 공식:
추천 입찰가 = 경쟁사 CPC × (GT 지수 / 100) × 경쟁 계수
(경쟁 계수: 신시장 1.2, 레드오션 시장 0.8)
Google Ads와 자동 동기화
# Google Ads API로 입찰가 자동 조정 (간단 예시)
ads_api.update_keyword_bid(keyword_id=123, new_bid=추천 입찰가)
예시: “vr glasses”의 GT 지수가 40에서 70으로 올라가면, 입찰가는 1.5×(70/100)×1.2 = $1.26으로 자동 상향 → 실제 클릭당 비용은 16% 감소
키워드 공격·방어 매트릭스
데이터 융합 방법:
- SEMrush 분석: 경쟁사 상위 50개 트래픽 키워드 추출
- GT 필터링: 월간 검색량 20% 이상 증가한 키워드 선별
- 히트맵 생성 (빨간색 = 고가치+고경쟁, 파란색 = 저가치+저경쟁)
import matplotlib.pyplot as plt
plt.scatter(x=키워드_경쟁도, y=GT_검색_증가율, c=키워드_CPC, cmap='RdYlGn')
plt.colorbar(label='CPC($)')
예산 재분배
알고리즘 흐름:
- 예측 모델: 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 기반 의사결정 보조:
- 트래픽 가치 점수 = (키워드 전환율 × 객단가) / CPC
- 예산 분배 공식:
일일 예산 비율 = (예측 검색량 × 트래픽 가치 점수) / 총 예산 풀
데이터가 넘쳐나는 시대에도, 대부분의 기업은 여전히 어제의 트렌드로 내일의 전략을 짭니다.
이 글에서 소개한 GT 심화 활용법은 본질적으로 ‘검색 행동 → 시장 수요 → 비즈니스 실행’을 한순간에 연결해주는 전환 고리입니다.