Systems Lab

Agent skill

ad-campaign-analyzer

Analyze ad campaign performance data (Google, Meta, LinkedIn) to identify what's working, what's wasting budget, and specific cut/scale/test recommendations.

dormantSelf-containedActs undeclared1,191 words

Filed under LinkedIn and social.

From edupegoretti/fluidz-skills · 116 skills · 0 · pushed 2026-03-11

What it does when it runs

Analyze ad campaign performance data (Google, Meta, LinkedIn) to identify what's working, what's wasting budget, and specific cut/scale/test recommendations. Takes CSV or pasted data, runs statistical analysis, and produces a diagnostic report with action items.

Read from the skill and the 1 file bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
None found.
Hosts it reaches
No third-party host appears in the skill or its bundled files.
Tool permissions it declares
No allowed-tools in the frontmatter. It does act, so it runs under whatever permissions your session already grants.
Actions present in the files
writes files

Ask about ad-campaign-analyzer

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/edupegoretti/fluidz-skills.git /tmp/fluidz-skills
git -C /tmp/fluidz-skills sparse-checkout set "skills/composites/ad-campaign-analyzer"
mkdir -p ~/.claude/skills/ad-campaign-analyzer
cp -R "/tmp/fluidz-skills/skills/composites/ad-campaign-analyzer/." ~/.claude/skills/ad-campaign-analyzer/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Reproduced in full from edupegoretti/fluidz-skills/blob/a2cf697e2e8ec2ea517d85496e2d5c7f5dc44cd3/skills/composites/ad-campaign-analyzer/SKILL.md, which is licensed MIT (repository). 1,191 words, 33 headings.

Ad Campaign Analyzer

Take raw campaign performance data and turn it into clear decisions. This skill doesn't just summarize metrics — it diagnoses problems, identifies winners, checks statistical significance, and tells you exactly what to cut, scale, and test next.

Core principle: Most startup founders check their ad dashboard, see a ROAS number, and either panic or celebrate. This skill gives you the nuanced analysis a paid media specialist would: what's actually significant, what's noise, and where your next dollar should go.

When to Use

  • "Analyze my Google Ads performance"
  • "Which ads should I kill?"
  • "Is this campaign working?"
  • "Where am I wasting ad spend?"
  • "Optimize my Meta Ads"

Phase 0: Intake

  1. Campaign data — One of:
    • CSV export from Google Ads / Meta Ads Manager / LinkedIn Campaign Manager
    • Pasted performance table
    • Screenshots of dashboard (we'll extract the data)
  2. Platform(s) — Google / Meta / LinkedIn / All
  3. Time period — What date range does this cover?
  4. Monthly budget — Total ad spend in this period
  5. Primary goal — What conversion are you optimizing for? (Demos / Trials / Purchases / Leads)
  6. Target metrics — Do you have target CPA or ROAS? (If not, we'll benchmark)
  7. Any known changes? — Did you change creative, budget, or targeting during this period?

Phase 1: Data Ingestion & Normalization

Accepted Data Formats

SourceKey Columns Expected
Google AdsCampaign, Ad Group, Keyword, Impressions, Clicks, CTR, CPC, Conversions, Conv Rate, Cost, Conv Value
Meta AdsCampaign, Ad Set, Ad, Impressions, Reach, Clicks, CTR, CPC, Conversions, Cost Per Result, Amount Spent, ROAS
LinkedIn AdsCampaign, Impressions, Clicks, CTR, CPC, Conversions, Cost, Leads

Normalize all data into a standard analysis format:

DimensionImpressionsClicksCTRCPCConversionsConv RateCPASpendRevenue/Value

Phase 2: Performance Diagnostics

2A: Campaign-Level Health Check

For each campaign:

MetricValueBenchmarkStatus
CTR[X%][Industry avg][Good/Okay/Poor]
CPC$[X][Category avg][Good/Okay/Poor]
Conv Rate[X%][Benchmark][Good/Okay/Poor]
CPA$[X][Target or benchmark][Good/Okay/Poor]
ROAS[X][Target or benchmark][Good/Okay/Poor]
Impression Share[X%][>60% ideal][Good/Okay/Poor]

2B: Budget Waste Detection

Identify spend that produced no or negative return:

Waste TypeSignalAction
Zero-conversion keywords/adsSpend > $[X] with 0 conversionsPause or add negatives
High CPA outliersCPA > 3x targetPause or restructure
Low CTR adsCTR < 50% of campaign averageReplace creative
Broad match bleedSearch terms report showing irrelevant clicksAdd negative keywords
Audience overlapSame users hit by multiple campaignsExclude audiences
Dayparting wasteConversions cluster at certain hours; spend is 24/7Set ad schedule

2C: Winner Identification

Find what's actually working:

Winner TypeSignalAction
Top-performing keywordsLowest CPA, highest conv rateIncrease bid, add variants
Winning adsHighest CTR + conv rate comboScale spend, clone for other groups
Best audiencesLowest CPA segmentIncrease budget allocation
Best timesPeak conversion hours/daysConcentrate budget

2D: Statistical Significance Check

For any A/B test (ad variants, audiences, landing pages):

Test: [Variant A] vs [Variant B]
Metric: [Conv Rate / CTR / CPA]
Variant A: [X%] (n=[sample_size])
Variant B: [Y%] (n=[sample_size])
Confidence level: [X%]
Verdict: [Statistically significant / Not enough data / Too close to call]
Recommended action: [Pick winner / Continue test / Increase budget to reach significance]

Minimum sample: 100 clicks per variant for CTR tests, 30 conversions per variant for CPA tests.

Phase 3: Funnel Analysis

Click → Conversion Path

Impressions: [N] (100%)
     ↓ CTR: [X%]
Clicks: [N] ([X%] of impressions)
     ↓ Landing page → Conversion: [X%]
Conversions: [N] ([X%] of clicks)
     ↓ Conversion → Revenue: $[X] avg
Revenue: $[N]

Funnel Drop-Off Diagnosis

Drop-Off PointRateBenchmarkLikely CauseFix
Impression → Click[CTR%][Benchmark][Ad relevance / targeting][Copy/targeting change]
Click → Conversion[Conv%][Benchmark][Landing page / offer / audience mismatch][LP optimization]
Conversion → Revenue[Close%][Benchmark][Lead quality / sales process][Qualification criteria]

Phase 4: Output Format

# Ad Campaign Analysis — [Product/Client] — [DATE]

Period: [Date range]
Total spend: $[X]
Platform(s): [Google / Meta / LinkedIn]
Primary goal: [Conversions / Revenue / Leads]

---

## Executive Summary

[3-5 sentences: Overall performance verdict, biggest win, biggest problem, top recommendation]

---

## Performance Dashboard

| Campaign | Spend | Impressions | Clicks | CTR | CPC | Conversions | CPA | ROAS | Verdict |
|----------|-------|------------|--------|-----|-----|-------------|-----|------|---------|
| [Name] | $[X] | [N] | [N] | [X%] | $[X] | [N] | $[X] | [X] | [Scale/Optimize/Pause] |

---

## Budget Waste Report

**Total estimated waste: $[X] ([X%] of total spend)**

### Wasted on zero-conversion items: $[X]
[List of keywords/ads/audiences with spend but no conversions]

### Wasted on high-CPA items: $[X]
[List of items with CPA > 3x target]

### Recommended saves: $[X]/month
[Specific items to pause]

---

## Winners to Scale

### Top Keywords/Audiences
| Item | CPA | Conv Rate | Current Spend | Recommended Spend |
|------|-----|----------|--------------|-------------------|

### Top Ads
| Ad | CTR | Conv Rate | Why It Works |
|----|-----|----------|-------------|

---

## A/B Test Results

### [Test Name]
- Variant A: [Metric] (n=[N])
- Variant B: [Metric] (n=[N])
- Confidence: [X%]
- **Verdict:** [Winner / Continue / Inconclusive]

---

## Action Plan

### Immediate (This Week)
- [ ] **Pause:** [Specific items — keywords, ads, audiences]
- [ ] **Scale:** [Specific items — increase budget/bids]
- [ ] **Add negatives:** [Specific keywords from search terms]

### This Month
- [ ] **Test:** [New ad angles / audiences / landing pages]
- [ ] **Restructure:** [Ad groups that need splitting or merging]
- [ ] **Optimize:** [Bid strategy changes]

### Next Month
- [ ] **Expand:** [New campaigns / channels to test]
- [ ] **Review:** [Run this analysis again]

Save to clients/<client-name>/ads/campaign-analysis-[YYYY-MM-DD].md.

Cost

ComponentCost
Data analysisFree (LLM reasoning)
Statistical calculationsFree
TotalFree

Tools Required

  • No external tools needed — pure reasoning skill
  • User provides campaign data as CSV, paste, or screenshot

Trigger Phrases

  • "Analyze my ad campaign performance"
  • "Which ads should I pause?"
  • "Where am I wasting ad budget?"
  • "Is my Google Ads campaign working?"
  • "Optimize my Meta Ads spend"

Files bundled with it

These load only when the skill asks for them, so they cost nothing until it runs.

Other skills for the same job

Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.

Need help setting it up?

This page tells you what ad-campaign-analyzer does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.