경쟁사 광고 분석 - 그들의 광고에서 growth strategy를 읽습니다 — Claude Skill
Claude Code용 Claude 스킬 · 제공: Gooseworks · 실행: /competitor-ad-teardown (Claude 내)·업데이트: 2026년 6월 14일
단일 경쟁사의 전체 유료 광고 전략을 리버스 엔지니어링합니다
- 한 경쟁사의 모든 active Meta와 Google 광고를 scrape합니다
- 퍼널의 모든 랜딩 페이지를 분석합니다
- 목적지와 메시지 기준으로 광고를 전략 캠페인으로 클러스터링합니다
- positioning bet과 budget allocation pattern을 식별합니다
- counter-play로 활용할 수 있는 vulnerability를 드러냅니다
대상
기능
핵심 경쟁사를 상대로 유료 캠페인을 집행하기 전에 그들이 하는 일을 모두 리버스 엔지니어링합니다.
rep에게 경쟁사가 top of funnel에서 어떻게 positioning하고 convert하는지 실제 그림을 제공합니다.
그들의 광고 전략 약점을 식별하고 이를 활용하는 광고를 설계합니다.
작동 방식
경쟁사 이름과 domain을 입력으로 받습니다
문구와 랜딩 페이지 URL이 포함된 모든 Meta/Google 광고를 스크레이핑합니다
모든 랜딩 페이지를 가져오고 구조와 행동 유도를 분석합니다
광고를 전략 캠페인으로 클러스터링합니다
취약점과 대응 전략이 포함된 해체 분석 보고서를 출력합니다
개선되는 지표
지원 도구
경쟁사 광고 분석을(를) 사용해 보시겠어요?
시작 방법을 선택하세요.
이 스킬을 컴퓨터에 로컬로 설치하고 실행합니다.
컴퓨터에서 터미널을 열고 이 명령을 붙여넣으세요:
이 명령은 스킬과 모든 파일을 컴퓨터에 다운로드합니다:
모든 프로젝트에서 사용하려면 끝에 -g를 추가하세요.
Claude Code를 시작한 다음 명령을 입력하세요:
경쟁사 광고 분석
surface-level ad monitoring보다 더 깊게 들어갑니다. 단일 경쟁사를 잡고 그들의 전체 paid strategy를 reverse-engineer합니다. 무엇을 운영하는지, traffic을 어디로 보내는지, 무엇을 테스트하는지, 무엇이 작동하는지, 어디가 취약한지 파악합니다.
핵심 원칙: 경쟁사의 ad portfolio는 그들의 growth strategy를 보여주는 창입니다. 오래 운영되는 광고는 전환되는 것을 드러냅니다. 새 광고는 그들이 테스트하는 것을 드러냅니다. landing page는 positioning bet을 드러냅니다. 이 스킬은 모든 signal을 읽습니다.
언제 사용할지
- "[competitor]의 ad strategy를 teardown해줘"
- "[competitor]가 ad budget을 어디에 쓰고 있나요?"
- "[competitor]의 paid funnel을 reverse-engineer해줘"
- "[competitor]는 광고에서 어떻게 positioning하나요?"
- "[competitor]에 대한 deep competitive ad analysis"
Phase 0: Intake
- Competitor name + domain — 누구를 teardown하나요?
- Your product — comparison framing용
- Channels — Meta, Google, 또는 둘 다? (default: both)
- Depth level:
- Standard: Ad scrape + landing page analysis
- Deep: Standard + historical comparison + funnel reconstruction
- Known competitor landing pages? — 광고에서 본 URL이 있나요?
Phase 1: Ad collection
1A: Meta Ad Library scrape
python3 skills/meta-ad-scraper/scripts/scrape_meta_ads.py \
--domain <competitor_domain> \
--output json
각 ad에서 capture:
- Ad copy(headline + primary text)
- Visual type(image / video / carousel)
- CTA button
- Landing page URL
- Active duration(first seen → still running or stopped)
- Platforms(Facebook, Instagram, Audience Network)
- Ad variations(A/B tests — same landing page, different creative)
1B: Google Ads Transparency scrape
python3 skills/google-ad-scraper/scripts/scrape_google_ads.py \
--domain <competitor_domain> \
--output json
각 ad:
- Headline variants
- Description lines
- Ad type(Search / Display / YouTube / Shopping)
- Landing page URL(display URL에서)
- Geographic targeting(보이는 경우)
Phase 2: Landing page analysis
ad에서 찾은 unique landing page URL마다:
Fetch: [landing_page_url]
추출:
- Hero headline — ad promise와 match하나요?
- Subheadline — value prop expansion
- Primary CTA — 어떤 action을 유도하나요? (Demo / Free trial / Sign up / Download)
- Social proof — logo, testimonial, case study metric
- Pricing visibility — pricing이 보이나요, 숨겨져 있나요?
- Form fields — 얼마나 많은 info를 요구하나요?
- Page type — general homepage / dedicated LP / feature page / use-case page
- Message match score — LP가 ad promise를 얼마나 잘 전달하나요? (1-10)
Phase 3: Strategic analysis
3A: Campaign clustering
모든 ad를 logical campaign으로 group합니다:
- Landing page destination — 같은 URL을 가리키는 ad = 같은 campaign
- Messaging theme — 비슷한 copy angle = 같은 strategic bet
- Audience signal — persona별 다른 copy
3B: Per-campaign analysis
각 campaign cluster마다:
| Dimension | Analysis |
|---|---|
| Strategic intent | 이 campaign은 무엇을 달성하려 하나요? (Awareness / Lead gen / Free trial / Competitive displacement) |
| Target persona | 이 ad는 누구에게 말하나요? (Role, pain, stage) |
| Positioning bet | 어떤 market position을 claim하나요? |
| Hook strategy | Fear / Outcome / Social proof / Contrarian / Product-led |
| Conversion path | Ad → LP → CTA → [Demo call / Free trial / Content download] |
| Longevity signal | 얼마나 오래 실행됐나요? (Longer = likely working) |
| A/B tests detected | 같은 LP에 여러 creative = active testing |
3C: Budget allocation inference
ad volume과 platform distribution을 바탕으로 spend가 어디에 집중되는지 estimate합니다:
| Platform | Ad Count | % of Total | Estimated Focus |
|---|---|---|---|
| Meta (Facebook) | [N] | [X%] | [Awareness / Retargeting] |
| Meta (Instagram) | [N] | [X%] | [Visual / younger audience] |
| Google Search | [N] | [X%] | [Bottom-funnel capture] |
| Google Display | [N] | [X%] | [Awareness / retargeting] |
| YouTube | [N] | [X%] | [Education / awareness] |
3D: Historical comparison(Deep mode)
landing page용 Web Archive data가 있다면:
- 지난 6-12개월 동안 positioning이 바뀌었나요?
- 어떤 campaign을 retire했나요? (Possible losers)
- 어떤 campaign을 scale up했나요? (Possible winners)
3E: Vulnerability analysis
광고 전략의 약점을 식별합니다:
| Vulnerability Type | Description |
|---|---|
| Message-LP mismatch | Ad는 한 가지를 promise하지만 LP는 다른 것을 전달 |
| Single-persona dependency | 모든 ad가 같은 persona만 target — missing segments |
| Platform concentration | 한 platform에 heavy, 다른 platform은 absent |
| No social proof | Ad 또는 LP에 credibility marker 부족 |
| Weak CTA | 너무 빨리 너무 많은 것을 요구(demo before value) |
| Generic positioning | 누구나 할 수 있는 claim — differentiated하지 않음 |
| Stale creative | 같은 ad가 몇 달째 unchanged — fatigue risk |
Phase 4: 출력 형식
# 경쟁사 광고 분석: [Competitor Name] — [DATE]
Domain: [competitor.com]
Channels analyzed: [Meta, Google]
Total ads found: [N] (Meta: [N], Google: [N])
Unique landing pages: [N]
Estimated active campaigns: [N]
---
## Executive Summary
[3-5 sentence summary: What is this competitor doing with paid ads? What's working? Where are they vulnerable?]
---
## Campaign Breakdown
### Campaign 1: [Inferred Campaign Name]
- **Ads in cluster:** [N]
- **Platform(s):** [Meta / Google / Both]
- **Strategic intent:** [Awareness / Lead gen / Competitive displacement / etc.]
- **Target persona:** [Description]
- **Hook strategy:** [Type]
- **Landing page:** [URL]
- Hero: "[Headline text]"
- CTA: "[Button text]"
- Message match: [Score/10]
- **Longevity:** [First seen date → status]
- **A/B tests detected:** [Yes/No — what they're testing]
**Sample ad:**
> **Headline:** [text]
> **Body:** [text]
> **CTA:** [button]
> **Format:** [Image/Video/Carousel]
**Assessment:** [1-2 sentences — is this working? Why/why not?]
### Campaign 2: ...
---
## Funnel Map
[Ad: Hook/Angle] → [LP: /landing-page-url] → [CTA: Book Demo] ↓ [Ad: Different angle] → [LP: /same-or-different] → [CTA: Free Trial]
---
## Budget Allocation Estimate
| Platform | Share | Focus Area |
|----------|-------|-----------|
| [Platform] | [X%] | [Intent] |
---
## What's Working (Long-Running Ads)
| Ad | Platform | Running Since | Why It Likely Works |
|----|----------|--------------|-------------------|
| [Headline excerpt] | [Platform] | [Date] | [Analysis] |
---
## Vulnerability Report
### 1. [Vulnerability]
**Evidence:** [What we observed]
**Your opportunity:** [How to exploit this gap]
### 2. ...
---
## Recommended Counter-Plays
### Counter-Play 1: [Name]
- **Target their weakness:** [Which vulnerability]
- **Your ad angle:** [Hook]
- **Platform:** [Where to run]
- **LP strategy:** [What your landing page should emphasize]
### Counter-Play 2: ...
clients/<client-name>/ads/competitor-teardown-[competitor]-[YYYY-MM-DD].md에 저장합니다.
비용
| Component | Cost |
|---|---|
| Meta ad scraper | ~$0.20-0.50 (Apify) |
| Google ad scraper | ~$0.20-0.50 (Apify) |
| Landing page fetching | 무료 |
| Web Archive lookup(deep mode) | 무료 |
| Analysis | 무료(LLM reasoning) |
| Total | ~$0.40-1.00 |
필요한 도구
- Apify API token —
APIFY_API_TOKENenv var - Upstream skills:
meta-ad-scraper,google-ad-scraper - fetch_webpage — landing page analysis용
트리거 문구
- "[competitor]의 ads를 teardown해줘"
- "[competitor]가 Meta/Google에서 무엇을 운영하나요?"
- "[competitor]의 paid funnel을 reverse-engineer해줘"
- "[competitor]에 대한 deep ad analysis"
- "[competitor]의 ad strategy 약점을 찾아줘"