Home>Build your own ads agent

How to Build Your Own AI Ads Agent (Every Option, September 2026)

By Ahmed Ashraf|Updated 29 September 2026

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.

Google Ads Claude

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.

Which route should you pick

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.

  • PaidSync, our pick for most teams. We pick it because there is nothing to host: you add it from Claude's connector directory or ChatGPT's Plugins, sign in to Google, Meta or LinkedIn on each platform's own screen, and your agent gets 610+ tools across 14 platforms, with no API key or Google developer token to set up. It creates campaigns on Google Ads, Meta, LinkedIn and ChatGPT Ads. A saved workflow is TypeScript that calls those tools inside a sandbox with no network or file access, and every change inside it goes through the same preview and confirmation checks as a single tool call. The five ready-made Google Ads workflows run on every plan, including Free. What to know. Those five cover Google Ads alone. Saving your own workflow needs a paid plan. PaidSync does not start runs on a timer itself; a scheduler you set up does. On TikTok, Snapchat, Reddit, Pinterest, X and Microsoft Ads, PaidSync manages existing campaigns rather than creating new ones.

Pick something else if one of these narrower cases fits you better.

  • You are a developer who wants every line under your control. Build on the Claude Agent SDK or the OpenAI Agents SDK and the official APIs, and use Google's own Google Ads MCP server for reads: it is free, open source, self-hosted and read-only. Expect Meta's App Review before you manage other people's ad accounts, and LinkedIn's Development tier edits up to five ad accounts.
  • Your team already runs its automations in Zapier or n8n. Add the AI step there. Zapier's Google Ads actions cover reports, campaign status, customer lists and offline conversions, with no budget, keyword or campaign-creation action, and each tool call uses two Zapier tasks. n8n's MCP Client Tool node lets an n8n AI agent use the tools of an external MCP server.
  • You want the vendor to run workflows on a timer for you. Markifact says its workflows run manually, on a schedule or from a trigger, and that every write waits for your approval. Pro is $79 a month.
  • You mostly run Meta and want Meta's own server. Meta's Ads MCP server at mcp.facebook.com/ads creates and edits campaigns, ad sets and ads, and has been in open beta since 29 April 2026.

What you need to connect

Every route needs the same four parts. What changes is who builds and runs each one.

  1. A model and a place to run it. Claude in claude.ai, the desktop app or Claude Code, or ChatGPT, for work you start in a chat. The Claude Agent SDK or the OpenAI Agents SDK for an agent that runs from your own code.
  2. A tool server for the ad platforms. An MCP server (Model Context Protocol, the standard AI apps use to call outside tools) turns "pause this campaign" into the right API call. It is what lets the model read and change the account.
  3. A sign-in to each ad account. The Google, Meta or LinkedIn login that can open the account, granted on that platform's own sign-in screen.
  4. Rules for what runs without a person. Which tools may run unasked, which wait for an approval, and whether anything runs on a schedule.

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.

Every way to build it

Checked on 29 September 2026, on each option's own pages.

Write it yourself with an agent SDK and the official APIs

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.

  • Google Ads API. Google says developer tokens were sunset on 9 September 2026. Your access level now comes from the Google Cloud project behind your OAuth credentials.
  • Meta Marketing API. Limited Access (formerly Standard) comes with the app, is heavily rate-limited and is meant for development. Managing ad accounts that belong to other people needs Full Access (formerly Advanced) to ads_read or ads_management, approved through App Review.
  • LinkedIn Advertising API. You apply for access. The Development tier reads the ad accounts you administer and edits up to five of them. The Standard tier, for more, is requested through a support ticket.

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.

Use Google's and Meta's own MCP servers

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.

Chain the steps in Zapier or n8n

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.

Connect a hosted ads server

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.

  • PaidSync. One endpoint for 14 platforms, 610+ tools and saved workflows. The details are in the next sections.
  • Ryze AI. Ryze's page lists 8 read tools and 6 write tools for Google Ads, and the writes wait for approval. The same endpoint also serves Meta Ads, TikTok, GA4, Search Console and Shopify. Free to connect; Paid Ads Autopilot is $89 a month with a 7-day free trial (pricing). See PaidSync vs Ryze AI.
  • Markifact. Its Google Ads page lists campaign drafts for Search, Display, Shopping, Demand Gen and Performance Max, budget and bidding changes, keywords, negatives and status changes, and says every write waits for your approval. Markifact says its workflows run manually, on a schedule or from a trigger, across 14 ad platforms. Pro is $79 a month, with 200 one-time credits at sign-up (pricing).

How the routes compare

What each route can do, according to its own pages. PaidSync's facts come from its tools and its pricing page.

RouteChanges adsPlatformsSaved or scheduled jobsWhat you run yourselfPrice from
PaidSyncHosted MCP serverYes; creates campaigns on Google Ads, Meta, LinkedIn and ChatGPT Ads, manages existing ones on six more14Saved workflows; a routine, cron job or your agent starts each runNothingFree for 15 tasks a month with no credit card, then from $99 a month for 600 tasks
Agent SDK and official APIsYour codeWhatever you buildAny platform whose API you are approved forWhatever you buildCode, OAuth, hosting and API access approvalsYour model API and hosting bills
Google's Google Ads MCP serverSelf-hostedNo; read-onlyGoogle AdsNoThe server, with pipx or on Cloud RunFree and open source; hosting is yours
Meta's Ads MCP serverHosted by Meta, open betaYes; creates and edits campaigns, ad sets and adsMetaNot statedNothingNot stated
Zapier MCPHostedGoogle Ads campaign status, customer lists and offline conversions9,000+ appsZapsNothingFree plan with 100 tasks a month; two tasks per tool call
n8nCloud or self-hostedThrough the nodes and MCP servers you wire inWhatever you wire inWorkflows you buildOptional self-hosting€20 a month billed yearly; self-hosted version on GitHub
Ryze AIHosted MCP server6 Google Ads writes that wait for approvalGoogle Ads, Meta Ads, TikTok, GA4, Search Console, ShopifyNot stated on its MCP pageNothingFree to connect; Autopilot $89 a month
MarkifactHosted MCP serverCampaign drafts, budgets, bids, keywords, status; each waits for approval14 ad platformsWorkflows run manually, on a schedule or from a triggerNothingPro $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.

How to build an ads workflow with Claude

This is the PaidSync route, in four steps. The first two work on the Free plan.

1

Connect PaidSync and your ad account

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.

2

Run a ready-made workflow

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 } })
3

Save your own workflow

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) };
4

Put it on a schedule

PaidSync does not start runs on a timer by itself. The scheduler is yours, and two kinds work well with Claude.

  • Claude Code routines. A routine is a saved prompt that runs on Anthropic's cloud on a schedule or from an API call, with the connectors on your claude.ai account, PaidSync included once you have connected it. Routines are a research preview on paid Claude plans, and the shortest schedule is hourly. A routine calls connector tools, including ones that change your account, without asking during the run, so schedule workflows that read or preview, and apply changes in a chat where you approve them.
  • Your own code on a timer. A cron job that starts your agent and runs the workflow with 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 Demo

Running workflows across client accounts

For an agency the harder question is how one agent works across many client accounts without touching the wrong one. On PaidSync:

  • Name the account on every run. A workflow run takes the client's account ID. PaidSync binds that account for that run alone, without changing the account your other chats use, so runs on two clients cannot overwrite each other's account. Your own saved workflows can also take the manager (MCC) ID of a client that sits under one.
  • Wrong-account changes are refused. If a change inside a run names a different account from the one the run is bound to, PaidSync refuses it before the API call.
  • One team, shared tasks. Team is $249 a month for 5 seats sharing 6,000 tasks, and a workflow run counts as one task. Done For You is custom, and PaidSync runs the accounts for you.
  • Your playbook, written for you. PaidSync can map a job your team runs by hand and write it as a saved workflow against your accounts. See enterprise workflows.

Whatever you build, start new agents on read-only jobs, and keep a person on anything that spends money.

Can Claude be your PPC manager

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.

Call PaidSync from your own agent

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.

The five workflows that ship ready to run

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.

  1. Account audit. Counts enabled and paused campaigns, totals their daily budgets, checks that conversion actions exist and lists red flags. It only reads.
  2. Find waste. Keywords with 50 or more clicks, 20 or more in spend and no conversions over 30 days, ranked by cost. It only reads.
  3. Pause zero-conversion keywords. Enabled keywords with 100 or more clicks, 20 or more in spend and zero conversions. It previews by default and pauses them when you set apply to true.
  4. Weekend underspend. Campaigns that spend close to their budget on weekdays but well under it at weekends. It only reads.
  5. Negative keyword candidates. Search terms with 50 or more impressions, 5 or more in spend and no conversions, ranked by spend with a suggested match type. It only reads.

What to know before you build on PaidSync

  • The five ready workflows cover Google Ads. Your own workflows can call PaidSync's tools for the other platforms you connect.
  • PaidSync does not run workflows on a timer. A routine, a cron job or your own agent starts each run.
  • A run stops after 60 seconds, or 5 minutes in scheduled mode. It can call PaidSync tools up to 100 times and return up to 1 MB. The code has no network or file access and reaches your accounts through PaidSync's tools.
  • Saving a workflow needs a paid plan. The five ready ones run on Free.
  • An API key reads and previews on Google Ads; applying Google Ads changes needs a sign-in.
  • On TikTok, Snapchat, Reddit, Pinterest, X and Microsoft Ads, PaidSync manages existing campaigns rather than creating new ones.

Frequently asked questions

Can I use Claude as my PPC manager?

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.

What do I need to connect Claude to my ad accounts?

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.

How can I build a custom AI agent that manages my Google Ads?

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.

How do I build an ads automation workflow with Claude?

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.

What is the best way to build custom AI agent workflows for paid ads at my agency?

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.

Do I need a Google Ads developer token?

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.

Can a PaidSync workflow run on a schedule?

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.

How much does it cost to run a workflow?

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.

Is it safe to let an agent change live campaigns?

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.