Analyzing your Google Ads data tells you what’s wrong. Acting on it is where the time gets saved. Once Google Ads is connected to ChatGPT (see: How to Connect Google Ads to ChatGPT), Windsor’s write actions let ChatGPT make real, live changes to your account, as well as report on it. Google’s own Google Ads MCP server cannot pause campaigns, change budgets or bids, or push keywords; the prompts on this page run through the Windsor.ai plugin.
Is this automatic, or only when I ask?
Write actions are prompt-triggered. ChatGPT doesn’t watch your account in the background and act on its own, there’s no “pause this ad group the moment CPA doubles overnight” running unattended.
It runs the action you ask for, when you ask for it, in that conversation. If you want an early-warning check, ask for it explicitly (for example, at the start of each session).
What ChatGPT can do with your Google Ads account
Windsor’s 34 Google Ads write actions cover seven areas:
- Campaign, ad group, and ad status: enable or pause any of the three.
- Budget and bidding: set a campaign’s budget, switch its bidding strategy (manual CPC, target CPA, target ROAS, maximize conversions, maximize conversion value, maximize clicks/target spend), or fine-tune an existing strategy directly: set the ad group’s default Max CPC, set a campaign’s CPC bid ceiling (Target Spend / Maximize Clicks), or update its Target CPA or Target ROAS without switching strategy.
- Targeting and schedule: set a campaign’s locations, its languages and its ad schedule.
- Keywords: push new keywords to an ad group, or negative keywords to a campaign or ad group, update an existing keyword’s status or bid, or remove a keyword or negative keyword.
- Creating new items: build a campaign, ad group, or responsive search ad from scratch, all created paused by default, or add ad assets such as sitelinks and callouts to a campaign or ad group.
- Renaming and editing: rename a campaign or ad group, or change several ad group settings at once.
- Customer Match audiences: create, rename, or delete a Customer Match list, upload contacts to it and check the upload status, and attach or detach it from an ad group for targeting or exclusion.
For the exact parameters each action takes, see the full write actions reference.
Turn a search term analysis into a negative keyword list
This picks up directly from the search term analysis prompt on the setup guide; instead of stopping at a list of terms to review, it pushes the negatives straight to the account.
From the search term report for the last 30 days, find search terms with
more than $20 in spend and zero conversions.
Show me the list first: search term, campaign, ad group, cost.
Once I confirm, push these as exact-match negative keywords at the
ad group level.
Pause ad groups with low CTR and high spend
Find every ad group with CTR under 1% and spend over $100 in the
last 7 days.
Show me the numbers first. Then pause the ones I confirm.
Shift budget toward the winner
Compare ROAS across all active campaigns for the last 30 days.
Shift 20% of budget from my lowest-ROAS campaign to my
highest-ROAS one. Confirm the exact before/after budget for both
before making the change.
Switch a campaign’s bidding strategy
My campaign "Brand Search" has been on manual CPC for 60 days
with stable conversion volume. Switch it to Target CPA, using its
trailing 30-day average CPA as the target.
Build a campaign from a chat
Look at my top 10 converting keywords from the last 30 days by
conversion rate.
Create a new Search campaign called "Proven Keywords Expansion"
with a $50 daily budget. Create one ad group targeting those
keywords as phrase match. Write 3 headlines and 2 descriptions
for a responsive search ad based on the landing pages these
keywords currently point to.
Leave everything paused. I want to review before it goes live.
⚠️ Campaigns, ad groups and responsive search ads are created paused by default and stay paused until you enable them.
Example: a change applied from ChatGPT
Create a new Google Ads Search campaign called "Windsor.ai test, do not run"
in my Google Ads account windsor-main, with a daily budget of 1.00 in the
account currency and manual CPC bidding. Leave it paused and do not add
any ad groups or ads. Show me what you will create and wait for my
confirmation before you create it.



We asked ChatGPT to create a paused test Search campaign in our own Google Ads account windsor-main. Before creating anything, it listed every setting it would use (Search, a daily budget of 1.00 in the account currency, Manual CPC, status paused, no ad groups or ads) and said no changes had been made yet.
After we replied “Yes, create it”, ChatGPT created the campaign, returned its campaign ID and confirmed that no ad groups or ads were created. In Google Ads the campaign showed up as paused, with a budget of €1.00/day and no cost.
Tip: Google Ads requires a budget on every campaign. For a test, use a small daily budget and leave the campaign paused with no ad groups or ads.
Build a Customer Match audience from your best customers
Customer Match turns a customer list into a live targeting or exclusion audience without leaving the conversation.
Create a Customer Match list called "High-LTV Customers Q3".
I'll paste a list of emails next, upload them to it.
Once the upload finishes, attach it to my "Brand Search" ad
group as an exclusion, so we stop paying for clicks from people
who already bought.
FAQs
Does ChatGPT monitor my campaigns and act automatically?
No. Write actions are prompt-triggered: ChatGPT acts when you ask it to, in that conversation. It doesn’t run in the background or act on its own without you asking, so it won’t catch a problem between sessions unless you ask it to check.
Will ChatGPT spend money without me approving it first?
No. ChatGPT shows each change and waits for your confirmation. Campaigns, ad groups and responsive search ads are created paused, and stay paused until you enable them. Keywords and ad assets you add to a running campaign or ad group can serve once added.
Do I need to write code or set up an MCP server to use write actions?
No. Write actions work directly through the Windsor.ai plugin in ChatGPT, the same one you use for reading data: click + and choose Windsor.ai, or type @Windsor. No manual setup, no developer mode, no extra steps.
Can Google's own Google Ads MCP server make these changes from ChatGPT?
No. Google’s open-source Google Ads MCP server queries the account with GAQL and can create assets and manage labels, but it has no tools to pause campaigns, change budgets or bids, or push keywords. You run it yourself with a Google Cloud project and your own API credentials, and ChatGPT runs a custom MCP server’s write tools only in Business, Enterprise and Edu workspaces.
Can ChatGPT manage Customer Match audiences?
Yes. It can create, rename, or delete a Customer Match list, upload contacts to it, and attach or detach it from an ad group for targeting or exclusion.
Are Windsor's write actions reversible?
Yes, most of them. Status changes (enable/pause) and budget or bidding strategy changes can be undone anytime by setting the previous value again. Deleting a Customer Match list cannot be undone. There is no delete action for campaigns, ad groups, ads or ad assets. New campaigns, ad groups and responsive search ads are created paused; remove anything you do not want in Google Ads.
Does this work in Claude as well as ChatGPT?
Yes, write actions run through the Windsor.ai MCP server (the Windsor.ai plugin in ChatGPT), which works the same way across ChatGPT, Claude, Copilot, and other MCP-compatible tools. The Claude setup is in how to connect Google Ads to Claude.


