meta-ads-analyser
Analyze extracted Meta ad creatives and generate a professional strategy report. Use after /meta_ads_extractor to produce a clean, organized analysis document with inline videos/images grouped by funnel/landing page.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install openclaw-skills-meta-ads-analyser
Repository
Skill path: skills/bluerockerr/meta-ads-analyser
Analyze extracted Meta ad creatives and generate a professional strategy report. Use after /meta_ads_extractor to produce a clean, organized analysis document with inline videos/images grouped by funnel/landing page.
Open repositoryBest for
Primary workflow: Ship Full Stack.
Technical facets: Full Stack.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: openclaw.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install meta-ads-analyser into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/openclaw/skills before adding meta-ads-analyser to shared team environments
- Use meta-ads-analyser for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: meta-ads-analyser
description: Analyze extracted Meta ad creatives and generate a professional strategy report. Use after /meta_ads_extractor to produce a clean, organized analysis document with inline videos/images grouped by funnel/landing page.
---
# Meta Ads Analyser
Generate a professional ad strategy analysis report from extracted Meta ad creatives.
## 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.
## 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
---
## Referenced Files
> The following files are referenced in this skill and included for context.
### templates/report-template.html
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ADVERTISER}} — Ad Strategy Analysis</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
background: #fff;
color: #1a1a1a;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
line-height: 1.7;
font-size: 15px;
}
.container { max-width: 900px; margin: 0 auto; padding: 40px 24px; }
h1 { font-size: 2rem; color: #111; margin-bottom: 8px; font-weight: 700; }
h2 { font-size: 1.4rem; color: #111; margin: 32px 0 16px; font-weight: 600; border-bottom: 2px solid #eee; padding-bottom: 8px; }
h3 { font-size: 1.1rem; color: #333; margin: 20px 0 12px; font-weight: 600; }
p { margin-bottom: 12px; color: #333; }
.header { margin-bottom: 40px; padding-bottom: 24px; border-bottom: 1px solid #e5e5e5; }
.header .subtitle { color: #666; font-size: 1rem; margin-top: 4px; }
.header .date { color: #999; font-size: 0.85rem; margin-top: 8px; }
/* Strategy Section */
.strategy-box {
background: #f8f9fa;
border: 1px solid #e5e5e5;
border-radius: 8px;
padding: 24px;
margin: 24px 0;
}
.strategy-box h3 { margin-top: 0; color: #111; }
.funnel-flow {
background: #fff;
border: 1px solid #ddd;
border-radius: 6px;
padding: 16px;
margin: 16px 0;
text-align: center;
font-size: 0.95rem;
color: #555;
}
.takeaway {
background: #fffbeb;
border-left: 4px solid #f59e0b;
padding: 16px;
margin: 16px 0;
border-radius: 0 6px 6px 0;
}
.takeaway-title { font-weight: 600; color: #92400e; margin-bottom: 8px; }
ul { margin: 12px 0; padding-left: 24px; }
li { margin-bottom: 8px; color: #444; }
/* Funnel Sections */
.funnel-section {
margin: 48px 0;
padding: 24px;
background: #fafafa;
border-radius: 12px;
border: 1px solid #e5e5e5;
}
.funnel-header {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 20px;
}
.funnel-number {
background: #111;
color: #fff;
width: 32px;
height: 32px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: 700;
font-size: 0.9rem;
}
.funnel-title { font-size: 1.3rem; font-weight: 600; color: #111; }
.funnel-url { color: #666; font-size: 0.9rem; margin-top: 2px; }
/* Landing Page Card */
.landing-card {
background: #fff;
border: 1px solid #ddd;
border-radius: 8px;
padding: 20px;
margin-bottom: 24px;
}
.landing-card img {
max-width: 100%;
border-radius: 6px;
border: 1px solid #eee;
margin-bottom: 16px;
}
.landing-meta { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 12px; }
.landing-meta-item { font-size: 0.9rem; }
.landing-meta-item strong { color: #111; }
/* Ad Cards */
.ads-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 20px;
margin-top: 24px;
}
.ad-card {
background: #fff;
border: 1px solid #ddd;
border-radius: 8px;
overflow: hidden;
}
.ad-card video, .ad-card img {
width: 100%;
display: block;
}
.ad-card-body {
padding: 16px;
}
.ad-card-title {
font-weight: 600;
font-size: 0.95rem;
margin-bottom: 8px;
color: #111;
}
.ad-badges {
display: flex;
gap: 6px;
margin-bottom: 12px;
flex-wrap: wrap;
}
.badge {
display: inline-block;
padding: 2px 8px;
border-radius: 4px;
font-size: 0.7rem;
font-weight: 600;
text-transform: uppercase;
}
.badge-video { background: #e0e7ff; color: #3730a3; }
.badge-image { background: #cffafe; color: #0e7490; }
.badge-tofu { background: #dcfce7; color: #166534; }
.badge-bofu { background: #fee2e2; color: #991b1b; }
.badge-top { background: #fef3c7; color: #92400e; }
.badge-variant { background: #f3f4f6; color: #6b7280; }
.badge-new { background: #fef3c7; color: #92400e; }
.ad-detail { margin-bottom: 10px; }
.ad-label {
font-weight: 600;
font-size: 0.8rem;
color: #666;
text-transform: uppercase;
letter-spacing: 0.3px;
}
.ad-text { font-size: 0.9rem; color: #333; margin-top: 2px; }
.ad-strength { color: #166534; }
.ad-weakness { color: #991b1b; }
/* Variant Note */
.variant-note {
background: #f9fafb;
border-left: 3px solid #9ca3af;
padding: 12px;
margin: 8px 0;
font-size: 0.85rem;
color: #6b7280;
}
footer {
margin-top: 48px;
padding-top: 24px;
border-top: 1px solid #e5e5e5;
color: #999;
font-size: 0.85rem;
text-align: center;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>🔍 {{ADVERTISER}} — Ad Strategy Analysis</h1>
<p class="subtitle">{{NUM_ADS}} active ads · {{NUM_FUNNELS}} funnels · Complete strategy breakdown</p>
<p class="date">Generated {{DATE}} · Source: Meta Ad Library</p>
</div>
<!-- ═══════════ STRATEGY SECTION ═══════════ -->
<h2>📊 Strategy Overview</h2>
<div class="strategy-box">
<h3>{{STRATEGY_TITLE}}</h3>
<p>{{STRATEGY_DESCRIPTION}}</p>
<ul>
{{STRATEGY_BULLETS}}
</ul>
</div>
<div class="funnel-flow">
{{FUNNEL_FLOW_VISUALIZATION}}
</div>
<div class="strategy-box">
<h3>Creative Testing Strategy</h3>
<p>{{TESTING_STRATEGY}}</p>
</div>
<div class="takeaway">
<div class="takeaway-title">💡 Key Takeaways</div>
<ul>
{{KEY_TAKEAWAYS}}
</ul>
</div>
<!-- ═══════════ FUNNEL SECTIONS ═══════════ -->
<!-- Repeat this block for each funnel -->
<div class="funnel-section">
<div class="funnel-header">
<div class="funnel-number">{{FUNNEL_NUM}}</div>
<div>
<div class="funnel-title">{{FUNNEL_NAME}}</div>
<div class="funnel-url">{{FUNNEL_URL}}</div>
</div>
</div>
<div class="landing-card">
<img src="{{LANDING_SCREENSHOT}}" alt="{{FUNNEL_NAME}} Landing Page">
<h3>Landing Page Analysis</h3>
<p><strong>Headline:</strong> {{LANDING_HEADLINE}}</p>
<p><strong>Strategy:</strong> {{LANDING_STRATEGY}}</p>
<p><strong>Flow:</strong> {{LANDING_FLOW}}</p>
<div class="landing-meta">
<div class="landing-meta-item"><strong>✅ Strengths:</strong> {{LANDING_STRENGTHS}}</div>
<div class="landing-meta-item"><strong>⚠️ Gaps:</strong> {{LANDING_GAPS}}</div>
</div>
</div>
<h3>Ads Driving to This Funnel</h3>
<div class="ads-grid">
<!-- Video Ad Card -->
<div class="ad-card">
<video controls preload="metadata">
<source src="{{VIDEO_FILE}}" type="video/mp4">
</video>
<div class="ad-card-body">
<div class="ad-badges">
<span class="badge badge-video">Video</span>
<span class="badge badge-tofu">TOFU</span>
</div>
<div class="ad-card-title">{{AD_TITLE}}</div>
<div class="ad-detail">
<div class="ad-label">🪝 Hook</div>
<div class="ad-text">{{AD_HOOK}}</div>
</div>
<div class="ad-detail">
<div class="ad-label">📝 Script</div>
<div class="ad-text">{{AD_SCRIPT}}</div>
</div>
<div class="ad-detail">
<div class="ad-label">💭 Emotion</div>
<div class="ad-text">{{AD_EMOTION}}</div>
</div>
<div class="ad-detail">
<div class="ad-label ad-strength">✅ Strengths</div>
<div class="ad-text">{{AD_STRENGTHS}}</div>
</div>
<div class="ad-detail">
<div class="ad-label ad-weakness">⚠️ Gaps</div>
<div class="ad-text">{{AD_GAPS}}</div>
</div>
</div>
</div>
<!-- Image Ad Card -->
<div class="ad-card">
<img src="{{IMAGE_FILE}}" alt="{{AD_TITLE}}">
<div class="ad-card-body">
<div class="ad-badges">
<span class="badge badge-image">Image</span>
<span class="badge badge-tofu">TOFU</span>
</div>
<div class="ad-card-title">{{AD_TITLE}}</div>
<div class="ad-detail">
<div class="ad-label">🎨 Design</div>
<div class="ad-text">{{AD_DESIGN}}</div>
</div>
<div class="ad-detail">
<div class="ad-label">🪝 Hook</div>
<div class="ad-text">{{AD_HOOK}}</div>
</div>
<div class="ad-detail">
<div class="ad-label ad-strength">✅ Strengths</div>
<div class="ad-text">{{AD_STRENGTHS}}</div>
</div>
<div class="ad-detail">
<div class="ad-label ad-weakness">⚠️ Gaps</div>
<div class="ad-text">{{AD_GAPS}}</div>
</div>
</div>
</div>
<!-- Variant Ad Card -->
<div class="ad-card">
<img src="{{VARIANT_FILE}}" alt="Variant">
<div class="ad-card-body">
<div class="ad-badges">
<span class="badge badge-variant">Variant</span>
<span class="badge badge-image">Image</span>
</div>
<div class="ad-card-title">{{VARIANT_TITLE}}</div>
<div class="variant-note">
{{VARIANT_NOTE}}
</div>
</div>
</div>
</div>
</div>
<!-- End funnel section -->
<footer>
Generated {{DATE}} · Source: Meta Ad Library<br>
{{ADVERTISER_URLS}}
</footer>
</div>
</body>
</html>
```
---
## Skill Companion Files
> Additional files collected from the skill directory layout.
### _meta.json
```json
{
"owner": "bluerockerr",
"slug": "meta-ads-analyser",
"displayName": "Ads Analyzer",
"latest": {
"version": "1.0.0",
"publishedAt": 1771791206910,
"commit": "https://github.com/openclaw/skills/commit/5c8bf84c65c2ff435ba0b57f66170ee7afe5f5ed"
},
"history": []
}
```