MM Ads Autopilot
User Guide
What is MM Ads Autopilot?
MM Ads Autopilot is an internal tool that automatically reviews Google Ads performance for all Mechanic Marketing clients every week and recommends changes to improve results.
Think of it as a junior PPC manager that never sleeps. It checks keywords, search terms, ad copy, quality scores, competitor positioning, and organic search data — then tells you what it thinks should change. You decide whether to approve or reject each recommendation.
You can also talk to it. Ask questions about client performance in Slack, get explanations of its recommendations, or request ad-hoc analysis — all in natural language.
How it works
Every Monday morning, the Autopilot runs through this process for each MM client:
| Step | What happens |
|---|---|
| 1 — Pull data | Connects to Google Ads, Google Search Console, and GA4. Pulls keyword performance, search terms, quality scores, campaign metrics, competitor positioning, organic rankings, and landing page performance. |
| 2 — Run the rules | Checks data against best-practice thresholds — e.g. "has this keyword spent $50+ with zero conversions?" or "are we ranking #1 organically for a keyword we're also paying for?" |
| 3 — AI analysis | Six specialised AI agents review the output. One handles keywords, one handles search terms, one evaluates ads, one writes headlines, one writes descriptions, and one does a final safety review. |
| 4 — Post to Slack | Every proposed action is posted to #mm-ads-autopilot with Approve and Reject buttons, grouped by client. |
| 5 — Log to ClickUp | A "Weekly Optimisations" task is created per client with subtasks for each action. This is your permanent record. |
| 6 — Wait for you | Nothing happens until you click Approve or Reject. |
What you see in Slack
You will see three types of messages in #mm-ads-autopilot:
1 — Weekly approval messages (every Monday)
Each message covers one client and groups proposed actions by type.
- Approve all X pauses — approves every action in that group with one click
- Reject all — rejects them all and opens a popup asking why (this teaches the system)
- Review individually — opens a thread where each action has its own buttons
- View in ClickUp — opens the ClickUp task with all the detail
Ad copy rewrites show current vs proposed headlines and descriptions with character counts, so you can review copy inline without leaving Slack.
2 — Anomaly alerts (any day, Mon–Fri)
If something goes wrong between Monday runs — a CPA spike, conversions dropping to zero, runaway spend — the system alerts you immediately. These are informational only.
| Alert type | Threshold |
|---|---|
| CPA spike | CPA more than 50% above rolling average Critical |
| Conversions at zero | Zero conversions for 2+ days Critical |
| Runaway spend | Spend more than 40% above daily average Critical |
| CTR drop | CTR dropped more than 50% Warning |
3 — Monday portfolio digest
One summary message covering all MM clients with a traffic light system:
| Status | What it means |
|---|---|
| 🔴 Red | CPA up >25% or conversions down >30%. Needs attention. |
| 🟡 Yellow | CPA up 10–25% or conversions down 10–30%. Worth watching. |
| 🟢 Green | Metrics stable or improving. No action needed. |
Also shows portfolio totals (spend, conversions, average CPA) with week-over-week changes and pending approval count.
Talking to the bot
@mention the bot in #mm-ads-autopilot and ask questions in plain English. You can also comment on any Autopilot-created ClickUp task to get contextual answers.
Example conversation
You don't need to re-specify the client in every message once a thread is started.
What to type — quick reference
| What you want | What to type |
|---|---|
| Performance snapshot | "How is Ultra Tune North Ryde performing?" / "Give me a snapshot of Core Diesel" |
| Keyword waste | "What keywords are wasting budget for Auto Response?" |
| Search terms | "Show me search terms for Noranda Service Centre" |
| Quality Scores | "What's the Quality Score situation for Ballarat Service Centre?" |
| Run full analysis | "Run analysis for Ultra Tune North Ryde" — triggers full pipeline, takes 2–3 minutes |
| Add a negative keyword | "Add 'diesel engine diagram' as a negative for Core Diesel" — bot confirms before executing |
| Pause a keyword | "Pause the keyword 'car repairs' for Performance Plus" — bot confirms before executing |
| Explain a recommendation | "Why did you recommend pausing volkswagen maintenance?" |
Client names — use these exactly
| Exact client names for the bot | |
|---|---|
| Auto Response | Noranda Service Centre |
| Automotive Insight | Performance Plus |
| Ballarat Roadworthy Centre | Ultra Tune North Ryde |
| Ballarat Service Centre | Core Diesel |
Your weekly tasks
Monday morning (5–10 minutes)
- Open #mm-ads-autopilot in Slack
- Read the portfolio digest — check which clients are red or yellow
- Review the proposed actions for each client
- For each group: Approve, Reject, or Review individually
- If rejecting, explain why in the popup — this teaches the system
During the week (as needed)
- Check Slack for anomaly alerts — these mean something needs attention now
- Ask the bot questions about any client at any time
- Comment on ClickUp tasks if you want more context on a specific action
Tips for reviewing
- Keyword pauses — the system explains why (high CPA, zero conversions). If strategically important despite bad numbers, reject and say why.
- Negative keywords — check the search term makes sense as a negative. "mechanic apprenticeship" is clearly irrelevant. "cheap mechanic" might be debatable.
- New keyword suggestions — come from organic search data (GSC). If the client ranks 8–20 for a query, the system suggests paying for that traffic while SEO catches up.
- Paid/organic overlap — flags keywords where the client ranks #1–3 organically AND is paying. Consider competitor pressure before approving the pause.
- Ad copy rewrites — you see current vs proposed with character counts. New copy is informed by winning ads, competitor copy, and landing page messaging.
- Budget changes — always need approval. The system explains why it thinks the budget should change.
The feedback loop
When you reject an action, the system asks you why. Your feedback actively changes how the system thinks about that client going forward.
Scope options when rejecting
| Scope | What it blocks |
|---|---|
| Just this keyword | Only this exact entity from being proposed again |
| Similar keywords in this campaign | A pattern — e.g. all European car brand keywords |
| The whole account | A general principle for this client |
You can set an expiry (1 month, 3 months, 6 months, or never). View and deactivate active rules at any time on the dashboard at mm-google-ads-autopilot.vercel.app ↗
Where it gets its intelligence
| Source | What it pulls | How it uses it |
|---|---|---|
| Google Ads | Campaigns, keywords, search terms, quality scores, ad performance, bids | Core analysis — identifies waste, opportunities, underperformance |
| Auction Insights | Competitor impression share, overlap rate, position above rate | Explains competitive pressure, detects new competitors, informs bids |
| Search Console | Organic queries, positions, impressions, CTR | Finds keyword opportunities (ranking 8–20), flags paid/organic overlaps (ranking 1–3) |
| GA4 | Landing page sessions, conversions, conversion rates | Informs ad copy with proven messaging, recommends best final URLs |
| SemRush | Competitor ad copy on the same keywords | Ensures new ad copy differentiates from competitors |
| Your feedback | Rejection reasons, strategic rules, scope, expiry | Prevents repeating mistakes, aligns with business strategy |
What it can and cannot do
It CAN propose (and execute when approved)
- Pause underperforming keywords
- Re-enable keywords it previously paused
- Add negative keywords based on search term analysis
- Add new phrase or exact match keywords from GSC organic data
- Rewrite underperforming RSA ad copy (headlines and descriptions)
- Pause underperforming ads
- Change keyword bids and campaign budgets
- Pause or enable campaigns and ad groups
- Create new campaigns, ad groups, and keywords
- Flag paid/organic overlaps where you might save budget
- Alert you to mid-week anomalies (CPA spikes, conversion drops)
- Answer questions about any client in natural language
Hard limits — it CANNOT
- Add broad match keywords — only phrase and exact match allowed, enforced at code level
- Execute anything without human approval (in current Phase 1 mode)
- Pause the last 2 active ads in an ad group
- Ignore your feedback rules — if you said "don't pause this", it won't
- Exceed the 15% spend impact circuit breaker without escalating to you
Tier system
Every proposed action has a tier label. Right now, all actions go to you for approval. The labels tell you what would happen in automated mode.
| Tier | Actions | Risk level |
|---|---|---|
| Tier 1 | Keyword pauses, negative keywords, new keywords (phrase/exact) | Low — would auto-execute in automated mode |
| Tier 1.5 | Ad copy rewrites | Medium — always shows copy preview before execution |
| Tier 2 | Budgets, campaigns, bids, structure, paid/organic overlap pauses | High — always requires approval, even in automated mode |
Transition plan
The system has three modes. We start safest and gradually loosen as you build trust.
Where things live
| What | Where |
|---|---|
| Weekly approvals | Slack — #mm-ads-autopilot |
| Anomaly alerts | Slack — #mm-ads-autopilot (Mon–Fri, as needed) |
| Portfolio digest | Slack — #mm-ads-autopilot (every Monday) |
| Ask questions | Slack — @mention the bot, or comment on a ClickUp task |
| Permanent action log | ClickUp — "Weekly Optimisations" task per client with subtasks |
| Dashboard + feedback rules | mm-google-ads-autopilot.vercel.app ↗ |
| Monthly reports | Google Drive — auto-generated on the 1st of each month |
FAQ
What if I forget to check Slack on Monday?
Nothing bad happens. Proposed actions sit in Slack until you review them. They expire after 7 days. The system proposes fresh actions on the next run.
What if I approve something and it breaks something?
Every action is logged with full before/after state. Teddi can reverse any change. The circuit breaker also prevents combined spend impact exceeding 15% without escalation.
Can I run it for a specific client on demand?
Yes. Ask the bot in Slack: "run analysis for Noranda" — or trigger it from the dashboard. You don't have to wait for Monday.
What if it keeps proposing the same thing I keep rejecting?
It shouldn't. When you reject with feedback, that creates a rule the system respects. If it still proposes the same thing, check the feedback rules on the dashboard — the rule may have expired or the scope may be too narrow.
Does this replace what I do in Google Ads?
No. This handles routine optimisation — the stuff you would do every week if you had time. You still own the strategy, campaign structure, client relationships, and creative direction. This catches waste and keeps things tidy between your deeper reviews.