The aha: Before: Karen had to log into Meta Ads Manager, switch between client accounts, check each campaign individually, then do the same thing in Google Ads -- easily 10-15 minutes per client just to answer "what's running and how's it pacing?" Now she types
/campaign-status century-groupand sees every campaign, spend totals, and pacing flags in under 10 seconds.
What you need to know (2 min read)
/campaign-status is a quick health check for any client's ad campaigns. You give it a client name, and it pulls live data from Meta and Google Ads, checks month-to-date spend against the media plan, and flags anything that looks off -- all in one view.
It replaces the workflow of opening Ads Manager, switching accounts, scanning campaigns, then doing mental math on pacing. The output is a single table per platform showing what's active, what's paused, how much has been spent this month, and whether spend is on track.
This is the command Simon's team uses most. If a client Slacks asking "are my ads running?" -- this is the fastest way to answer.
How it works
When you run /campaign-status, Claude does three things in parallel:
- Looks up the client's ad accounts -- It reads the account map (a reference file that maps every client to their Meta and Google account IDs) so it knows which accounts to check.
- Pulls live campaign data -- For Meta, it gets the list of active and paused campaigns with delivery status. For Google, it pulls campaign performance for the current month. This comes from Markifact, so the data is real-time.
- Checks pacing against the media plan -- If the client has a media plan loaded in BigQuery, Claude calculates how spend is tracking against the monthly budget. It accounts for where you are in the month (e.g., if you're 50% through the month, you should be roughly 50% through the budget).
The output is a formatted summary with:
- A table for each platform (Meta, Google) showing campaign name, status, MTD spend, and delivery info
- MTD total spend vs. plan amount and pacing percentage
- Flags for anything unusual -- campaigns that should be active but are paused, pacing way ahead (over 130%) or behind (under 70%), or delivery errors
If there's no media plan in the system for that client, it still shows the spend -- just without a pacing percentage. About 5 clients have full media plan data in BigQuery right now (Rennie, SHAPE, Wesgroup, Century Group, Hue). For others, you'll see spend totals with a "No plan" note.
Try it yourself
- Open Cowork
- Type:
/campaign-status wesgroup - You'll see a summary like:
## Wesgroup -- Campaign Status
Meta (act_123456)
| Campaign | Status | MTD Spend | Delivery |
|-----------------------|--------|-----------|----------|
| Wesgroup - Leads | Active | $2,140 | Normal |
| Wesgroup - Traffic | Active | $890 | Normal |
MTD Total: $3,030 | Plan: $8,000 | Pacing: 76%
Google (1234567890)
| Campaign | Status | MTD Spend | Conv |
|-----------------------|--------|-----------|------|
| Wesgroup - Search | Active | $1,205 | 18 |
| Wesgroup - DemandGen | Active | $640 | 5 |
MTD Total: $1,845 | Plan: $4,000 | Pacing: 92%
Flags: None
- Try it with your own clients -- type
/campaign-status [client-name]using the short client name (e.g.,rennie,shape,century-group)
Quick reference
| What | Details |
|---|---|
| Command | /campaign-status [client-name] |
| Example | /campaign-status wesgroup |
| Speed | Under 10 seconds |
| Data source | Markifact (real-time) + BigQuery (pacing) |
| Works for | Any client with Meta or Google accounts in the account map |
| Pacing flags | WARNING at under 70% or over 130%, CRITICAL at under 50% or over 150% |
Tips
- Use the short client name. Type
rennie, notRennie AdvisorsorThe Rennie Group. The kebab-case slug works best:century-group,pier-west,skin-matters. - No pacing number? That means the client's media plan hasn't been loaded into BigQuery yet. The spend data is still accurate -- you just won't see the percentage. Ask Jonathan if you need the plan added.
- Pair it with
/pre-call-briefingbefore client calls./campaign-statustells you what's running and how it's pacing./pre-call-briefingadds the broader picture -- recent performance trends, open tasks, last meeting action items, and talking points. - Use it to answer client "are my ads running?" questions fast. Copy the output summary into Slack or email. The tables are already formatted for easy reading.
- Flags are your friend. If you see a WARNING or CRITICAL flag, dig in before the client notices. Pacing under 70% midway through the month usually means something got paused or a budget cap is too low.
Related
- /pre-call-briefing -- Full client call prep (performance + tasks + talking points)
- Context Files Explained -- The files Claude reads about your clients