Start free

Claude for Google Ads

Claude and ChatGPT for Google Ads: what they read, change and block

The four ways in, which jobs only read and which change the account, what each host asks before a change, and the prompts to type.

AdCtrl article cover: Claude and ChatGPT for Google Ads, reads, changes, limits. The Claude, Google Ads and ChatGPT icons fan out from the AdCtrl mark, with Google Ads highlighted on the right.

Short answer

  • Claude and ChatGPT can't reach a Google Ads account on their own. A connector gives them access, and only a connector with write tools can change anything.
  • Claude takes a custom connector on every plan, one on Free. OpenAI lists full custom MCP, writes included, only for ChatGPT Business and Enterprise/Edu on the web; Pro gets read/fetch.
  • Claude asks per tool, so reads can run while spending waits for you. ChatGPT sets one permission per app or connected account, not per tool, so AdCtrl recommends Always ask for changes.
  • ChatGPT may block especially risky actions instead of asking. On 29 October 2026 it stopped a removal of two ad groups on my agency's test campaign before the connector was called.
  • A skill gives Claude a method; account access comes from a connector. Google's own server reads, and since v0.0.6 (2 November 2026) writes only assets and labels.

Run these Google Ads prompts in Claude or ChatGPT

Start free

3-day free trial · no card needed

Claude and ChatGPT can work on a Google Ads account once a connector gives them access. They read reports and settings, and a connector with write tools prepares changes that you approve in the chat. Without one they only see what you paste or upload. Disclosure: I build AdCtrl, one of those connectors.

I also run a performance agency, and AdCtrl's limits sit in the route table next to everyone else's. Setup for every route is in Google Ads MCP, and account checks are in the Google Ads audit checklist. This page is about using Claude or ChatGPT on your own account, not about the ads OpenAI shows inside ChatGPT.

Checked 6 November 2026 against Anthropic's and OpenAI's help pages, Google's MCP docs and repo, and each vendor's own page1, 2, 3.

Can Claude or ChatGPT manage a Google Ads account?

Claude and ChatGPT can manage parts of a Google Ads account once a connector links them to it, and only as far as that connector's tools go. A connector is an MCP server added to your AI app. MCP, the Model Context Protocol, is the standard both apps use to call outside tools.

The connector decides what can change; the host decides when it asks you. Anthropic says a connector you add yourself lets Claude "access those services and take action in them", and that Anthropic hasn't verified it. So you're trusting whoever runs the server.

In my view most of the value sits in the reads, like last week against the week before, or the search terms that cost money and never convert. Changes are the smaller part, and they're the part I still want to see before they go.

What are the ways to give Claude or ChatGPT your Google Ads data?

Claude and ChatGPT get Google Ads data in four ways: an exported report you upload, a skill that works on exports or a connection, Google's own MCP server, or a hosted connector that someone else runs. Only the last two reach the live account.

  • Export and upload: Download a report from Google Ads and upload it; the AI reads only that file

    (Manual)

  • Skill: A written method, such as an account review, that runs on exports or a connection

    (Method)

  • Google Ads MCP server: Google's own; reads with GAQL, writes only assets and labels

    (Self-hosted)

  • Supermetrics: Read and write access for Claude, with a preview before each change

    (Hosted)

  • Windsor.ai: Creates, pauses and optimises campaigns, budgets and bids

    (Hosted)

  • AdCtrl: Preview, your approval, apply, then a readback of what Google saved

    (Hosted)

Here is how each route's own documentation describes it, limits included.

RouteWhat it changesBefore a change goes throughLimits
Export and uploadNothingNot applicableStale as soon as you export; only the columns you picked
Google's server (you host it)Assets and labelsA dry run, then a confirm call that repeats the dry run's checksum (a code tying it to that exact change) after you approveDocs page still says read-only; no budgets, bids, statuses or keywords; you host it on Cloud Run with your own OAuth client, as Google's hosted version is an allowlist-only pilot
SupermetricsBids, ad group pauses, negative keywords, extensions, new campaignsClaude previews every change; new campaigns created pausedPreview and paused start are described on its Claude page; its ChatGPT page lists campaign changes but no preview step
Windsor.aiCampaigns, budgets and bids (34 Google Ads actions)Most pause, enable and update actions can be undoneNo approval step documented
AdCtrlBudgets, bids, keywords, assets and new campaignsPreview with before, after and spend effect; approval in your AI app; check that nothing changed; readback$19 or $39 a month, or $99 per user (excl. VAT); can't publish Tag Manager versions; no unified attribution; in ChatGPT, spending and edits share one approval setting

Google's server mostly reads; the hosted connectors change campaigns and differ in what you see before a change goes through.

Source: Google's MCP docs and repo, Supermetrics and Windsor.ai pages, AdCtrl docs and pricing, read 6 November 20261, 4, 5, 6, 7, 8

Connecting means adding a remote MCP address as a custom connector: in Claude under Customize > Connectors, and in ChatGPT under Plugins > + > Add custom MCP server on plans that allow it2, 3. Google's server needs your own Cloud Run deployment and OAuth client, a job for someone who can deploy to Google Cloud. AdCtrl's address is https://app.adctrl.ai/mcp. The full walk-through is in Google Ads MCP.

Do Claude skills replace a connector?

A Claude skill gives Claude a method for a job, such as an account review, and a connector gives it the account. Only a connector with write tools can change anything.

Google's MCP docs suggest pairing its server with Google's Google Ads API agent skills, installed with npx skills add google/skills/skills/ads, and with the Developer Assistant, a plugin for Antigravity and Claude Code that writes client library code1. Ryze AI, which publishes 15 Claude skills for Google Ads, says all of them "are read-only and run on a CSV export or a live MCP connection".

Ryze's own article says it plainly: changing the account "needs a connector with write access and an approval step"9. Is a skill worth installing? In my view yes, for the method, whichever route you pick: a review written down once runs the same way every week.

Which Google Ads tasks only read, and which change the account?

Reports, search term reviews and previews only read. Keywords, ad text and negative keywords are edits; budgets, bids and turning ads on are spending changes; removals are deletions. That grouping is AdCtrl's, and it sets which approval step each task meets.

TaskKindChanges the accountClaude (AdCtrl's suggested setting)ChatGPT (one setting per app or account)
Last week against the week beforeReadNoAlways allowCovered by Allow read actions
Search terms with spend and no conversionsReadNoAlways allowCovered by Allow read actions
Prepare a budget previewRead (preview)NoAlways allowCovered by Allow read actions
Add negative keywordsEditYesNeeds approvalAsks under Always ask
Raise a daily budgetSpendingYesNeeds approvalAsks under Always ask; same setting as edits
Change a target CPA or ROASSpendingYesNeeds approvalAsks under Always ask; same setting as edits
Remove keywords or ad groupsDeletionYes; some can't be restoredNeeds approvalMay ask, or may block it

Reads and previews can run without asking in both hosts; Claude can hold spending and deletions for approval separately, while ChatGPT applies one setting to every change.

Source: AdCtrl docs (kinds of change, suggested settings), OpenAI's help pages on app permissions and custom MCP servers, read 6 November 20267, 10, 3

I'd set any host up like this on day one, because a budget change shouldn't run unseen.

What do Claude and ChatGPT ask before a change?

Claude asks per tool, and ChatGPT asks according to one permission setting for the whole app or for one connected account. That difference decides whether a budget change can wait for you while a report runs freely.

Claude: per tool

Each connector tool has its own permission, so reads can run while apply tools wait. AdCtrl's docs suggest letting reads and previews through and keeping every apply tool on approval. Anthropic's advice: click "Allow always" only "when using a server and tool that you trust to run unsupervised". Anthropic's connector page lists Always allow, Needs approval and Blocked per tool for Team and Enterprise owners.

ChatGPT: per app or account

One setting covers the whole app, or one connected account, never a single tool: Always ask, Allow read actions, Allow low-risk actions or Allow all actions. OpenAI notes that changing it "only changes when ChatGPT asks before using the access the app already has". On Enterprise and Edu, admins can also switch individual app actions off, which removes them instead of asking.

You can't set a budget change apart from a name change: under Allow low-risk actions, ChatGPT approves what it judges low-risk and decides the risk of each action itself11. So AdCtrl's docs recommend Always ask.

Flow diagram: you ask; a read changes nothing, or a change preview goes to you to approve in Claude or ChatGPT; the change is applied only if nothing changed since the preview; then a readback shows what Google actually saved.

The flow from prompt to readback: a read changes nothing; a change preview waits for your approval in Claude or ChatGPT, is applied only if nothing changed since the preview, and ends with a readback of what Google actually saved.

Permissions decide when the app asks. To stop changes outright, use the connector's own read-only switch. In AdCtrl, an account set to Read only can still answer and prepare previews, but it can't apply anything.

What does each host block or limit?

ChatGPT can block an action outright instead of asking, runs custom MCP writes only on some plans and only on the web, and keeps deep research to reads. Claude's limits are about plans, who may add a connector, and research: during research, Claude uses connector tools without asking each time.

In OpenAI's words, "Some especially risky actions may be blocked instead of being presented for approval"3.

AdCtrl's docs say rewording doesn't get past that check; make the deletion in Google Ads, or ask in Claude.

HostPlans that can add a custom connectorChanges through itOther limits
ClaudeFree (one connector), Pro, Max, Ultra, Team, EnterpriseYesOn Team only Owners and Primary Owners add connectors; Anthropic doesn't verify them; research calls connector tools without asking each time
ChatGPTBusiness, Enterprise/EduYesOn Business only admins and owners create custom MCP connections; on Enterprise/Edu, admins can grant it to members; web only; deep research reads only; risky actions may be blocked
ChatGPTProNo, read/fetch onlyWeb only
ChatGPTPlus, FreeNot stated by OpenAINot stated by OpenAI

Claude takes a custom connector on every plan; OpenAI lists full custom MCP, with changes, only for ChatGPT Business and Enterprise/Edu.

Source: Anthropic's custom connector help article and OpenAI's help article on custom MCP servers, Anthropic's research help page, read 6 November 20262, 3, 13

Screenshot of Anthropic's help article on custom connectors in Claude, with the passage highlighted: Review Claude's tool approval requests carefully and only click Allow always when using a server and tool that you trust to run unsupervised.

Anthropic's own help page for Claude: review each tool approval request, and keep "Allow always" for a server and tool you trust to run unsupervised. On a Google Ads connector, I'd keep budget tools off that list.

OpenAI's article doesn't mention Plus or Free, so I won't guess about them. OpenAI's other help page adds that availability "depends on the app, your ChatGPT plan, region, workspace, role, model, and the ChatGPT interface you use."

What does a read and a change look like?

In both hosts a read comes back as an answer in the conversation, and a change comes back first as a preview: the account, what changes, before and after, and any effect on spend. The two cards below are AdCtrl's templates filled with example data, not captures from a real account.

The read, then the change preview, as you'd type them:

In AdCtrl, write: only reads your accounts
How did my Google Ads Search campaigns perform in the last 30 days? Show cost, conversions and cost per conversion for each campaign.
AdCtrl Query results card with example data: three Search campaigns (Generic, Brand, Competitors) over the last 30 days, 6,016 USD cost and 107 conversions in total.

AdCtrl's Query results card, shown with example data for the last 30-day period: three made-up Search campaigns with their cost and conversions. A real read shows your own account.

In AdCtrl, write: prepares a change preview you approve
Prepare a preview that raises the daily budget of my Search campaign "YOUR CAMPAIGN" from 60 to 75 USD. Show the budget before and after and the effect on spend.
AdCtrl change preview card with example data: average daily budget from 60 to 75 USD, marked Preview, not applied.

AdCtrl's change preview, shown with made-up example data: an average daily budget from 60 to 75 USD, marked as not applied. Nothing goes to Google until the approval step.

The hosts differ in the step around the card: Claude's per-tool prompt or ChatGPT's per-app or per-account one, and ChatGPT's own block on some deletions. After you approve, AdCtrl checks that nothing changed since the preview, sends exactly what you approved and reads the account back. If Google doesn't confirm a change, AdCtrl never resends it; it checks the account and tells you what happened.

Which prompts work for Google Ads with Claude or ChatGPT?

Prompts that work name the period, the metric and whether anything may change. These come from AdCtrl's docs and read the account unless they ask for a preview. The read prompts are plain questions, so they should work with any connector that reads campaigns and search terms.

In AdCtrl, write: only reads your accounts
Which search terms cost money last month without a single conversion?
In AdCtrl, write: only reads your accounts
Which campaigns spent the most for the fewest leads this month?
In AdCtrl, write: only reads your accounts
Go through every client under my manager account and flag anything that needs attention this week.
In AdCtrl, write: prepares a change preview you approve
Find search terms that don't fit my business and prepare negative keywords.

With an export and no connector, upload the search terms report as a CSV. In Claude or ChatGPT, type: "List the search terms in this file with cost above zero and no conversions, sorted by cost." The answer covers only the rows and dates in that file, so re-export before every review.

Who should use Claude, and who ChatGPT, for Google Ads?

For Google Ads, start with whichever of the two your team already pays for, then check two things: whether its plan can make changes through a connector, and how its approvals are set. In my view, for reading an account, the connector and the data it returns decide most of the answer, whichever model reads it. That's an impression from my own work, and I haven't measured it.

Choose Claude if

  • You want reads to run freely while spending waits for approval, set per tool
  • You're on any Claude plan, Free included with one connector
  • You want removals to go through your approval rather than a host block

Choose ChatGPT if

  • Your team already works in ChatGPT Business or Enterprise/Edu
  • You're fine approving every change under Always ask
  • On Pro, you only need reads

For ad accounts I'd start in Claude, because per-tool settings let reports run while budgets wait. In ChatGPT, Always ask gets you the same safety with more clicks, and deletions may need Google Ads itself.

Where does Claude or ChatGPT go wrong on Google Ads?

Claude and ChatGPT can get a Google Ads answer wrong in ways you can check. Compare one answer with the Google Ads interface before trusting the next ten.

  • Date range: "last month" can mean the calendar month or the last 30 days. Check the dates the answer states.
  • Missing metric: if the answer gives a number the read didn't return, ask where it came from before you act on it.
  • Wrong account: under a manager account, check the answer names the account ID you meant.
  • Budget read as a cap: see the callout below.

Run these checks before you let Claude or ChatGPT change an account. For what to check inside the account itself, use the audit checklist.

  • The account stays read only in the connector until a few reads match the Google Ads interface.
  • One read was compared with the same date range in Google Ads.
  • In Claude, reads and previews run freely and every apply tool needs approval.
  • In ChatGPT, the app permission is Always ask, or your workspace policy asks before every change.
  • Every preview shows the account, the before and after, and the effect on spend.
  • Deletions you'd run from ChatGPT have a fallback in Google Ads.
  • "Allow always" is off for every tool that applies a change.

Frequently asked questions

Can ChatGPT or Claude build a Google Ads campaign?

Yes, through a connector that builds campaigns. Several create new campaigns paused, so turning one on is a separate step you take. Supermetrics (on its Claude page), Adspirer and AdCtrl all say new campaigns start paused; AdCtrl builds Search and Performance Max campaigns.

Does OpenAI or Anthropic train on my ad account data?

OpenAI says that for ChatGPT Free, Plus, Go and Pro, it may use information accessed from apps to train its models if "Improve the model for everyone" is on. For Business, Enterprise and Edu, OpenAI says it doesn't use information accessed from apps to train models by default10. The Anthropic page cited here doesn't cover training, so check the privacy settings for your Claude plan.

Can Claude run Google Ads on its own, without me approving?

The hosts allow it: Claude has "Allow always", and ChatGPT offers Allow all actions for eligible apps or accounts10. Anthropic says to use it only for tools you trust to run unsupervised. Some vendors sell automatic changes; Ryze says its product "makes bid changes, and reallocates budgets automatically".

Do I need a Google Ads developer token?

No. Google sunset developer tokens on 9 September 2026, and its MCP docs say the latest server version no longer needs one, because API access levels now belong to the Google Cloud project1.

Can I use Claude Code for Google Ads?

Google's MCP docs list the Developer Assistant, a plugin for Claude Code and Antigravity that generates Google Ads API client library code. That suits a developer who reviews and runs the code.

What does a connector see of my account?

Only what the setup allows. In AdCtrl, accounts you leave off are invisible to your AI, and the Google access token is never included in anything sent to Claude or ChatGPT.

What to do next

Pick a route by what you need to change: an export or a skill for analysis, Google's server if someone can host it and you need reports, a hosted connector for budgets, bids and keywords. Start with reads, compare one with the Google Ads interface, and keep every change on approval until the previews match what Google saves.

Learn more: the setup for each route is in Google Ads MCP, and the checks to run before any change are in the Google Ads audit checklist.

Try it: connect AdCtrl with the getting started steps, set your approval settings, and paste the read prompt above into Claude or ChatGPT. Try any plan free for 3 days, no card needed7.

Sources

  1. Google Ads MCP server: Developer integration guide, Google, 30 October 2026. Accessed 6 November 2026.
  2. Get started with custom connectors using remote MCP, Anthropic. Accessed 6 November 2026.
  3. Connecting custom MCP servers in ChatGPT, OpenAI. Accessed 6 November 2026.
  4. googleads/google-ads-mcp (README, release v0.0.6), Google, 2 November 2026. Accessed 6 November 2026.
  5. Supermetrics for Claude: Google Ads, Supermetrics. Accessed 6 November 2026.
  6. Windsor MCP: write actions, Windsor.ai. Accessed 6 November 2026.
  7. AdCtrl docs: Google Ads and Meta Ads in Claude or ChatGPT, AdCtrl, 6 November 2026. Accessed 6 November 2026.
  8. Connect Google Ads to ChatGPT, Supermetrics. Accessed 6 November 2026.
  9. Claude for Google Ads: 15 Skills + Copy-Paste Prompts (2026), Ryze AI, 25 March 2026. Accessed 6 November 2026.
  10. Connected apps in ChatGPT, OpenAI. Accessed 6 November 2026.
  11. Managing app permissions in ChatGPT, OpenAI. Accessed 6 November 2026.
  12. Own data: In a fresh ChatGPT conversation, a native two-ad-group removal on my agency's own paused test campaign was blocked by ChatGPT before AdCtrl was called; the plan was cancelled with no provider attempt, receipt or retry. The same packet's forward changes and other removals ran in both Claude and ChatGPT.. Sample: 1 blocked removal plan (ChatGPT); comparable lifecycles in Claude. Period: 2026-10-29. Measure: count. Own agency test account, paused objects; no client data. Record: docs/parity-finish-line.md row 122 and evidence/gpt173-final-restoration-2026-10-29.json.
  13. Use research on Claude, Anthropic. Accessed 6 November 2026.
  14. Adspirer: AI agents that run your paid media, Adspirer. Accessed 6 November 2026.
  15. Use connectors to extend Claude's capabilities, Anthropic. Accessed 6 November 2026.
  16. Own data: Searched Claude's connectors directory (claude.com/marketplace/connectors-plugins, query 'google ads') and ChatGPT's Plugins directory (signed-in, query 'Google Ads') for a Google-published Google Ads app.. Sample: 2 directories, 1 query each. Period: 2026-11-06. Measure: count. Public directory listings only; no account data.

Keep going