返回 Skill 列表
extension
分类: 安全与合规需要 API Key

AdWhiz

使用 AI 编码工具管理 Google Ads 与 Meta(Facebook)广告,102 个 MCP 工具通过自然语言审计、创建和优化广告账户。

person作者: iamzifeihubclawhub

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

  • OAuth 2.0: User authenticates with Google and/or Meta via AdWhiz's web UI. Refresh tokens (Google) and long-lived access tokens (Meta) are encrypted at rest (AES-256-GCM) and never exposed to the agent.
  • API key scoping: Each ADWHIZ_API_KEY is bound to a single user's connected accounts. Cross-user access is not possible.
  • Write safety: All Google Ads write tools create entities in PAUSED status by default. Meta write tools require explicit status parameters.
  • Mutation logging: Every mutation is recorded in the get_operation_log tool for full auditability.
  • Read-only by default: 39 of 102 tools are strictly read-only and cannot modify your accounts.
  • Confirmation required: Write tools require user confirmation before executing via the agent's standard permission flow.
  • No arbitrary code execution: The MCP server is a hosted HTTP service. No code is downloaded or executed on the user's machine beyond the thin MCP client wrapper.

Google 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:

  • OpenAPI spec: https://mcp.adwhiz.ai/api/v1/openapi.json
  • Tool listing: https://mcp.adwhiz.ai/api/v1/tools
  • Tool execution: 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

  • "Audit my Google Ads account and show the top 5 waste areas"
  • "Pause all campaigns with CPA above $150"
  • "Add these negative keywords to my Search campaigns: [list]"
  • "Create a new Search campaign targeting lawyers in New York with $100/day budget"
  • "Show me search terms wasting money and suggest negatives"
  • "What is my account's average Quality Score this month?"

Meta Ads

  • "Audit my Meta Ads account and show the health score"
  • "List all active Meta campaigns with their spend and CTR"
  • "Pause the Meta campaign with the highest frequency"
  • "Show me daily spend trends for my Meta account over the last 30 days"
  • "Which Meta ad sets have the worst CPA?"

Data Handling

  • AdWhiz only accesses the ad accounts you explicitly linked
  • No campaign data is stored beyond the duration of each API request
  • Mutation logs are retained for 30 days for auditability
  • You can revoke access at any time from https://adwhiz.ai/connect

Documentation

Full documentation: https://adwhiz.ai/docs