{"slug":"ad-campaign-analyzer","title":"ad-campaign-analyzer","summary":"Analyze ad campaign performance data (Google, Meta, LinkedIn) to identify what's working, what's wasting budget, and specific cut/scale/test recommendations. Runs statistical analysis, funnel diagnostics, and multi-channel budget reallocation with specific dollar-amount shift rec","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-11T17:23:13.56533Z","repo":{"url":"https://github.com/gooseworks-ai/goose-skills","stars":1229,"forks":211,"license":"MIT","updatedAt":"2026-10-01T15:06:43Z"},"bodyHtml":"<hr>\n<h2>name: ad-campaign-analyzer\ndescription: &gt;\nAnalyze ad campaign performance data (Google, Meta, LinkedIn) to identify what's\nworking, what's wasting budget, and specific cut/scale/test recommendations. Runs\nstatistical analysis, funnel diagnostics, and multi-channel budget reallocation\nwith specific dollar-amount shift recommendations and scenario modeling.\ntags: [ads]</h2>\n<h1>Ad Campaign Analyzer</h1>\n<p>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.</p>\n<p><strong>Core principle:</strong> 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).</p>\n<h2>When to Use</h2>\n<ul>\n<li>\"Analyze my Google Ads performance\"</li>\n<li>\"Which ads should I kill?\"</li>\n<li>\"Is this campaign working?\"</li>\n<li>\"Where am I wasting ad spend?\"</li>\n<li>\"Optimize my Meta Ads\"</li>\n<li>\"How should I split my ad budget?\"</li>\n<li>\"Should I spend more on Google or Meta?\"</li>\n<li>\"Reallocate my ad spend across channels\"</li>\n<li>\"Where am I getting the best return?\"</li>\n<li>\"I have $X/month for ads — how should I distribute it?\"</li>\n</ul>\n<h2>Phase 0: Intake</h2>\n<ol>\n<li><strong>Campaign data</strong> — One of:\n<ul>\n<li>CSV export from Google Ads / Meta Ads Manager / LinkedIn Campaign Manager</li>\n<li>Pasted performance table</li>\n<li>Screenshots of dashboard (we'll extract the data)</li>\n</ul>\n</li>\n<li><strong>Platform(s)</strong> — Google / Meta / LinkedIn / All</li>\n<li><strong>Time period</strong> — What date range does this cover?</li>\n<li><strong>Monthly budget</strong> — Total ad spend in this period</li>\n<li><strong>Primary goal</strong> — What conversion are you optimizing for? (Demos / Trials / Purchases / Leads)</li>\n<li><strong>Target metrics</strong> — Do you have target CPA or ROAS? (If not, we'll benchmark)</li>\n<li><strong>Any known changes?</strong> — Did you change creative, budget, or targeting during this period?</li>\n<li><strong>Channels currently running</strong> — Google Ads, Meta Ads, LinkedIn Ads, Twitter/X Ads, TikTok Ads, other</li>\n<li><strong>Funnel data</strong> (if available):\n<ul>\n<li>Lead → MQL rate</li>\n<li>MQL → SQL rate</li>\n<li>SQL → Close rate</li>\n<li>Average deal size</li>\n</ul>\n</li>\n<li><strong>Channels you're considering but haven't tried</strong> — Want to test new channels?</li>\n<li><strong>Constraints</strong> — Minimum spend on any channel? Platform you must stay on?</li>\n</ol>\n<h2>Phase 1: Data Ingestion &amp; Normalization</h2>\n<h3>Accepted Data Formats</h3>\n<table>\n<thead>\n<tr>\n<th>Source</th>\n<th>Key Columns Expected</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Google Ads</strong></td>\n<td>Campaign, Ad Group, Keyword, Impressions, Clicks, CTR, CPC, Conversions, Conv Rate, Cost, Conv Value</td>\n</tr>\n<tr>\n<td><strong>Meta Ads</strong></td>\n<td>Campaign, Ad Set, Ad, Impressions, Reach, Clicks, CTR, CPC, Conversions, Cost Per Result, Amount Spent, ROAS</td>\n</tr>\n<tr>\n<td><strong>LinkedIn Ads</strong></td>\n<td>Campaign, Impressions, Clicks, CTR, CPC, Conversions, Cost, Leads</td>\n</tr>\n</tbody>\n</table>\n<p>Normalize all data into a standard analysis format:</p>\n<table>\n<thead>\n<tr>\n<th>Dimension</th>\n<th>Impressions</th>\n<th>Clicks</th>\n<th>CTR</th>\n<th>CPC</th>\n<th>Conversions</th>\n<th>Conv Rate</th>\n<th>CPA</th>\n<th>Spend</th>\n<th>Revenue/Value</th>\n</tr>\n</thead>\n</table>\n<h3>Multi-Channel Normalization</h3>\n<p>When data spans multiple channels, also produce a channel-level rollup:</p>\n<table>\n<thead>\n<tr>\n<th>Channel</th>\n<th>Monthly Spend</th>\n<th>Impressions</th>\n<th>Clicks</th>\n<th>CTR</th>\n<th>CPC</th>\n<th>Conversions</th>\n<th>Conv Rate</th>\n<th>CPA</th>\n<th>ROAS</th>\n<th>CAC*</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Google Search</td>\n<td>$[X]</td>\n<td>[N]</td>\n<td>[N]</td>\n<td>[X%]</td>\n<td>$[X]</td>\n<td>[N]</td>\n<td>[X%]</td>\n<td>$[X]</td>\n<td>[X]</td>\n<td>$[X]</td>\n</tr>\n<tr>\n<td>Google Display</td>\n<td>...</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>Meta (FB/IG)</td>\n<td>...</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>LinkedIn</td>\n<td>...</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>[Other]</td>\n<td>...</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td><strong>Total</strong></td>\n<td>$[X]</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>[N]</td>\n<td></td>\n<td>$[X] avg</td>\n<td>[X] avg</td>\n<td>$[X] avg</td>\n</tr>\n</tbody>\n</table>\n<p>*CAC = Full customer acquisition cost if funnel data provided (CPA × close-rate adjustment)</p>\n<h3>Funnel-Adjusted CAC (If Funnel Data Available)</h3>\n<pre><code>Channel CAC = CPA ÷ (MQL rate × SQL rate × Close rate)\n</code></pre>\n<p>This reveals which channels produce leads that actually close, not just convert.</p>\n<h2>Phase 2: Performance Diagnostics</h2>\n<h3>2A: Campaign-Level Health Check</h3>\n<p>For each campaign:</p>\n<table>\n<thead>\n<tr>\n<th>Metric</th>\n<th>Value</th>\n<th>Benchmark</th>\n<th>Status</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>CTR</td>\n<td>[X%]</td>\n<td>[Industry avg]</td>\n<td>[Good/Okay/Poor]</td>\n</tr>\n<tr>\n<td>CPC</td>\n<td>$[X]</td>\n<td>[Category avg]</td>\n<td>[Good/Okay/Poor]</td>\n</tr>\n<tr>\n<td>Conv Rate</td>\n<td>[X%]</td>\n<td>[Benchmark]</td>\n<td>[Good/Okay/Poor]</td>\n</tr>\n<tr>\n<td>CPA</td>\n<td>$[X]</td>\n<td>[Target or benchmark]</td>\n<td>[Good/Okay/Poor]</td>\n</tr>\n<tr>\n<td>ROAS</td>\n<td>[X]</td>\n<td>[Target or benchmark]</td>\n<td>[Good/Okay/Poor]</td>\n</tr>\n<tr>\n<td>Impression Share</td>\n<td>[X%]</td>\n<td>[&gt;60% ideal]</td>\n<td>[Good/Okay/Poor]</td>\n</tr>\n</tbody>\n</table>\n<h3>2B: Budget Waste Detection</h3>\n<p>Identify spend that produced no or negative return:</p>\n<table>\n<thead>\n<tr>\n<th>Waste Type</th>\n<th>Signal</th>\n<th>Action</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Zero-conversion keywords/ads</strong></td>\n<td>Spend &gt; $[X] with 0 conversions</td>\n<td>Pause or add negatives</td>\n</tr>\n<tr>\n<td><strong>High CPA outliers</strong></td>\n<td>CPA &gt; 3x target</td>\n<td>Pause or restructure</td>\n</tr>\n<tr>\n<td><strong>Low CTR ads</strong></td>\n<td>CTR &lt; 50% of campaign average</td>\n<td>Replace creative</td>\n</tr>\n<tr>\n<td><strong>Broad match bleed</strong></td>\n<td>Search terms report showing irrelevant clicks</td>\n<td>Add negative keywords</td>\n</tr>\n<tr>\n<td><strong>Audience overlap</strong></td>\n<td>Same users hit by multiple campaigns</td>\n<td>Exclude audiences</td>\n</tr>\n<tr>\n<td><strong>Dayparting waste</strong></td>\n<td>Conversions cluster at certain hours; spend is 24/7</td>\n<td>Set ad schedule</td>\n</tr>\n</tbody>\n</table>\n<h3>2C: Winner Identification</h3>\n<p>Find what's actually working:</p>\n<table>\n<thead>\n<tr>\n<th>Winner Type</th>\n<th>Signal</th>\n<th>Action</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Top-performing keywords</strong></td>\n<td>Lowest CPA, highest conv rate</td>\n<td>Increase bid, add variants</td>\n</tr>\n<tr>\n<td><strong>Winning ads</strong></td>\n<td>Highest CTR + conv rate combo</td>\n<td>Scale spend, clone for other groups</td>\n</tr>\n<tr>\n<td><strong>Best audiences</strong></td>\n<td>Lowest CPA segment</td>\n<td>Increase budget allocation</td>\n</tr>\n<tr>\n<td><strong>Best times</strong></td>\n<td>Peak conversion hours/days</td>\n<td>Concentrate budget</td>\n</tr>\n</tbody>\n</table>\n<h3>2D: Statistical Significance Check</h3>\n<p>For any A/B test (ad variants, audiences, landing pages):</p>\n<pre><code>Test: [Variant A] vs [Variant B]\nMetric: [Conv Rate / CTR / CPA]\nVariant A: [X%] (n=[sample_size])\nVariant B: [Y%] (n=[sample_size])\nConfidence level: [X%]\nVerdict: [Statistically significant / Not enough data / Too close to call]\nRecommended action: [Pick winner / Continue test / Increase budget to reach significance]\n</code></pre>\n<p>Minimum sample: 100 clicks per variant for CTR tests, 30 conversions per variant for CPA tests.</p>\n<h2>Phase 3: Funnel Analysis</h2>\n<h3>Click → Conversion Path</h3>\n<pre><code>Impressions: [N] (100%)\n     ↓ CTR: [X%]\nClicks: [N] ([X%] of impressions)\n     ↓ Landing page → Conversion: [X%]\nConversions: [N] ([X%] of clicks)\n     ↓ Conversion → Revenue: $[X] avg\nRevenue: $[N]\n</code></pre>\n<h3>Funnel Drop-Off Diagnosis</h3>\n<table>\n<thead>\n<tr>\n<th>Drop-Off Point</th>\n<th>Rate</th>\n<th>Benchmark</th>\n<th>Likely Cause</th>\n<th>Fix</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Impression → Click</td>\n<td>[CTR%]</td>\n<td>[Benchmark]</td>\n<td>[Ad relevance / targeting]</td>\n<td>[Copy/targeting change]</td>\n</tr>\n<tr>\n<td>Click → Conversion</td>\n<td>[Conv%]</td>\n<td>[Benchmark]</td>\n<td>[Landing page / offer / audience mismatch]</td>\n<td>[LP optimization]</td>\n</tr>\n<tr>\n<td>Conversion → Revenue</td>\n<td>[Close%]</td>\n<td>[Benchmark]</td>\n<td>[Lead quality / sales process]</td>\n<td>[Qualification criteria]</td>\n</tr>\n</tbody>\n</table>\n<h2>Phase 4: Budget Reallocation</h2>\n<p>When data spans multiple channels, perform cross-channel budget optimization.</p>\n<h3>4A: Channel Efficiency Ranking</h3>\n<table>\n<thead>\n<tr>\n<th>Rank</th>\n<th>Channel</th>\n<th>CPA</th>\n<th>Funnel-Adj CAC</th>\n<th>Share of Spend</th>\n<th>Share of Conversions</th>\n<th>Efficiency Index</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1</td>\n<td>[Channel]</td>\n<td>$[X]</td>\n<td>$[X]</td>\n<td>[X%]</td>\n<td>[X%]</td>\n<td>[Conv share ÷ Spend share]</td>\n</tr>\n</tbody>\n</table>\n<p><strong>Efficiency Index:</strong></p>\n<ul>\n<li><strong>&gt; 1.0</strong> = Under-invested (getting more than its share of conversions)</li>\n<li><strong>= 1.0</strong> = Proportional (fair share)</li>\n<li><strong>&lt; 1.0</strong> = Over-invested (getting less than its share)</li>\n</ul>\n<h3>4B: Marginal Return Analysis</h3>\n<p>For each channel, estimate if additional spend would yield proportional returns:</p>\n<table>\n<thead>\n<tr>\n<th>Channel</th>\n<th>Current CPA</th>\n<th>Impression Share / Saturation Signal</th>\n<th>Marginal Return Estimate</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Google Search</td>\n<td>$[X]</td>\n<td>[X%] impression share — room to grow</td>\n<td>Likely positive</td>\n</tr>\n<tr>\n<td>Meta</td>\n<td>$[X]</td>\n<td>Frequency [X] — audience may be saturated</td>\n<td>Diminishing</td>\n</tr>\n<tr>\n<td>LinkedIn</td>\n<td>$[X]</td>\n<td>Low volume — limited targeting pool</td>\n<td>Ceiling soon</td>\n</tr>\n</tbody>\n</table>\n<h3>4C: Funnel Stage Coverage</h3>\n<table>\n<thead>\n<tr>\n<th>Funnel Stage</th>\n<th>Channels Covering It</th>\n<th>Current Spend</th>\n<th>Gap?</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Awareness</strong> (top)</td>\n<td>[Meta Display, YouTube]</td>\n<td>$[X]</td>\n<td>[Yes/No]</td>\n</tr>\n<tr>\n<td><strong>Consideration</strong> (mid)</td>\n<td>[Google Search, Meta retargeting]</td>\n<td>$[X]</td>\n<td>[Yes/No]</td>\n</tr>\n<tr>\n<td><strong>Decision</strong> (bottom)</td>\n<td>[Google Brand, Google Search]</td>\n<td>$[X]</td>\n<td>[Yes/No]</td>\n</tr>\n<tr>\n<td><strong>Retargeting</strong></td>\n<td>[Meta, Google Display]</td>\n<td>$[X]</td>\n<td>[Yes/No]</td>\n</tr>\n</tbody>\n</table>\n<h3>4D: Budget Shift Recommendations</h3>\n<table>\n<thead>\n<tr>\n<th>Channel</th>\n<th>Current Spend</th>\n<th>Recommended Spend</th>\n<th>Change</th>\n<th>Reasoning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Google Search</td>\n<td>$[X]</td>\n<td><span>\\([Y] | +\\)</span>[Z]</td>\n<td>[Lowest CPA, room to scale]</td>\n<td></td>\n</tr>\n<tr>\n<td>Meta</td>\n<td>$[X]</td>\n<td><span>\\([Y] | -\\)</span>[Z]</td>\n<td>[Audience saturation, frequency too high]</td>\n<td></td>\n</tr>\n<tr>\n<td>LinkedIn</td>\n<td>$[X]</td>\n<td>$[Y]</td>\n<td>$0</td>\n<td>[Maintain — niche but valuable]</td>\n</tr>\n<tr>\n<td>[New channel]</td>\n<td>$0</td>\n<td><span>\\([Y] | +\\)</span>[Y]</td>\n<td>[Test budget — competitors succeeding here]</td>\n<td></td>\n</tr>\n<tr>\n<td><strong>Total</strong></td>\n<td>$[X]</td>\n<td>$[X]</td>\n<td>$0</td>\n<td>Budget-neutral reallocation</td>\n</tr>\n</tbody>\n</table>\n<h3>4E: Scenario Modeling</h3>\n<p><strong>Scenario 1: Conservative shift (+/- 20%)</strong></p>\n<ul>\n<li>Expected conversions: [N] (currently [N]) = [X%] improvement</li>\n<li>Expected blended CPA: $<input disabled=\"disabled\" type=\"checkbox\" checked=\"checked\"> (currently $<input disabled=\"disabled\" type=\"checkbox\" checked=\"checked\">)</li>\n<li>Risk: Low</li>\n</ul>\n<p><strong>Scenario 2: Aggressive shift (+/- 40%)</strong></p>\n<ul>\n<li>Expected conversions: [N] = [X%] improvement</li>\n<li>Expected blended CPA: $<input disabled=\"disabled\" type=\"checkbox\" checked=\"checked\"></li>\n<li>Risk: Medium — less data on scaled channels</li>\n</ul>\n<p><strong>Scenario 3: Budget increase to $[Y]/mo</strong></p>\n<ul>\n<li>Recommended allocation: [table]</li>\n<li>Expected conversions: [N]</li>\n<li>New channels to test: [list]</li>\n</ul>\n<h2>Phase 5: Output Format</h2>\n<pre><code># Ad Campaign Analysis — [Product/Client] — [DATE]\n\nPeriod: [Date range]\nTotal spend: $[X]\nPlatform(s): [Google / Meta / LinkedIn]\nPrimary goal: [Conversions / Revenue / Leads]\n\n---\n\n## Executive Summary\n\n[3-5 sentences: Overall performance verdict, biggest win, biggest problem, top recommendation including any reallocation moves]\n\n---\n\n## Performance Dashboard\n\n| Campaign | Spend | Impressions | Clicks | CTR | CPC | Conversions | CPA | ROAS | Verdict |\n|----------|-------|------------|--------|-----|-----|-------------|-----|------|---------|\n| [Name] | $[X] | [N] | [N] | [X%] | $[X] | [N] | $[X] | [X] | [Scale/Optimize/Pause] |\n\n---\n\n## Budget Waste Report\n\n**Total estimated waste: $[X] ([X%] of total spend)**\n\n### Wasted on zero-conversion items: $[X]\n[List of keywords/ads/audiences with spend but no conversions]\n\n### Wasted on high-CPA items: $[X]\n[List of items with CPA &gt; 3x target]\n\n### Recommended saves: $[X]/month\n[Specific items to pause]\n\n---\n\n## Winners to Scale\n\n### Top Keywords/Audiences\n| Item | CPA | Conv Rate | Current Spend | Recommended Spend |\n|------|-----|----------|--------------|-------------------|\n\n### Top Ads\n| Ad | CTR | Conv Rate | Why It Works |\n|----|-----|----------|-------------|\n\n---\n\n## A/B Test Results\n\n### [Test Name]\n- Variant A: [Metric] (n=[N])\n- Variant B: [Metric] (n=[N])\n- Confidence: [X%]\n- **Verdict:** [Winner / Continue / Inconclusive]\n\n---\n\n## Budget Reallocation\n\n### Current vs Recommended Allocation\n\n| Channel | Current | Recommended | Change | Why |\n|---------|---------|------------|--------|-----|\n| [Channel] | $[X] | $[Y] | [+/-$Z] | [1-line reason] |\n\n**Projected impact:**\n- Conversions: [N] → [N] (+[X%])\n- Blended CPA: $[X] → $[Y] (-[X%])\n\n### Funnel Stage Coverage\n[Coverage map with gaps identified]\n\n### New Channel Recommendations\n\n#### [Channel Name]\n- **Why test:** [Reasoning]\n- **Recommended test budget:** $[X]/mo for [X weeks]\n- **Success criteria:** CPA &lt; $[X]\n- **Competitors using it:** [Yes/No — who]\n\n---\n\n## Action Plan\n\n### Immediate (This Week)\n- [ ] **Pause:** [Specific items — keywords, ads, audiences]\n- [ ] **Scale:** [Specific items — increase budget/bids]\n- [ ] **Add negatives:** [Specific keywords from search terms]\n- [ ] **Reallocate:** [Specific dollar shifts between channels]\n\n### This Month\n- [ ] **Test:** [New ad angles / audiences / landing pages]\n- [ ] **Restructure:** [Ad groups that need splitting or merging]\n- [ ] **Optimize:** [Bid strategy changes]\n- [ ] **Monitor reallocation:** Track CPA shifts on scaled channels, watch for diminishing returns\n\n### Next Month\n- [ ] **Expand:** [New campaigns / channels to test]\n- [ ] **Re-evaluate:** [Run this analysis again with new data, adjust allocations based on actual results]\n</code></pre>\n<p>Save to <code>campaign-analysis-[YYYY-MM-DD].md</code> in the current working directory (or user-specified path).</p>\n<h2>Cost</h2>\n<table>\n<thead>\n<tr>\n<th>Component</th>\n<th>Cost</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Data analysis</td>\n<td>Free (LLM reasoning)</td>\n</tr>\n<tr>\n<td>Statistical calculations</td>\n<td>Free</td>\n</tr>\n<tr>\n<td><strong>Total</strong></td>\n<td><strong>Free</strong></td>\n</tr>\n</tbody>\n</table>\n<h2>Tools Required</h2>\n<ul>\n<li>No external tools needed — pure reasoning skill</li>\n<li>User provides campaign data as CSV, paste, or screenshot</li>\n</ul>\n<h2>Trigger Phrases</h2>\n<ul>\n<li>\"Analyze my ad campaign performance\"</li>\n<li>\"Which ads should I pause?\"</li>\n<li>\"Where am I wasting ad budget?\"</li>\n<li>\"Is my Google Ads campaign working?\"</li>\n<li>\"Optimize my Meta Ads spend\"</li>\n<li>\"How should I allocate my ad budget?\"</li>\n<li>\"Should I spend more on Google or Meta?\"</li>\n<li>\"Reallocate my ad spend\"</li>\n<li>\"Where am I getting the best ROAS?\"</li>\n<li>\"Optimize my multi-channel ad budget\"</li>\n</ul>\n","files":[{"path":"SKILL.md","sizeBytes":13573,"isText":true},{"path":"skill.meta.json","sizeBytes":495,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-11T17:24:17.052721Z","sha256":"5B36558B6E10A8ED1C087242A8826358A12D4BF222465B514EE61DCE5D21BF9E","sizeBytes":5589},"review":null,"source":{"repositoryUrl":"https://github.com/gooseworks-ai/goose-skills","path":"skills/ads/composites/ad-campaign-analyzer","license":"MIT","commit":"1ed2c6a51732c38c1adc93705512f2f1ba344aaa","subtreeSha":"C51F866FC5303E4011DADA699613A7CE6354ADBE8B026DC7AF6846A2ADB3E2D1","lastSyncedAt":"2026-10-01T15:23:59.625203Z"},"reviewedAt":"2026-09-11T17:26:32.708204Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/gooseworks-ai/goose-skills/tree/main/skills/ads/composites/ad-campaign-analyzer"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install gooseworks-ai-goose-skills@llmmart"},{"target":"git","command":"git clone https://github.com/gooseworks-ai/goose-skills.git"}]}