Install
openclaw skills install meta-ad-creativesTrack 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.
openclaw skills install meta-ad-creativesTrack creative performance and hit rates across multiple Meta Ads accounts.
FACEBOOK_ACCESS_TOKEN=your_token_here
FACEBOOK_APP_ID=your_app_id
FACEBOOK_APP_SECRET=your_app_secret
Create accounts_config.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" creativesbenchmark_display: Human-readable benchmark descriptionfrom 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']}%")
# Last month
data = get_all_hit_rates(month_offset=-1)
# Two months ago
data = get_all_hit_rates(month_offset=-2)
data = get_all_hit_rates(all_time=True)
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")
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']}%")
| 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) |
A creative "hits" the benchmark when:
Hit Rate = (Ads Hitting Benchmark / Ads with Spend) × 100
The skill stores historical data for trend analysis:
Set USE_FIRESTORE=false to use SQLite locally.