검색 데이터를 활용한 체계적 시장 분석을 위한 시드 키워드 설계 전략
데이터 분석가가 Market Coverage 80%를 달성하는 데이터 아키텍처 구축시 “시드 키워드 설계” 실전 가이드
대상: 마켓 인텔리전스 프로젝트 담당 데이터 분석가, BI 팀, 마케팅 데이터 아키텍처 담당자
목적: ListeningMind API(keyword_info, intent_finder, cluster_finder)를 활용해 시장 구조를 정확하게 매핑하고, 데이터 정합성과 신뢰성을 확보하면서 Market Coverage 80% 이상을 체계적으로 달성하는 방법론
시장 분석의 출발점, 시드 키워드 설계
특정 시장의 검색 데이터를 분석할 때 가장 중요한 첫 단계는 그 시장이 어떻게 구조화되었는지를 이해하고 시드 키워드(Seed Keyword)를 정확하게 설계하는 것입니다. 시드 키워드(Seed Keyword)는 마켓 인텔리전스 파이프라인에서 수집할 키워드 유니버스의 출발점입니다. 시드 키워드의 품질에 따라 전체 분석 결과의 정확도와 커버리지가 크게 달라집니다. 시드 선택이 잘못되면 hop=2 확장 이후 수집 키워드 전체가 왜곡되고, 소비자 수요의 특정 영역을 영구적으로 누락하는 Blind Spot이 발생하게 됩니다.
- 시드가 너무 광범위 → noise 증가 (무관 intent 포함)
- 시드가 너무 협소 → blind spot 발생 (coverage 부족)
- 5-Layer Framework로 레이어별 최소 필요 시드 세트 구성
핵심 원칙
Good Seed vs Bad Seed
| 기준 | Good Seed ✅ | Bad Seed ❌ |
|---|---|---|
| 범위 | 시장의 특정 축 하나를 대표 | 너무 광범위하거나 지나치게 협소 |
| 독립성 | 다른 시드와 hop=2 중복 최소 | 이미 다른 시드 확장 내에 포함 |
| Volume | 검색량 100 이상 보유 | 검색량 없거나 100 미만 |
| 언어 | 소비자 실제 사용 언어 | 내부 업계 용어, 브랜드 내부 언어 |
| 레벨 | 동일 Layer 내 같은 연상 수준 | 상위어 + 하위어 혼재 |
이 가이드에서는 5-Layer Framework를 통해 최소한의 시드 세트로 시장의 80% 이상을 신뢰할 수 있게 커버하는 실무 방법을 정리했습니다.
핵심 지표: Market Coverage
Total Market Search Volume
Total Market Volume은 Intent Finder의 broad category 분석으로 추정할 수 있는데, 상위 카테고리 시드, 브랜드 시드 5~10개 투입해서 추출합니다. 이 때 반환되는 키워드의 중복 제거, 필터링 처리가 필요합니다.
| 단계 | 내용 |
|---|---|
| 수집 | intent_finder/keyword_list API 호출 |
| 중복 제거 | keyword 기준 unique 처리 |
| 필터링 | 필터 적용 (카테고리 관련성 기준) |
| 합산 | 필터 통과 unique 키워드의 volume_total 합산(/keyword_info API 호출) |
각 시드가 hop=1~3 내에서 포착하는 고유 검색 Volume
각 시드가 hop=1~3 내에서 포착하는 고유 검색 Volume은 각 시드로 cluster_finder/keyword_list API 호출(동일한 hop 지정 필요)하면 중복 제거한 키워드 목록이 반환되면, /keyword_info API 를 활용해서 unique 키워드의 고유 검색 volume_total을 합산합니다.
| 단계 | 내용 |
|---|---|
| 수집 | cluster_finder/keyword_list API 호출 |
| 반환 | 중복 제거된 키워드 목록 반환 |
| 필터링 | 필터 적용 (카테고리 관련성 기준) |
| 합산 | 필터 통과 unique 키워드의 volume_total 합산(/keyword_info API 호출) |
리스닝마인드 API 호출시 주의사항
- 다국가 분석 시 반드시 국가별 별도 API 호출 — 교차 추론 금지
- 영어 키워드는 소문자 변환 후 전달
5-Layer Framework: 시장 구조를 체계적으로 설계하기
시장 수요를 공급축(Layer 1·2)과 수요축(Layer 3·4·5)으로 분리하여 소비자 탐색 흐름 전반을 커버한다.
| Layer | 이름 | 역할 | Coverage 기여 | 예시 (혈당 시장) |
|---|---|---|---|---|
| Layer 1 | Product/Category | 시장 공급 구조 · 기본 수요 | ~40% | 혈당측정기, 연속혈당측정기, 저당식단 |
| Layer 2 | Brand | 브랜드 드리븐 수요 · 경쟁 구조 | ~20% | 케어센스, 아큐첵, Dexcom, FreeStyle |
| Layer 3 | Intent/Occasion | 구매 동기 · 상황 맥락 · CEP | ~10% | 혈당 낮추는 법, 공복혈당 관리 |
| Layer 4 | Attribute/Modifier | 구체 속성 · 롱테일 수요 | ~7% | 무채혈 혈당측정기, 패치형, 알룰로스 |
| Layer 5 | Problem/Solution | Pain Point · 소비자 고민 | ~5% | 혈당 스파이크 졸음, 공복혈당 110 |
Coverage Saturation 원리:
- 초기 5~10개 고볼륨 시드가 60~70% 포착
- 이후 Layer 3~5 시드로 나머지 10~20% 보완
- 80% 이후는 수확 체감 → 최소 시드 세트에서 멈춤 (초기 소수 시드가 volume 대부분 커버 (수확 체감 법칙))
사전 준비 — 시장 경계 확정
API 호출 전에 분석 범위를 명확히 정의합니다.
분석 시장 정의:
"가정에서 혈당을 측정·관리하기 위해 기기·식품·정보를 탐색하고
구매하는 한국 소비자(성인 당뇨 환자 및 예방 관심군)의 검색 수요 전체"
포함 범위:
혈당 측정 기기, 연속혈당측정기(CGM), 혈당 관리 식품/음료,
혈당 관련 정보 탐색, 혈당 관리 앱·웨어러블
제외 범위:
병원 내 혈당 검사 (임상 키워드)
동물 혈당측정기 (수의학)
혈당 관련 약품·처방 (의약품 시장)
분석 시장(gl): kr
리스닝마인드 API 호출 요약
| Layer | 1차 탐색 | 2차 검증 | 확장 |
|---|---|---|---|
| L1 Product/Category | cluster_finder(구조 탐색 부트스트랩) | keyword_info(ads_metrics → all) | intent_finder(threshold ≥ 500) |
| L2 Brand | intent_finder(L1 시드 입력) | keyword_info(all, 브랜드 전용) | — |
| L3 Intent/Occasion | intent_finder(L1 시드 입력) | keyword_info(ads_metrics) | — |
| L4 Attribute/Modifier | intent_finder(L1+L3 시드 입력) | keyword_info(ads_metrics) | — |
| L5 Problem/Solution | intent_finder(L3+L4 시드 입력) | keyword_info(ads_metrics) | — |
Layer 1: Product/Category 시드 수집 (제품·카테고리 축)
역할: 시장 공급 구조·기본 수요 포착 / Coverage 기여 목표 ~40% [가정]
핵심: 분모(TAM 기준값) 확정에 직결되므로 가장 중요한 Layer
1. cluster_finder로 시장 구조 탐색
시드 키워드가 전혀 없는 상태에서 시장 구조를 파악하기 위해 가장 직관적인 카테고리 키워드 1~2개로 cluster_finder를 먼저 호출합니다.
# 호출 1 — 시장 구조 탐색 (부트스트랩)
cluster_finder(
keyword="혈당측정기", # 시장 내 가장 명확한 상위 카테고리 키워드
gl="kr",
time_point="curr",
hop=1, # hop=2 사용시 주변 의도 확장,사용자 관심 세분화 가능, 비용 증가
limit=100,
orientation="UNDIRECTED",
data_type="all"
)
결과 처리 기준:
| 반환 결과 | 처리 방법 |
|---|---|
| rels > 0, communities 존재 | communities 내 노드를 L1 후보로 추출. 브랜드명이 섞여 있으면 L2 후보로 분리 |
| rels=[], communities={} | [데이터 공백] 선언. 대체 키워드로 재요청하거나 intent_finder/keyword_list 연관 토픽 분류, 시장 구조 탐색 대체 가능 |
예상 L1 후보 예시 (혈당 시장 [추정]):
혈당측정기, 혈당계, 혈당기, 혈당체크기,
연속혈당측정기, CGM, 패치형혈당측정기,
혈당관리, 혈당조절, 저당식품, 혈당다이어트
hop=1, hop=2 구분, 언제 사용하면 좋을까?
| 구분 | hop=1 | hop=2 |
|---|---|---|
| 보는 범위 | 시드 키워드에 직접 연결된 연관어 | hop=1 연관어에서 한 번 더 확장된 연관어까지 |
| 주 용도 | 핵심 토픽 구조 파악 | 세부 의도·맥락·세그먼트 파악 |
| 질문 형태 | “이 키워드는 보통 어떤 주제로 소비되나?” | “이 주제 안에서 사람들은 구체적으로 무엇을 더 찾나?” |
| 결과 성격 | 더 단순하고 선명함 | 더 풍부하고 입체적이지만 복잡해짐 |
| 장점 | 빠르게 큰 그림을 잡기 좋음 | 사용자 고민, 비교 포인트, 하위 시장 분화가 잘 보임 |
| 단점 | 세부 맥락이 부족할 수 있음 | 정보량이 많아져 잡음도 늘 수 있음 |
| 적합한 단계 | 초기 리서치, 카테고리 스캔, 허브 주제 도출 | 심화 리서치, 콘텐츠 세분화, 퍼널 설계 |
| 적합한 산출물 | 상위 테마 5~7개, 엔트리포인트 초안 | 세부 아티클 주제, 페인포인트 맵, 세그먼트 구조 |
| 추천 상황 | 여러 키워드를 빠르게 비교할 때 | 중요한 키워드를 깊게 파고들 때 |
| 실무 해석 | 지도 개요 | 구역 상세도 |
혈당측정기 예시
| 항목 | hop=1에서 잘 보이는 것 | hop=2에서 추가로 보이는 것 |
|---|---|---|
| 사용법 축 | 사용법, 측정법, 추천, 가격, 정확도 | 공복/식후 측정 시간, 채혈부위, 피 안 나옴, 수치 해석 |
| 무채혈 축 | 무채혈 혈당측정기 추천 | 후기, 정확도, 스마트워치, 삼성, 클리앙, 디시 |
| 활용 포인트 | “무슨 주제가 큰 축인가?” 확인 | “그 축 안에서 실제 검색 고민이 뭔가?” 확인 |
2. 1차 스크리닝: keyword_info(ads_metrics)로 볼륨 존재 여부 확인
cluster_finder 결과 + 추가 추측 키워드를 합산한 L1 후보 전체에 대해 볼륨 존재 여부(ads_metric)만 확인합니다.
python
# 호출 2 — L1 후보 전체 볼륨 스크리닝 (저비용)
keyword_info(
gl="kr",
keywords=[
"혈당측정기", "혈당계", "혈당기", "혈당체크기",
"연속혈당측정기", "CGM", "패치형혈당측정기",
"혈당관리", "혈당조절", "저당식품", "혈당다이어트",
"혈당스파이크", "혈당모니터"
],
data_type="ads_metrics" # ← 볼륨 존재 여부만 확인
)
비용: 후보 13개 × 1크레딧 = 13크레딧
스크리닝 기준:
volume_avg = 0 또는 미반환 → [데이터 공백], L1 제외
volume_avg > 0 → 풀 수집 대상으로 이동
3. 풀 수집: keyword_info(all)로 분모 확정
스크리닝 통과 키워드에만 풀 데이터를 수집합니다. 이 단계의 volume_total이 Coverage 계산의 분모 후보가 됩니다.
python
# 호출 3 — L1 유효 키워드 전체 데이터 수집
keyword_info(
keywords=["스크리닝_통과_키워드_목록"],
gl="kr",
data_type="all" # ← 10크레딧/개. volume_total, monthly, demography 포함
)
수집 필드 및 활용:
| 필드 | 활용 |
|---|---|
volume_total
| Coverage 분모 후보값 [실제 데이터] |
monthly_volume
| 시즌성 확인 (혈당 시장은 계절 영향 낮을 것으로 [추정]) |
volume_trend
| 성장/감소 신호 파악 |
demography
| L3·L5 소비자 프로파일링에 활용 |
분모 확정 방법:
보수적 분모 = "혈당측정기" 단일 volume_total [실제 데이터]
확장 분모 = L1 통과 키워드 volume_total 합산 × 0.75 [가정: 중복율 25%]
→ 보수적 분모를 메인 기준으로 사용
확장 분모는 참고값으로 병기
4. L1 확장: intent_finder/keyword_list로 누락 카테고리 탐색
python
# 호출 4 — L1 확장 탐색
intent_finder/keyword_list(
keywords=["혈당측정기", "연속혈당측정기", "혈당관리"], # L1 확정 시드 대표값
gl="kr",
volume_threshold=500, # ← L1은 높은 threshold로 카테고리 수준 유지
limit=120,
sort="volume_total",
order="desc"
)
반환 키워드 분류:
카테고리성 키워드 (새로운 것) → L1에 추가 → 재실행
브랜드명이 포함된 키워드 → L2 후보로 이동
"~방법", "~하는 법" 패턴 → L3 후보로 이동
"무채혈", "패치형" 등 속성 → L4 후보로 이동
"혈당 올라가면", "졸리면" 등 → L5 후보로 이동
L1 완료 기준: 새로운 카테고리 키워드가 더 이상 반환되지 않을 때
Layer 2 — Brand 시드 수집
역할: 브랜드 드리븐 수요·경쟁 구조 파악 / Coverage 기여 목표 ~20% [가정]
핵심: 공식명·변형어·한글/영문 표기 모두 포함. 플랫폼 키워드와 분리 관리
1. 브랜드 후보 수집: intent_finder (브랜드 필터링)
L1 시드를 입력해 반환된 연관어 중 브랜드 패턴을 필터링합니다.
python
# 호출 5 — L1 입력으로 브랜드 키워드 탐색
intent_finder/keyword_list(
gl="kr",
keywords=["혈당측정기", "연속혈당측정기", "혈당계"],
volume_threshold=100, # ← L2는 중간 threshold (브랜드 지명은 볼륨 다양)
limit=120,
sort="volume_total",
order="desc"
)
브랜드 패턴 필터링 기준:
고유명사 (회사명·제품 시리즈명) → L2 후보
"케어센스", "아큐첵", "Dexcom", "FreeStyle" 등 제조 브랜드
"쿠팡혈당", "올리브영혈당" 등 플랫폼+카테고리 조합 → 플랫폼 시드로 별도 분류
혈당 시장 브랜드 후보 예시 [추정]:
[국내 제조사] 케어센스, 바이오센서, SD바이오센서, 이지체크, GC케어
[글로벌] 아큐첵(Accu-Chek), Dexcom, FreeStyle Libre, Abbott,
옴론(혈당), CONTOUR
[플랫폼] (별도 관리) 쿠팡혈당측정기, GS샵혈당
2. 브랜드 변형어 목록 생성 (API 호출 전 수작업)
공식명 → 변형어 목록
케어센스 → 케어센스, caresens, 케어쎈스
아큐첵 → 아큐첵, accu-chek, accuchek, 아큐체크
Dexcom → 덱스콤, dexcom, 덱스컴
FreeStyle → 프리스타일, freestyle libre, 프리스타일리브레
3. 브랜드 볼륨 수집: keyword_info(all)
브랜드는 볼륨이 반드시 있을 것으로 예상되므로 ads_metrics 스크리닝 없이 바로 all로 수집합니다.
python
# 호출 6 — 브랜드 시드 전체 데이터 수집
keyword_info(
gl="kr",
keywords=[
"케어센스", "바이오센서", "아큐첵", "Dexcom",
"FreeStyle Libre", "프리스타일리브레", "이지체크", "GC케어"
],
data_type="all"
)
브랜드별 수집 후 확인 사항:
volume_total 0 또는 미반환 → [데이터 공백]. 시장 내 인지도 낮은 브랜드
volume_total > 0 → L2 확정. SOV 계산 대상
demography → 브랜드별 주요 소비자층 비교 (케어센스 vs Dexcom 등)
Layer 3 — Intent/Occasion 시드 수집
역할: 구매 동기·상황 맥락·CEP(Category Entry Point) 포착 / Coverage 기여 목표 ~10% [가정]
핵심: “~하는 법”, “~할 때”, “~이유” 등 행동 유발·상황 표현 키워드
1. 의도·상황 키워드 탐색: intent_finder
python
# 호출 7 — 의도/상황 키워드 탐색
intent_finder/keyword_list(
keywords=["혈당측정기", "연속혈당측정기", "혈당관리"],
gl="kr",
volume_threshold=100, # ← L1과 동일 threshold지만 필터링 기준이 다름
limit=120,
sort="volume_total",
order="desc"
)
L1 intent_finder와 입력 키워드는 같지만 반환 결과에서 낮은 검색량을 가진 키워드 유형을 필터링합니다. L1에서 카테고리성 키워드를 걸러낸 나머지 중 의도·상황 패턴에 해당하는 것을 L3로 분류.
L3 필터링 패턴:
포함 패턴:
"~하는 법", "~낮추는 법", "~올리는 법" → 방법 탐색 의도
"공복혈당", "식후혈당", "취침전혈당" → 상황/시점 맥락
"혈당 정상범위", "혈당 수치" → 정보 탐색 의도 (CEP)
"당뇨 초기", "당뇨 의심" → 진입 계기 (CEP)
제외 패턴:
브랜드명 포함 → L2
속성 수식어 포함 → L4
고통 표현 포함 → L5
예상 L3 후보 예시 [추정]:
혈당 낮추는 법, 공복혈당 관리, 식후혈당 낮추기,
혈당 정상수치, 혈당 측정 시간, 혈당 측정 방법,
당뇨 초기증상, 혈당 체크 주기, 혈당 올리는 음식
2. L3 볼륨 확인: keyword_info(ads_metrics)
python
# 호출 8 — L3 후보 볼륨 스크리닝
keyword_info(
keywords=["L3_후보_키워드_목록"],
gl="kr",
data_type="ads_metrics" # ← 빠른 스크리닝
)
L3는 볼륨이 낮아도 시장 진입 CEP로서 전략적 가치가 있으므로, 제외 기준을 L1보다 낮게 적용합니다.
volume_avg = 0 → [데이터 공백], 제외
volume_avg 1~100 → L3 유지 (CEP 키워드 특성상 낮은 볼륨 정상)
volume_avg > 100 → L3 확정
Layer 4 — Attribute/Modifier 시드 수집
역할: 구체 속성·롱테일 수요 포착 / Coverage 기여 목표 ~7% [가정]
핵심: 제품 스펙·소재·형태·대상을 수식하는 조합형 키워드
1. 속성 키워드 탐색: intent_finder (낮은 threshold)
python
# 호출 9 — 속성/수식어 키워드 탐색
intent_finder/keyword_list(
keywords=[
"혈당측정기", # L1 시드
"혈당 낮추는 법", # L3 시드 (속성 조합이 더 잘 나옴)
"공복혈당 관리" # L3 시드
],
gl="kr",
volume_threshold=50, # ← L4는 낮은 threshold. 롱테일 포착 목적
limit=100,
sort="volume_total",
order="desc"
)
L4 필터링 패턴:
포함 패턴:
제품 형태 수식어 "무채혈", "패치형", "팔찌형", "침습형", "비침습"
식품 속성 수식어 "알룰로스", "저당", "GI지수", "혈당지수", "무설탕"
대상 수식어 "당뇨환자용", "임산부혈당", "소아혈당"
브랜드+속성 조합 "케어센스 정확도", "Dexcom G7 가격"
제외 패턴:
고통·문제 표현 → L5로 이동
예상 L4 후보 예시 [추정]:
무채혈 혈당측정기, 패치형 혈당측정기,
알룰로스 혈당, 저당 음료, 혈당지수 낮은 음식,
비침습 혈당측정, 연속혈당 팔찌, GI지수 낮은 식품
2. L4 볼륨 확인: keyword_info(ads_metrics)
python
# 호출 10 — L4 후보 볼륨 스크리닝
keyword_info(
keywords=["L4_후보_키워드_목록"],
gl="kr",
data_type="ads_metrics" # ← 빠른 스크리닝
)
volume_avg = 0 → [데이터 공백], 제외 (단, 신조어 가능성 메모)
volume_avg > 0 → L4 확정
Layer 5 — Problem/Solution 시드 수집
역할: Pain Point·소비자 고민 포착 / Coverage 기여 목표 ~5% [가정]
핵심: 소비자가 실제로 겪는 문제·증상을 자연어로 표현한 키워드. 볼륨은 낮아도 구매 전환율이 높음
1. Pain Point 키워드 탐색: intent_finder (최저 threshold)
python
# 호출 11 — Pain Point 키워드 탐색
intent_finder/keyword_list(
keywords=[
"혈당 낮추는 법", # L3 시드 (문제 탐색과 연결)
"공복혈당 관리", # L3 시드
"무채혈 혈당측정기", # L4 시드 (속성과 문제가 연결)
"혈당스파이크" # L1 시드 중 문제 표현형
],
gl="kr",
volume_threshold=30, # ← L5는 최저 threshold. 고통 표현 키워드는 볼륨이 낮음
limit=120,
sort="volume_total",
order="desc"
)
L5 필터링 패턴:
포함 패턴:
증상 표현 "혈당 스파이크 졸음", "식후 졸림 혈당", "혈당 올라가면 증상"
불편 표현 "혈당측정기 통증", "채혈 무서워요", "측정기 오류"
걱정 표현 "공복혈당 110 정상인가요", "혈당 130 위험한가요"
비교 고민 "혈당측정기 vs 연속혈당", "CGM 아파요"
제외 패턴:
단순 정보 탐색 → L3로 재분류
제품 속성만 언급 → L4로 재분류
예상 L5 후보 예시 [추정]:
혈당 스파이크 졸음, 공복혈당 110 정상인가요,
혈당측정기 통증, 식후 졸림 혈당 관계,
혈당 130 위험, 연속혈당측정기 아파요,
채혈 안 아픈 혈당측정기, 혈당 올라가면 어지러움
2. L5 볼륨 확인: keyword_info(ads_metrics)
python
# 호출 12 — L5 후보 볼륨 스크리닝
keyword_info(
keywords=["L5_후보_키워드_목록"],
gl="kr",
data_type="ads_metrics"
)
volume_avg = 0 → [데이터 공백]. 단, "모니터링 세트"로 이동 (미래 성장 가능)
volume_avg > 0 → L5 확정
Layer 간 피드백 구조 — 결과 재분류 흐름
각 Layer의 intent_finder 결과에는 다른 Layer에 해당하는 키워드가 섞여 나옵니다. 아래 흐름으로 재분류합니다.
L1 intent_finder 반환 키워드
├── 카테고리성 → L1 추가
├── 브랜드명 포함 → L2 후보 이동
├── 방법/상황 표현 → L3 후보 이동
├── 속성/수식어 → L4 후보 이동
└── 고통/걱정 표현 → L5 후보 이동
L3 intent_finder 반환 키워드
├── 새 의도 패턴 → L3 추가
├── 속성 추가 → L4 후보 이동
└── 고통 표현 → L5 후보 이동
L4 intent_finder 반환 키워드
├── 새 속성 패턴 → L4 추가
└── 고통 표현 → L5 후보 이동
→ 모든 재분류 키워드는 해당 Layer의 keyword_info(ads_metrics)로 볼륨 재확인
Coverage Saturation Test — 80% 달성 측정
시드 수집 완료 후 Coverage를 Layer 순서대로 누적 측정합니다.
측정 절차
1. 분모 확정
분모 = "혈당측정기" volume_total (보수적 기준) [실제 데이터]
2. Layer별 시드를 volume_total 내림차순 정렬
3. 상위부터 순차 추가하며 누적 고유 Volume 계산:
Coverage_n = Σ(V_unique_i, i=1~n) / V_분모 × 100
4. 고유 Volume 기여도 계산 기준:
동일 community 내 키워드 추가 시 → V × 0.75 [가정: 중복율 25%]
다른 community 키워드 추가 시 → V [독립 수요 추정]
community 정보 없을 때 → V × 0.7 [가정]
5. Coverage 80% 처음 돌파하는 시점 = "최소 필요 세트" 확정
Layer별 누적 Coverage 추적표 (실측 기입용)
| 단계 | 추가 Layer | 목표 기여 [가정] | 실측 기여 [실제 데이터] | 누적 Coverage | 판정 |
|---|---|---|---|---|---|
| 1 | L1 완료 | ~40% | 기입 | 기입% | ✅/⚠️ |
| 2 | +L2 | ~20% | 기입 | 기입% | ✅/⚠️ |
| 3 | +L3 | ~10% | 기입 | 기입% | ✅/⚠️ |
| 4 | +L4 | ~7% | 기입 | 기입% | ✅/⚠️ |
| 5 | +L5 | ~5% | 기입 | 기입% | ✅ 80% 목표 |
판정 및 대응
| 상황 | 원인 진단 | 대응 |
|---|---|---|
| L1 실측 < 30% | 카테고리 시드 누락 | cluster_finder hop=1 재호출, 다른 상위 키워드로 재탐색 |
| L2 실측 < 10% | 브랜드 시드 불완전 | 변형어·신흥 브랜드 추가, volume_threshold 낮춰 재탐색 |
| L3+L4+L5 합산 < 15% | 롱테일 커버 부족 | intent_finder threshold 단계적으로 낮춰 재실행 |
| L5까지 완료 후 80% 미달 | 구조적 공백 | 분모 재검토 or L1 미포착 서브카테고리 탐색 |
| L3 시점에 80% 초과 | 조기 달성 | L4·L5는 “권장 세트”로 분류. 생략 가능 |
전체 API 호출 순서 및 크레딧 추정
| 호출 순서 | API | 목적 | 예상 크레딧 |
|---|---|---|---|
| 호출 1 | cluster_finder | L1 시장 구조 탐색 | input × 150 + output × 50 |
| 호출 2 | keyword_info(ads_metrics) | L1 카테고리 시드 후보 볼륨 스크리닝 | 후보 수 × 10 |
| 호출 3 | keyword_info(all) | L1 유효 카테고리 시드 풀 데이터 수집 | 유효 수 × 10 |
| 호출 4 | intent_finder/keyword_list | L1 확장 + L2~L5 후보 분리 수집 | input × 30 + output × 2 |
| 호출 5 | intent_finder/keyword_list | L2 브랜드 후보 탐색 | input × 30 + output × 2 |
| 호출 6 | keyword_info(all) | L2 브랜드 풀 데이터 수집 | 브랜드 수 × 10 |
| 호출 7 | intent_finder/keyword_list | L3 의도/상황 키워드 탐색 | input × 30 + output × 2 |
| 호출 8 | keyword_info(ads_metrics) | L3 볼륨 스크리닝 | 후보 수 × 10 |
| 호출 9 | intent_finder/keyword_list | L4 속성/수식어 탐색 | input × 30 + output × 2 |
| 호출 10 | keyword_info(ads_metrics) | L4 볼륨 스크리닝 | 후보 수 × 10 |
| 호출 11 | intent_finder/keyword_list | L5 Pain Point 탐색 | input × 30 + output × 2 |
| 호출 12 | keyword_info(ads_metrics) | L5 볼륨 스크리닝 | 후보 수 × 10 |
분석 팁!
- keyword_info는 볼륨 스크리닝(ads_metrics) → 월별 검색량 포함(all) 2단계로 분리해서 접근 (단, 비용은 동일)
- intent_finder/keyword_list 호출시 Layer별 시드를 각각 묶음으로 단일 호출 (한번에 통합 호출 지양)
- cluster_finder는 L1 시장 구조 탐색에만 사용하는 경우, hop=1 고정(비용 절감 효과)
- 빈 값이 반환되는 경우, 재시도 전에 다른 시드로 대체
결론
시드 키워드는 단순한 검색어 목록이 아니라, 시장 구조를 정의하는 최소 좌표계입니다.
5-Layer Framework와 ListeningMind API의 순차적 파이프라인(cluster_finder → keyword_info → intent_finder), 그리고 Saturation Test를 체계적으로 적용하면 데이터 분석가는 높은 신뢰도의 마켓 인텔리전스를 구축할 수 있습니다.
이 가이드를 기반으로 우리 기업과 비즈니스 환경에 맞는 시드 키워드를 설계하고, Python 스크립트나 파이프라인 코드(예. Airflow DAG)로 데이터 파이프라인을 자동화하세요.