# Meta Ads Analyser

> 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.

- Skill: `agentik-os/meta-ads-analyser` (Agent Skill)
- Install (CLI): `npx skillmds@latest add agentik-os/meta-ads-analyser`
- Raw SKILL.md: https://api.skillmd.com/api/skills/agentik-os/meta-ads-analyser/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: agentik-os (https://skillmd.com/u/agentik-os)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/agentik-os/meta-ads-analyser

---


# 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

