AdWhiz
by @iamzifei
Manage Google Ads & Meta (Facebook) Ads from your AI coding tool. 102 MCP tools for auditing, creating, and optimizing ad accounts using natural language.
clawhub install adwhizπ About This Skill
name: adwhiz description: > Manage Google Ads & Meta (Facebook) Ads from your AI coding tool. 102 MCP tools for auditing, creating, and optimizing ad accounts using natural language. metadata: openclaw: primaryEnv: "ADWHIZ_API_KEY" requires: env: - "ADWHIZ_API_KEY" homepage: "https://adwhiz.ai" source: "https://github.com/iamzifei/adwhiz" license: "MIT"
AdWhiz β Google Ads & Meta Ads MCP Server
AdWhiz is a hosted MCP server that connects your AI coding tool to the Google Ads API and Meta (Facebook) Graph API through a secure, authenticated proxy. It exposes 102 tools across 7 categories so you can audit, create, and manage ad campaigns across both platforms using plain English.
All API calls are authenticated via your personal ADWHIZ_API_KEY and routed
through the AdWhiz server at mcp.adwhiz.ai. No Google or Meta credentials
are stored by the skill β authentication is handled entirely server-side
after you link your ad accounts at https://adwhiz.ai/connect.
Security & Permissions Model
ADWHIZ_API_KEY is bound to a single user'sget_operation_logGoogle Ads Tools (70)
Account (2 tools) β Read-only
| Tool | Description | |------|-------------| |list_accounts | List all accessible Google Ads accounts (auto-expands MCC child accounts) |
| get_account_info | Get account details (currency, timezone, optimization score) |Read (20 tools) β Read-only
| Tool | Description | |------|-------------| |list_campaigns | List campaigns with status, type, budget, bidding strategy |
| get_campaign_performance | Campaign metrics: cost, clicks, conversions, CTR, CPA, ROAS |
| 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 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 |
| list_recommendations | Google Ads recommendations (add keywords, raise bids, fix ad strength) |
| get_change_history | Change audit log: who changed what and when |
| list_geo_targets | Geographic location targeting on campaigns |
| list_ad_schedules | Ad schedule (dayparting) criteria on campaigns |
| list_labels | Labels for organizing campaigns, ad groups, ads, keywords |
| generate_keyword_ideas | Keyword ideas with search volume, competition, bid ranges |Write (45 tools) β Requires user confirmation
| Tool | Description | |------|-------------| |create_campaign | Create Search, Display, PMax, or Video campaign (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 |
| create_price_extension | Create a price extension asset |
| link_asset_to_campaign | Link asset to a campaign |
| unlink_asset_from_campaign | Unlink asset from a campaign |
| 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 |
| update_responsive_search_ad | Update RSA headlines, descriptions, or URLs |
| link_asset_to_ad_group | Link asset to an ad group |
| unlink_asset_from_ad_group | Remove asset-to-ad-group linkage |
| upload_click_conversions | Upload offline click conversions (gclid-based) |
| upload_customer_list | Upload hashed PII to Customer Match user list |
| apply_recommendation | Apply a Google Ads recommendation |
| dismiss_recommendation | Dismiss a Google Ads recommendation |
| add_geo_targeting | Add geographic location targeting to a campaign |
| remove_geo_targeting | Remove geographic location target from a campaign |
| add_ad_schedule | Add ad schedule (dayparting) to a campaign |
| remove_ad_schedule | Remove ad schedule criterion from a campaign |
| set_device_bid_adjustment | Set device bid adjustment (mobile, desktop, tablet) |
| set_demographic_targeting | Set demographic targeting (age, gender, income) |
| create_label | Create a label for organizing entities |
| apply_label | Apply a label to a campaign, ad group, or ad |
| remove_label | Remove a label from a campaign, ad group, or ad |
| create_asset_group | Create an asset group for Performance Max campaigns |Audit (2 tools) β Read-only analysis
| 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 (1 tool) β Read-only, bounded
| Tool | Description | |------|-------------| |run_gaql_query | Execute a read-only GAQL query against your account (max 1,000 rows, SELECT only) |Meta (Facebook) Ads Tools (32)
Meta Read (15 tools) β Read-only
| Tool | Description | |------|-------------| |meta_list_ad_accounts | List all connected Meta ad accounts |
| meta_list_campaigns | List campaigns with status, objective, budget |
| meta_get_campaign_insights | Per-campaign metrics: spend, clicks, CTR, CPA, frequency (with optional breakdowns) |
| meta_list_ad_sets | List ad sets with targeting, status, budget, and promoted_object |
| meta_list_ads | List ads with creative details (title, body, image URL) |
| meta_get_account_insights | Account-level aggregated metrics with daily breakdown |
| meta_get_ad_set_insights | Per-ad-set performance metrics: spend, clicks, CPA, frequency |
| meta_get_ad_insights | Per-ad performance metrics: spend, clicks, conversions, CPA |
| meta_get_ad_creatives | List ad creatives or get creative for a specific ad |
| meta_search_interests | Search targetable interest audiences by keyword |
| meta_search_geo_locations | Search geographic locations for targeting |
| meta_estimate_audience_size | Estimate reach of a targeting spec |
| meta_get_account_pages | List Facebook pages available for running ads |
| meta_get_change_history | View recent changes (audit log) β who changed what and when |
| meta_get_instagram_media | List Instagram media with Media V2 IDs for partnership/branded content ads |Meta Write (16 tools) β Requires user confirmation
| Tool | Description | |------|-------------| |meta_set_campaign_status | Pause or activate a Meta campaign |
| meta_update_campaign_budget | Update a Meta campaign's daily or lifetime budget |
| meta_set_ad_set_status | Pause or activate a Meta ad set |
| meta_set_ad_status | Pause or activate a Meta ad |
| meta_create_campaign | Create a new Meta campaign with objective and budget |
| meta_create_ad_set | Create an ad set with targeting, budget, optimization goal |
| meta_create_ad_creative | Create ad creative with image/video, link, CTA. Supports partnership ads via source_instagram_media_id or object_story_id |
| meta_create_ad | Create an ad linking an ad set to a creative |
| meta_update_campaign | Update campaign name, budget, end time, spend cap |
| meta_update_ad_set | Update ad set name, budget, targeting, schedule |
| meta_update_ad | Update ad name, creative, or status |
| meta_create_custom_audience | Create custom audience from customer lists or website visitors |
| meta_create_lookalike_audience | Create lookalike audience from source audience |
| meta_upload_ad_image | Upload image from URL for ad creatives |
| meta_upload_partnership_video | Upload Instagram creator video via partnership ad code for branded content ads |
| meta_duplicate_campaign | Duplicate campaign with all ad sets and ads |Meta Audit (1 tool) β Read-only analysis
| Tool | Description | |------|-------------| |meta_run_mini_audit | Quick health audit: score (0-100) across wasted spend, CPA efficiency, budget utilization, creative fatigue |MCP Server Configuration
AdWhiz uses HTTP transport to connect to the hosted MCP server. No npm packages are downloaded or executed at runtime.
{
"mcpServers": {
"adwhiz": {
"transport": "http",
"url": "https://mcp.adwhiz.ai/mcp",
"headers": {
"Authorization": "Bearer ${ADWHIZ_API_KEY}"
}
}
}
}
REST API (Alternative to MCP)
For platforms that cannot use the MCP protocol (GPT Actions, Dify, Coze, or any HTTP-based workflow), AdWhiz also exposes all 102 tools as a standard REST API with an OpenAPI 3.1.0 spec:
POST https://mcp.adwhiz.ai/api/v1/tools/{tool_name}# Example: list campaigns via REST API
curl -X POST https://mcp.adwhiz.ai/api/v1/tools/list_campaigns \
-H "Authorization: Bearer $ADWHIZ_API_KEY" \
-H "Content-Type: application/json" \
-d '{"customer_id": "1234567890"}'
Import the OpenAPI spec URL into any platform that supports OpenAPI actions to auto-discover all 102 tools.
Quick Install
clawhub install adwhiz
This adds the MCP server configuration above to your settings. You will be
prompted to provide your ADWHIZ_API_KEY.
Getting Your API Key
1. Sign up at https://adwhiz.ai 2. Connect your Google Ads and/or Meta Ads account via OAuth 3. Copy your API key from the dashboard settings page
Example Prompts
Google Ads
Meta Ads
Data Handling
Documentation
Full documentation: https://adwhiz.ai/docs