ad-campaign-analyzer
The ad-campaign-analyzer skill diagnoses paid media performance by examining raw campaign data across Google Ads, Meta, LinkedIn, and other platforms to identify statistical significance, inefficient spending, and optimization opportunities. Use it to determine which campaigns to scale or pause, reallocate budget across channels based on actual ROI, benchmark performance against targets, and generate actionable recommendations for improving overall advertising efficiency and return on ad spend.
git clone --depth 1 https://github.com/gooseworks-ai/goose-skills /tmp/ad-campaign-analyzer && cp -r /tmp/ad-campaign-analyzer/skills/ads/composites/ad-campaign-analyzer ~/.claude/skills/ad-campaign-analyzerSKILL.md
# 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. Then it goes further: it compares channels on equal terms, finds where you're over-spending vs under-spending relative to results, and produces a concrete budget reallocation plan. **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. It also solves the allocation problem — most startups either spread budget too thin across channels (no channel gets enough to learn) or dump everything into one channel (missing cheaper opportunities elsewhere). ## 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" - "How should I split my ad budget?" - "Should I spend more on Google or Meta?" - "Reallocate my ad spend across channels" - "Where am I getting the best return?" - "I have $X/month for ads — how should I distribute it?" ## 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? 8. **Channels currently running** — Google Ads, Meta Ads, LinkedIn Ads, Twitter/X Ads, TikTok Ads, other 9. **Funnel data** (if available): - Lead → MQL rate - MQL → SQL rate - SQL → Close rate - Average deal size 10. **Channels you're considering but haven't tried** — Want to test new channels? 11. **Constraints** — Minimum spend on any channel? Platform you must stay on? ## Phase 1: Data Ingestion & Normalization ### Accepted Data Formats | Source | Key Columns Expected | |--------|---------------------| | **Google Ads** | Campaign, Ad Group, Keyword, Impressions, Clicks, CTR, CPC, Conversions, Conv Rate, Cost, Conv Value | | **Meta Ads** | Campaign, Ad Set, Ad, Impressions, Reach, Clicks, CTR, CPC, Conversions, Cost Per Result, Amount Spent, ROAS | | **LinkedIn Ads** | Campaign, Impressions, Clicks, CTR, CPC, Conversions, Cost, Leads | Normalize all data into a standard analysis format: | Dimension | Impressions | Clicks | CTR | CPC | Conversions | Conv Rate | CPA | Spend | Revenue/Value | |-----------|------------|--------|-----|-----|-------------|----------|-----|-------|--------------| ### Multi-Channel Normalization When data spans multiple channels, also produce a channel-level rollup: | Channel | Monthly Spend | Impressions | Clicks | CTR | CPC | Conversions | Conv Rate | CPA | ROAS | CAC* | |---------|-------------|------------|--------|-----|-----|-------------|----------|-----|------|------| | Google Search | $[X] | [N] | [N] | [X%] | $[X] | [N] | [X%] | $[X] | [X] | $[X] | | Google Display | ... | | | | | | | | | | | Meta (FB/IG) | ... | | | | | | | | | | | LinkedIn | ... | | | | | | | | | | | [Other] | ... | | | | | | | | | | | **Total** | $[X] | | | | | [N] | | $[X] avg | [X] avg | $[X] avg | *CAC = Full customer acquisition cost if funnel data provided (CPA × close-rate adjustment) ### Funnel-Adjusted CAC (If Funnel Data Available) ``` Channel CAC = CPA ÷ (MQL rate × SQL rate × Close rate) ``` This reveals which channels produce leads that actually close, not just convert. ## Phase 2: Performance Diagnostics ### 2A: Campaign-Level Health Check For each campaign: | Metric | Value | Benchmark | Status | |--------|-------|-----------|--------| | 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 Type | Signal | Action | |-----------|--------|--------| | **Zero-conversion keywords/ads** | Spend > $[X] with 0 conversions | Pause or add negatives | | **High CPA outliers** | CPA > 3x target | Pause or restructure | | **Low CTR ads** | CTR < 50% of campaign average | Replace creative | | **Broad match bleed** | Search terms report showing irrelevant clicks | Add negative keywords | | **Audience overlap** | Same users hit by multiple campaigns | Exclude audiences | | **Dayparting waste** | Conversions cluster at certain hours; spend is 24/7 | Set ad schedule | ### 2C: Winner Identification Find what's actually working: | Winner Type | Signal | Action | |------------|--------|--------| | **Top-performing keywords** | Lowest CPA, highest conv rate | Increase bid, add variants | | **Winning ads** | Highest CTR + conv rate combo | Scale spend, clone for other groups | | **Best audiences** | Lowest CPA segment | Increase budget allocation | | **Best times** | Peak conversion hours/days | Concentrate 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] Recomm
>
AI video conversations - create real-time video calls with AI personas
AI-powered web scraping - extract data using natural language prompts
Search Amazon products - find items, compare prices, read reviews
Test and document API endpoints - validate responses, check status, generate examples
>
>
Brand intelligence - logos, colors, fonts, styleguides, and company data from any domain