Ad spend reports on autopilot with a custom MCP reporting bot
✓ Reporting time cut from ~10 hours/week to zero
✓ Daily Slack digest with spend, ROAS, and anomalies
✓ Campaign anomalies surfaced in minutes, not at month-end

Before → after

Metric Before After
Weekly reporting time ~10h 0h
Time to spot a bad campaign Month-end Minutes
Live data sources in one bot 2 (manual) 4

An e-commerce performance team was spending 10+ hours a week copying numbers from Google Ads and GA4 into spreadsheets then waiting until month-end to realize a campaign had gone sideways.

The challenge

  • Manual, error-prone reporting across ads and analytics.
  • Insights arrived too late to act on.
  • No single source of truth the whole team could query.
  • Follow-up questions (“why did ROAS drop Tuesday?”) meant another round of manual digging.

What we built

We built a custom reporting agent on MCP:

  1. Connections MCP servers for Google Ads and GA4, plus a Slack bot.
  2. Logic the agent pulls spend, revenue, ROAS, and CPA, compares against targets, and flags anomalies.
  3. Delivery a daily Slack digest in plain language, with the option to ask follow-up questions (“why did ROAS drop on Tuesday?”) and get an answer with the underlying data.
  4. Alerting real-time alerts when spend or CPA crosses a threshold.
  5. Scheduling the agent runs on Cloud Functions, so there’s nothing to babysit.

The results

Reporting went from 10 hours a week to zero, and the team now catches bad campaigns in minutes instead of at month-end. The same MCP pattern has since been extended to pull CRM and email data into the same bot, so the digest now covers four live sources.

The takeaway

Your AI should do the reporting and the explaining, and MCP is what makes that possible.

Stack MCPGoogle AdsGA4SlackCloud Functions
“
The bot posts our numbers before anyone logs on, and it explains them when we ask.
Priya Marketing Director · E-commerce
Start a project like this ← All case studies