# How to run a weekly ad performance review with an AI agent

> Tier: deep. Full contract: quantified decision rules and evidence requirements.

The Monday morning numbers across every connected platform: spend, results, movers, and what explains them, in one pass instead of four exports.

**Intent.** Produce the week's cross-platform picture with explanations, not just deltas.

## When to use

- Every week, same day, same windows, so numbers are comparable.
- Before a weekly client or team meeting.

## When not to use

- Mid-incident: use campaign-anomaly-investigation.
- For windows under 7 days, where platform attribution lag dominates the signal.

## Sources

Required: Google Ads, Meta Ads
Optional: TikTok Ads, Pinterest Ads, Google Analytics 4, Search Console

## Preconditions

- At least one ad platform connected and ticked; the review covers whatever subset is connected and says which.
- Windows aligned: last full week against the week before, same attribution settings per platform.

## Inputs

- `week`: The week under review. Default: last full Monday-to-Sunday week.
- `kpi`: The metric the account is steered by: CPA, ROAS, or volume. Default: the platform-reported conversion metric.

## Procedure

1. Pull spend, conversions, CPA/ROAS by campaign on each connected platform, both weeks. — tools: `google_ads_get_insights`, `meta_get_insights`, `tiktok_get_insights`, `pinterest_run_report`
2. Line the platforms up in one table, in account currency, and rank movers by absolute spend-weighted change.
3. For the top movers, read what changed: budgets, statuses, delivery. — tools: `google_ads_get_change_events`, `meta_get_ad_activity`, `tiktok_get_delivery_status`
4. If GA4 is connected, add the site's own view: sessions, key events and revenue by channel for both weeks. — tools: `ga4_get_channel_groups`, `ga4_run_report`
5. If Search Console is connected, note organic movements that reframe paid ones. — tools: `gsc_find_losses_gains`

## Decision rules

- **When** A mover's change is under 15% week over week → **conclude** Report it as noise-range unless it repeats a trend from previous weeks.
- **When** Spend moved but efficiency did not → **conclude** Attribute the result change to budget, not to performance.
- **When** A platform's conversions moved more than 25% while GA4's matching channel did not → **conclude** Flag probable measurement or attribution movement before any performance story.
- **When** The change log shows human edits on a mover → **conclude** Lead with the edit as the explanation candidate, dated and attributed.

## Evidence requirements

- Every mover carries both weeks' figures, not just the percentage.
- Every explanation cites its source: a change event, a delivery status, or is marked as hypothesis.

## Human approval boundary

- The review proposes; budget or status changes it suggests go through Safe Writes with human confirmation.

## Failure modes

- Comparing a week that includes a holiday against one that does not, without saying so.
- The most recent days under-report conversions; a Sunday-heavy week reads as a decline for 48 hours.
- Mixing attribution windows across platforms makes the cross-platform table look precise while being incomparable; label each column.

## Output

- **The table**: Platform × spend, conversions, efficiency, both weeks, one currency.
- **Movers**: Top changes ranked by spend-weighted impact, each with its explanation or hypothesis.
- **Watch list**: Trends one more week from being findings.

## Related

- Skill: [cross-platform-performance](https://www.getmcpads.com/skills/cross-platform-performance.md)
- Skill: [campaign-anomaly-investigation](https://www.getmcpads.com/skills/campaign-anomaly-investigation.md)
- Guide: [cross-platform-report](https://www.getmcpads.com/guides/cross-platform-report.md)
