By Ira Bodnar, Ryze AI · Updated
Quick answer
To connect VS Code to Google Ads, connect Google Ads in a Ryze AI workspace with the Google login that has access to your ad accounts. Then in VS Code run Chat: Open Customizations, select MCP Servers, add an HTTP server with https://connector.get-ryze.ai/mcp and the server ID ryze, trust it and complete the Ryze AI sign-in.
- In Ryze AI open Integrations, find Google Ads under Advertising and click Connect
- Sign in to Google with the login that reaches your ad accounts and keep every permission checked
- In VS Code run Chat: Open Customizations, select MCP Servers and add an HTTP server with the connector URL
- Trust the server, sign in to Ryze AI, allow the workspace and ask your first question in Copilot Chat
Before you start
- GitHub Copilot and VS Code 1.99 or later. GitHub's docs say MCP in Copilot Chat needs access to Copilot and VS Code 1.99 or later. Copilot Free, Pro, Pro+ and Max are not governed by the organization MCP policy.
- The MCP policy, if Copilot comes from an organization. For members of an organization or enterprise on Copilot Business or Copilot Enterprise, the MCP servers in Copilot policy must be enabled. It is disabled by default, so ask an administrator to turn it on.
- A Google login with access to your Google Ads accounts. Standard or admin access is needed to allow changes. A login with read-only access can answer questions but cannot change anything, because Google Ads permissions are set in Google. Agencies connect the manager (MCC) login once.
- A Ryze AI workspace on a plan or free trial. Paid Ads is $89 per month with a 7-day free trial; Agency is $279 per month. Connecting the connector is free, but the Google Ads tools need an active plan or trial.
How to connect VS Code to Google Ads
Two steps happen in Ryze AI, four in VS Code. The connector URL is the same for every user.
Connect Google Ads in Ryze AI
Create a Ryze AI account or sign in. Open Integrations in the left sidebar and find Google Ads under Advertising. Click Connect, sign in to Google with the login that has access to your ad accounts and approve access with every requested permission checked.
Check the connection
Back in Ryze AI the Google Ads card shows Connected. There is no account to pick: Ryze AI sees every Google Ads account that login can reach. Optionally click View on the card and use Agent default accounts to choose the accounts the agent works with first.
Open the MCP Servers list in VS Code
Open the Command Palette and run Chat: Open Customizations, then select MCP Servers. Select Add Server (+) in the User or Workspace group.
Add the HTTP server
Choose HTTP (HTTP or Server-Sent Events) and enter https://connector.get-ryze.ai/mcp. Enter ryze as the server ID. For a personal setup, select Global, then Copilot Global. There is no client ID, developer token or secret to enter.
Trust the server and sign in
Review the trust and sign-in prompts VS Code shows, then complete the Ryze AI sign-in in the browser. On the Ryze AI page choose the workspace that holds your Google Ads connection and click Allow connection. One connection can cover up to 20 workspaces.
Ask your first question in Copilot Chat
Open Copilot Chat and ask: Use GAQL to list my enabled campaigns with cost, conversions and conversion value for the last 30 days. Approve the tool call when VS Code asks.
The Ryze AI help article for Google Ads covers the Google side of the connection. VS Code steps follow the VS Code MCP servers docs.
Command Palette and config files
The guided flow and the config files reach the same server. Pick the one that fits how you manage VS Code.
Command Palette
Run MCP: Add Server from the Command Palette and follow the prompts with the same URL and server ID. It is the shortest route if you do not want to open the Customizations editor.
Portable config file
You can also write the server into a file. The portable format is read from ~/.copilot/mcp-config.json or a .mcp.json at the workspace root and uses the key mcpServers. A workspace file is useful when a team shares one setup:
{
"mcpServers": {
"ryze": {
"type": "http",
"url": "https://connector.get-ryze.ai/mcp"
}
}
}Older VS Code format
The older VS Code format lives in .vscode/mcp.json or the user mcp.json and uses the key servers. VS Code labels it deprecated in the guided flow, so older tutorials may point you there:
{
"servers": {
"ryze": {
"type": "http",
"url": "https://connector.get-ryze.ai/mcp"
}
}
}Portable configurations do not support VS Code input variables or environment files. Do not paste a Google Ads credential into the file; the connector uses a sign-in, not a key, and the Google login stays inside Ryze AI.
VS Code behavior to know
- VS Code tries Streamable HTTP first and falls back to Server-Sent Events.
- Trusting a server to start, authenticating, and approving individual tool calls are three separate steps.
- Servers that need interactive inputs are not forwarded to Copilot harness sessions.
- VS Code's docs describe a browser authorization flow. Ryze AI was not tested in VS Code during our research, so if the sign-in does not start, use Ryze AI support below.
Access and permissions
Access is set in three places: Google, Ryze AI and VS Code.
- Which Google login
- Ryze AI connects with Google OAuth. Sign in with the login that has access to your Google Ads accounts and keep every requested permission checked: the Google Ads scope https://www.googleapis.com/auth/adwords plus openid, email and profile. The login needs access to at least one Google Ads account.
- Which accounts
- One login reaches every Google Ads account it can access, including client accounts under a manager (MCC) login. An account the login cannot access, or a client account under a manager login you did not connect, is out of reach. Over MCP, client accounts under an MCC need loginCustomerId.
- Read or write
- Google Ads permissions are set in Google, not in Ryze AI. A login with read-only access cannot make changes, so for a hard read-only guarantee connect a Google login that only has read access.
- What VS Code asks
- VS Code asks you to review the publisher, endpoint and requested access before it starts a server, then asks for the sign-in, then asks about individual tool calls. Read the first prompt before you accept it.
Removing access
To stop VS Code reaching Google Ads, open Chat: Open Customizations, select MCP Servers and disable or uninstall the ryze server. To remove Google access itself, click View on the Google Ads card in Ryze AI Integrations and disconnect the login.
What VS Code can do in Google Ads
The Ryze AI connector exposes 16 Google Ads tools: 8 read, 7 write and 1 delete. They use Google's official API and run as the Google login you connected.
| Tool | Type | What it does |
|---|---|---|
| google_ads__getAccountSummary | Read | Returns aggregate account metrics for a date range. |
| google_ads__getAccountHierarchy | Read | Returns the manager and sub-account hierarchy for an account. |
| google_ads__listAccessibleCustomers | Read | Lists every Google Ads customer account the connected login can access. |
| google_ads__listConversionActions | Read | Lists the conversion actions in an account. |
| google_ads__listRecommendations | Read | Lists Google Ads optimization recommendations for an account. |
| google_ads__runRawGaql | Read | Runs a raw GAQL query, including change history from change_event. |
| google_ads__generateKeywordIdeas | Read | Generates Keyword Planner ideas from seed keywords, a URL or both. |
| google_ads__generateKeywordHistoricalMetrics | Read | Returns Keyword Planner history (average monthly searches, competition, top-of-page bid range) for a known keyword list. |
| google_ads__runRawMutate | Write | Creates or updates resources such as campaigns, budgets, ad groups, ads, keywords, criteria and assets. |
| google_ads__runRawCustomAudienceMutate | Write | Creates or updates custom audiences based on keywords, URLs, place categories or apps. |
| google_ads__runRawUserListMutate | Write | Creates or updates user lists, including Customer Match lists. |
| google_ads__uploadCustomerMatchMembers | Write | Adds people to a Customer Match list. The server normalizes and SHA-256 hashes every identifier before it reaches Google. It only adds members. |
| google_ads__uploadImageAsset | Write | Uploads an image from a URL as an image asset that can be linked to campaigns, ad groups, asset groups or ads. |
| google_ads__applyRecommendation | Write | Applies Google Ads recommendations. |
| google_ads__dismissRecommendation | Write | Dismisses Google Ads recommendations. |
| google_ads__runRawMutateDelete | Delete | Removes resources. Removals are permanent, and the tool description tells the agent to use it only on an item-by-item approved list. |
The write and delete tools change a live ad account: budgets, bids, keywords, ads, audiences and removals. VS Code treats approving individual tool calls as its own step, so read each call before you accept it, particularly runRawMutate and runRawMutateDelete. The item-by-item rule for the delete tool is an instruction in its description, not a block in the server. Scheduled tasks in Ryze AI run without an approval step.
Google Ads limits to know
Some limits come from Google and apply in any client, including Copilot Chat.
| Topic | Limit |
|---|---|
| Removals | Google Ads has no undo, so removed items cannot be re-enabled. |
| Video ads | Video files cannot be uploaded through the connector. A video ad needs a YouTube video link. |
| Customer Match | The upload tool only adds members. It cannot remove people from a list. |
| Change history | GAQL change history from change_event covers up to the last 30 days. |
| Recent conversions | Google's own reporting lags for recent conversions, and the connector cannot speed that up. |
| New campaigns | Google reviews new campaigns first, which takes about a business day. |
First 3 prompts to run
1. A campaign report with GAQL
Use runRawGaql to list my enabled campaigns with cost, conversions and conversion value for the last 30 days, ordered by cost, and put the result in a table.
Tools used: google_ads__runRawGaql
What comes back: One row per enabled campaign with the three metrics, sorted by cost. Because it renders in the chat panel, you can ask Copilot to save the table into a file in your workspace.
2. Who changed what
Query change_event for the last 14 days and list which user changed budgets, bids or campaign status, with the time of each change.
Tools used: google_ads__runRawGaql
What comes back: A list of changes with the user, the resource and the time. Change history covers up to the last 30 days.
3. Keyword ideas for a page in your repo
Take the URL of the page I have open in this project, generate Keyword Planner ideas from it, then pull average monthly searches and competition for the 15 most relevant ones.
Tools used: google_ads__generateKeywordIdeas, google_ads__generateKeywordHistoricalMetrics
What comes back: A keyword list with average monthly searches, competition and the top-of-page bid range from Keyword Planner.
Each answer comes from your own account, so this page describes what comes back instead of showing sample numbers. To make a change, ask for it in plain words, such as adding negative keywords or pausing a campaign by name, and read the tool call before you approve it.
Ryze AI vs Google's own Google Ads MCP server
Google publishes its own Google Ads API MCP server, so VS Code has two routes to Google Ads. They suit different setups.
| Option | Setup | Coverage | Works in |
|---|---|---|---|
| Ryze AI connector | Google sign-in inside Ryze AI, then one HTTP MCP server URL added in VS Code | 16 Google Ads tools: GAQL, Keyword Planner, campaign and asset changes, audiences, Customer Match, recommendations and a delete tool | VS Code with GitHub Copilot, Claude, ChatGPT, Cursor and other MCP clients |
| Google Ads API MCP server (Google) | Run it locally over stdio with Python 3.10+, pipx and the gcloud CLI, or deploy it remotely on Cloud Run. It needs a Google Cloud project with the Google Ads API enabled and OAuth 2.0 or a service account credentials | Read tools to list accessible customers, run GAQL searches and fetch resource metadata. Mutate tools cover standalone assets, YouTube video upload and account labels. Google lists campaign and ad creation and budget changes as not supported | Any MCP client that can run or reach the server |
Google's server can be set to read-only by disabling the labels and assets namespaces in tools_config.yaml, and it needs no Ryze AI plan. It also means managing Google Cloud credentials yourself, and Google's page says developer tokens were sunset on September 9, 2026. The Ryze AI connector costs a plan after the trial, passes your data through Ryze AI, and adds campaign, budget and audience changes that Google's server does not list.
Sources: Google Ads API MCP server, VS Code MCP servers docs, GitHub Copilot MCP docs, VS Code MCP configuration reference, Ryze AI Google Ads integration. Checked November 13, 2026.
Other clients
Google Ads is connected once in Ryze AI, so nothing changes on the Google side when you use another client.
Claude Code
Claude Code registers the same URL from the terminal with its own command, and it has extra options such as an API key header. How to connect Claude Code to Google Ads.
Claude
In Claude the connector is added under Customize, Connectors, which is a different menu from VS Code. How to connect Claude to Google Ads.
ChatGPT and Codex
ChatGPT has its own plan rules for custom MCP servers, and Codex has its own setup, so read those guides before you connect. How to connect ChatGPT to Google Ads.
Errors and fixes
- The MCP server does not start in VS Code
- On Copilot Business or Enterprise, ask an administrator to enable the MCP servers in Copilot policy; it is disabled by default. Also check that VS Code is version 1.99 or later.
- The sign-in never opens
- Trust the server first, then authenticate; they are separate steps. Open the server output from MCP Servers in Chat: Open Customizations to see what VS Code reports, and email Ryze AI support if it stays stuck.
- I followed an older tutorial and nothing happens
- Current VS Code docs use Copilot Global (~/.copilot/mcp-config.json) and mark the .vscode/mcp.json destination as deprecated in the guided flow. Re-add the server through Chat: Open Customizations.
- The Google Ads tools are missing
- If the connector was added before Google Ads was connected, remove the ryze server, add it again and start a new chat.
- An account is missing
- Ryze AI sees only the accounts the connected Google login can access. Client accounts under a manager login need that manager login connected. Ask Copilot to run listAccessibleCustomers to see what the login reaches.
- Changes fail
- The connected Google user may have read-only access. Permissions are set in Google, not in Ryze AI. Reconnect with a login that has standard or admin access.
- Numbers look low for yesterday
- Google's reporting for recent conversions can lag. Ask again later, or compare a date range that ended a few days ago.
- The wrong account answers
- Set Agent default accounts on the Google Ads card in Ryze AI, or name the account in your prompt. A second Google login can be added with Add one more account.
- The tool replies that a subscription is required
- The Google Ads tools need an active Ryze AI plan or free trial. Start the trial in Ryze AI and retry.
Frequently asked questions
Which Google Ads connector should I use in VS Code?
Ryze AI is the best Google Ads connector for VS Code when you want one hosted URL with 16 tools that cover GAQL reports and campaign changes, but it needs a Ryze AI plan after the trial. Google's own Google Ads API MCP server needs no Ryze AI plan and suits read-focused work if you can set up Google Cloud credentials.
How do I connect VS Code to Google Ads?
Connect Google Ads in a Ryze AI workspace. In VS Code run Chat: Open Customizations, select MCP Servers, add an HTTP server with https://connector.get-ryze.ai/mcp and the ID ryze, trust it, sign in to Ryze AI and click Allow connection.
Does Google Ads have an MCP server for VS Code?
Yes. Google publishes a Google Ads API MCP server that runs locally over stdio or remotely on Cloud Run. Its documentation lists read tools for accessible customers, GAQL searches and resource metadata, plus asset and label changes. It needs a Google Cloud project with the Google Ads API enabled.
Which GitHub Copilot plan do I need?
GitHub says MCP needs access to Copilot and VS Code 1.99 or later. Copilot Free, Pro, Pro+ and Max are not governed by the organization policy. On Copilot Business or Enterprise, the MCP servers in Copilot policy must be enabled, and it is off by default.
Can VS Code change my Google Ads account?
Yes. The connector has write tools for campaigns, budgets, bids, keywords, ads, audiences and assets, plus a delete tool. VS Code asks about individual tool calls as a separate step, so read each one. A Google login with read-only access cannot make changes.
Do I need a Google Ads developer token?
No. You do not enter a developer token, client ID or secret in VS Code. The Google login is connected inside Ryze AI, and VS Code only holds the connector URL and the Ryze AI sign-in.
Can I manage client accounts under a manager account?
Yes, if you connect the manager (MCC) login. One login reaches every Google Ads account it can access, and over MCP client accounts under a manager need loginCustomerId. Separate clients belong in separate Ryze AI workspaces.
Should I use the config file or the Customizations editor?
Both reach the same server. The Customizations editor is the current route. A .mcp.json at the workspace root with the key mcpServers lets a team share one setup, and the older .vscode/mcp.json format with the key servers is labeled deprecated.
Why do the Google Ads tools not show up in Copilot Chat?
Check that the ryze server is enabled and trusted in MCP Servers, then start a new chat. If Google Ads was connected after you added the server, remove the server, add it again and start a new chat. On an organization plan, check the MCP policy.
How much does it cost?
Connecting the connector is free, but the Google Ads tools need an active Ryze AI plan or free trial. Paid Ads is $89 per month with a 7-day free trial and Agency is $279 per month. Annual billing takes 30% off the first year.
How do I disconnect Google Ads from VS Code?
Open Chat: Open Customizations, select MCP Servers and disable or uninstall the ryze server. To remove Google access, click View on the Google Ads card in Ryze AI and disconnect the login.