[Connect AI to your data](/about/connect-ai-to-marketing-data) November 13, 2026

# Connect ChatGPT to Google Ads: three official routes

Bring Google Ads data into ChatGPT through BigQuery, Google’s MCP server as a custom app, or Codex, and see which plan each route needs.

![](/images/65d75b0ae8d69ef95785a5d6_david-pombar.webp)

**[David Pombar](/authors-guides/david-pombar)** Swiss army knife at Trackingplan

8 min read · 1719 words

> **TL;DR** ChatGPT has no documented Google Ads app, so you bring the data in one of three official ways. The lightest for most teams: Google’s BigQuery data transfer copies Google Ads into BigQuery every day, and ChatGPT’s BigQuery plugin queries it. For live access, deploy Google’s Google Ads MCP server on Cloud Run and add it as a custom MCP server, which needs ChatGPT Business, Enterprise or Edu (Pro gets read and fetch only). Developers can run the same server locally for Codex. Whichever route you use, add Trackingplan MCP before you act on the answers: it tells ChatGPT whether the conversion signals behind each campaign are sound, so you don’t spend on a broken tag.

The three routes differ in who sets them up, how fresh the data is, and what ChatGPT can touch. Pick by those three. If you also use Claude, [the Claude version](/guides/connect-claude-to-google-ads) covers Claude Code and claude.ai connectors. This guide is part of a series on [connecting AI assistants to marketing data](/guides/connect-ai-to-marketing-data).

![High warehouse racks stacked with wrapped boxes on pallets, each shelf labelled with a location code](/images/connect-chatgpt-to-google-ads-warehouse.jpg)

A warehouse holds what was delivered to it, labels and all. Image: Shixart1985, Wikimedia Commons, CC BY 2.0

![Diagram of three routes from Google Ads to ChatGPT: a daily BigQuery transfer read by the BigQuery plugin, Google’s MCP server on Cloud Run added as a custom MCP server, and the server run locally for Codex](/images/connect-chatgpt-to-google-ads-routes.webp)

## Copy Google Ads into BigQuery, then ask the BigQuery plugin

This route suits a team that already has a Google Cloud project and would rather not run a server. The data is daily. [Google’s BigQuery documentation](https://docs.cloud.google.com/bigquery/docs/google-ads-transfer) says a Google Ads transfer runs at most once every 24 hours, and re-reads the last 7 days by default, a refresh window you can set from 1 to 30.

1.  Get the **BigQuery Admin** role on the project, and read access to the Google Ads account or to the manager account that holds it.
2.  In the Cloud console, open **Data transfers** and click ** Create transfer**.
3.  For **Source**, choose ** Google Ads**, and enter the ** Customer ID**. A single transfer on a manager account covers up to 8,000 client accounts, and Google recommends that over one transfer per account.
4.  Backfill as far as Google Ads retention allows, if you want history.
5.  In ChatGPT, open **Settings > Plugins**, select ** BigQuery**, then ** Install plugin** and ** Connect**, and approve the Google permissions.
6.  In a chat, type `@BigQuery` and ask about the dataset.

The plugin is built by OpenAI, and [OpenAI’s plugin page](https://openai.com/business/plugins/bigquery/) says availability depends on your plan and workspace settings, and some connections need an admin to approve them. Connecting doesn’t grant new access: a dataset you can’t open in BigQuery stays closed in ChatGPT.

The upside is SQL over clean tables with dates you control. The downside is a day of lag, and a schema to learn: the transfer writes Google Ads API reports as tables, not the views you see in the Google Ads interface.

## Add Google’s MCP server to ChatGPT

This is the route for live account data, with each person signing in to Google as themselves. It depends on your plan. [OpenAI’s help center](https://help.openai.com/en/articles/12584461) says full MCP support is for Business and Enterprise/Edu on ChatGPT web. “Pro users can connect custom MCP servers with read/fetch permissions.” There is no mobile setup, and deep research uses custom apps for read and fetch actions only. On Business, only admins and owners create and publish these plugins; on Enterprise and Edu, admins can grant **Create plugins with MCPs** to selected members.

On the Google side, following [Google’s Google Ads MCP server page](https://developers.google.com/google-ads/api/docs/developer-toolkit/mcp-server):

1.  Create an OAuth client of type **Web application** and add `https://chatgpt.com/connector_platform_oauth_redirect` as an authorized redirect URI.
2.  Add the `https://www.googleapis.com/auth/adwords` scope under **APIs & Services > OAuth consent screen > Data Access**. While the screen is in ** Testing**, list each user under ** Audience > Test users**.
3.  Build the image, deploy it to Cloud Run with the client ID and secret, then set `GOOGLE_ADS_MCP_BASE_URL` to the service URL. Never deploy with `--allow-unauthenticated` and without the OAuth variables: the server would fall back to the container’s own credentials.

Then in ChatGPT:

1.  Go to **Plugins**, select ** +**, then ** Add custom MCP server**.
2.  Enter a name. Under **Connection**, paste the service URL with `/mcp` at the end.
3.  Configure OAuth with the client ID and secret from step 1.
4.  Tick **I understand and want to continue**, then select ** Create as a plugin** and review the tools it found.
5.  Start a new conversation, type `@` and pick the plugin.

## Run the server locally for Codex

For developers and technical analysts who already work in Codex, this skips hosting altogether. Generate Application Default Credentials with the Google Ads scope (the `gcloud auth application-default login` command is on Google’s page), then add the server. The syntax is from [OpenAI’s Codex MCP docs](https://developers.openai.com/codex/mcp):

```
codex mcp add google-ads-mcp \
  --env GOOGLE_CLOUD_PROJECT=PROJECT_ID \
  --env GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_CREDENTIALS_JSON \
  -- pipx run --spec google-ads-mcp==0.0.6 google-ads-mcp
```

Or write it by hand in `~/.codex/config.toml`:

```
[mcp_servers.google-ads-mcp]
command = "pipx"
args = ["run", "--spec", "google-ads-mcp==0.0.6", "google-ads-mcp"]

[mcp_servers.google-ads-mcp.env]
GOOGLE_CLOUD_PROJECT = "PROJECT_ID"
GOOGLE_APPLICATION_CREDENTIALS = "PATH_TO_CREDENTIALS_JSON"
```

OpenAI says the ChatGPT desktop app, the Codex CLI and the IDE extension share this configuration, so you set it once.

## The access every MCP route needs

The MCP server and Codex routes call the Google Ads API, and since September 9, 2026 that access belongs to a Google Cloud project. [Google’s access levels page](https://developers.google.com/google-ads/api/docs/api-policy/access-levels) says developer tokens “were sunset” that day. Enabling the API gives **Test** access, which only reaches test accounts. For real accounts, apply for ** Explorer** from the API’s overview page in the Cloud console (** Upgrade access level > Apply for access**): it allows 2,880 operations a day, and Google may approve it automatically. ** Basic** (15,000 a day) needs brand verification first, and ** Standard** has no daily cap after a manual audit. Skip this and every call returns `CLOUD_PROJECT_NOT_APPROVED_FOR_PRODUCTION`.

## What ChatGPT can change

Through the MCP routes, ChatGPT can query anything Google Ads Query Language reaches, and change three things: assets, video uploads (local only) and labels. Each change is proposed as a dry run first and committed only after you confirm. Budgets, bids and campaign status have no tool. For a read-only server, set `labels: false` and `assets: false` in `tools_config.yaml` and keep the read categories listed.

On the ChatGPT side, app permissions decide when it asks: **Always ask** is the cautious setting, ** Allow read actions** lets queries run without a prompt. The BigQuery route can’t touch the Google Ads account at all: it works on a copy.

If your team lives in Google’s tools instead, [Google’s Gemini Apps help](https://support.google.com/gemini/table/17434654) lists Google Ads as a connected app in Gemini, for personal Google accounts and in English only.

## A fourth route: Trackingplan MCP, so you don’t spend on bad data

The three routes above give ChatGPT the conversions Google Ads reports. None of them says whether those conversions are real. A purchase tag that lost its trigger, an order counted by two tags, a gclid stripped by a redirect: ChatGPT will still recommend where to put the budget, and Smart Bidding will keep learning from the same broken signal.

Trackingplan watches those signals continuously, on real traffic. It checks every conversion, UTM and consent signal, spots where value is missing or a purchase is counted twice, and quantifies each gap in money before bidding acts on it. It keeps watching attribution as well: when auto-tagging or a UTM breaks, the campaigns credited to the wrong source show up right away.

To make the signal better, not just watched, its audits check what each conversion tag receives, scheduled daily or weekly or on demand, and end with the fix to ask for in GTM.

With [Trackingplan MCP](/docs/mcp-endpoint), ChatGPT gets that evidence next to spend, clicks and reported conversions per campaign from Google Ads and ten other ad networks: Meta Ads, LinkedIn Ads, TikTok Ads, Snapchat Ads, Pinterest Ads, Microsoft Ads, X Ads, Amazon Ads, Apple Search Ads and Reddit Ads. No warehouse or Cloud project: an admin connects the accounts once ([Ad Platforms](/docs/ad-platforms)). It reads; it never changes a campaign.

## What to ask once it’s connected

-   **BigQuery:** “@BigQuery Using the Google Ads transfer dataset, show cost, conversions and cost per conversion by campaign for the last 90 days, by week.”
-   **BigQuery:** “Which campaigns spent more this month than last while conversions fell? Explain the SQL.”
-   **MCP:** “Which search terms cost more than 50 in the last 14 days without a conversion?”
-   **MCP:** “Compare conversions by device for my top five campaigns, this week against last.”
-   **Codex:** “Write a GAQL query for asset performance by ad group, run it, and save the result as a CSV.”

Ask it to show the query each time. With a transfer schema or GAQL, the wrong table or date filter is the most common reason an answer looks odd.

## Before you trust the answers

Whichever route you pick, ChatGPT ends up with Google’s reported conversions. A conversion action that lost its tag, an order counted by two tags, a consent update that drops signals on one browser: Google Ads reports all of them as conversions or their absence, and ChatGPT builds a confident analysis on top. [This post on conversion accuracy](/blog/are-my-google-ads-conversions-accurate) covers what to check by hand.

An AI agent can only reason about what it can see. With [Trackingplan MCP](#a-fourth-route-trackingplan-mcp-so-you-don-t-spend-on-bad-data) in the same chat, the question about a number and the question about its tracking get answered together.

## FAQ

### How can I use ChatGPT with my Google Ads data?

Three official routes. Send Google Ads to BigQuery with Google’s data transfer and query it with ChatGPT’s BigQuery plugin. Deploy Google’s Google Ads MCP server on Cloud Run and add it to ChatGPT as a custom MCP server. Or run the same server locally for Codex.

### Which ChatGPT plan do I need for a custom MCP server?

Business, Enterprise or Edu for full support, on ChatGPT web. Pro users can connect custom MCP servers with read and fetch permissions only. Custom MCP servers can’t be added from mobile.

### Does ChatGPT have a Google Ads app?

OpenAI’s help center doesn’t document one. Google’s own instructions connect ChatGPT through a custom connector pointing at the Google Ads MCP server you deploy.

### Can ChatGPT edit my Google Ads campaigns?

Not budgets, bids or campaign status. Google’s server can create assets, upload videos and manage labels, after a propose-and-confirm step, and it can run read-only. The BigQuery route works on a copy and never reaches the account.

Part of[Connect Claude or ChatGPT to your marketing data](/guides/connect-ai-to-marketing-data)

On this page

1.  [*01*Copy Google Ads into BigQuery, then ask the BigQuery plugin](#copy-google-ads-into-bigquery-then-ask-the-bigquery-plugin)
2.  [*02*Add Google’s MCP server to ChatGPT](#add-google-s-mcp-server-to-chatgpt)
3.  [*03*Run the server locally for Codex](#run-the-server-locally-for-codex)
4.  [*04*The access every MCP route needs](#the-access-every-mcp-route-needs)
5.  [*05*What ChatGPT can change](#what-chatgpt-can-change)
6.  [*06*A fourth route: Trackingplan MCP, so you don’t spend on bad data](#a-fourth-route-trackingplan-mcp-so-you-don-t-spend-on-bad-data)
7.  [*07*What to ask once it’s connected](#what-to-ask-once-it-s-connected)
8.  [*08*Before you trust the answers](#before-you-trust-the-answers)
9.  [*09*FAQ](#faq)

**Stop babysitting tags**

Trackingplan audits your real user data around the clock and flags issues before they cost you.

[Start free trial →](https://app.trackingplan.com/signup)

![](/images/65d75b0ae8d69ef95785a5d6_david-pombar.webp)

**David Pombar** Swiss army knife at Trackingplan

Read more from David, a Senior Product Strategist with 18+ years in digital product development and an atypical error detection knack.

Share Copy link [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.trackingplan.com%2Fguides%2Fconnect-chatgpt-to-google-ads) [X](https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.trackingplan.com%2Fguides%2Fconnect-chatgpt-to-google-ads&text=Connect%20ChatGPT%20to%20Google%20Ads%3A%20three%20official%20routes)

Read next

[All Guides →](/guides)

-   [
    
    9 minConnect AI to your dataNovember 13, 2026
    
    ### Connect Claude to Google Ads with Google’s MCP server
    
    Run Google’s Google Ads MCP server for Claude Code or as a claude.ai connector, with the Cloud project access that replaced developer tokens.
    
    by **David Pombar**](/guides/connect-claude-to-google-ads)
-   [
    
    7 minConnect AI to your dataNovember 13, 2026
    
    ### How to connect GA4 to ChatGPT: three routes
    
    Add Google’s Analytics MCP server to ChatGPT as a custom MCP server, query the GA4 BigQuery export, or upload a report, with the plan each route needs.
    
    by **David Pombar**](/guides/connect-ga4-to-chatgpt)
-   [
    
    7 minConnect AI to your dataNovember 13, 2026
    
    ### Connect BigQuery to Claude: connector, roles and cost caps
    
    Add Google’s BigQuery connector to Claude or run MCP Toolbox on your machine, with read-only roles and a cap on what each query can scan.
    
    by **David Pombar**](/guides/connect-bigquery-to-claude)

Trackingplan

## See everything. Miss nothing.

Your implementations audited around the clock with real-time, real-user data. Real-time alerts about errors or changes in your data, campaigns, pixels, privacy and consent. Let AI flag issues before they cost you.

[Start free trial →](https://app.trackingplan.com/signup) [Book a demo](/demo)
