Your AI agent can now edit your ad account (read is a report, write is a risk)
The 60-second version
- A wrong answer costs a bad decision you can still catch. A wrong action costs money every hour until someone notices.
- Damage ≈ size of the change × hours unnoticed × share wasted. The fastest fixes are a smaller allowed change and a shorter time-to-notice — not a smarter model.
- The setup: reads run freely, small writes need a before → after approval, big or irreversible changes stay human-only.
obedient is not the same as safe
It's 9 PM on a Friday. A marketer hooks an AI assistant up to the ad account and types one instruction before closing the laptop: "Shift budget from the weak ad sets into the best one."
The agent does exactly that. It pauses four ad sets — one of them only three days old and still collecting delayed conversions — and pushes the freed budget into the top performer, which goes from ₹15,000 a day to ₹60,000 a day. Nobody opens the account again until 9 AM on Monday.
Sixty hours later, the "best" ad set has spent an extra ₹1,12,500, at three times its normal cost per acquisition. The model didn't make anything up. It followed the instruction to the letter — and that's the problem worth planning for now that agents can act, not just answer.
Each step was technically fine. What was missing: a cap on how big a change the agent could make on its own, and a person signing off on anything bigger.
Reading and writing are different jobs
AI assistants reach ad platforms through MCP servers — connectors that hand the model a menu of "tools" it can call. Some of those tools only read: pull a report, break spend down by placement, compare two weeks. Others write: pause an ad, change a budget, launch a campaign.
The official Google Ads MCP server is read-only. Meta's Ads MCP, in beta through 2026, includes campaign-management tools alongside reporting, and plenty of third-party connectors do both across several platforms. So "connect the AI to the ad account" can mean two very different levels of risk depending on which tools come along.
| Read tools | Write tools | |
|---|---|---|
| What they do | Reports, breakdowns, diagnostics | Pause, launch, change budgets and bids |
| Worst case | A wrong answer you can check before acting | Spend that keeps happening until someone looks |
| Time to damage | None until a person acts on it | Minutes — and it compounds overnight and on weekends |
| Reversible? | Nothing changed | Not always — some edits reset learning |
How much can one bad action cost?
A useful way to size the risk: damage ≈ how much the change added × how long nobody noticed × how much of it was wasted. Teams usually think about the first term. The second is the one that hurts, because agents are happy to work while everyone's asleep.
Play with it and notice what shrinks the number fastest: a smaller allowed change and a shorter time-to-notice. Both are settings you control today. Neither needs a better model.
Gates that actually work
The trick is to sort every tool call before it runs. In a typical week, the vast majority of an agent's calls are reads — something like four out of five. A small slice are minor, reversible writes, and a sliver are big or irreversible ones. Gate the writes and you remove almost all of the risk for a few taps a week.
- Read-only — runs automaticallyReports, breakdowns, search-term pulls, diagnostics. This is where most of the value lives anyway.
- Small, reversible writes — approve each onePause or resume one ad, move a budget by up to 20%, add a negative keyword. Shown as a plain before → after and approved with one tap.
- Human-only — not available to the agentNew campaigns, budget jumps above your cap, bid-strategy or audience changes, deleting anything, billing. The agent can draft these; a person makes them.
The approval has to be readable, too. "Allow tool call update_adset?" isn't an approval, it's a rubber stamp. Compare it with: Ad set "Prospecting – Broad": daily budget ₹15,000 → ₹60,000 (+300%). Anyone would pause at that.
Log every write, then look at what happened next
Every change an agent makes should land in a table: who asked for it, what changed, who approved it, when. Then a single query answers the question that matters each week — what did the agents do, and did any of it hurt?
WITH changes AS (
SELECT change_id, asked_by, approved_by, object_id,
change_type, before_value, after_value, applied_at
FROM agent_change_log
WHERE applied_at >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY)
),
followup AS (
SELECT c.change_id,
SUM(h.spend) AS spend_48h,
SUM(h.conversions) AS conv_48h
FROM changes c
JOIN ad_stats_hourly h
ON h.object_id = c.object_id
AND h.hour BETWEEN c.applied_at AND TIMESTAMP_ADD(c.applied_at, INTERVAL 48 HOUR)
GROUP BY c.change_id
)
SELECT c.applied_at,
c.change_type,
c.object_id,
CONCAT(c.before_value, ' → ', c.after_value) AS change,
COALESCE(c.approved_by, 'NOT APPROVED') AS approved_by,
ROUND(f.spend_48h) AS spend_next_48h,
ROUND(f.spend_48h / NULLIF(f.conv_48h, 0)) AS cpa_next_48h
FROM changes c
LEFT JOIN followup f USING (change_id)
ORDER BY c.applied_at DESC;Two kinds of row deserve a look every week: any change marked NOT APPROVED, and any change followed by a CPA well above target in the next two days.
- Start read-only. Give the agent reporting access for the first few weeks. You get most of the benefit and none of the exposure.
- Cap every write. No single action may move a budget by more than 20% or touch more than one campaign. Anything bigger goes to a person.
- Alert on every write. A message to email or chat the moment the agent changes anything, with the before → after. A short time-to-notice is the cheapest safety net there is.
Quick gut-check
You want an AI agent helping with your Meta account. Which setup is safest while still being useful?
Full access, with "be careful with budgets" in the prompt
Not quite. A prompt is a request, not a limit. The agent can still make any change the connection allows.
Reads automatic, small writes approved as before → after, big changes human-only
Exactly. Reads carry most of the value; gating and capping the few writes removes nearly all of the blast radius.
No AI access until the models stop making mistakes
Too cautious. The risk is in actions, not intelligence. Read-only access is safe today and saves hours of reporting.
Questions people ask
What is an MCP server for ads?
MCP (Model Context Protocol) is an open standard for connecting AI assistants to other software. An ads MCP server exposes tools like "get campaign report" or "update ad set budget" that the assistant can call with whatever permissions the connection has.
Can an AI agent change my budgets?
Only if the connector includes write tools and your account grants the permission. Check the tool list before you connect — read-only and read-write connectors look identical from the chat window.
How do I stop expensive changes?
Not with the prompt. Use access settings: read-only by default, a cap on any single change, approval for every write, and alerts on anything that changes. Keep big or irreversible actions for people.
Takeaways
- A wrong answer costs a decision; a wrong action costs money every hour until someone notices.
- Most of an agent's value comes from read access — start there.
- Cap the size of any single write, and make approvals a readable before → after.
- Alert on every write: shortening time-to-notice beats a smarter model.
- Log every agent change and review what happened in the 48 hours after it.