Documentation
Everything you need to manage Google Ads from your AI tool.
On this page
Quick Start
Sign up & subscribe
Create an account and choose a plan at www.adwhiz.ai/pricing. All plans include every tool — the difference is API call volume and the number of Google Ads accounts you can connect.
Connect Google Ads
Go to www.adwhiz.ai/connect and authorize your Google Ads account via Google OAuth. AdWhiz only requests read and write access through the official Google Ads API. You can revoke access at any time from your Google Account settings.
Add to your AI tool
AdWhiz works with any tool that supports the MCP protocol — Claude Code, Cursor, Windsurf, OpenClaw, Copilot, Gemini CLI, and more. Two authentication methods are available:
Browser sign-in (MCP OAuth)
Just add the server URL — no API key needed. Your MCP client will open a browser window where you sign in with Google and approve the connection. Tokens are managed automatically.
Quick install
Paste this into any AI coding tool (Claude Code, Codex CLI, Gemini CLI, etc.) and it will set up the MCP server for you:
Add the AdWhiz Google Ads MCP server to my project. Server URL: https://mcp.adwhiz.ai/mcp Type: streamable-http
Manual configuration
{
"mcpServers": {
"adwhiz": {
"type": "streamable-http",
"url": "https://mcp.adwhiz.ai/mcp"
}
}
}On first use, your AI tool will open adwhiz.ai/oauth/consent in your browser. Sign in with Google and click “Authorize” to complete the connection.
Alternative: API key
If your MCP client does not support OAuth, create an API key from the dashboard and pass it in the Authorization header:
{
"mcpServers": {
"adwhiz": {
"type": "streamable-http",
"url": "https://mcp.adwhiz.ai/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Replace YOUR_API_KEY with the key from your dashboard. Restart your AI tool after saving the config file.
OpenClaw Setup
AdWhiz is available as an OpenClaw skill. Install it via ClawHub for auto-configuration, or add the MCP server to your openclaw.json manually. Both paths give your agents access to all 47 tools.

Install the AdWhiz skill (recommended)
The fastest way to get started is via ClawHub. This auto-configures the MCP server, prompts you for your API key, and provides agent instructions for all 47 tools.
clawhub install adwhiz
Requires Node.js installed for the npx-based MCP server. The skill prompts you for your ADWHIZ_API_KEY during installation.
Or configure openclaw.json manually
If you prefer manual setup, add the AdWhiz MCP server directly to your openclaw.json. Two transport options are available:
Option A: HTTP with OAuth (recommended)
{
"mcpServers": {
"adwhiz": {
"transport": "http",
"url": "https://mcp.adwhiz.ai/mcp"
}
}
}No API key needed — a browser consent page will open automatically on first connection.
Option B: HTTP with API key
{
"mcpServers": {
"adwhiz": {
"transport": "http",
"url": "https://mcp.adwhiz.ai/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}For clients that don’t support OAuth. Get your API key from the dashboard.
Option C: stdio (local via npx)
{
"mcpServers": {
"adwhiz": {
"command": "npx",
"args": ["-y", "@adwhiz/mcp-server"],
"env": {
"ADWHIZ_API_KEY": "YOUR_API_KEY"
}
}
}
}Requires Node.js installed. Uses an API key for authentication.
For OpenClaw agents: auto-configuration
If you are an OpenClaw agent reading this page to self-install AdWhiz, follow these steps:
- 1Use the HTTP transport with OAuth (Option A) — just add the server URL. No API key needed; a browser consent page will open on first use.
- 2If the user’s MCP client does not support OAuth, fall back to HTTP with API key (Option B). The user can create an API key at https://www.adwhiz.ai/dashboard.
- 3If Node.js is available and the user prefers local execution, use the stdio transport (Option C) with an API key.
- 4Add the appropriate mcpServers entry to the user’s `openclaw.json` configuration file using the config snippets above.
- 5Verify the connection by calling the `list_accounts` tool — it should return the user’s Google Ads account(s).
- 6If the user has not completed Google Ads OAuth yet, direct them to https://www.adwhiz.ai/connect to authorize their account.
# Agent self-install summary: # 1. Prefer HTTP + OAuth (no API key needed) # 2. Fallback: HTTP + API key, or stdio + API key (needs Node.js) # 3. Write mcpServers config to openclaw.json # 4. Test with list_accounts tool # 5. If Google Ads not connected → direct user to adwhiz.ai/connect # # Skill manifest: openclaw/skills/adwhiz/SKILL.md # MCP endpoint: https://mcp.adwhiz.ai/mcp # Auth: OAuth (auto) or Bearer API key # npm package: @adwhiz/mcp-server (stdio only)
How It Works
AdWhiz is a remote MCP server — a stateless HTTPS service that implements the Model Context Protocol. Once configured, your AI tool automatically discovers all 47 tools and can invoke them on your behalf whenever they are relevant to your request.
- Natural language interface — Just describe what you want in plain English. Claude reads your intent and selects the right tool combination automatically.
- 47 tools, auto-discovered — Your AI tool fetches the tool manifest from mcp.adwhiz.ai at startup. No manual tool selection required.
- Browser sign-in (OAuth) — Just add the server URL — no API key needed. On first use, a browser window opens for you to sign in and approve the connection. Tokens refresh automatically.
- Safety-first defaults — New campaigns and ads are always created in PAUSED status. You must explicitly enable them before they go live.
- Full audit trail — Every mutate operation is logged. Use the get_operation_log tool in your AI tool to review recent changes.
- Read-only when possible — Listing and reporting tools never modify your account. Write tools require you to confirm the action in conversation.
Tools Reference
47 tools across 5 categories. All tools require a customer_id parameter (10 digits, no dashes).
Account Tools
2 tools| Tool | Description |
|---|---|
| list_accounts | List all accessible Google Ads accounts |
| get_account_info | Get account details (currency, timezone, optimization score) |
Read Tools
14 tools| Tool | Description |
|---|---|
| list_campaigns | List campaigns with status, type, budget, bidding strategy |
| get_campaign_performance | Campaign metrics: cost, clicks, conversions, CTR, CPA, ROAS, impression share |
| list_ad_groups | List ad groups with bids, filtered by campaign |
| list_ads | List ads with headlines, descriptions, final URLs |
| list_keywords | Keywords with match types, bids, quality scores |
| get_search_terms | Search terms report — actual queries triggering your ads |
| list_negative_keywords | Negative keywords at campaign, ad group, or account level |
| list_assets | Sitelinks, callouts, structured snippets |
| list_conversion_actions | Conversion actions with status, type, category |
| list_budgets | Campaign budgets with associated campaigns |
| list_bidding_strategies | Portfolio bidding strategies |
| list_audience_segments | Audience targeting criteria |
| list_user_lists | Remarketing/audience lists for targeting |
| get_operation_log | Recent mutations performed via AdWhiz |
Write Tools
28 tools| Tool | Description |
|---|---|
| create_campaign | Create a campaign (Search, Display, PMax, Video) — starts PAUSED |
| update_campaign | Update campaign name |
| set_campaign_status | Pause, enable, or remove a campaign |
| create_ad_group | Create an ad group in a campaign |
| update_ad_group | Update ad group name or CPC bid |
| set_ad_group_status | Pause, enable, or remove an ad group |
| create_responsive_search_ad | Create RSA with headlines + descriptions — starts PAUSED |
| set_ad_status | Pause, enable, or remove an ad |
| add_keywords | Add keywords with match types and bids |
| update_keyword_bid | Change a keyword's CPC bid |
| set_keyword_status | Pause, enable, or remove a keyword |
| add_negative_keyword | Add negative keyword at campaign or ad group level |
| remove_negative_keyword | Remove a negative keyword |
| create_shared_negative_list | Create a shared negative keyword list |
| add_to_shared_list | Add keywords to a shared negative list |
| attach_shared_list | Attach shared list to a campaign |
| create_sitelink | Create a sitelink asset |
| create_callout | Create a callout asset |
| create_structured_snippet | Create a structured snippet asset (e.g. Models, Brands, Types) |
| create_price_extension | Create a price extension with up to 8 offerings |
| link_asset_to_campaign | Link asset (sitelink, callout, snippet, price, etc.) to a campaign |
| unlink_asset_from_campaign | Remove an asset-to-campaign linkage without deleting the asset |
| create_conversion_action | Create a conversion tracking action |
| update_conversion_action | Update conversion action name or status |
| create_budget | Create a campaign budget |
| update_budget | Update budget amount or name |
| create_bidding_strategy | Create a portfolio bidding strategy |
| add_audience_to_campaign | Add audience targeting to a campaign |
Audit Tools
2 tools| Tool | Description |
|---|---|
| run_mini_audit | Quick 3-metric audit: wasted spend, best/worst CPA, projected savings |
| run_full_audit | Comprehensive audit: campaigns, keywords, search terms, issues, recommendations |
Query Tool
1 tool| Tool | Description |
|---|---|
| run_gaql_query | Execute any read-only GAQL query (max 1,000 rows) |
Example Conversations
Type these prompts directly into your AI tool — it will pick the right MCP tools automatically.
“List all my campaigns and their performance this month”
list_campaigns + get_campaign_performance
“Find search terms wasting money and add them as negative keywords”
get_search_terms → analyze non-converting terms → add_negative_keyword
“Create a new search campaign for 'plumber in NYC' keywords with $50/day budget”
create_campaign + create_ad_group + add_keywords + create_responsive_search_ad
“Run a full audit of my account”
run_full_audit → comprehensive analysis report
“Pause all campaigns spending more than $100/day with CPA over $50”
get_campaign_performance → identify targets → set_campaign_status
“What GAQL query would show me keywords with quality score below 5?”
run_gaql_query with ad_group_criterion WHERE quality_info.quality_score < 5
Important Concepts
Customer ID
Every tool requires a customer_id parameter — a 10-digit number with no dashes (e.g. 9044845197). Use the list_accounts tool to find yours if you are unsure.
Micros (currency)
The Google Ads API stores monetary values in micros: 1,000,000 micros = $1.00. AdWhiz automatically converts micros to dollars in all responses, so you never need to do the math yourself.
Safety defaults
New campaigns and new ads are always created in PAUSED status. You must explicitly call set_campaign_status or set_ad_status with status: ENABLED before anything goes live.
Operation log
Every mutation (create, update, pause, remove) is recorded server-side. Use get_operation_log in your AI tool at any time to review a chronological list of recent changes made via AdWhiz.
Date ranges
Performance tools accept GAQL date preset strings. Commonly used presets:
LAST_7_DAYSLAST_30_DAYSLAST_90_DAYSTHIS_MONTHLAST_MONTHSubscription Plans
All plans include every one of the 47 tools. Upgrade or downgrade anytime from the dashboard.
| Feature | Pro | Business | Enterprise |
|---|---|---|---|
| Monthly price | $79 | $249 | $799 |
| API calls / month | 500 | 2,000 | 10,000 |
| Ad accounts | 1 | Up to 5 | Unlimited |
| All 47 tools | Yes | Yes | Yes |
| Multi-account | No | Yes | Yes |
| Support | Standard | Priority | Dedicated |
FAQ / Troubleshooting
My AI tool doesn’t see the AdWhiz tools
Check that your MCP config file (e.g. .mcp.json) is in the correct location and that the JSON is valid. Verify the API key is correct in your dashboard. Restart your AI tool completely after any config change.
I get a “subscription inactive” error
Your subscription may have lapsed or the billing card failed. Log in to www.adwhiz.ai/dashboard to check your subscription status, or contact support@adwhiz.ai.
I get a “monthly limit reached” error
You have exhausted your API call quota for the current billing cycle. Upgrade your plan from the dashboard, or wait until the next billing cycle resets your quota.
How do I add another Google Ads account?
Go to www.adwhiz.ai/connect and complete the Google OAuth flow again. Each authorization grants access to one Google Ads account (or MCC). Repeat for each account you want to manage.
Is my data safe?
Yes. AdWhiz uses AES-256-GCM encryption for refresh tokens stored at rest, communicates with Google via the official OAuth2-authenticated Google Ads API v23, and never stores your raw ad data long-term. You can revoke access at any time from your Google Account settings.
Support
We aim to respond to all support requests within one business day.
- Email — support@adwhiz.ai
- Dashboard — www.adwhiz.ai/dashboard
- Twitter / X — @BuildWithJames