- name
- meta_ads_analyser
- description
- Analyze extracted Meta ad creatives and generate a professional competitive strategy report with inline videos/images grouped by funnel and landing page. Use when user says "/meta_ads_analyser", "analyze ads", "analyse les pubs", "rapport de stratégie pub", "ad strategy report", "review competitor creatives", "analyse créatives concurrentes", or "audit pub Meta". Run /meta_ads_extractor first to extract assets. For the full extraction + analysis pipeline in one command, see /ads_analyst.
# Meta Ads Analyser
Generate a professional ad strategy analysis report from extracted Meta ad creatives.
> **Portability note:** Examples assume the OmegaOS VPS (`~/clawd/output/meta-ads/...`,
> `sips` on macOS, Telegram delivery). On other hosts: substitute your own asset/output
> directory, use `ffprobe`/`identify` (ImageMagick) instead of macOS-only `sips`, and
> deliver the zip via whatever channel is available. The analysis logic is unchanged.
## Dynamic Workflow orchestration (Bucket A — fan-out)
This is multi-angle competitive analysis. Decompose into independent units, fan out,
adversarially verify, then synthesize one coherent report.
1. **Plan** — inventory the assets folder. Enumerate units: N ad creatives, M landing
pages. Build the work list before analyzing anything (R-RUBRIC: criteria up front).
2. **Parallel fan-out** — analyze file-disjoint units concurrently (each creative and each
landing page is independent): per-creative analysis (hook/script/emotion/CTA/gaps),
per-landing-page analysis (headline/strategy/conversion flow), funnel mapping. One
Workflow lane per unit; never two lanes writing the same file (R-SCOPE).
3. **Adversarial verify (2-of-3)** — before a claim enters the report, falsify it across
3 independent lenses: (a) does the asset actually show this hook/emotion (re-watch the
exact frame / re-read the exact line)? (b) is the funnel mapping supported by the real
destination URL, not assumed? (c) is the strategy pattern present in ≥2 creatives, not
a single coincidence? A claim needs 2-of-3 to ship. Drop or downgrade the rest.
4. **Synthesize** — YOU write the Strategy Overview from the verified per-unit findings.
Never paste a lane's raw summary as the verdict — synthesis is your own job (R-ORCH).
5. **Loop-until-dry** — if the asset count is unbounded (large competitor set), batch the
fan-out and loop until every creative + landing page has a verified card. 92% is not
done (L4): every asset in the folder must appear in the report or be explicitly noted.
## Prerequisites
- Extracted ad assets from `/meta_ads_extractor` (images, videos, landing page screenshots)
- Ad creative analysis (hooks, scripts, emotions, CTAs, strengths/weaknesses)
- Landing page analysis (headlines, strategies, conversion flows)
## Input
Assets folder from extraction, typically at:
```
~/clawd/output/meta-ads/{advertiser-slug}/
├── {slug}-video-01.mp4
├── {slug}-video-02.mp4
├── {slug}-image-01.jpg
├── {slug}-image-02.jpg
├── landing-{page-name}.jpg
└── ...
```
## Analysis Process
### 1. Analyze Each Creative
For each ad creative, identify:
- **Aspect Ratio** — Dimensions and ratio (1:1, 4:5, 9:16, 16:9)
- **Duration** — For videos, length in seconds
- **Hook** — Opening line/visual that stops the scroll
- **Script/Copy** — Key messaging and value proposition
- **Visual Flow** — Sequence of scenes/elements (for video)
- **Emotion** — Primary emotional trigger (curiosity, fear, aspiration, etc.)
- **CTA** — Call to action and friction level
- **Strengths** — What works well
- **Weaknesses/Gaps** — What could be improved
Use vision model for images, Gemini for video analysis.
**Get dimensions with:**
```bash
# Images (macOS)
sips -g pixelWidth -g pixelHeight image.jpg
# Videos
ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=p=0 video.mp4
```
**Common aspect ratios:**
| Ratio | Use Case |
|-------|----------|
| 1:1 | Feed (universal) |
| 4:5 | Feed (recommended) |
| 9:16 | Stories/Reels |
| 16:9 | Landscape video |
### 2. Analyze Landing Pages
For each landing page, identify:
- **Headline** — Primary value proposition
- **Strategy** — Key conversion elements (social proof, urgency, etc.)
- **Conversion Flow** — Path from landing to purchase/signup
- **Strengths** — What converts well
- **Gaps** — Missing elements or friction points
### 3. Map Funnels
Group ads by their destination landing page. Each funnel = landing page + all ads driving to it.
Typical funnel types:
- **TOFU (Top of Funnel)** — Awareness, lead magnets, quizzes, free content
- **BOFU (Bottom of Funnel)** — Direct offer, application, purchase
### 4. Identify Strategy Patterns
Look for:
- Credibility stacking (logos, credentials, social proof)
- Price anchoring
- Native creative (ads that don't look like ads)
- Identity-driven copy
- Testing patterns (variants of same creative)
## Output Format
Generate a self-contained HTML report using the template structure below.
### Report Structure
```
1. Header
- Advertiser name
- Stats (# ads, # funnels, date)
2. Strategy Overview (TOP)
- High-level acquisition strategy
- Funnel flow visualization
- Creative testing patterns
- Key takeaways (actionable insights)
3. Funnel Sections (one per landing page)
- Funnel header (name, URL)
- Landing page card (screenshot + analysis)
- Ad cards grid (media + analysis for each)
4. Footer
- Source attribution
- Date generated
```
### Styling Guidelines
- **Clean, doc-like design** — white background, simple typography
- **No dark gradients or heavy styling** — should feel like a PDF/Notion doc
- **Inline media** — videos and images embedded and playable
- **Mobile-friendly** — responsive grid for ad cards
- **Badges for quick scanning** — TOFU/BOFU, Video/Image, Variant, Top performer, Aspect ratio (1:1, 4:5, 9:16)
### Ad Card Format
Each ad card should display:
```
[Media: video/image]
[Badges: Type | Funnel Stage | Aspect Ratio | Duration (if video)]
[Title]
[Analysis fields: Hook, Script, Emotion, Strengths, Gaps]
```
**Include aspect ratio badge** on every ad card so patterns are visible at a glance (e.g., "all TOFU ads are 4:5, BOFU ads are 1:1").
See `templates/report-template.html` for the full HTML/CSS template.
## Delivery
1. Generate HTML file in the assets folder:
```
~/clawd/output/meta-ads/{advertiser-slug}/{slug}-analysis.html
```
2. Zip the entire folder (HTML + all media assets)
3. Send via Telegram with caption explaining contents
**Important:** The HTML uses relative paths to media files. Always deliver as a zip so the recipient can open it locally with all assets.
## Output contract + VERIFY
**Produces:**
- `{slug}-analysis.html` — self-contained report (Strategy Overview + one funnel section
per landing page + an ad card per creative, with inline playable media).
- A zip of the asset folder (HTML + all media), delivered with a caption.
**VERIFY before claiming done (R-RUBRIC, L4):**
1. **Coverage** — every video/image/landing screenshot in the assets folder has a card in
the HTML (count assets vs cards; none silently dropped).
2. **Media resolves** — open the HTML, confirm every `<video>`/`<img>` loads via its
relative path (no broken links) so the zip works offline.
3. **Badges present** — every ad card shows Type, Funnel Stage, Aspect Ratio (+ Duration
for video), so cross-creative patterns are scannable.
4. **Zip integrity** — `unzip -l` lists the HTML + every referenced media file.
## Guardrails (evidence, no hallucination, scope)
- **Evidence or it didn't happen (R-CITE):** every hook/script/emotion/CTA claim must be
grounded in the actual asset — the exact line read, the exact frame/timestamp watched,
the real destination URL. No claim from the advertiser name or a guess.
- **No invented assets:** analyze only what `/meta_ads_extractor` produced. If an expected
asset is missing, note the gap — never fabricate a creative or a metric.
- **No fake numbers:** never invent spend, CTR, or performance figures Meta's Ad Library
doesn't expose. "Top performer" badges are inferred patterns, labeled as inference.
- **Scope discipline:** analyze this advertiser's extracted set only; don't expand to other
advertisers or re-extract. To pull more assets, hand back to /meta_ads_extractor.
## Example Workflow
```
User: Analyze the EricPartaker ads we extracted
1. Read assets folder: ~/clawd/output/meta-ads/ericpartaker/
2. Analyze each video with Gemini / image with vision
3. Analyze landing page screenshots
4. Map ads to landing pages (identify 3 funnels)
5. Identify strategy patterns
6. Generate HTML report
7. Zip folder
8. Send to user
```
## Integration
This skill is designed to follow `/meta_ads_extractor`:
```
/meta_ads_extractor → downloads assets
/meta_ads_analyser → generates strategy report
```
Can also integrate with:
- **ad-creative-analysis** — detailed individual ad breakdowns
- **landing-page-analysis** — deeper landing page audits
GitHubで見る