Written by PaidSync's founder. PaidSync is one of the options below. We checked every other option on its own pages on 29 September 2026.
To build an AI agent that manages Google Ads, you connect a model such as Claude or ChatGPT to your ad accounts through a tool server, then decide which changes wait for a person. There are four real routes: write the agent yourself with the Claude Agent SDK or the OpenAI Agents SDK on the official Google Ads, Meta and LinkedIn APIs; point it at Google's or Meta's own MCP server; chain the steps in Zapier or n8n; or connect a hosted ads server. PaidSync is our pick for most teams. One endpoint, https://mcp.paidsync.ai/mcp, gives Claude, ChatGPT or your own agent 610+ tools across 14 platforms, plus saved workflows you run from a chat, from your own agent, or on a schedule you set up in a tool such as Claude Code routines. Five Google Ads workflows ship ready to run, and a run counts as one task however many tools it calls. Free for 15 tasks a month with no credit card, then from $99 a month for 600 tasks.
Can Claude be your PPC manager? Once it is connected, it can read reports, find wasted spend and make the changes you approve, and a scheduled routine can repeat that work while you are away. It still needs you for goals, budgets and sign-off on anything that spends money. Google's own Google Ads MCP server is read-only, so on that route Claude cannot pause a campaign or change a budget. Disclosure: PaidSync publishes this page.
Our pick for most teams is PaidSync. The narrower cases after it fit some teams better. The facts behind each pick are in the sections below.
Pick something else if one of these narrower cases fits you better.
Every route needs the same four parts. What changes is who builds and runs each one.
On the PaidSync route in Claude, that list becomes any Claude plan, including Free, a free PaidSync login, and the ad platform login. No API key, Google developer token or Google Cloud project is needed, and you do not need a LinkedIn developer app of your own.
Checked on 29 September 2026, on each option's own pages.
Claude Agent SDK. Anthropic describes it as the same tools, agent loop, and context management that power Claude Code, programmable in Python and TypeScript. It connects to MCP servers over stdio, HTTP or SSE, and it has hooks, subagents, sessions and per-tool permissions. An MCP tool needs explicit permission before Claude can call it. Unless Anthropic has approved it, a product built on the SDK may not offer claude.ai login, so an agent you ship runs on an API key.
OpenAI Agents SDK. Its MCP guide covers hosted MCP tools that OpenAI's Responses API calls for you, Streamable HTTP servers and local stdio servers, and a require_approval setting holds chosen tools for a person.
The ad platform APIs. Each one has its own access rules.
What you build. OAuth sign-in for each platform, token storage, rate-limit handling, the tool definitions the model calls, and your own approval step before anything spends money. It suits a developer team that wants every line under its control.
Google Ads MCP server. Google's open-source server at github.com/googleads/google-ads-mcp (Apache 2.0) released version 0.0.4 on 25 September 2026. It has three tools: a GAQL search, a lookup for resource metadata and a list of the accounts your login reaches. Google's documentation says it "is strictly read-only. It cannot modify bids, pause campaigns, or create new assets." You host it yourself, and the README documents Antigravity and other MCP clients such as Claude Code, Cursor and VS Code.
Meta Ads MCP server. Meta's hosted server at mcp.facebook.com/ads, part of Meta Ads AI Connectors, has been in open beta since 29 April 2026. Meta's documentation lists creating and editing ads, ad sets and campaigns, reporting, catalogs and signal health, and says it works with any MCP-compatible AI agent. Our guide to Meta's server covers setup.
Each of these covers one platform. An agent that works across Google, Meta and LinkedIn connects to several servers, each with its own sign-in.
Zapier MCP. Zapier says it connects Claude, ChatGPT, Cursor and other AI clients to 9,000+ apps and 66,000+ triggers and actions. Each tool call uses two tasks from your Zapier quota. Its Google Ads actions cover reports, campaign status, customer lists and offline conversions, with no budget, keyword or campaign-creation action. The free plan has 100 tasks a month, and Professional is $29.99 a month, or $19.99 a month billed yearly (pricing).
n8n. Its MCP Client Tool node lets an n8n AI agent use the tools of an external MCP server, and its MCP Server Trigger makes n8n tools and workflows available to MCP clients. n8n bills by execution, one run of a whole workflow however many steps it has. Cloud plans start at €20 a month billed yearly, and a self-hosted version is on GitHub (pricing).
These tools are strong at glue work, such as posting a report to Slack or a spreadsheet. Each ad change still needs an action, a node or a connected server that can make it.
A hosted server gives your agent ad tools with nothing to run yourself. These are the ones we checked for this page, on 29 September 2026.
What each route can do, according to its own pages. PaidSync's facts come from its tools and its pricing page.
| Route | Changes ads | Platforms | Saved or scheduled jobs | What you run yourself | Price from |
|---|---|---|---|---|---|
| PaidSyncHosted MCP server | Yes; creates campaigns on Google Ads, Meta, LinkedIn and ChatGPT Ads, manages existing ones on six more | 14 | Saved workflows; a routine, cron job or your agent starts each run | Nothing | Free for 15 tasks a month with no credit card, then from $99 a month for 600 tasks |
| Agent SDK and official APIsYour code | Whatever you build | Any platform whose API you are approved for | Whatever you build | Code, OAuth, hosting and API access approvals | Your model API and hosting bills |
| Google's Google Ads MCP serverSelf-hosted | No; read-only | Google Ads | No | The server, with pipx or on Cloud Run | Free and open source; hosting is yours |
| Meta's Ads MCP serverHosted by Meta, open beta | Yes; creates and edits campaigns, ad sets and ads | Meta | Not stated | Nothing | Not stated |
| Zapier MCPHosted | Google Ads campaign status, customer lists and offline conversions | 9,000+ apps | Zaps | Nothing | Free plan with 100 tasks a month; two tasks per tool call |
| n8nCloud or self-hosted | Through the nodes and MCP servers you wire in | Whatever you wire in | Workflows you build | Optional self-hosting | €20 a month billed yearly; self-hosted version on GitHub |
| Ryze AIHosted MCP server | 6 Google Ads writes that wait for approval | Google Ads, Meta Ads, TikTok, GA4, Search Console, Shopify | Not stated on its MCP page | Nothing | Free to connect; Autopilot $89 a month |
| MarkifactHosted MCP server | Campaign drafts, budgets, bids, keywords, status; each waits for approval | 14 ad platforms | Workflows run manually, on a schedule or from a trigger | Nothing | Pro $79 a month |
Checked 29 September 2026 on each vendor's own pages. "Not stated" means the vendor's page did not say. A PaidSync task is one request from your AI to PaidSync. Prices and features change, so confirm on the vendor's site before you buy.
This is the PaidSync route, in four steps. The first two work on the Free plan.
Open PaidSync in Claude's connector directory and click Connect, or in claude.ai or Claude Desktop open Customize, then Connectors, search PaidSync and click Connect. Sign in with your PaidSync login, then ask Claude to "Connect my Google Ads." Connectors work on every Claude plan, including Free. The full walkthrough is in how to connect Google Ads to Claude.
In Claude Code, run claude mcp add --transport http paidsync https://mcp.paidsync.ai/mcp, then type /mcp to sign in. In ChatGPT, open Plugins, search PaidSync and click Install plugin.
Ask in plain words, for example "Run the PaidSync find-waste workflow on my Google Ads account for the last 30 days." Claude calls paidsync_workflows_run with the workflow's name and settings, and the whole run comes back as one result. To see what exists, ask Claude to list PaidSync workflows, which uses paidsync_workflows_list. To check one before you run it, ask Claude to describe it: paidsync_workflows_describe lists the tools named in the code and gives a quick guess at whether it changes your account, so read the code itself before you run a workflow you did not write.
paidsync_workflows_run({
name: "find-waste",
params: { account_id: "123-456-7890", lookback_days: 30 }
})Describe the job the way you would brief a colleague, and ask Claude to save it as a PaidSync workflow. Claude writes TypeScript that calls PaidSync tools and saves it with paidsync_workflows_save. PaidSync checks that the code parses before it stores it, holds up to 50,000 characters, and runs it later by the name you gave it, written as me: and the name. Saving needs a paid plan. A saved workflow can be as short as this:
// Search terms with 20 or more in spend over 30 days and no conversion
const r = await paidsync.call("get_search_terms_report", { date_range: "last_30_days" });
if (!r.success) return { error: r.message };
const waste = r.data.searchTerms.filter((t) => t.conversions === 0 && t.cost >= 20);
return { count: waste.length, terms: waste.slice(0, 25) };PaidSync does not start runs on a timer by itself. The scheduler is yours, and two kinds work well with Claude.
mode: "scheduled". A scheduled run may take up to 5 minutes, where an interactive run stops after 60 seconds. A saved workflow runs in the mode it was saved with.Free for 15 tasks a month with no credit card, then priced by usage, from $99 a month for 600 tasks.
Start Free See a DemoFor an agency the harder question is how one agent works across many client accounts without touching the wrong one. On PaidSync:
Whatever you build, start new agents on read-only jobs, and keep a person on anything that spends money.
Partly, and the split is worth being clear about.
What it does once connected. Pull a report across platforms, find keywords and search terms that spend without converting, check budget pacing, draft ads and negative keywords, and make the changes you approve. With PaidSync in Claude those are tools such as get_wasted_spend_report, get_search_terms_report and update_campaign_budget, which previews a budget change unless you tell it to apply.
What it still needs from you. Goals, margins and the budget you can afford, which live in your business and not in the ad account. Sign-off on changes that spend money. And a schedule, if you want it to look at the account when you are not in a chat.
What to connect. The four parts in what you need to connect. On the PaidSync route in Claude, that is the PaidSync connector and your ad platform logins, on any Claude plan.
Any agent that speaks MCP can use the same endpoint over Streamable HTTP. In the Claude Agent SDK, add PaidSync as an HTTP server and allow the workflow tools:
import { query } from "@anthropic-ai/claude-agent-sdk";
for await (const msg of query({
prompt: "Run the PaidSync find-waste workflow on Google Ads account 123-456-7890.",
options: {
mcpServers: {
paidsync: {
type: "http",
url: "https://mcp.paidsync.ai/mcp",
headers: { Authorization: `Bearer ${process.env.PAIDSYNC_API_KEY}` }
}
},
allowedTools: ["mcp__paidsync__paidsync_workflows_list", "mcp__paidsync__paidsync_workflows_run"]
}
})) {
if (msg.type === "result" && msg.subtype === "success") console.log(msg.result);
}The key goes in a header, never in the URL. An API key reads and previews on Google Ads but cannot apply changes there; on the other platforms it applies changes under the same checks as a sign-in. When your agent must apply Google Ads changes, use PaidSync's OAuth sign-in and send the access token in the same header.
In the OpenAI Agents SDK, the same URL works as a Streamable HTTP server or a hosted MCP tool, and its require_approval setting can hold PaidSync's write tools for a person.
These five are in PaidSync's workflow registry, run on Google Ads, and work on every plan. Each has its own page with the exact rules it uses.
Partly. Once Claude is connected to your ad accounts through a tool server such as PaidSync, it can read reports, find wasted spend, check pacing and make the changes you approve, on any Claude plan. It still needs you for goals, budgets and sign-off on anything that spends money, and it looks at the account when you ask or when a scheduled routine runs. Google's own Google Ads MCP server is read-only, so on that route Claude cannot make changes.
A connector for the ad platforms and the login that can open each ad account. With PaidSync you add one connector from Claude's connector directory, sign in, then ask Claude to connect Google Ads, Meta or LinkedIn and approve on that platform's own sign-in screen. There is no API key, Google developer token or Google Cloud project to set up, and connectors work on every Claude plan, including Free.
Pick one of four routes. Write it yourself with the Claude Agent SDK or the OpenAI Agents SDK on the Google Ads API, where you build OAuth, token storage and approvals. Use Google's own Google Ads MCP server, which is free and self-hosted but read-only. Chain steps in Zapier or n8n. Or connect a hosted server such as PaidSync at https://mcp.paidsync.ai/mcp, which gives the agent Google Ads reads and changes plus saved workflows, with nothing to host.
Connect PaidSync from Claude's connector directory and connect your ad account. Run a ready-made workflow by asking Claude, for example to run the PaidSync find-waste workflow for the last 30 days. To keep your own, describe the job and ask Claude to save it as a PaidSync workflow, which needs a paid plan. To repeat it, schedule it with a Claude Code routine or your own cron job, and keep scheduled runs to reads and previews.
Start from the jobs your team repeats every week and write each one down as rules a machine can follow. We think most agencies get there fastest on a hosted server with saved workflows, such as PaidSync, because each run names the client account, a change aimed at any other account is refused, and a Team plan shares 6,000 tasks across 5 seats for $249 a month. Build on the agent SDKs instead if you need every line under your control and can take on API access approvals on each platform.
No. Google's developer token documentation says developer tokens were sunset on 9 September 2026, and your API access level now comes from the Google Cloud project behind your OAuth credentials. On the PaidSync route you sign in with Google, and there is no token or key to add.
Yes, when a scheduler starts it. PaidSync does not run workflows on a timer itself. A Claude Code routine can run one as often as hourly on a paid Claude plan, or your own cron job can call it, and a run in scheduled mode may take up to 5 minutes. A routine does not stop to ask before it calls a tool, so schedule workflows that read or preview, and apply changes in a chat.
A workflow run counts as one PaidSync task, however many tools it calls inside, and a run can call tools up to 100 times. The Free plan has 15 tasks a month with no credit card and runs the five ready workflows. Pro starts at $99 a month for 600 tasks and can save your own workflows, Team is $249 a month for 5 seats sharing 6,000 tasks, and Done For You is custom. The model side is your Claude or ChatGPT plan, or your API bill if you use an SDK.
It is as safe as the checks around it. On PaidSync, new campaigns and ads start paused or as drafts by default, budget edits run as a preview first, and live pauses, enables and removals need an explicit confirmation flag. Every change inside a workflow goes through those same checks, and a change aimed at a different account from the run's is refused. Keep Claude's per-tool approval on for tools that change your account, and in the Agent SDK allow only the tools you want to run unasked.
610+ tools. 14 platforms. One connection. Start free.