agentleFS
TheMattBermanTheMattBerman/meta-ads-kit/skills/meta-ads/SKILL.md

meta-ads

Skill331 starsChanged 7 months agoMITView on GitHub

Meta Ads management and reporting — daily checks, campaign performance, creative fatigue, bleeders, winners. Uses a local adapter over Meta Ads CLI in mock/read-only/live-approved modes.

  • Reads credentials

27 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use google-ads, tiktok-ads and 5 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • webrenewSkill

    google-ads

    Plan, build, audit or run Google Ads search campaigns for a local service business (plumber, dentist, roofer, cleaner, lawyer, clinic) on a small budget, with the agent drafting and the owner approving every change that spends money. Use this skill for a new Google Ads account or campaign, keyword research from customer questions, match types, negative keywords, location targeting, responsive search ads and assets, landing page message match, conversion tracking from GA4 or the Google Ads tag, budgets and bidding, Local Services Ads, a weekly check, and when the user says "PPC", "Google Ads is not working", "too expensive per lead", "wasted ad spend", "search terms" or "should we run Google ads".

    Also in 12 projects that use this

  • hyperfx-aiSkill

    tiktok-ads

    Plan and create TikTok advertising campaigns end-to-end via the Hyper MCP, with strict parameter validation for objective-specific requirements. Use when the user wants to launch TikTok ads, set up TikTok traffic or reach campaigns, configure conversions or app-promotion campaigns, upload TikTok video creatives, or analyze TikTok ad performance. Also triggers on tiktok marketing, tiktok campaign, tiktok ppc, or tiktok ads manager.

    Also in 4 projects that use this

  • brainbytes-devSkill

    linkedin-ads

    LinkedIn advertising strategy for B2B lead generation, brand awareness, and recruitment. Use when running LinkedIn ad campaigns.

    Also in 4 projects that use this

  • refly-aiSkill

    google-analytics

    Integrate with Google Analytics for web metrics. Use when you need to: (1) retrieve website analytics reports, (2) track traffic and user metrics, or (3) analyze web performance data.

    Also in 3 projects that use this

  • huiferSkill

    local-seo

    本地 SEO 分析和优化专家。自动检测项目是否需要本地 SEO,分析 NAP(Name, Address, Phone)一致性、本地关键词优化、Google Business Profile (GBP) 优化和本地结构化数据生成。提供本地商家搜索引擎排名优化建议,包括 NAP 标准化、本地关键词策略、GBP 完整性检查、评论策略、地图嵌入和本地 SEO 审计。

    Also in 3 projects that use this

  • indranilbanerjeeSkill

    keyword-research

    Research keywords via the connected data source: intent, gaps. Grouping → keyword-cluster. \"what keywords should we target\"

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

12 rules. 0 are common, 5 are distinctive, and 7 are very specific to this project.

  • 0

    Common

    Most of the 21 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Stop clicking through Ads Manager.

    line 15
  2. Very specific:

    Read workspace/brand/ per the _vibe-system protocol

    line 21
  3. Distinctive:

    Follow all output formatting rules from the _vibe-system output format

    line 23
  4. Very specific:

    Use official Ads CLI variables: ACCESS_TOKEN, AD_ACCOUNT_ID, and optionally BUSINESS_ID.

    line 58
  5. Distinctive:

    Safety: All mutating actions are high-risk and require confirmation.

    line 176
  6. Distinctive:

    Ask follow-up questions if needed

    line 193
  7. Distinctive:

    When the user asks about Meta ads, Facebook ads, Instagram ads, or campaign performance:

    line 205
  8. Very specific:

    Check workspace/brand/stack.md for stored ad account ID

    line 207
  9. Very specific:

    Check AD_ACCOUNT_ID / META_AD_ACCOUNT env vars

    line 208
  10. Very specific:

    If neither, run ./scripts/meta-kit.sh doctor.

    line 209
  11. Very specific:

    Run the appropriate ./run.sh report

    line 210
  12. Distinctive:

    When running daily-check, frame the output around these questions:

    line 218

“Common” is measured: kept by at least 6 in 10 of the 21 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Meta Ads — Your AI Ad Manager

Stop clicking through Ads Manager. This skill uses ./run.sh + ./scripts/meta-kit.sh to give you the five things that actually matter about your Meta campaigns — in plain text, every day.

The thesis: 90% of ad management is pattern recognition. Spend trending up or down. CTR declining (creative fatigue). CPA spiking (audience exhaustion). Winners emerging. Losers bleeding.

This skill spots the patterns. You make the calls.

Read workspace/brand/ per the _vibe-system protocol

Follow all output formatting rules from the _vibe-system output format


Brand Memory Integration

Reads: stack.md, creative-kit.md, audience.md, learnings.md (all optional)

FileWhat it providesHow it shapes output
workspace/brand/stack.mdStored ad account ID, target CPA/ROASAuto-fills account, benchmarks performance against targets
workspace/brand/creative-kit.mdBrand creative guidelines, assetsContext for creative recommendations
workspace/brand/audience.mdTarget audience profilesInterprets audience performance data
workspace/brand/learnings.mdPast performance patternsSpots recurring issues — "this happened last month too"

Writes

FileWhat it contains
workspace/brand/stack.mdStores ad account ID on first use
workspace/brand/learnings.mdAppends performance findings, fatigue patterns, winning creative traits

Setup (One Time)

1. Configure local adapter mode

cp .env.example .env
META_KIT_MODE=mock ./scripts/meta-kit.sh doctor

2. Set account/token in .env for non-mock runs

Use official Ads CLI variables: ACCESS_TOKEN, AD_ACCOUNT_ID, and optionally BUSINESS_ID. The kit still accepts META_AD_ACCOUNT / META_SYSTEM_USER_ACCESS_TOKEN aliases for backwards compatibility. Keep secrets out of git.


Reports

The 5 Daily Questions ← Start Here

The core of the system. Five questions that replace 20 minutes of Ads Manager clicking:

  1. Am I on track? — Today's spend vs expectations
  2. What's running? — Active campaigns at a glance
  3. How's performance? — 7-day metrics by campaign
  4. Who's winning/losing? — Ad-level performance sorted
  5. Any fatigue? — CTR trends, frequency, CPC movement
Tell me: "Daily ads check"
Or: "Run the 5 questions on my ads"
Or: "How are my Meta ads doing?"

Script: ./run.sh daily-check

Overview

Account-level summary with campaign breakdown.

Tell me: "Meta ads overview for last 30 days"

Script: ./run.sh overview --preset last_30d

Campaigns

List campaigns, optionally filtered by status.

Tell me: "Show me active campaigns"

Script: ./run.sh campaigns --status ACTIVE

Top Creatives

Ad-level performance ranked by results.

Tell me: "What are my best performing ads?"

Script: ./run.sh winners --preset last_7d

Bleeders 🩸

Ads with high spend but poor performance — candidates for pause. Flags ads with CTR < 1% or frequency > 3.5.

Tell me: "Any ads bleeding money?"
Or: "Find underperforming ads"

Script: ./run.sh bleeders --preset last_7d

Winners 🏆

Top performing ads by CTR and efficiency. These are your scale candidates.

Tell me: "Which ads should I scale?"
Or: "Show me the winners"

Script: ./run.sh winners --preset last_7d

Fatigue Check 😴

Daily breakdown to spot creative fatigue — CTR declining day-over-day, frequency climbing, CPC rising.

Tell me: "Any creative fatigue?"
Or: "Check for ad fatigue"

Script: ./run.sh fatigue

Custom

Full control. Specify level, fields, breakdowns.

Tell me: "Show me ad performance broken down by age and gender"

Script: meta --output json --no-input ads insights get --breakdown age --breakdown gender --fields spend,impressions,ctr,cpc once read-only CLI auth is configured.


Date Presets

  • today — Today only
  • yesterday — Yesterday only
  • last_7d — Last 7 days (default for most reports)
  • last_30d — Last 30 days
  • last_90d — Last 90 days

Actions (Use With Care)

Beyond reporting, official Ads CLI can create/update/delete resources. In this kit, mutating actions are blocked unless they go through dry-run + explicit approval.

Prepare an ad create dry run

META_KIT_MODE=mock ./scripts/meta-kit.sh create-ad --payload examples/create-ad.json --dry-run

Safety: All mutating actions are high-risk and require confirmation. The skill should ALWAYS present findings and recommendations first, write a dry-run artifact for proposed changes, then ask for explicit approval before any live action.


The AI Ad Manager Workflow

This is the system from the newsletter. Here's how it works in practice:

Morning (automated via cron):

  1. Run daily-check
  2. Flag bleeders (CTR < 1%, frequency > 3.5, CPA > threshold)
  3. Flag winners (top CTR, low CPC, scaling headroom)
  4. Send summary to Telegram/Slack

You (2 minutes over coffee):

  1. Read the summary
  2. Approve/reject recommendations
  3. Ask follow-up questions if needed

The AI (on approval):

  1. Generates exact dry-run artifacts for confirmed changes
  2. Requires META_KIT_MODE=live-approved + META_KIT_APPROVAL_ID before live mutation
  3. Keeps new creates PAUSED-only
  4. Logs decisions to learnings.md

Invocation

When the user asks about Meta ads, Facebook ads, Instagram ads, or campaign performance:

  1. Check workspace/brand/stack.md for stored ad account ID
  2. Check AD_ACCOUNT_ID / META_AD_ACCOUNT env vars
  3. If neither, run ./scripts/meta-kit.sh doctor; after auth, meta ads adaccount list can list accounts
  4. Run the appropriate ./run.sh report
  5. Interpret results in context of brand goals (from stack.md/learnings.md)
  6. For bleeders/winners, present clear recommendations with reasoning
  7. Never take action without explicit user approval
  8. Log findings to workspace/brand/learnings.md

The 5 Daily Questions (Detailed)

When running daily-check, frame the output around these questions:

  1. "Am I on track?" — Compare today's spend rate to daily budget. If pacing high or low, flag it.
  2. "What's running?" — List active campaigns with status. Flag any that should be off.
  3. "How's the last 7 days?" — Campaign-level metrics. Compare to previous 7 if available.
  4. "Who's winning and who's losing?" — Ad-level sort. Top 3 winners, bottom 3 losers with specific metrics.
  5. "Any fatigue signals?" — Frequency trends, CTR day-over-day, CPC movement. Concrete numbers, not vibes.

Next Up

  • /ga4-report — See what Meta traffic actually does on your site. Pair with ads data to find true ROAS.
  • /gsc-report — Cross-reference paid vs organic. Are you paying for traffic you'd get free?
  • /creative — Generate new ad creatives when fatigue hits. Feed winning patterns into new concepts.
  • /direct-response-copy — Write ad copy based on what's actually converting.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.