meta-ad-creatives

Track Meta (Facebook/Instagram) ad creative performance and hit rates across multiple accounts. Use when asked about creative win rates, which ads are hitting benchmarks, CPT/CPI/ROAS analysis, or comparing creative performance across accounts and time periods. Supports multiple benchmark metrics (CPT, CPI, IPM, ROAS) and currency conversion.

7 stars

Best use case

meta-ad-creatives is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Track Meta (Facebook/Instagram) ad creative performance and hit rates across multiple accounts. Use when asked about creative win rates, which ads are hitting benchmarks, CPT/CPI/ROAS analysis, or comparing creative performance across accounts and time periods. Supports multiple benchmark metrics (CPT, CPI, IPM, ROAS) and currency conversion.

Teams using meta-ad-creatives should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/meta-ad-creatives/SKILL.md --create-dirs "https://raw.githubusercontent.com/Demerzels-lab/elsamultiskillagent/main/public/skills/fortytwode/meta-ad-creatives/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/meta-ad-creatives/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How meta-ad-creatives Compares

Feature / Agentmeta-ad-creativesStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Track Meta (Facebook/Instagram) ad creative performance and hit rates across multiple accounts. Use when asked about creative win rates, which ads are hitting benchmarks, CPT/CPI/ROAS analysis, or comparing creative performance across accounts and time periods. Supports multiple benchmark metrics (CPT, CPI, IPM, ROAS) and currency conversion.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Meta Ad Creatives

Track creative performance and hit rates across multiple Meta Ads accounts.

## What This Skill Does

- Calculate **hit rates** (% of creatives meeting performance benchmarks)
- Track multiple metrics: **CPT** (cost per trial), **CPI** (cost per install), **IPM** (installs per mille), **ROAS**
- Compare performance across **multiple accounts**
- Store **historical data** for trend analysis
- Identify **winning creatives** vs underperformers
- Support **currency conversion** for international accounts

## Setup

### 1. Environment Variables

```bash
FACEBOOK_ACCESS_TOKEN=your_token_here
FACEBOOK_APP_ID=your_app_id
FACEBOOK_APP_SECRET=your_app_secret
```

### 2. Accounts Configuration

Create `accounts_config.json`:

```json
{
  "accounts": {
    "ClientName": {
      "account_id": "123456789",
      "filter": "CampaignNameFilter",
      "geo_filter": "US",
      "benchmark_value": 100,
      "benchmark_display": "CPT < $100",
      "active": true
    }
  }
}
```

Configuration fields:
- `account_id`: Meta Ad Account ID (without `act_` prefix)
- `filter`: Campaign name filter (optional)
- `geo_filter`: Geographic filter like "US" (optional)
- `benchmark_value`: CPT threshold for "winning" creatives
- `benchmark_display`: Human-readable benchmark description

## Usage

### Get Hit Rates for Current Month

```python
from scripts.meta_ad_creatives import get_all_hit_rates

data = get_all_hit_rates(month_offset=0)
print(f"Overall hit rate: {data['totals']['hit_rate']}%")
for account in data['accounts']:
    print(f"  {account['account_name']}: {account['hit_rate']}%")
```

### Get Hit Rates for Previous Months

```python
# Last month
data = get_all_hit_rates(month_offset=-1)

# Two months ago
data = get_all_hit_rates(month_offset=-2)
```

### Get All-Time Aggregated Data

```python
data = get_all_hit_rates(all_time=True)
```

### Get Individual Ad Performance

```python
from scripts.meta_ad_creatives import get_individual_ads

# All ads for an account
ads = get_individual_ads(account_name="ClientName", month_key="2026-01")

# Only winning ads
winners = get_individual_ads(account_name="ClientName", hit_only=True)

# Sort by CPT
ads = get_individual_ads(sort_by="cpt")
```

### Monthly Comparison

```python
from scripts.meta_ad_creatives import get_monthly_comparison

# Compare last 3 months
months = get_monthly_comparison(num_months=3)
for month in months:
    print(f"{month['month_label']}: {month['totals']['hit_rate']}%")
```

## Key Metrics

| Metric | Description |
|--------|-------------|
| Total Ads | Ads created in the period |
| Ads with Spend | Ads that received budget |
| Ads Hitting Benchmark | Ads meeting CPT threshold |
| Hit Rate | % of ads meeting benchmark |
| CPT | Cost Per Trial (spend / trials) |

## Hit Rate Calculation

A creative "hits" the benchmark when:
1. It has spend > $0
2. It has trials > 0
3. CPT < benchmark_value (e.g., $100)

Hit Rate = (Ads Hitting Benchmark / Ads with Spend) × 100

## Data Storage

The skill stores historical data for trend analysis:
- **Firestore** (default for cloud deployments)
- **SQLite** (local fallback)

Set `USE_FIRESTORE=false` to use SQLite locally.

## Common Questions This Answers

- "What's our creative hit rate this month?"
- "Which creatives are winning for [Client]?"
- "How does this month compare to last month?"
- "Show me all ads that hit the benchmark"
- "What's our all-time hit rate?"

Related Skills

meta-ads-report

7
from Demerzels-lab/elsamultiskillagent

A powerful toolkit to monitor your Meta (Facebook/Instagram) advertising performance directly through chat.

metals-agent-teneo

7
from Demerzels-lab/elsamultiskillagent

Provides real time prices for gold, silver, and copper

student-timetable

7
from Demerzels-lab/elsamultiskillagent

Student timetable manager for self or parent-managed child profiles.

remove-metadata-from-pdf

7
from Demerzels-lab/elsamultiskillagent

Remove metadata from one or multiple PDFs by uploading them to the Solutions API, polling until completion.

metals-desk-os

7
from Demerzels-lab/elsamultiskillagent

Institutional Desk-Level Fully Automated Trading OS for XAU/USD and XAG/USD.

meta-ads-analyser

7
from Demerzels-lab/elsamultiskillagent

Analyze extracted Meta ad creatives and generate a professional strategy report.

MetaMask Agent Wallet

7
from Demerzels-lab/elsamultiskillagent

Control a sandboxed MetaMask browser extension wallet for autonomous blockchain transactions. Features configurable permission guardrails including spend limits, chain allowlists, protocol restrictions, and approval thresholds. MetaMask-only (other wallets not supported).

meta-business

7
from Demerzels-lab/elsamultiskillagent

Skill for the Meta Business CLI.

meta-tags-optimizer

7
from Demerzels-lab/elsamultiskillagent

Use when the user asks to "optimize title tag", "write meta description", "improve CTR", "Open Graph tags", "social.

paylock

7
from Demerzels-lab/elsamultiskillagent

Non-custodial SOL escrow for AI agent deals.

agent-reputation

7
from Demerzels-lab/elsamultiskillagent

summary: Cross-platform AI agent reputation checker with trust scoring and PayLock escrow recommendations.

Telecom Agent Skill

7
from Demerzels-lab/elsamultiskillagent

Turn your AI Agent into a Telecom Operator. Bulk calling, ChatOps, and Field Monitoring.