MCP Ecommerce

Advertising

Google Ads MCP Connector: Setup, URL and Troubleshooting

Updated · 14 min read

Glossy 3D rounded app icon showing the multicolored Google G logo on a dark reflective surface against a black background

The short answer

A Google Ads MCP connector lets Claude or ChatGPT read live Google Ads data through the Model Context Protocol. Google's open-source server is free and read-only, but needs a developer token and OAuth credentials. Hosted third-party connectors use a remote URL and OAuth sign-in, and some can edit campaigns, so check their permissions first.

A Google Ads MCP connector lets an AI assistant such as Claude or ChatGPT read your live Google Ads data. You can ask about spend, conversions, and campaign performance in plain language instead of exporting reports. Google publishes an open-source Google Ads MCP server that is free and read-only, while third-party connectors add hosted setup and, in some cases, the ability to edit campaigns.

The Model Context Protocol is an open standard that gives AI agents a consistent way to connect to external tools. The Google Ads MCP server developer guide describes it as a bridge to the Google Ads API, retrieving and analyzing campaign data from natural language requests.

For online store owners and agencies, the practical questions are which option fits your accounts, what credentials you need, and how to fix a Google Ads MCP connection that isn't working. This guide covers setup with Claude and ChatGPT, querying data, and managing write access safely.

Key Takeaways

  • Google's official MCP server reads Google Ads data but cannot change campaigns.
  • You need a developer token and OAuth credentials before connecting an AI client like Claude.
  • Hosted connectors simplify setup and may allow edits, so limit write access carefully.

What the Official Server Can, and Cannot, Do

The official Google Ads MCP server gives your AI assistant read access to campaign data through a small set of tools built around GAQL queries. It can audit and analyze your Google Ads account, but it can't pause campaigns, change bids, or edit budgets.

How the Server Connects AI Assistants to the Google Ads API

The Model Context Protocol is an open standard for connecting large language models to outside data. Google's server acts as a standardized bridge to the Google Ads API, so you can ask questions in plain language and get answers based on live account data.

You run the server yourself. The code is published in the official googleads GitHub repository, where a tools_config.yaml file lets you turn individual tools or tool groups on or off.

Setup requires three credentials:

  • A Google Ads API developer token
  • OAuth credentials or Application Default Credentials
  • A login customer ID if you access accounts through a manager (MCC) account

Once configured, any MCP-compatible client can connect. Guides cover setup for Claude Code and Claude Desktop, and other walkthroughs cover Cursor configuration and Cloud Run deployment. ChatGPT support depends on whether your plan and client allow custom MCP connectors.

If your Google Ads MCP isn't working, check these first:

  1. Whether your developer token is approved
  2. Whether OAuth scopes include Google Ads access
  3. Whether the login customer ID is set correctly

Built-In Tools for Account Discovery, Queries, and Metadata

The server exposes three tools: list_accessible_customers, search, and get_resource_metadata. Each one covers a different step in reading your data.

Tool What it does Typical use
list_accessible_customers Returns the customer IDs your credentials can reach Finding which client accounts an agency login covers
search Runs GAQL (Google Ads Query Language) queries Pulling spend, conversions, ROAS, or search terms
get_resource_metadata Describes fields and resources available for queries Helping the model write valid GAQL

In practice, your assistant writes the GAQL for you. You might ask which Shopping campaigns had the highest cost per conversion last month. The model builds the query, runs search, and summarizes the results.

Why the Official Server Is Read-Only

Google's documentation states that the current release is strictly read-only. No tool on the server can create, modify, or remove anything in your account.

This design limits risk. A language model that misreads a prompt can't raise a daily budget or delete an ad group. For agencies managing many client accounts, that boundary is a practical reason to connect the server.

The trade-off is that every recommendation still needs a person or another tool to apply it. Third-party vendors offer hosted, write-capable connections for Claude, ChatGPT, and other clients if you need changes made directly. Before using one, review its permissions, approval steps, and change logs.

Choose Between Self-Hosted and Hosted Options

Google's official server gives you read-only reporting that you control, but you handle credentials and hosting yourself. Hosted connectors reduce setup to an OAuth sign-in and often add write access, so you'll need to evaluate the provider's safety controls and data handling.

When to Use Google's Open-Source Server

Use Google's official google ads mcp server when you only need to read data and want credentials to stay on your own systems. It's a read-only, self-hosted server built around GAQL queries, so it can't pause campaigns or change bids.

You need a developer token, OAuth client credentials, and a refresh token. It runs locally with Claude Desktop or other MCP clients. You can also deploy it on Google Cloud Run to share one instance across several agents.

It fits these cases:

  • Agencies with engineers who already manage Google Ads API access
  • Merchants who want reporting and analysis without automated edits
  • Teams with strict policies against third-party token storage

How Hosted Connectors Differ on Setup, Tools, and Write Access

A hosted mcp connector usually replaces manual credential setup with a single "connect account" step. The provider then holds and rotates your tokens. You paste a remote mcp endpoint into your client, and most use streamable HTTP, which works for google ads mcp claude and google ads mcp chatgpt setups.

Factor Official server Hosted connector
Setup Developer token, OAuth, config files OAuth sign-in
Access Read-only Often read and write
Platforms Google Ads only Some add Meta and others

Write access varies. One comparison found that only four of ten servers can change campaigns. Some vendors, such as GoMarble, bundle Google with other ad platforms in one connection, which can help if you also use a meta ads mcp.

What to Check Before Trusting a Third-Party Provider

A connector with write access can spend your budget. Review it as you would any tool with account permissions.

Check these points:

  • Approval steps: Does the server require confirmation before it changes bids, budgets, or status?
  • Scope: Can you restrict it to specific customer IDs or to read-only mode?
  • Token handling: Where are refresh tokens stored, and can you revoke them?
  • Audit logs: Can you see which agent made each change?

Independent reviews compare servers on safety mechanisms and trust factors. Community packages such as mcp-google-ads on GitHub deserve the same code and permission review.

If your google ads mcp setup isn't working, check that your developer token is approved, your OAuth scope includes Google Ads, and your login customer ID matches the manager account.

Prepare Account Access and API Credentials

Before any AI client can query your campaigns, you need a Google Ads account hierarchy you can reach, a Google Cloud project tied to an approved developer token, and OAuth or service account credentials with the right scope. Mistakes in these three areas cause most "Google Ads MCP not working" reports in Claude, ChatGPT, and Gemini setups.

Confirm Customer and Manager Account Access

Start by identifying which Google Ads accounts the MCP server should read. Each account has a 10-digit customer ID, shown in the top-right corner of the Google Ads interface.

Agencies usually work through a Google Ads manager account (MCC). If you access client accounts through an MCC, the API requires a login customer ID, the manager account's ID, alongside the client ID you query.

Check these points first:

  • Your Google user has at least read access to every target account.
  • Client accounts are actually linked under your MCC, not just shared by email.
  • You know which ID is the manager and which is the client.

A wrong or missing login customer ID typically returns a USER_PERMISSION_DENIED error. It's a frequent cause of failed queries.

Create a Cloud Project and Obtain a Developer Token

The MCP server calls the Google Ads API, which runs inside a Google Cloud project. In the Google Cloud Console, create or select a project, note its project ID, and enable the Google Ads API. According to one setup walkthrough, a Cloud project can use only one developer token, so avoid reusing a project linked to a different token.

The Google Ads developer token has traditionally been found in the API Center of a manager account. Google's help documentation now describes applying for Google Ads API access through the Cloud Console, so check which flow applies to your account.

The official quick start guide covers the full sequence of token, project, and account configuration.

Configure OAuth Credentials and Review Access Levels

You can authenticate with either a user identity or a service account:

Method Best for Key requirement
OAuth client ID (Desktop app type) Individual users in Claude Desktop or Gemini CLI Completing OAuth authorization with the adwords scope
Service account Shared or server-side agents Adding the service account email as a user in Google Ads

With OAuth, you sign in once and exchange an OAuth 2.0 authorization code for a refresh token. Many guides use Application Default Credentials, as described in this beginner setup for google-ads-mcp. The authentication setup reference for the official server details both paths, and Google lists which MCP clients support which authentication methods.

In the Cloud project, grant only the IAM roles and permissions needed to manage credentials. Also review your token's access level:

  • Test Account Access: test accounts only; production data is blocked.
  • Basic Access: production accounts with a daily operation limit.
  • Standard Access: higher limits for larger tools.

A token without production approval returns DEVELOPER_TOKEN_NOT_APPROVED when you query live accounts.

Install the Server and Connect an AI Client

The official Google Ads MCP server runs locally through pipx and needs a developer token plus Google Cloud credentials. Hosted connectors skip that setup and use a remote URL with an OAuth sign-in.

Install and Configure the Official Server

Google publishes the source code in the googleads/google-ads-mcp GitHub repository. Most setups launch it with pipx, which runs the Python package in an isolated environment. That keeps it from conflicting with other Python tools on your machine.

Before you launch it, gather these items:

Requirement Purpose
Google Ads API developer token Authorizes API calls
Google Cloud project ID Holds your OAuth configuration
Application Default Credentials Authenticates your Google account
Login customer ID (optional) Needed for manager (MCC) accounts

You pass these values as environment variables in your client's config file. The Google Ads MCP developer integration guide explains each credential. The server is read-only, so it can query campaign data but can't change bids or budgets.

Add the Server to Claude Desktop, Claude Code, or Cursor

Each client reads MCP settings from a different location:

  • Claude Desktop: Add a google-ads-mcp entry under mcpServers in claude_desktop_config.json, then fully restart the app.
  • Claude Code: Register the server with the claude mcp add command, or add it to a project .mcp.json file.
  • Cursor: Add the same JSON block to .cursor/mcp.json in your project or home directory.

Each entry sets the command to pipx, the package arguments, and an env block with your credentials.

If the Google Ads MCP is not working, check these common causes first:

  1. pipx is not on the PATH that the client uses.
  2. The developer token only has test-account access.
  3. The login customer ID is missing for a manager account.

Connect Hosted Endpoints to Other Compatible Clients

Hosted connectors are remote servers that you add by URL. For example, Ryze offers a hosted Google Ads MCP endpoint with OAuth sign-in that requires no developer token or Cloud project. Pipboard's Google Ads connector adds write actions for campaigns, keywords, and bids.

Where you add a remote MCP connection depends on the client:

Client Where to add it
Claude AI (web) Settings → Connectors → custom connector
ChatGPT Connectors with developer mode enabled
Gemini CLI mcpServers in ~/.gemini/settings.json
Codex [mcp_servers] table in ~/.codex/config.toml

Plan availability and menu names change over time, so check each client's current documentation. Before granting OAuth access, review whether the vendor's tools can edit your account or only read data.

Query Campaign Data and Turn Results Into Insights

A Google Ads MCP server works best when you confirm which accounts and fields are available, write precise GAQL queries, and check search terms, budgets, and conversion actions. Taking these steps reduces errors and helps keep your Google Ads API quota usage low.

Find Accessible Customer IDs and Valid Reporting Fields

Start each session by asking the AI to run list_accessible_customers. It returns the customer IDs your OAuth credentials can reach. Agencies working under a manager (MCC) account often see dozens of IDs, so name the specific client account in your prompt.

Next, use get_resource_metadata to check which fields, metrics, and segments a resource such as campaign or ad_group supports. That helps avoid queries with fields that aren't valid for the resource.

The official Google Ads MCP server developer guide explains how this setup gives AI agents access to campaign data. If your Google Ads MCP is not working, check these items first:

  • Developer token approval level
  • The login-customer-id value for manager accounts
  • Expired OAuth refresh tokens

Write GAQL Queries for Campaign and Ad Group Performance

The Google Ads Query Language (GAQL) uses a SQL-like syntax. In Claude or ChatGPT, you can ask in plain language and the model will write the query for you. Still, read the generated query before trusting the numbers.

Goal Resource Useful fields
Campaign performance campaign metrics.cost_micros, metrics.conversions, metrics.clicks
Ad group comparison ad_group metrics.ctr, metrics.average_cpc
Date trends any segments.date

Always include a date range, such as DURING LAST_30_DAYS. Cost values are returned in micros, so divide by 1,000,000. Guides on how to connect Google Ads to Claude note that the LLM queries your account directly, making a clear query scope important.

Investigate Search Terms, Budgets, and Conversions

For search campaigns, query search_term_view to find irrelevant terms that cost money but don't convert. Add them as negative keywords in the Google Ads interface, since the official server is read-only.

Check campaign budgets with campaign_budget.amount_micros. Compare this field with daily spend to find campaigns that are limited by budget. Vendors such as CData describe using an MCP server to identify campaign inefficiencies and budget allocation issues.

Then review conversion actions with conversion_action.name and segments.conversion_action. Duplicate or incorrectly configured purchase actions can inflate your reported ROAS.

Large queries count against your Google Ads API quota. Basic access allows 15,000 operations per day, so ask the AI to filter results with LIMIT and WHERE clauses.

Manage Write Access and Resolve Connection Problems

Google's official server only reads data. Campaign edits, budget changes, and Customer Match uploads have to go through a third-party connector with explicit permissions. Most failures come down to OAuth credentials, developer token status, manager account access, or invalid GAQL queries.

Separate Read-Only Reporting From Third-Party Write Actions

The official Google Ads MCP server on GitHub is built for reporting. It lets Claude, ChatGPT, or another MCP client run GAQL queries and list accessible accounts, but it can't change anything in your account.

If you want an agent to edit campaign budgets, add negative keywords, or pull Keyword Planner ideas, you'll need a separate tool:

Option Access model
Official Google server Read-only GAQL queries
InsightfulPipe Read Only or Read + Write permissions chosen at connection
Boomi Agents can create, update, or remove campaigns
Google Cloud Integration Connectors Entity operations that depend on the connected tool

A practical setup is to use the official server for daily reporting and connect a write-enabled tool only to accounts that need it.

Protect Sensitive Audiences and Require Approval for Changes

Customer Match lists contain hashed emails and phone numbers. Give contact-list write access only to connectors whose data handling you've reviewed, and confirm your customer consent covers that use.

To reduce the risk of unwanted changes:

  • Connect write-enabled tools to individual client accounts, not the whole Google Ads manager account, when the tool allows it.
  • Tell the agent to show proposed budget or bid changes before it applies them.
  • Check the account's change history after each agent session.
  • Revoke the app's OAuth authorization in your Google account settings when a project ends.

Agencies should agree on approval rules with each client before turning on write access.

Diagnose Authentication, Account Visibility, and Query Errors

When the Google Ads MCP server isn't working, check these points in order:

  1. Credentials: Make sure GOOGLE_APPLICATION_CREDENTIALS points to your ADC JSON file, or that default ADC was set up through gcloud.
  2. Developer token: A Google Ads developer token with test-level access works only with test accounts. You need Basic or Standard access to query production data.
  3. Account visibility: If client accounts are missing, confirm that the signed-in user has access through the manager account and that the login customer ID matches that manager.
  4. Query errors: Invalid GAQL fields or resource combinations return errors. Ask the agent to rewrite the query using fields valid for that resource.
  5. Quota: Large or repeated queries can exceed your Google Ads API quota. Narrow the date ranges or schedule fewer requests.

For problems with conversion or offline data uploads, the data source diagnostics tool in Data Manager reports the status of each connection.

Frequently asked questions

+Does Google Ads support an MCP connector?

Yes. Google maintains an official [Google Ads MCP server for developers](https://developers.google.com/google-ads/api/docs/developer-toolkit/mcp-server) that connects AI agents to the Google Ads API through the Model Context Protocol. It's open source, and Google publishes demos and issue tracking on GitHub. Third-party vendors also offer hosted connectors. These work with clients such as Claude, ChatGPT, Microsoft Copilot, and Gemini, and many don't require you to run a server yourself.

+What can an MCP connector do with Google Ads?

An MCP connector lets you ask questions about your account in plain language instead of building reports manually. Common tasks include: - Pulling spend, clicks, conversions, and ROAS by campaign, ad group, or date range - Comparing performance week over week or month over month - Finding search terms with high cost and no conversions - Flagging campaigns that are limited by budget - Summarizing results across multiple client accounts for agencies Tools like the [inuware connector for analyzing campaigns, costs, and ROAS](https://inuware.com/en/connectors/google-ads-mcp) focus on this kind of reporting. There is one limitation to keep in mind. Claude doesn't act on its own when something changes in your account. As [Carly explains about Claude and campaign triggers](https://www.usecarly.com/blog/claude-google-ads-integration/), the connector responds only when you send a prompt, so automated alerts require a separate scheduling or automation layer.

+How do I connect Google Ads to an MCP client?

The steps depend on the connector type. **Hosted connectors (simplest option):** 1. Copy the connector URL from the vendor. 2. In Claude or ChatGPT, open **Settings → Connectors** and add the URL. 3. Sign in with the Google account that has access to your Ads account. 4. Approve the requested permissions. Opus Growth describes this flow, noting that you can [add the same connector URL in Claude or ChatGPT](https://opus-growth.com/blog/how-to-connect-google-ads-to-claude-or-chatgpt/) with nothing to install. Custom connectors may require a paid Claude or ChatGPT plan, depending on the plan and vendor. **Self-hosted official server:** Install the server locally or on your own infrastructure, add your API credentials, and register it in an MCP client such as Claude Desktop, Claude Code, or Gemini CLI. Follow Google's documentation for the configuration rather than copying commands from unofficial blog posts. **If your Google Ads MCP connection is not working,** check these common causes: - Your developer token has only test access, which can't query live accounts - The `login-customer-id` is missing or wrong for a manager (MCC) account - The OAuth refresh token has expired or was revoked - The Google Ads API is not enabled in your Google Cloud project - The signed-in Google account lacks access to the target customer ID

+What credentials are required to use Google Ads through MCP?

For the official server, you need: - A **Google Ads developer token**, requested from a manager account's API Center - A **Google Cloud project** with the Google Ads API enabled - **OAuth 2.0 credentials** or a service account for authentication - Your **customer ID**, plus a login customer ID if you access accounts through a manager account Soku's guide covers [setup with a developer token and OAuth](https://soku.ai/blog/google-ads-mcp-guide) in detail. Basic or Standard access on the developer token is needed to work with production accounts. Hosted connectors usually handle the developer token on their side. You sign in with Google OAuth, so you don't share your password.

+Which MCP connector is best for Google Ads?

The right choice depends on your technical resources and how many platforms you manage. | Option | Best fit | Notes | | --- | --- | --- | | Google official MCP server | Developers and technical teams | Free, open source, read-only, requires your own API credentials | | Opus Growth | Merchants wanting quick setup in Claude | Hosted, OAuth sign-in, [six-step Claude setup](https://opus-growth.com/blog/how-to-connect-google-ads-to-claude/) | | inuware | Teams using several AI clients | Works with Claude, ChatGPT, Copilot, and Gemini | | MCP Ads | Agencies running many channels | Covers Google Ads, Meta, LinkedIn, TikTok, GA4, and Search Console, with [3,363 marketing tools](https://mcp-ads.com/docs) | | Ryze | Users connecting broader marketing stacks | Offers a [guide to Claude MCP connectors](https://www.get-ryze.ai/blog/claude-mcp-connector) beyond ads | If you need data from Meta as well, review [how the official Meta Ads MCP compares to third-party options](https://adadvisor.ai/blog/facebook-ads-mcp). Before connecting a vendor, check its OAuth scopes, data retention policy, and whether it stores your account data.

+Can an MCP connector manage Google Ads campaigns or only read performance data?

Google's official server is read-only. It can list accessible accounts and run GAQL queries, but it can't change bids, budgets, keywords, or ads. Some third-party connectors add write actions, like pausing campaigns or adjusting budgets. If you use one, require explicit approval before any changes go live. Practitioners who [run Meta and Google Ads with Claude using approve-first guardrails](https://socialmasla.com/blog/run-meta-google-ads-with-claude-mcp/) recommend starting read-only. Grant write access only after you've checked the AI's recommendations against your own analysis for a while.

Sources

Questions and answers

Questions readers and searchers ask about this guide, answered by the site editor from the vendor documentation, plus reader experience. Every comment is reviewed before it appears.

Ask a question or share what worked

Reviewed before publishing. One link max, no HTML.

Keep reading