Ad Campaign Analyzer
Analy
7 steps · start to finish.
- 1Step 1
Environment Setup
▶- Create
/app/resultsif it does not exist. - Install or verify
pandas,numpy, andscipy. - Confirm the campaign data, platform list, time period, primary goal, and any target metrics are available.
- If screenshot data is provided, extract it into a normalized table before analysis.
- Create
- 2Step 2
Normalize Campaign Data
▶1. Load the exported CSV, pasted table, or extracted screenshot data. 2. Standardize field names for spend, impressions, clicks, conversions, revenue, campaign, ad group, creative, keyword, audience, and channel. 3. Calculate derived metrics: CTR, CPC, CVR, CPA, ROAS, revenue per
- 3Step 3
Diagnose Performance
▶1. Rank each campaign entity by spend, conversions, CPA, ROAS, and conversion volume. 2. Separate high-spend low-return waste from low-spend opportunities that need more budget to learn. 3. Check statistical confidence before treating small-sample outliers as winners or failures.
- 4Step 4
Generate Cut, Scale, Hold, and Test Decisions
▶1. Mark campaigns or entities for `cut` when spend is material and performance is below target without a credible learning rationale. 2. Mark campaigns or entities for `scale` when they beat target metrics with enough volume. 3. Mark uncertain entities for `hold` when more data i
- 5Step 5
Reallocate Budget Across Channels
▶1. Compare Google, Meta, LinkedIn, and any other active channels on equal conversion and revenue definitions. 2. Identify over-funded channels and under-funded channels relative to marginal returns and learning needs. 3. Build conservative, balanced, and aggressive reallocation s
- 6Step 6
Write Analysis Outputs
▶1. Write `/app/results/campaign_analysis.md` with findings by channel and by campaign entity. 2. Write `/app/results/summary.md` with the top decisions, recommended budget movement, and risks. 3. Call out data gaps and any places where the recommendation depends on assumptions.
- 7Step 7
Iterate on Analysis Quality (max 3 rounds)
▶If validation finds incomplete outputs or unsupported recommendations, run up to max 3 rounds of targeted correction: