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.
- 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).
- 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).
- 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.
- 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).
- 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:
# 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
Generate HTML file in the assets folder:
~/clawd/output/meta-ads/{advertiser-slug}/{slug}-analysis.html
Zip the entire folder (HTML + all media assets)
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):
- Coverage — every video/image/landing screenshot in the assets folder has a card in
the HTML (count assets vs cards; none silently dropped).
- Media resolves — open the HTML, confirm every
<video>/<img> loads via its
relative path (no broken links) so the zip works offline.
- Badges present — every ad card shows Type, Funnel Stage, Aspect Ratio (+ Duration
for video), so cross-creative patterns are scannable.
- 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
1---2name: meta-ads-analyser3description: 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.4---56# Meta Ads Analyser78Generate a professional ad strategy analysis report from extracted Meta ad creatives.910> **Portability note:** Examples assume the OmegaOS VPS (`~/clawd/output/meta-ads/...`,11> `sips` on macOS, Telegram delivery). On other hosts: substitute your own asset/output12> directory, use `ffprobe`/`identify` (ImageMagick) instead of macOS-only `sips`, and13> deliver the zip via whatever channel is available. The analysis logic is unchanged.1415## Dynamic Workflow orchestration (Bucket A — fan-out)1617This is multi-angle competitive analysis. Decompose into independent units, fan out,18adversarially verify, then synthesize one coherent report.19201. **Plan** — inventory the assets folder. Enumerate units: N ad creatives, M landing21 pages. Build the work list before analyzing anything (R-RUBRIC: criteria up front).222. **Parallel fan-out** — analyze file-disjoint units concurrently (each creative and each23 landing page is independent): per-creative analysis (hook/script/emotion/CTA/gaps),24 per-landing-page analysis (headline/strategy/conversion flow), funnel mapping. One25 Workflow lane per unit; never two lanes writing the same file (R-SCOPE).263. **Adversarial verify (2-of-3)** — before a claim enters the report, falsify it across27 3 independent lenses: (a) does the asset actually show this hook/emotion (re-watch the28 exact frame / re-read the exact line)? (b) is the funnel mapping supported by the real29 destination URL, not assumed? (c) is the strategy pattern present in ≥2 creatives, not30 a single coincidence? A claim needs 2-of-3 to ship. Drop or downgrade the rest.314. **Synthesize** — YOU write the Strategy Overview from the verified per-unit findings.32 Never paste a lane's raw summary as the verdict — synthesis is your own job (R-ORCH).335. **Loop-until-dry** — if the asset count is unbounded (large competitor set), batch the34 fan-out and loop until every creative + landing page has a verified card. 92% is not35 done (L4): every asset in the folder must appear in the report or be explicitly noted.3637## Prerequisites3839- Extracted ad assets from `/meta_ads_extractor` (images, videos, landing page screenshots)40- Ad creative analysis (hooks, scripts, emotions, CTAs, strengths/weaknesses)41- Landing page analysis (headlines, strategies, conversion flows)4243## Input4445Assets folder from extraction, typically at:46```47~/clawd/output/meta-ads/{advertiser-slug}/48├── {slug}-video-01.mp449├── {slug}-video-02.mp450├── {slug}-image-01.jpg51├── {slug}-image-02.jpg52├── landing-{page-name}.jpg53└── ...54```5556## Analysis Process5758### 1. Analyze Each Creative5960For each ad creative, identify:61- **Aspect Ratio** — Dimensions and ratio (1:1, 4:5, 9:16, 16:9)62- **Duration** — For videos, length in seconds63- **Hook** — Opening line/visual that stops the scroll64- **Script/Copy** — Key messaging and value proposition65- **Visual Flow** — Sequence of scenes/elements (for video)66- **Emotion** — Primary emotional trigger (curiosity, fear, aspiration, etc.)67- **CTA** — Call to action and friction level68- **Strengths** — What works well69- **Weaknesses/Gaps** — What could be improved7071Use vision model for images, Gemini for video analysis.7273**Get dimensions with:**74```bash75# Images (macOS)76sips -g pixelWidth -g pixelHeight image.jpg7778# Videos79ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=p=0 video.mp480```8182**Common aspect ratios:**83| Ratio | Use Case |84|-------|----------|85| 1:1 | Feed (universal) |86| 4:5 | Feed (recommended) |87| 9:16 | Stories/Reels |88| 16:9 | Landscape video |8990### 2. Analyze Landing Pages9192For each landing page, identify:93- **Headline** — Primary value proposition94- **Strategy** — Key conversion elements (social proof, urgency, etc.)95- **Conversion Flow** — Path from landing to purchase/signup96- **Strengths** — What converts well97- **Gaps** — Missing elements or friction points9899### 3. Map Funnels100101Group ads by their destination landing page. Each funnel = landing page + all ads driving to it.102103Typical funnel types:104- **TOFU (Top of Funnel)** — Awareness, lead magnets, quizzes, free content105- **BOFU (Bottom of Funnel)** — Direct offer, application, purchase106107### 4. Identify Strategy Patterns108109Look for:110- Credibility stacking (logos, credentials, social proof)111- Price anchoring112- Native creative (ads that don't look like ads)113- Identity-driven copy114- Testing patterns (variants of same creative)115116## Output Format117118Generate a self-contained HTML report using the template structure below.119120### Report Structure121122```1231. Header124 - Advertiser name125 - Stats (# ads, # funnels, date)1261272. Strategy Overview (TOP)128 - High-level acquisition strategy129 - Funnel flow visualization130 - Creative testing patterns131 - Key takeaways (actionable insights)1321333. Funnel Sections (one per landing page)134 - Funnel header (name, URL)135 - Landing page card (screenshot + analysis)136 - Ad cards grid (media + analysis for each)137 1384. Footer139 - Source attribution140 - Date generated141```142143### Styling Guidelines144145- **Clean, doc-like design** — white background, simple typography146- **No dark gradients or heavy styling** — should feel like a PDF/Notion doc147- **Inline media** — videos and images embedded and playable148- **Mobile-friendly** — responsive grid for ad cards149- **Badges for quick scanning** — TOFU/BOFU, Video/Image, Variant, Top performer, Aspect ratio (1:1, 4:5, 9:16)150151### Ad Card Format152153Each ad card should display:154```155[Media: video/image]156[Badges: Type | Funnel Stage | Aspect Ratio | Duration (if video)]157[Title]158[Analysis fields: Hook, Script, Emotion, Strengths, Gaps]159```160161**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").162163See `templates/report-template.html` for the full HTML/CSS template.164165## Delivery1661671. Generate HTML file in the assets folder:168 ```169 ~/clawd/output/meta-ads/{advertiser-slug}/{slug}-analysis.html170 ```1711722. Zip the entire folder (HTML + all media assets)1731743. Send via Telegram with caption explaining contents175176**Important:** The HTML uses relative paths to media files. Always deliver as a zip so the recipient can open it locally with all assets.177178## Output contract + VERIFY179180**Produces:**181- `{slug}-analysis.html` — self-contained report (Strategy Overview + one funnel section182 per landing page + an ad card per creative, with inline playable media).183- A zip of the asset folder (HTML + all media), delivered with a caption.184185**VERIFY before claiming done (R-RUBRIC, L4):**1861. **Coverage** — every video/image/landing screenshot in the assets folder has a card in187 the HTML (count assets vs cards; none silently dropped).1882. **Media resolves** — open the HTML, confirm every `<video>`/`<img>` loads via its189 relative path (no broken links) so the zip works offline.1903. **Badges present** — every ad card shows Type, Funnel Stage, Aspect Ratio (+ Duration191 for video), so cross-creative patterns are scannable.1924. **Zip integrity** — `unzip -l` lists the HTML + every referenced media file.193194## Guardrails (evidence, no hallucination, scope)195196- **Evidence or it didn't happen (R-CITE):** every hook/script/emotion/CTA claim must be197 grounded in the actual asset — the exact line read, the exact frame/timestamp watched,198 the real destination URL. No claim from the advertiser name or a guess.199- **No invented assets:** analyze only what `/meta_ads_extractor` produced. If an expected200 asset is missing, note the gap — never fabricate a creative or a metric.201- **No fake numbers:** never invent spend, CTR, or performance figures Meta's Ad Library202 doesn't expose. "Top performer" badges are inferred patterns, labeled as inference.203- **Scope discipline:** analyze this advertiser's extracted set only; don't expand to other204 advertisers or re-extract. To pull more assets, hand back to /meta_ads_extractor.205206## Example Workflow207208```209User: Analyze the EricPartaker ads we extracted2102111. Read assets folder: ~/clawd/output/meta-ads/ericpartaker/2122. Analyze each video with Gemini / image with vision2133. Analyze landing page screenshots2144. Map ads to landing pages (identify 3 funnels)2155. Identify strategy patterns2166. Generate HTML report2177. Zip folder2188. Send to user219```220221## Integration222223This skill is designed to follow `/meta_ads_extractor`:224225```226/meta_ads_extractor → downloads assets227/meta_ads_analyser → generates strategy report228```229230Can also integrate with:231- **ad-creative-analysis** — detailed individual ad breakdowns232- **landing-page-analysis** — deeper landing page audits