Most of the changes in the Google Ads accounts I manage now go through Claude. I ask it to change a budget, exclude search terms, build a new campaign or add new ads, and it does the work in the account while I check the result. I use Claude only, so everything below is about Claude. I haven't connected ChatGPT to Google Ads and won't compare the two.
Connecting the account is a one-time setup. Deciding what Claude may touch took me longer, because it sometimes goes further than I ask.
How the connection works
Claude talks to your account through the Google Ads API, the same access that reporting tools and agencies use. There are two parts to it.
Reading. I use Google's official connector for AI assistants, the Google Ads MCP server. It has three tools, and all three read: one searches your account data, one lists the accounts you can access, and one describes the fields. Through it Claude pulls reports, search terms and the change history.
Changing. The connector doesn't edit anything, so for changes Claude writes a short script and sends it through the same Google Ads API. Budgets, new campaigns, new ads and excluded search terms all go this way.
Step by step: connect Google Ads to Claude
I use Claude Code, the version of Claude that runs on your computer and can work with files and commands. The steps below follow Google's own setup guide for the connector.
- Get a developer token. Sign in to your Google Ads manager account and open Admin → API Center. Fill in the form, and Google gives you a token. Next to it you see the access level. To read live accounts, the token needs at least Explorer access.
- Apply for Basic Access if you want Claude to make changes. In API Center, next to the access level, open the application for Basic Access. Google asks how you will use the API and wants a design document: a short file that describes your tool. In mine I wrote that the tool is for internal use only, in the accounts I manage, and named three jobs: cleaning up search terms, account audits and reports prepared with an AI assistant. I applied in July, and on July 28 Google confirmed Basic Access by email. It's free and allows 15,000 operations a day.
- Create a Google Cloud project. In Google Cloud Console, create a new project and copy its Project ID. Then open APIs & Services → Library, find Google Ads API and click Enable.
- Create a sign-in key for your computer. In the same project, open APIs & Services → Credentials → Create credentials → OAuth client ID, choose Desktop app and download the JSON file. If Google asks you to set up the consent screen first, fill in the app name and your email.
- Sign in with your Google Ads login. Install the Google Cloud CLI and pipx (a small tool that runs Python programs). Then run this command in Terminal, with the path to the file from step 4:
gcloud auth application-default login \ --scopes https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform \ --client-id-file=PATH_TO_YOUR_JSON_FILE
A browser window opens. Sign in with the Google account that has access to your Google Ads, and allow access. Terminal then prints the path to a credentials file. Copy it. - Add the connector to Claude Code. Run this command, with your three values in place of the capital letters. If you work through a manager account, add its ID without dashes as the fourth line, as in the example:
claude mcp add-json google-ads --scope user '{ "command": "pipx", "args": ["run", "--spec", "git+https://github.com/googleads/google-ads-mcp.git", "google-ads-mcp"], "env": { "GOOGLE_APPLICATION_CREDENTIALS": "PATH_TO_CREDENTIALS_FILE", "GOOGLE_PROJECT_ID": "YOUR_PROJECT_ID", "GOOGLE_ADS_DEVELOPER_TOKEN": "YOUR_DEVELOPER_TOKEN", "GOOGLE_ADS_LOGIN_CUSTOMER_ID": "1234567890" } }' - Check that it works. Restart Claude Code and ask: “What Google Ads accounts do I have access to?” If Claude lists your accounts, reading works. Then try: “How did my campaigns perform this week in account 1234567890?”
- Turn on changes. The connector only reads. For changes, ask Claude to use the Google Ads API library for Python with the same token and the same sign-in. It installs the library, writes a short script for each task and runs it. Your token needs Basic Access for this, as in step 2.
Keep the token and the credentials file to yourself. Anyone who has them can work in your ad accounts.
What I ask it to do
Change a daily budget in a campaign. Exclude the search terms I flagged as irrelevant. Build a new campaign from my brief. Add new ads to an ad group. Before any of it, I ask for the numbers first: how the campaign spent last week, which search terms brought clicks without sales, who changed what in the account and when.
Where it goes wrong
Claude hurries. It finishes the task I gave it, then keeps going and makes changes I didn't ask for, because they looked logical to it. In an ad account that is a real risk: a change you didn't plan can move spend or reset what a campaign has learned.
So I check its work more often than I expected to, and I give it rules up front. The main one sounds like this: don't run ahead, do only what I asked, and tell me what else you would change before you touch it. Then I split the work by risk. Budgets I change myself, or Claude changes them only after my yes. Excluding search terms Claude can do on its own, because a wrong exclusion is easy to spot and easy to undo.
To check, I open the change history in Google Ads and compare it with what I asked for. It lists each change with the time and the user, so anything extra shows up in a minute.
My tip: before Claude makes its first change, write down what it may do alone and what needs your yes. For me, Claude excludes search terms by itself, and budgets stay with me. Then check the change history after each session until you trust the pattern.
I describe the rest of my day with an AI assistant in How I Run Paid Ads With An AI Assistant, and the search terms rules I use in Negative Keywords On Autopilot. If you'd like me to look at your account with you, book an audit.