{"id":"ce15dc3f-9266-4ac0-86c4-8ada2f210ac9","entityType":"agent","slug":"clawhub-iamzifei-adwhiz","name":"AdWhiz","canonicalUrl":"https://www.xpersona.co/agent/clawhub-iamzifei-adwhiz","canonicalPath":"/agent/clawhub-iamzifei-adwhiz","generatedAt":"2026-10-09T22:39:29.146Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T11:02:56.908Z","emptyReason":null},"description":"Manage Google Ads & Meta (Facebook) Ads from your AI coding tool. 113 MCP tools for auditing, creating, and optimizing ad accounts using natural language. Skill: AdWhiz Owner: iamzifei Summary: Manage Google Ads & Meta (Facebook) Ads from your AI coding tool. 113 MCP tools for auditing, creating, and optimizing ad accounts using natural language. Tags: advertising:2.2.0, google-ads:2.2.0, latest:2.4.0, mcp:2.2.0, meta-ads:2.2.0 Version history: v2.4.0 | 2026-08-15T02:08:11.447Z | auto **Major update: Expanded capabilities and improved control for Google Ads and Meta Ad","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.9K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17c1xt6bfwnnc6aqzcvj39xdx83nkt7:adwhiz","sourceUrl":"https://clawhub.ai/iamzifei/adwhiz","homepage":"https://clawhub.ai/iamzifei/skills/adwhiz","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/iamzifei/adwhiz","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/iamzifei/skills/adwhiz","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Manage Google Ads & Meta (Facebook) Ads from your AI coding tool. 113 MCP tools for auditing, creating, and optimizing ad accounts using natural language. Skill"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T11:02:56.908Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T11:02:56.908Z","emptyReason":null},"stars":null,"forks":null,"downloads":2869,"packageName":null,"latestVersion":"2.4.0","tractionLabel":"2.9K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T11:02:56.907Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T11:02:56.908Z","lastCrawledAt":"2026-10-09T11:02:56.907Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T11:02:56.907Z","lastVerifiedAt":null,"highlights":[{"version":"2.4.0","createdAt":"2026-08-15T02:08:11.447Z","changelog":"**Major update: Expanded capabilities and improved control for Google Ads and Meta Ads management.** - Tool count increased from 102 to 113, expanding both read and write operations. - New Google Ads tools: Enhanced conversion goal management and campaign optimization, including tools like `list_campaign_conversion_goals`, `get_campaign_selective_optimization`, `update_campaign_conversion_goal`, and `set_campaign_selective_optimization`. - Video Ads features expanded with dedicated tools for YouTube In-stream, In-feed, and Shorts campaigns and assets. - Read-only tool count increased (44 tools now strictly read-only). - Minor documentation and organizational improvements for improved clarity and discoverability. - Obsolete file `skill-card.md` removed.","fileCount":3,"zipByteSize":7337},{"version":"2.3.0","createdAt":"2026-03-26T15:05:14.573Z","changelog":"Add 2 new Meta Ads tools: meta_get_instagram_media (list IG media for partnership ads) and meta_upload_partnership_video (upload creator video via partnership ad code). Total: 102 tools (70 Google + 32 Meta).","fileCount":3,"zipByteSize":6392},{"version":"2.2.0","createdAt":"2026-03-07T10:09:22.654Z","changelog":"Meta insights now return ROAS, revenue, and app purchase conversions; Google Ads list_accounts auto-expands MCC child accounts","fileCount":2,"zipByteSize":4911},{"version":"2.1.1","createdAt":"2026-03-07T09:31:27.517Z","changelog":"list_accounts auto-expands MCC child accounts; Meta ad accounts pagination fix (fetches all accounts, not just first 25)","fileCount":2,"zipByteSize":4910},{"version":"1.3.0","createdAt":"2026-03-07T09:20:56.465Z","changelog":"list_accounts now auto-expands MCC child accounts; updated tool description for ClawHub listing","fileCount":2,"zipByteSize":4911},{"version":"2.1.0","createdAt":"2026-03-07T07:00:59.435Z","changelog":"Add public REST API + OpenAPI 3.1.0 spec for external platforms (GPTs, Dify, Coze). Fix billing cycle quota, bidding strategy FIELD_HAS_SUBFIELDS error, and auth error logging.","fileCount":2,"zipByteSize":4893},{"version":"2.0.0","createdAt":"2026-03-01T04:32:25.832Z","changelog":"Expand to 99 MCP tools: 70 Google Ads + 29 Meta Ads. Added campaign creation, ad management, audience targeting, image upload, and more for both platforms.","fileCount":2,"zipByteSize":4577},{"version":"1.2.0","createdAt":"2026-02-28T11:27:57.822Z","changelog":"Add 11 Meta (Facebook) Ads tools: 6 read, 4 write, 1 audit. Total tools: 47 → 58. Dual-platform support for Google Ads + Meta Ads.","fileCount":2,"zipByteSize":3659}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17c1xt6bfwnnc6aqzcvj39xdx83nkt7:adwhiz","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iamzifei-adwhiz/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iamzifei-adwhiz/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iamzifei-adwhiz/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-iamzifei-adwhiz/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-iamzifei-adwhiz/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-iamzifei-adwhiz/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T22:39:29.141Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iamzifei-adwhiz/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iamzifei-adwhiz/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iamzifei-adwhiz/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-iamzifei-adwhiz/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-09T11:02:56.908Z","emptyReason":null},"readme":"Skill: AdWhiz\n\nOwner: iamzifei\n\nSummary: Manage Google Ads & Meta (Facebook) Ads from your AI coding tool. 113 MCP tools for auditing, creating, and optimizing ad accounts using natural language.\n\nTags: advertising:2.2.0, google-ads:2.2.0, latest:2.4.0, mcp:2.2.0, meta-ads:2.2.0\n\nVersion history:\n\nv2.4.0 | 2026-08-15T02:08:11.447Z | auto\n\n**Major update: Expanded capabilities and improved control for Google Ads and Meta Ads management.**\n\n- Tool count increased from 102 to 113, expanding both read and write operations.\n- New Google Ads tools: Enhanced conversion goal management and campaign optimization, including tools like `list_campaign_conversion_goals`, `get_campaign_selective_optimization`, `update_campaign_conversion_goal`, and `set_campaign_selective_optimization`.\n- Video Ads features expanded with dedicated tools for YouTube In-stream, In-feed, and Shorts campaigns and assets.\n- Read-only tool count increased (44 tools now strictly read-only).\n- Minor documentation and organizational improvements for improved clarity and discoverability.\n- Obsolete file `skill-card.md` removed.\n\nv2.3.0 | 2026-03-26T15:05:14.573Z | user\n\nAdd 2 new Meta Ads tools: meta_get_instagram_media (list IG media for partnership ads) and meta_upload_partnership_video (upload creator video via partnership ad code). Total: 102 tools (70 Google + 32 Meta).\n\nv2.2.0 | 2026-03-07T10:09:22.654Z | user\n\nMeta insights now return ROAS, revenue, and app purchase conversions; Google Ads list_accounts auto-expands MCC child accounts\n\nv2.1.1 | 2026-03-07T09:31:27.517Z | user\n\nlist_accounts auto-expands MCC child accounts; Meta ad accounts pagination fix (fetches all accounts, not just first 25)\n\nv1.3.0 | 2026-03-07T09:20:56.465Z | user\n\nlist_accounts now auto-expands MCC child accounts; updated tool description for ClawHub listing\n\nv2.1.0 | 2026-03-07T07:00:59.435Z | user\n\nAdd public REST API + OpenAPI 3.1.0 spec for external platforms (GPTs, Dify, Coze). Fix billing cycle quota, bidding strategy FIELD_HAS_SUBFIELDS error, and auth error logging.\n\nv2.0.0 | 2026-03-01T04:32:25.832Z | user\n\nExpand to 99 MCP tools: 70 Google Ads + 29 Meta Ads. Added campaign creation, ad management, audience targeting, image upload, and more for both platforms.\n\nv1.2.0 | 2026-02-28T11:27:57.822Z | user\n\nAdd 11 Meta (Facebook) Ads tools: 6 read, 4 write, 1 audit. Total tools: 47 → 58. Dual-platform support for Google Ads + Meta Ads.\n\nv1.1.0 | 2026-02-23T08:01:33.591Z | user\n\nRemove npm package install to pass VirusTotal security scan. HTTP-only transport, no local code execution.\n\nv1.0.0 | 2026-02-22T08:05:01.725Z | user\n\nInitial release: 44 Google Ads MCP tools, ClawHub skill with stdio and HTTP transport support\n\nArchive index:\n\nArchive v2.4.0: 3 files, 7337 bytes\n\nFiles: skill-card.md (2212b), SKILL.md (15706b), _meta.json (125b)\n\nFile v2.4.0:SKILL.md\n\n---\nname: adwhiz\ndescription: >\n  Manage Google Ads & Meta (Facebook) Ads from your AI coding tool. 113 MCP\n  tools for auditing, creating, and optimizing ad accounts using natural language.\nmetadata:\n  openclaw:\n    primaryEnv: \"ADWHIZ_API_KEY\"\n    requires:\n      env:\n        - \"ADWHIZ_API_KEY\"\n    homepage: \"https://adwhiz.ai\"\n    source: \"https://github.com/iamzifei/adwhiz\"\n    license: \"MIT\"\n---\n\n# AdWhiz — Google Ads & Meta Ads MCP Server\n\nAdWhiz is a hosted MCP server that connects your AI coding tool to the\nGoogle Ads API and Meta (Facebook) Graph API through a secure, authenticated\nproxy. It exposes **113 tools** across 7 categories so you can audit, create,\nand manage ad campaigns across both platforms using plain English.\n\nAll API calls are authenticated via your personal `ADWHIZ_API_KEY` and routed\nthrough the AdWhiz server at `mcp.adwhiz.ai`. No Google or Meta credentials\nare stored by the skill — authentication is handled entirely server-side\nafter you link your ad accounts at https://adwhiz.ai/connect.\n\n## Security & Permissions Model\n\n- **OAuth 2.0**: User authenticates with Google and/or Meta via AdWhiz's web\n  UI. Refresh tokens (Google) and long-lived access tokens (Meta) are encrypted\n  at rest (AES-256-GCM) and never exposed to the agent.\n- **API key scoping**: Each `ADWHIZ_API_KEY` is bound to a single user's\n  connected accounts. Cross-user access is not possible.\n- **Write safety**: All Google Ads write tools create entities in **PAUSED**\n  status by default. Meta write tools require explicit status parameters.\n- **Mutation logging**: Every mutation is recorded in the `get_operation_log`\n  tool for full auditability.\n- **Read-only by default**: 44 of 113 tools are strictly read-only and cannot\n  modify your accounts.\n- **Confirmation required**: Write tools require user confirmation before\n  executing via the agent's standard permission flow.\n- **No arbitrary code execution**: The MCP server is a hosted HTTP service.\n  No code is downloaded or executed on the user's machine beyond the thin\n  MCP client wrapper.\n\n## Google Ads Tools (80)\n\n### Account (2 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_accounts` | List all accessible Google Ads accounts (auto-expands MCC child accounts) |\n| `get_account_info` | Get account details (currency, timezone, optimization score) |\n\n### Read (22 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_campaigns` | List campaigns with status, type, budget, bidding strategy |\n| `get_campaign_performance` | Campaign metrics: cost, clicks, conversions, CTR, CPA, ROAS |\n| `list_ad_groups` | List ad groups with bids, filtered by campaign |\n| `list_ads` | List ads with headlines, descriptions, final URLs |\n| `list_keywords` | Keywords with match types, bids, quality scores |\n| `get_search_terms` | Search terms report (actual queries triggering ads) |\n| `list_negative_keywords` | Negative keywords at campaign, ad group, or account level |\n| `list_assets` | Sitelinks, callouts, structured snippets |\n| `list_conversion_actions` | Conversion actions with status, type, category |\n| `list_campaign_conversion_goals` | Which conversion categories each campaign actually **bids** toward — not the same as what it reports |\n| `get_campaign_selective_optimization` | The specific conversion actions a campaign optimizes toward (empty = follows category goals) |\n| `list_budgets` | Campaign budgets with associated campaigns |\n| `list_bidding_strategies` | Portfolio bidding strategies |\n| `list_audience_segments` | Audience targeting criteria |\n| `list_user_lists` | Remarketing/audience lists for targeting |\n| `get_operation_log` | Recent mutations performed via AdWhiz |\n| `list_recommendations` | Google Ads recommendations (add keywords, raise bids, fix ad strength) |\n| `get_change_history` | Change audit log: who changed what and when |\n| `list_geo_targets` | Geographic location targeting on campaigns |\n| `list_ad_schedules` | Ad schedule (dayparting) criteria on campaigns |\n| `list_labels` | Labels for organizing campaigns, ad groups, ads, keywords |\n| `generate_keyword_ideas` | Keyword ideas with search volume, competition, bid ranges |\n\n### Write (47 tools) — Requires user confirmation\n| Tool | Description |\n|------|-------------|\n| `create_campaign` | Create Search, Display, PMax, or Video campaign (starts PAUSED) |\n| `update_campaign` | Update campaign name |\n| `set_campaign_status` | Pause, enable, or remove a campaign |\n| `create_ad_group` | Create an ad group in a campaign |\n| `update_ad_group` | Update ad group name or CPC bid |\n| `set_ad_group_status` | Pause, enable, or remove an ad group |\n| `create_responsive_search_ad` | Create RSA with headlines + descriptions (starts PAUSED) |\n| `set_ad_status` | Pause, enable, or remove an ad |\n| `add_keywords` | Add keywords with match types and bids |\n| `update_keyword_bid` | Change a keyword's CPC bid |\n| `set_keyword_status` | Pause, enable, or remove a keyword |\n| `add_negative_keyword` | Add negative keyword at campaign or ad group level |\n| `remove_negative_keyword` | Remove a negative keyword |\n| `create_shared_negative_list` | Create a shared negative keyword list |\n| `add_to_shared_list` | Add keywords to a shared negative list |\n| `attach_shared_list` | Attach shared list to a campaign |\n| `create_sitelink` | Create a sitelink asset |\n| `create_callout` | Create a callout asset |\n| `create_structured_snippet` | Create a structured snippet asset |\n| `create_price_extension` | Create a price extension asset |\n| `link_asset_to_campaign` | Link asset to a campaign |\n| `unlink_asset_from_campaign` | Unlink asset from a campaign |\n| `create_conversion_action` | Create a conversion tracking action |\n| `update_conversion_action` | Update conversion action name or status |\n| `update_campaign_conversion_goal` | Set whether a campaign bids toward a conversion category (supports `validate_only`; refuses to leave a campaign with no biddable goal) |\n| `set_campaign_selective_optimization` | Narrow a campaign to specific conversion actions, or clear it (supports `validate_only`; rejects REMOVED/HIDDEN actions) |\n| `create_budget` | Create a campaign budget |\n| `update_budget` | Update budget amount or name |\n| `create_bidding_strategy` | Create a portfolio bidding strategy |\n| `add_audience_to_campaign` | Add audience targeting to a campaign |\n| `update_responsive_search_ad` | Update RSA headlines, descriptions, or URLs |\n| `link_asset_to_ad_group` | Link asset to an ad group |\n| `unlink_asset_from_ad_group` | Remove asset-to-ad-group linkage |\n| `upload_click_conversions` | Upload offline click conversions (gclid-based) |\n| `upload_customer_list` | Upload hashed PII to Customer Match user list |\n| `apply_recommendation` | Apply a Google Ads recommendation |\n| `dismiss_recommendation` | Dismiss a Google Ads recommendation |\n| `add_geo_targeting` | Add geographic location targeting to a campaign |\n| `remove_geo_targeting` | Remove geographic location target from a campaign |\n| `add_ad_schedule` | Add ad schedule (dayparting) to a campaign |\n| `remove_ad_schedule` | Remove ad schedule criterion from a campaign |\n| `set_device_bid_adjustment` | Set device bid adjustment (mobile, desktop, tablet) |\n| `set_demographic_targeting` | Set demographic targeting (age, gender, income) |\n| `create_label` | Create a label for organizing entities |\n| `apply_label` | Apply a label to a campaign, ad group, or ad |\n| `remove_label` | Remove a label from a campaign, ad group, or ad |\n| `create_asset_group` | Create an asset group for Performance Max campaigns |\n\n### Video Ads (6 tools) — YouTube In-stream, In-feed, Shorts\nDedicated Video campaign + ad group + asset + ad creation, covering the\nplacements Slim (MiniMax) requested daily: In-stream (YouTube videos), In-feed\n(discovery), and Shorts. All campaigns/ads start PAUSED.\n\n| Tool | Description |\n|------|-------------|\n| `create_video_campaign` | Create a Video campaign (channel_type=VIDEO). Configurable placements (YOUTUBE_VIDEOS / YOUTUBE_SHORTS / GOOGLE_VIDEO_PARTNERS) and bidding (TARGET_CPV, TARGET_CPM, MAXIMIZE_CONVERSIONS, etc.) |\n| `create_video_ad_group` | Create an ad group for In-stream or Shorts ads (VIDEO_RESPONSIVE) |\n| `create_in_feed_video_ad_group` | Create an ad group for In-feed (discovery) ads — YouTube home feed, search, sidebar |\n| `create_youtube_video_asset` | Register a YouTube video (URL or ID) as an Asset so ads can reference it. Accepts watch, shorts, embed, youtu.be, and bare-ID formats |\n| `create_video_responsive_ad` | Create a Video Responsive Ad with headline (≤15), long headline (≤90), descriptions (≤90), business name (≤25), CTA (≤10), video asset, and final URLs |\n| `create_in_feed_video_ad` | Create an In-feed (discovery) Video Ad with headline (≤100), descriptions (≤35), and thumbnail variant |\n\n### Audit (2 tools) — Read-only analysis\n| Tool | Description |\n|------|-------------|\n| `run_mini_audit` | Quick 3-metric audit: wasted spend, best/worst CPA, projected savings |\n| `run_full_audit` | Comprehensive audit: campaigns, keywords, search terms, issues, recommendations |\n\n### Query (1 tool) — Read-only, bounded\n| Tool | Description |\n|------|-------------|\n| `run_gaql_query` | Execute a read-only GAQL query against your account (max 1,000 rows, SELECT only) |\n\n## Meta (Facebook) Ads Tools (33)\n\n### Meta Read (16 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `meta_list_ad_accounts` | List all connected Meta ad accounts |\n| `meta_list_campaigns` | List campaigns with status, objective, budget |\n| `meta_get_campaign_insights` | Per-campaign metrics: spend, clicks, CTR, CPA, frequency (with optional breakdowns) |\n| `meta_list_ad_sets` | List ad sets with targeting, status, budget, and promoted_object |\n| `meta_list_ads` | List ads with creative details (title, body, image URL) |\n| `meta_get_account_insights` | Account-level aggregated metrics with daily breakdown |\n| `meta_get_ad_set_insights` | Per-ad-set performance metrics: spend, clicks, CPA, frequency |\n| `meta_get_ad_insights` | Per-ad performance metrics: spend, clicks, conversions, CPA |\n| `meta_get_ad_creatives` | List ad creatives or get creative for a specific ad |\n| `meta_search_interests` | Search targetable interest audiences by keyword |\n| `meta_search_geo_locations` | Search geographic locations for targeting |\n| `meta_estimate_audience_size` | Estimate reach of a targeting spec |\n| `meta_get_account_pages` | List Facebook pages available for running ads |\n| `meta_get_change_history` | View recent changes (audit log) — who changed what and when |\n| `meta_get_instagram_media` | List Instagram media with Media V2 IDs for partnership/branded content ads |\n| `meta_get_post_comments` | Read comments on a Facebook/Instagram post or ad post (author, text, like count, reply count; supports pagination and top-level/all filter) |\n\n### Meta Write (16 tools) — Requires user confirmation\n| Tool | Description |\n|------|-------------|\n| `meta_set_campaign_status` | Pause or activate a Meta campaign |\n| `meta_update_campaign_budget` | Update a Meta campaign's daily or lifetime budget |\n| `meta_set_ad_set_status` | Pause or activate a Meta ad set |\n| `meta_set_ad_status` | Pause or activate a Meta ad |\n| `meta_create_campaign` | Create a new Meta campaign with objective and budget |\n| `meta_create_ad_set` | Create an ad set with targeting (required), optimization goal (required), budget |\n| `meta_create_ad_creative` | Create ad creative with image/video, link, CTA. Supports partnership ads via `source_instagram_media_id` or `object_story_id` |\n| `meta_create_ad` | Create an ad linking an ad set to a creative |\n| `meta_update_campaign` | Update campaign name, budget, end time, spend cap |\n| `meta_update_ad_set` | Update ad set name, budget, targeting, schedule |\n| `meta_update_ad` | Update ad name, creative, or status |\n| `meta_create_custom_audience` | Create custom audience from customer lists or website visitors |\n| `meta_create_lookalike_audience` | Create lookalike audience from source audience |\n| `meta_upload_ad_image` | Upload image from URL for ad creatives |\n| `meta_upload_partnership_video` | Upload Instagram creator video via partnership ad code for branded content ads |\n| `meta_duplicate_campaign` | Duplicate campaign with all ad sets and ads |\n\n### Meta Audit (1 tool) — Read-only analysis\n| Tool | Description |\n|------|-------------|\n| `meta_run_mini_audit` | Quick health audit: score (0-100) across wasted spend, CPA efficiency, budget utilization, creative fatigue |\n\n## MCP Server Configuration\n\nAdWhiz uses **HTTP transport** to connect to the hosted MCP server. No npm\npackages are downloaded or executed at runtime.\n\n```json\n{\n  \"mcpServers\": {\n    \"adwhiz\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.adwhiz.ai/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${ADWHIZ_API_KEY}\"\n      }\n    }\n  }\n}\n```\n\nThe field is `\"type\"`, not `\"transport\"` — verified 2026-08-13 by running\n`claude mcp add --transport http …` and reading back what it writes to\n`~/.claude.json`. The CLI flag is spelled `--transport`; the JSON key it\nproduces is `\"type\"`. Configs using `\"transport\"` are silently not recognised.\n\nFor Claude Code the one-liner is equivalent and less error-prone:\n\n```bash\nclaude mcp add --transport http adwhiz https://mcp.adwhiz.ai/mcp \\\n  --header \"Authorization: Bearer $ADWHIZ_API_KEY\"\n```\n\nOmit `--header` to use browser OAuth instead of an API key.\n\n## REST API (Alternative to MCP)\n\nFor platforms that cannot use the MCP protocol (GPT Actions, Dify, Coze, or\nany HTTP-based workflow), AdWhiz also exposes all 113 tools as a standard\nREST API with an OpenAPI 3.1.0 spec:\n\n- **OpenAPI spec**: https://mcp.adwhiz.ai/api/v1/openapi.json\n- **Tool listing**: https://mcp.adwhiz.ai/api/v1/tools\n- **Tool execution**: `POST https://mcp.adwhiz.ai/api/v1/tools/{tool_name}`\n\n```bash\n# Example: list campaigns via REST API\ncurl -X POST https://mcp.adwhiz.ai/api/v1/tools/list_campaigns \\\n  -H \"Authorization: Bearer $ADWHIZ_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"customer_id\": \"1234567890\"}'\n```\n\nImport the OpenAPI spec URL into any platform that supports OpenAPI actions\nto auto-discover all 113 tools.\n\n## Quick Install\n\n```bash\nclawhub install adwhiz\n```\n\nThis adds the MCP server configuration above to your settings. You will be\nprompted to provide your `ADWHIZ_API_KEY`.\n\n## Getting Your API Key\n\n1. Sign up at https://adwhiz.ai\n2. Connect your Google Ads and/or Meta Ads account via OAuth\n3. Copy your API key from the dashboard settings page\n\n## Example Prompts\n\n### Google Ads\n- \"Audit my Google Ads account and show the top 5 waste areas\"\n- \"Pause all campaigns with CPA above $150\"\n- \"Add these negative keywords to my Search campaigns: [list]\"\n- \"Create a new Search campaign targeting lawyers in New York with $100/day budget\"\n- \"Show me search terms wasting money and suggest negatives\"\n- \"What is my account's average Quality Score this month?\"\n\n### Meta Ads\n- \"Audit my Meta Ads account and show the health score\"\n- \"List all active Meta campaigns with their spend and CTR\"\n- \"Pause the Meta campaign with the highest frequency\"\n- \"Show me daily spend trends for my Meta account over the last 30 days\"\n- \"Which Meta ad sets have the worst CPA?\"\n\n## Data Handling\n\n- AdWhiz only accesses the ad accounts you explicitly linked\n- No campaign data is stored beyond the duration of each API request\n- Mutation logs are retained for 30 days for auditability\n- You can revoke access at any time from https://adwhiz.ai/connect\n\n## Documentation\n\nFull documentation: https://adwhiz.ai/docs\n\nFile v2.4.0:_meta.json\n\n{\n  \"ownerId\": \"kn7c1tc2v65dh1peh00pytfh2181mwep\",\n  \"slug\": \"adwhiz\",\n  \"version\": \"2.4.0\",\n  \"publishedAt\": 1786759691447\n}\n\nFile v2.4.0:skill-card.md\n\n## Description:\n\nManage Google Ads & Meta (Facebook) Ads from your AI coding tool with MCP tools for auditing, creating, and optimizing ad accounts using natural language.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[iamzifei](https://clawhub.ai/user/iamzifei)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers, marketing operators, and agencies use AdWhiz to connect an AI coding tool to Google Ads and Meta Ads accounts for campaign audits, reporting, optimization, and account changes through a hosted MCP or REST interface.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The hosted connector can read and change connected Google Ads and Meta Ads accounts, including budget changes, activation or removal actions, and customer list uploads.\n\nMitigation: Connect only intended ad accounts, review each write confirmation carefully, and revoke AdWhiz access when it is no longer needed.\n\nRisk: The skill depends on an ADWHIZ_API_KEY that authorizes access to the user's connected ad accounts.\n\nMitigation: Store the API key only in the agent's secret or environment configuration and rotate it if it may have been exposed.\n\n## Reference(s):\n\n- [AdWhiz Homepage](https://adwhiz.ai)\n- [AdWhiz Documentation](https://adwhiz.ai/docs)\n- [AdWhiz OpenAPI Specification](https://mcp.adwhiz.ai/api/v1/openapi.json)\n- [AdWhiz Tool Listing](https://mcp.adwhiz.ai/api/v1/tools)\n- [ClawHub Skill Page](https://clawhub.ai/iamzifei/skills/adwhiz)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Markdown, Shell commands, Configuration, API calls]\n\n**Output Format:** [Markdown with inline JSON and shell command examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May trigger hosted MCP or REST calls that read or change connected Google Ads and Meta Ads accounts after user authorization.]\n\n## Skill Version(s):\n\n2.4.0 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v2.3.0: 3 files, 6392 bytes\n\nFiles: skill-card.md (2575b), SKILL.md (13072b), _meta.json (125b)\n\nFile v2.3.0:SKILL.md\n\n---\nname: adwhiz\ndescription: >\n  Manage Google Ads & Meta (Facebook) Ads from your AI coding tool. 102 MCP\n  tools for auditing, creating, and optimizing ad accounts using natural language.\nmetadata:\n  openclaw:\n    primaryEnv: \"ADWHIZ_API_KEY\"\n    requires:\n      env:\n        - \"ADWHIZ_API_KEY\"\n    homepage: \"https://adwhiz.ai\"\n    source: \"https://github.com/iamzifei/adwhiz\"\n    license: \"MIT\"\n---\n\n# AdWhiz — Google Ads & Meta Ads MCP Server\n\nAdWhiz is a hosted MCP server that connects your AI coding tool to the\nGoogle Ads API and Meta (Facebook) Graph API through a secure, authenticated\nproxy. It exposes **102 tools** across 7 categories so you can audit, create,\nand manage ad campaigns across both platforms using plain English.\n\nAll API calls are authenticated via your personal `ADWHIZ_API_KEY` and routed\nthrough the AdWhiz server at `mcp.adwhiz.ai`. No Google or Meta credentials\nare stored by the skill — authentication is handled entirely server-side\nafter you link your ad accounts at https://adwhiz.ai/connect.\n\n## Security & Permissions Model\n\n- **OAuth 2.0**: User authenticates with Google and/or Meta via AdWhiz's web\n  UI. Refresh tokens (Google) and long-lived access tokens (Meta) are encrypted\n  at rest (AES-256-GCM) and never exposed to the agent.\n- **API key scoping**: Each `ADWHIZ_API_KEY` is bound to a single user's\n  connected accounts. Cross-user access is not possible.\n- **Write safety**: All Google Ads write tools create entities in **PAUSED**\n  status by default. Meta write tools require explicit status parameters.\n- **Mutation logging**: Every mutation is recorded in the `get_operation_log`\n  tool for full auditability.\n- **Read-only by default**: 39 of 102 tools are strictly read-only and cannot\n  modify your accounts.\n- **Confirmation required**: Write tools require user confirmation before\n  executing via the agent's standard permission flow.\n- **No arbitrary code execution**: The MCP server is a hosted HTTP service.\n  No code is downloaded or executed on the user's machine beyond the thin\n  MCP client wrapper.\n\n## Google Ads Tools (70)\n\n### Account (2 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_accounts` | List all accessible Google Ads accounts (auto-expands MCC child accounts) |\n| `get_account_info` | Get account details (currency, timezone, optimization score) |\n\n### Read (20 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_campaigns` | List campaigns with status, type, budget, bidding strategy |\n| `get_campaign_performance` | Campaign metrics: cost, clicks, conversions, CTR, CPA, ROAS |\n| `list_ad_groups` | List ad groups with bids, filtered by campaign |\n| `list_ads` | List ads with headlines, descriptions, final URLs |\n| `list_keywords` | Keywords with match types, bids, quality scores |\n| `get_search_terms` | Search terms report (actual queries triggering ads) |\n| `list_negative_keywords` | Negative keywords at campaign, ad group, or account level |\n| `list_assets` | Sitelinks, callouts, structured snippets |\n| `list_conversion_actions` | Conversion actions with status, type, category |\n| `list_budgets` | Campaign budgets with associated campaigns |\n| `list_bidding_strategies` | Portfolio bidding strategies |\n| `list_audience_segments` | Audience targeting criteria |\n| `list_user_lists` | Remarketing/audience lists for targeting |\n| `get_operation_log` | Recent mutations performed via AdWhiz |\n| `list_recommendations` | Google Ads recommendations (add keywords, raise bids, fix ad strength) |\n| `get_change_history` | Change audit log: who changed what and when |\n| `list_geo_targets` | Geographic location targeting on campaigns |\n| `list_ad_schedules` | Ad schedule (dayparting) criteria on campaigns |\n| `list_labels` | Labels for organizing campaigns, ad groups, ads, keywords |\n| `generate_keyword_ideas` | Keyword ideas with search volume, competition, bid ranges |\n\n### Write (45 tools) — Requires user confirmation\n| Tool | Description |\n|------|-------------|\n| `create_campaign` | Create Search, Display, PMax, or Video campaign (starts PAUSED) |\n| `update_campaign` | Update campaign name |\n| `set_campaign_status` | Pause, enable, or remove a campaign |\n| `create_ad_group` | Create an ad group in a campaign |\n| `update_ad_group` | Update ad group name or CPC bid |\n| `set_ad_group_status` | Pause, enable, or remove an ad group |\n| `create_responsive_search_ad` | Create RSA with headlines + descriptions (starts PAUSED) |\n| `set_ad_status` | Pause, enable, or remove an ad |\n| `add_keywords` | Add keywords with match types and bids |\n| `update_keyword_bid` | Change a keyword's CPC bid |\n| `set_keyword_status` | Pause, enable, or remove a keyword |\n| `add_negative_keyword` | Add negative keyword at campaign or ad group level |\n| `remove_negative_keyword` | Remove a negative keyword |\n| `create_shared_negative_list` | Create a shared negative keyword list |\n| `add_to_shared_list` | Add keywords to a shared negative list |\n| `attach_shared_list` | Attach shared list to a campaign |\n| `create_sitelink` | Create a sitelink asset |\n| `create_callout` | Create a callout asset |\n| `create_structured_snippet` | Create a structured snippet asset |\n| `create_price_extension` | Create a price extension asset |\n| `link_asset_to_campaign` | Link asset to a campaign |\n| `unlink_asset_from_campaign` | Unlink asset from a campaign |\n| `create_conversion_action` | Create a conversion tracking action |\n| `update_conversion_action` | Update conversion action name or status |\n| `create_budget` | Create a campaign budget |\n| `update_budget` | Update budget amount or name |\n| `create_bidding_strategy` | Create a portfolio bidding strategy |\n| `add_audience_to_campaign` | Add audience targeting to a campaign |\n| `update_responsive_search_ad` | Update RSA headlines, descriptions, or URLs |\n| `link_asset_to_ad_group` | Link asset to an ad group |\n| `unlink_asset_from_ad_group` | Remove asset-to-ad-group linkage |\n| `upload_click_conversions` | Upload offline click conversions (gclid-based) |\n| `upload_customer_list` | Upload hashed PII to Customer Match user list |\n| `apply_recommendation` | Apply a Google Ads recommendation |\n| `dismiss_recommendation` | Dismiss a Google Ads recommendation |\n| `add_geo_targeting` | Add geographic location targeting to a campaign |\n| `remove_geo_targeting` | Remove geographic location target from a campaign |\n| `add_ad_schedule` | Add ad schedule (dayparting) to a campaign |\n| `remove_ad_schedule` | Remove ad schedule criterion from a campaign |\n| `set_device_bid_adjustment` | Set device bid adjustment (mobile, desktop, tablet) |\n| `set_demographic_targeting` | Set demographic targeting (age, gender, income) |\n| `create_label` | Create a label for organizing entities |\n| `apply_label` | Apply a label to a campaign, ad group, or ad |\n| `remove_label` | Remove a label from a campaign, ad group, or ad |\n| `create_asset_group` | Create an asset group for Performance Max campaigns |\n\n### Audit (2 tools) — Read-only analysis\n| Tool | Description |\n|------|-------------|\n| `run_mini_audit` | Quick 3-metric audit: wasted spend, best/worst CPA, projected savings |\n| `run_full_audit` | Comprehensive audit: campaigns, keywords, search terms, issues, recommendations |\n\n### Query (1 tool) — Read-only, bounded\n| Tool | Description |\n|------|-------------|\n| `run_gaql_query` | Execute a read-only GAQL query against your account (max 1,000 rows, SELECT only) |\n\n## Meta (Facebook) Ads Tools (32)\n\n### Meta Read (15 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `meta_list_ad_accounts` | List all connected Meta ad accounts |\n| `meta_list_campaigns` | List campaigns with status, objective, budget |\n| `meta_get_campaign_insights` | Per-campaign metrics: spend, clicks, CTR, CPA, frequency (with optional breakdowns) |\n| `meta_list_ad_sets` | List ad sets with targeting, status, budget, and promoted_object |\n| `meta_list_ads` | List ads with creative details (title, body, image URL) |\n| `meta_get_account_insights` | Account-level aggregated metrics with daily breakdown |\n| `meta_get_ad_set_insights` | Per-ad-set performance metrics: spend, clicks, CPA, frequency |\n| `meta_get_ad_insights` | Per-ad performance metrics: spend, clicks, conversions, CPA |\n| `meta_get_ad_creatives` | List ad creatives or get creative for a specific ad |\n| `meta_search_interests` | Search targetable interest audiences by keyword |\n| `meta_search_geo_locations` | Search geographic locations for targeting |\n| `meta_estimate_audience_size` | Estimate reach of a targeting spec |\n| `meta_get_account_pages` | List Facebook pages available for running ads |\n| `meta_get_change_history` | View recent changes (audit log) — who changed what and when |\n| `meta_get_instagram_media` | List Instagram media with Media V2 IDs for partnership/branded content ads |\n\n### Meta Write (16 tools) — Requires user confirmation\n| Tool | Description |\n|------|-------------|\n| `meta_set_campaign_status` | Pause or activate a Meta campaign |\n| `meta_update_campaign_budget` | Update a Meta campaign's daily or lifetime budget |\n| `meta_set_ad_set_status` | Pause or activate a Meta ad set |\n| `meta_set_ad_status` | Pause or activate a Meta ad |\n| `meta_create_campaign` | Create a new Meta campaign with objective and budget |\n| `meta_create_ad_set` | Create an ad set with targeting, budget, optimization goal |\n| `meta_create_ad_creative` | Create ad creative with image/video, link, CTA. Supports partnership ads via `source_instagram_media_id` or `object_story_id` |\n| `meta_create_ad` | Create an ad linking an ad set to a creative |\n| `meta_update_campaign` | Update campaign name, budget, end time, spend cap |\n| `meta_update_ad_set` | Update ad set name, budget, targeting, schedule |\n| `meta_update_ad` | Update ad name, creative, or status |\n| `meta_create_custom_audience` | Create custom audience from customer lists or website visitors |\n| `meta_create_lookalike_audience` | Create lookalike audience from source audience |\n| `meta_upload_ad_image` | Upload image from URL for ad creatives |\n| `meta_upload_partnership_video` | Upload Instagram creator video via partnership ad code for branded content ads |\n| `meta_duplicate_campaign` | Duplicate campaign with all ad sets and ads |\n\n### Meta Audit (1 tool) — Read-only analysis\n| Tool | Description |\n|------|-------------|\n| `meta_run_mini_audit` | Quick health audit: score (0-100) across wasted spend, CPA efficiency, budget utilization, creative fatigue |\n\n## MCP Server Configuration\n\nAdWhiz uses **HTTP transport** to connect to the hosted MCP server. No npm\npackages are downloaded or executed at runtime.\n\n```json\n{\n  \"mcpServers\": {\n    \"adwhiz\": {\n      \"transport\": \"http\",\n      \"url\": \"https://mcp.adwhiz.ai/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${ADWHIZ_API_KEY}\"\n      }\n    }\n  }\n}\n```\n\n## REST API (Alternative to MCP)\n\nFor platforms that cannot use the MCP protocol (GPT Actions, Dify, Coze, or\nany HTTP-based workflow), AdWhiz also exposes all 102 tools as a standard\nREST API with an OpenAPI 3.1.0 spec:\n\n- **OpenAPI spec**: https://mcp.adwhiz.ai/api/v1/openapi.json\n- **Tool listing**: https://mcp.adwhiz.ai/api/v1/tools\n- **Tool execution**: `POST https://mcp.adwhiz.ai/api/v1/tools/{tool_name}`\n\n```bash\n# Example: list campaigns via REST API\ncurl -X POST https://mcp.adwhiz.ai/api/v1/tools/list_campaigns \\\n  -H \"Authorization: Bearer $ADWHIZ_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"customer_id\": \"1234567890\"}'\n```\n\nImport the OpenAPI spec URL into any platform that supports OpenAPI actions\nto auto-discover all 102 tools.\n\n## Quick Install\n\n```bash\nclawhub install adwhiz\n```\n\nThis adds the MCP server configuration above to your settings. You will be\nprompted to provide your `ADWHIZ_API_KEY`.\n\n## Getting Your API Key\n\n1. Sign up at https://adwhiz.ai\n2. Connect your Google Ads and/or Meta Ads account via OAuth\n3. Copy your API key from the dashboard settings page\n\n## Example Prompts\n\n### Google Ads\n- \"Audit my Google Ads account and show the top 5 waste areas\"\n- \"Pause all campaigns with CPA above $150\"\n- \"Add these negative keywords to my Search campaigns: [list]\"\n- \"Create a new Search campaign targeting lawyers in New York with $100/day budget\"\n- \"Show me search terms wasting money and suggest negatives\"\n- \"What is my account's average Quality Score this month?\"\n\n### Meta Ads\n- \"Audit my Meta Ads account and show the health score\"\n- \"List all active Meta campaigns with their spend and CTR\"\n- \"Pause the Meta campaign with the highest frequency\"\n- \"Show me daily spend trends for my Meta account over the last 30 days\"\n- \"Which Meta ad sets have the worst CPA?\"\n\n## Data Handling\n\n- AdWhiz only accesses the ad accounts you explicitly linked\n- No campaign data is stored beyond the duration of each API request\n- Mutation logs are retained for 30 days for auditability\n- You can revoke access at any time from https://adwhiz.ai/connect\n\n## Documentation\n\nFull documentation: https://adwhiz.ai/docs\n\nFile v2.3.0:_meta.json\n\n{\n  \"ownerId\": \"kn7c1tc2v65dh1peh00pytfh2181mwep\",\n  \"slug\": \"adwhiz\",\n  \"version\": \"2.3.0\",\n  \"publishedAt\": 1774537514573\n}\n\nFile v2.3.0:skill-card.md\n\n## Description: <br>\nManage Google Ads & Meta (Facebook) Ads from your AI coding tool with MCP tools for auditing, creating, and optimizing ad accounts using natural language. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[iamzifei](https://clawhub.ai/user/iamzifei) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal developers, marketing operators, and agencies use this skill to audit and manage connected Google Ads and Meta Ads accounts through an authenticated hosted MCP service. It supports read-only reporting, campaign optimization, and account mutations that can affect budgets, statuses, ads, audiences, conversion tracking, and customer lists. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can perform powerful Google Ads and Meta Ads account changes, including budget, status, ad, audience, conversion tracking, and customer list operations. <br>\nMitigation: Protect the ADWHIZ_API_KEY, connect only necessary ad accounts, start with read-only audits where possible, and carefully review agent approvals before any write operation. <br>\nRisk: Connected advertising accounts and API keys grant access to sensitive campaign and performance data. <br>\nMitigation: Use account-level scoping, revoke access when no longer needed, and avoid exposing the API key in logs, prompts, or shared configuration. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/iamzifei/adwhiz) <br>\n- [Publisher Profile](https://clawhub.ai/user/iamzifei) <br>\n- [AdWhiz Homepage](https://adwhiz.ai) <br>\n- [AdWhiz Documentation](https://adwhiz.ai/docs) <br>\n- [AdWhiz OpenAPI Specification](https://mcp.adwhiz.ai/api/v1/openapi.json) <br>\n- [AdWhiz Tool Listing](https://mcp.adwhiz.ai/api/v1/tools) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, API calls, guidance] <br>\n**Output Format:** [Natural-language responses, MCP tool calls, REST API JSON responses, and configuration snippets] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires ADWHIZ_API_KEY and connected Google or Meta ad accounts] <br>\n\n## Skill Version(s): <br>\n2.3.0 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v2.2.0: 2 files, 4911 bytes\n\nFiles: SKILL.md (12648b), _meta.json (125b)\n\nFile v2.2.0:SKILL.md\n\n---\nname: adwhiz\ndescription: >\n  Manage Google Ads & Meta (Facebook) Ads from your AI coding tool. 99 MCP\n  tools for auditing, creating, and optimizing ad accounts using natural language.\nmetadata:\n  openclaw:\n    primaryEnv: \"ADWHIZ_API_KEY\"\n    requires:\n      env:\n        - \"ADWHIZ_API_KEY\"\n    homepage: \"https://adwhiz.ai\"\n    source: \"https://github.com/iamzifei/adwhiz\"\n    license: \"MIT\"\n---\n\n# AdWhiz — Google Ads & Meta Ads MCP Server\n\nAdWhiz is a hosted MCP server that connects your AI coding tool to the\nGoogle Ads API and Meta (Facebook) Graph API through a secure, authenticated\nproxy. It exposes **99 tools** across 7 categories so you can audit, create,\nand manage ad campaigns across both platforms using plain English.\n\nAll API calls are authenticated via your personal `ADWHIZ_API_KEY` and routed\nthrough the AdWhiz server at `mcp.adwhiz.ai`. No Google or Meta credentials\nare stored by the skill — authentication is handled entirely server-side\nafter you link your ad accounts at https://adwhiz.ai/connect.\n\n## Security & Permissions Model\n\n- **OAuth 2.0**: User authenticates with Google and/or Meta via AdWhiz's web\n  UI. Refresh tokens (Google) and long-lived access tokens (Meta) are encrypted\n  at rest (AES-256-GCM) and never exposed to the agent.\n- **API key scoping**: Each `ADWHIZ_API_KEY` is bound to a single user's\n  connected accounts. Cross-user access is not possible.\n- **Write safety**: All Google Ads write tools create entities in **PAUSED**\n  status by default. Meta write tools require explicit status parameters.\n- **Mutation logging**: Every mutation is recorded in the `get_operation_log`\n  tool for full auditability.\n- **Read-only by default**: 36 of 99 tools are strictly read-only and cannot\n  modify your accounts.\n- **Confirmation required**: Write tools require user confirmation before\n  executing via the agent's standard permission flow.\n- **No arbitrary code execution**: The MCP server is a hosted HTTP service.\n  No code is downloaded or executed on the user's machine beyond the thin\n  MCP client wrapper.\n\n## Google Ads Tools (70)\n\n### Account (2 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_accounts` | List all accessible Google Ads accounts (auto-expands MCC child accounts) |\n| `get_account_info` | Get account details (currency, timezone, optimization score) |\n\n### Read (20 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_campaigns` | List campaigns with status, type, budget, bidding strategy |\n| `get_campaign_performance` | Campaign metrics: cost, clicks, conversions, CTR, CPA, ROAS |\n| `list_ad_groups` | List ad groups with bids, filtered by campaign |\n| `list_ads` | List ads with headlines, descriptions, final URLs |\n| `list_keywords` | Keywords with match types, bids, quality scores |\n| `get_search_terms` | Search terms report (actual queries triggering ads) |\n| `list_negative_keywords` | Negative keywords at campaign, ad group, or account level |\n| `list_assets` | Sitelinks, callouts, structured snippets |\n| `list_conversion_actions` | Conversion actions with status, type, category |\n| `list_budgets` | Campaign budgets with associated campaigns |\n| `list_bidding_strategies` | Portfolio bidding strategies |\n| `list_audience_segments` | Audience targeting criteria |\n| `list_user_lists` | Remarketing/audience lists for targeting |\n| `get_operation_log` | Recent mutations performed via AdWhiz |\n| `list_recommendations` | Google Ads recommendations (add keywords, raise bids, fix ad strength) |\n| `get_change_history` | Change audit log: who changed what and when |\n| `list_geo_targets` | Geographic location targeting on campaigns |\n| `list_ad_schedules` | Ad schedule (dayparting) criteria on campaigns |\n| `list_labels` | Labels for organizing campaigns, ad groups, ads, keywords |\n| `generate_keyword_ideas` | Keyword ideas with search volume, competition, bid ranges |\n\n### Write (45 tools) — Requires user confirmation\n| Tool | Description |\n|------|-------------|\n| `create_campaign` | Create Search, Display, PMax, or Video campaign (starts PAUSED) |\n| `update_campaign` | Update campaign name |\n| `set_campaign_status` | Pause, enable, or remove a campaign |\n| `create_ad_group` | Create an ad group in a campaign |\n| `update_ad_group` | Update ad group name or CPC bid |\n| `set_ad_group_status` | Pause, enable, or remove an ad group |\n| `create_responsive_search_ad` | Create RSA with headlines + descriptions (starts PAUSED) |\n| `set_ad_status` | Pause, enable, or remove an ad |\n| `add_keywords` | Add keywords with match types and bids |\n| `update_keyword_bid` | Change a keyword's CPC bid |\n| `set_keyword_status` | Pause, enable, or remove a keyword |\n| `add_negative_keyword` | Add negative keyword at campaign or ad group level |\n| `remove_negative_keyword` | Remove a negative keyword |\n| `create_shared_negative_list` | Create a shared negative keyword list |\n| `add_to_shared_list` | Add keywords to a shared negative list |\n| `attach_shared_list` | Attach shared list to a campaign |\n| `create_sitelink` | Create a sitelink asset |\n| `create_callout` | Create a callout asset |\n| `create_structured_snippet` | Create a structured snippet asset |\n| `create_price_extension` | Create a price extension asset |\n| `link_asset_to_campaign` | Link asset to a campaign |\n| `unlink_asset_from_campaign` | Unlink asset from a campaign |\n| `create_conversion_action` | Create a conversion tracking action |\n| `update_conversion_action` | Update conversion action name or status |\n| `create_budget` | Create a campaign budget |\n| `update_budget` | Update budget amount or name |\n| `create_bidding_strategy` | Create a portfolio bidding strategy |\n| `add_audience_to_campaign` | Add audience targeting to a campaign |\n| `update_responsive_search_ad` | Update RSA headlines, descriptions, or URLs |\n| `link_asset_to_ad_group` | Link asset to an ad group |\n| `unlink_asset_from_ad_group` | Remove asset-to-ad-group linkage |\n| `upload_click_conversions` | Upload offline click conversions (gclid-based) |\n| `upload_customer_list` | Upload hashed PII to Customer Match user list |\n| `apply_recommendation` | Apply a Google Ads recommendation |\n| `dismiss_recommendation` | Dismiss a Google Ads recommendation |\n| `add_geo_targeting` | Add geographic location targeting to a campaign |\n| `remove_geo_targeting` | Remove geographic location target from a campaign |\n| `add_ad_schedule` | Add ad schedule (dayparting) to a campaign |\n| `remove_ad_schedule` | Remove ad schedule criterion from a campaign |\n| `set_device_bid_adjustment` | Set device bid adjustment (mobile, desktop, tablet) |\n| `set_demographic_targeting` | Set demographic targeting (age, gender, income) |\n| `create_label` | Create a label for organizing entities |\n| `apply_label` | Apply a label to a campaign, ad group, or ad |\n| `remove_label` | Remove a label from a campaign, ad group, or ad |\n| `create_asset_group` | Create an asset group for Performance Max campaigns |\n\n### Audit (2 tools) — Read-only analysis\n| Tool | Description |\n|------|-------------|\n| `run_mini_audit` | Quick 3-metric audit: wasted spend, best/worst CPA, projected savings |\n| `run_full_audit` | Comprehensive audit: campaigns, keywords, search terms, issues, recommendations |\n\n### Query (1 tool) — Read-only, bounded\n| Tool | Description |\n|------|-------------|\n| `run_gaql_query` | Execute a read-only GAQL query against your account (max 1,000 rows, SELECT only) |\n\n## Meta (Facebook) Ads Tools (29)\n\n### Meta Read (13 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `meta_list_ad_accounts` | List all connected Meta ad accounts |\n| `meta_list_campaigns` | List campaigns with status, objective, budget |\n| `meta_get_campaign_insights` | Per-campaign metrics: spend, clicks, CTR, CPA, frequency (with optional breakdowns) |\n| `meta_list_ad_sets` | List ad sets with targeting, status, budget |\n| `meta_list_ads` | List ads with creative details (title, body, image URL) |\n| `meta_get_account_insights` | Account-level aggregated metrics with daily breakdown |\n| `meta_get_ad_set_insights` | Per-ad-set performance metrics: spend, clicks, CPA, frequency |\n| `meta_get_ad_insights` | Per-ad performance metrics: spend, clicks, conversions, CPA |\n| `meta_get_ad_creatives` | List ad creatives or get creative for a specific ad |\n| `meta_search_interests` | Search targetable interest audiences by keyword |\n| `meta_search_geo_locations` | Search geographic locations for targeting |\n| `meta_estimate_audience_size` | Estimate reach of a targeting spec |\n| `meta_get_account_pages` | List Facebook pages available for running ads |\n\n### Meta Write (15 tools) — Requires user confirmation\n| Tool | Description |\n|------|-------------|\n| `meta_set_campaign_status` | Pause or activate a Meta campaign |\n| `meta_update_campaign_budget` | Update a Meta campaign's daily or lifetime budget |\n| `meta_set_ad_set_status` | Pause or activate a Meta ad set |\n| `meta_set_ad_status` | Pause or activate a Meta ad |\n| `meta_create_campaign` | Create a new Meta campaign with objective and budget |\n| `meta_create_ad_set` | Create an ad set with targeting, budget, optimization goal |\n| `meta_create_ad_creative` | Create ad creative with image/video, link, CTA |\n| `meta_create_ad` | Create an ad linking an ad set to a creative |\n| `meta_update_campaign` | Update campaign name, budget, end time, spend cap |\n| `meta_update_ad_set` | Update ad set name, budget, targeting, schedule |\n| `meta_update_ad` | Update ad name, creative, or status |\n| `meta_create_custom_audience` | Create custom audience from customer lists or website visitors |\n| `meta_create_lookalike_audience` | Create lookalike audience from source audience |\n| `meta_upload_ad_image` | Upload image from URL for ad creatives |\n| `meta_duplicate_campaign` | Duplicate campaign with all ad sets and ads |\n\n### Meta Audit (1 tool) — Read-only analysis\n| Tool | Description |\n|------|-------------|\n| `meta_run_mini_audit` | Quick health audit: score (0-100) across wasted spend, CPA efficiency, budget utilization, creative fatigue |\n\n## MCP Server Configuration\n\nAdWhiz uses **HTTP transport** to connect to the hosted MCP server. No npm\npackages are downloaded or executed at runtime.\n\n```json\n{\n  \"mcpServers\": {\n    \"adwhiz\": {\n      \"transport\": \"http\",\n      \"url\": \"https://mcp.adwhiz.ai/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${ADWHIZ_API_KEY}\"\n      }\n    }\n  }\n}\n```\n\n## REST API (Alternative to MCP)\n\nFor platforms that cannot use the MCP protocol (GPT Actions, Dify, Coze, or\nany HTTP-based workflow), AdWhiz also exposes all 99 tools as a standard\nREST API with an OpenAPI 3.1.0 spec:\n\n- **OpenAPI spec**: https://mcp.adwhiz.ai/api/v1/openapi.json\n- **Tool listing**: https://mcp.adwhiz.ai/api/v1/tools\n- **Tool execution**: `POST https://mcp.adwhiz.ai/api/v1/tools/{tool_name}`\n\n```bash\n# Example: list campaigns via REST API\ncurl -X POST https://mcp.adwhiz.ai/api/v1/tools/list_campaigns \\\n  -H \"Authorization: Bearer $ADWHIZ_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"customer_id\": \"1234567890\"}'\n```\n\nImport the OpenAPI spec URL into any platform that supports OpenAPI actions\nto auto-discover all 99 tools.\n\n## Quick Install\n\n```bash\nclawhub install adwhiz\n```\n\nThis adds the MCP server configuration above to your settings. You will be\nprompted to provide your `ADWHIZ_API_KEY`.\n\n## Getting Your API Key\n\n1. Sign up at https://adwhiz.ai\n2. Connect your Google Ads and/or Meta Ads account via OAuth\n3. Copy your API key from the dashboard settings page\n\n## Example Prompts\n\n### Google Ads\n- \"Audit my Google Ads account and show the top 5 waste areas\"\n- \"Pause all campaigns with CPA above $150\"\n- \"Add these negative keywords to my Search campaigns: [list]\"\n- \"Create a new Search campaign targeting lawyers in New York with $100/day budget\"\n- \"Show me search terms wasting money and suggest negatives\"\n- \"What is my account's average Quality Score this month?\"\n\n### Meta Ads\n- \"Audit my Meta Ads account and show the health score\"\n- \"List all active Meta campaigns with their spend and CTR\"\n- \"Pause the Meta campaign with the highest frequency\"\n- \"Show me daily spend trends for my Meta account over the last 30 days\"\n- \"Which Meta ad sets have the worst CPA?\"\n\n## Data Handling\n\n- AdWhiz only accesses the ad accounts you explicitly linked\n- No campaign data is stored beyond the duration of each API request\n- Mutation logs are retained for 30 days for auditability\n- You can revoke access at any time from https://adwhiz.ai/connect\n\n## Documentation\n\nFull documentation: https://adwhiz.ai/docs\n\nFile v2.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn7c1tc2v65dh1peh00pytfh2181mwep\",\n  \"slug\": \"adwhiz\",\n  \"version\": \"2.2.0\",\n  \"publishedAt\": 1772878162654\n}\n\nArchive v2.1.1: 2 files, 4910 bytes\n\nFiles: SKILL.md (12648b), _meta.json (125b)\n\nFile v2.1.1:SKILL.md\n\n---\nname: adwhiz\ndescription: >\n  Manage Google Ads & Meta (Facebook) Ads from your AI coding tool. 99 MCP\n  tools for auditing, creating, and optimizing ad accounts using natural language.\nmetadata:\n  openclaw:\n    primaryEnv: \"ADWHIZ_API_KEY\"\n    requires:\n      env:\n        - \"ADWHIZ_API_KEY\"\n    homepage: \"https://adwhiz.ai\"\n    source: \"https://github.com/iamzifei/adwhiz\"\n    license: \"MIT\"\n---\n\n# AdWhiz — Google Ads & Meta Ads MCP Server\n\nAdWhiz is a hosted MCP server that connects your AI coding tool to the\nGoogle Ads API and Meta (Facebook) Graph API through a secure, authenticated\nproxy. It exposes **99 tools** across 7 categories so you can audit, create,\nand manage ad campaigns across both platforms using plain English.\n\nAll API calls are authenticated via your personal `ADWHIZ_API_KEY` and routed\nthrough the AdWhiz server at `mcp.adwhiz.ai`. No Google or Meta credentials\nare stored by the skill — authentication is handled entirely server-side\nafter you link your ad accounts at https://adwhiz.ai/connect.\n\n## Security & Permissions Model\n\n- **OAuth 2.0**: User authenticates with Google and/or Meta via AdWhiz's web\n  UI. Refresh tokens (Google) and long-lived access tokens (Meta) are encrypted\n  at rest (AES-256-GCM) and never exposed to the agent.\n- **API key scoping**: Each `ADWHIZ_API_KEY` is bound to a single user's\n  connected accounts. Cross-user access is not possible.\n- **Write safety**: All Google Ads write tools create entities in **PAUSED**\n  status by default. Meta write tools require explicit status parameters.\n- **Mutation logging**: Every mutation is recorded in the `get_operation_log`\n  tool for full auditability.\n- **Read-only by default**: 36 of 99 tools are strictly read-only and cannot\n  modify your accounts.\n- **Confirmation required**: Write tools require user confirmation before\n  executing via the agent's standard permission flow.\n- **No arbitrary code execution**: The MCP server is a hosted HTTP service.\n  No code is downloaded or executed on the user's machine beyond the thin\n  MCP client wrapper.\n\n## Google Ads Tools (70)\n\n### Account (2 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_accounts` | List all accessible Google Ads accounts (auto-expands MCC child accounts) |\n| `get_account_info` | Get account details (currency, timezone, optimization score) |\n\n### Read (20 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_campaigns` | List campaigns with status, type, budget, bidding strategy |\n| `get_campaign_performance` | Campaign metrics: cost, clicks, conversions, CTR, CPA, ROAS |\n| `list_ad_groups` | List ad groups with bids, filtered by campaign |\n| `list_ads` | List ads with headlines, descriptions, final URLs |\n| `list_keywords` | Keywords with match types, bids, quality scores |\n| `get_search_terms` | Search terms report (actual queries triggering ads) |\n| `list_negative_keywords` | Negative keywords at campaign, ad group, or account level |\n| `list_assets` | Sitelinks, callouts, structured snippets |\n| `list_conversion_actions` | Conversion actions with status, type, category |\n| `list_budgets` | Campaign budgets with associated campaigns |\n| `list_bidding_strategies` | Portfolio bidding strategies |\n| `list_audience_segments` | Audience targeting criteria |\n| `list_user_lists` | Remarketing/audience lists for targeting |\n| `get_operation_log` | Recent mutations performed via AdWhiz |\n| `list_recommendations` | Google Ads recommendations (add keywords, raise bids, fix ad strength) |\n| `get_change_history` | Change audit log: who changed what and when |\n| `list_geo_targets` | Geographic location targeting on campaigns |\n| `list_ad_schedules` | Ad schedule (dayparting) criteria on campaigns |\n| `list_labels` | Labels for organizing campaigns, ad groups, ads, keywords |\n| `generate_keyword_ideas` | Keyword ideas with search volume, competition, bid ranges |\n\n### Write (45 tools) — Requires user confirmation\n| Tool | Description |\n|------|-------------|\n| `create_campaign` | Create Search, Display, PMax, or Video campaign (starts PAUSED) |\n| `update_campaign` | Update campaign name |\n| `set_campaign_status` | Pause, enable, or remove a campaign |\n| `create_ad_group` | Create an ad group in a campaign |\n| `update_ad_group` | Update ad group name or CPC bid |\n| `set_ad_group_status` | Pause, enable, or remove an ad group |\n| `create_responsive_search_ad` | Create RSA with headlines + descriptions (starts PAUSED) |\n| `set_ad_status` | Pause, enable, or remove an ad |\n| `add_keywords` | Add keywords with match types and bids |\n| `update_keyword_bid` | Change a keyword's CPC bid |\n| `set_keyword_status` | Pause, enable, or remove a keyword |\n| `add_negative_keyword` | Add negative keyword at campaign or ad group level |\n| `remove_negative_keyword` | Remove a negative keyword |\n| `create_shared_negative_list` | Create a shared negative keyword list |\n| `add_to_shared_list` | Add keywords to a shared negative list |\n| `attach_shared_list` | Attach shared list to a campaign |\n| `create_sitelink` | Create a sitelink asset |\n| `create_callout` | Create a callout asset |\n| `create_structured_snippet` | Create a structured snippet asset |\n| `create_price_extension` | Create a price extension asset |\n| `link_asset_to_campaign` | Link asset to a campaign |\n| `unlink_asset_from_campaign` | Unlink asset from a campaign |\n| `create_conversion_action` | Create a conversion tracking action |\n| `update_conversion_action` | Update conversion action name or status |\n| `create_budget` | Create a campaign budget |\n| `update_budget` | Update budget amount or name |\n| `create_bidding_strategy` | Create a portfolio bidding strategy |\n| `add_audience_to_campaign` | Add audience targeting to a campaign |\n| `update_responsive_search_ad` | Update RSA headlines, descriptions, or URLs |\n| `link_asset_to_ad_group` | Link asset to an ad group |\n| `unlink_asset_from_ad_group` | Remove asset-to-ad-group linkage |\n| `upload_click_conversions` | Upload offline click conversions (gclid-based) |\n| `upload_customer_list` | Upload hashed PII to Customer Match user list |\n| `apply_recommendation` | Apply a Google Ads recommendation |\n| `dismiss_recommendation` | Dismiss a Google Ads recommendation |\n| `add_geo_targeting` | Add geographic location targeting to a campaign |\n| `remove_geo_targeting` | Remove geographic location target from a campaign |\n| `add_ad_schedule` | Add ad schedule (dayparting) to a campaign |\n| `remove_ad_schedule` | Remove ad schedule criterion from a campaign |\n| `set_device_bid_adjustment` | Set device bid adjustment (mobile, desktop, tablet) |\n| `set_demographic_targeting` | Set demographic targeting (age, gender, income) |\n| `create_label` | Create a label for organizing entities |\n| `apply_label` | Apply a label to a campaign, ad group, or ad |\n| `remove_label` | Remove a label from a campaign, ad group, or ad |\n| `create_asset_group` | Create an asset group for Performance Max campaigns |\n\n### Audit (2 tools) — Read-only analysis\n| Tool | Description |\n|------|-------------|\n| `run_mini_audit` | Quick 3-metric audit: wasted spend, best/worst CPA, projected savings |\n| `run_full_audit` | Comprehensive audit: campaigns, keywords, search terms, issues, recommendations |\n\n### Query (1 tool) — Read-only, bounded\n| Tool | Description |\n|------|-------------|\n| `run_gaql_query` | Execute a read-only GAQL query against your account (max 1,000 rows, SELECT only) |\n\n## Meta (Facebook) Ads Tools (29)\n\n### Meta Read (13 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `meta_list_ad_accounts` | List all connected Meta ad accounts |\n| `meta_list_campaigns` | List campaigns with status, objective, budget |\n| `meta_get_campaign_insights` | Per-campaign metrics: spend, clicks, CTR, CPA, frequency (with optional breakdowns) |\n| `meta_list_ad_sets` | List ad sets with targeting, status, budget |\n| `meta_list_ads` | List ads with creative details (title, body, image URL) |\n| `meta_get_account_insights` | Account-level aggregated metrics with daily breakdown |\n| `meta_get_ad_set_insights` | Per-ad-set performance metrics: spend, clicks, CPA, frequency |\n| `meta_get_ad_insights` | Per-ad performance metrics: spend, clicks, conversions, CPA |\n| `meta_get_ad_creatives` | List ad creatives or get creative for a specific ad |\n| `meta_search_interests` | Search targetable interest audiences by keyword |\n| `meta_search_geo_locations` | Search geographic locations for targeting |\n| `meta_estimate_audience_size` | Estimate reach of a targeting spec |\n| `meta_get_account_pages` | List Facebook pages available for running ads |\n\n### Meta Write (15 tools) — Requires user confirmation\n| Tool | Description |\n|------|-------------|\n| `meta_set_campaign_status` | Pause or activate a Meta campaign |\n| `meta_update_campaign_budget` | Update a Meta campaign's daily or lifetime budget |\n| `meta_set_ad_set_status` | Pause or activate a Meta ad set |\n| `meta_set_ad_status` | Pause or activate a Meta ad |\n| `meta_create_campaign` | Create a new Meta campaign with objective and budget |\n| `meta_create_ad_set` | Create an ad set with targeting, budget, optimization goal |\n| `meta_create_ad_creative` | Create ad creative with image/video, link, CTA |\n| `meta_create_ad` | Create an ad linking an ad set to a creative |\n| `meta_update_campaign` | Update campaign name, budget, end time, spend cap |\n| `meta_update_ad_set` | Update ad set name, budget, targeting, schedule |\n| `meta_update_ad` | Update ad name, creative, or status |\n| `meta_create_custom_audience` | Create custom audience from customer lists or website visitors |\n| `meta_create_lookalike_audience` | Create lookalike audience from source audience |\n| `meta_upload_ad_image` | Upload image from URL for ad creatives |\n| `meta_duplicate_campaign` | Duplicate campaign with all ad sets and ads |\n\n### Meta Audit (1 tool) — Read-only analysis\n| Tool | Description |\n|------|-------------|\n| `meta_run_mini_audit` | Quick health audit: score (0-100) across wasted spend, CPA efficiency, budget utilization, creative fatigue |\n\n## MCP Server Configuration\n\nAdWhiz uses **HTTP transport** to connect to the hosted MCP server. No npm\npackages are downloaded or executed at runtime.\n\n```json\n{\n  \"mcpServers\": {\n    \"adwhiz\": {\n      \"transport\": \"http\",\n      \"url\": \"https://mcp.adwhiz.ai/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${ADWHIZ_API_KEY}\"\n      }\n    }\n  }\n}\n```\n\n## REST API (Alternative to MCP)\n\nFor platforms that cannot use the MCP protocol (GPT Actions, Dify, Coze, or\nany HTTP-based workflow), AdWhiz also exposes all 99 tools as a standard\nREST API with an OpenAPI 3.1.0 spec:\n\n- **OpenAPI spec**: https://mcp.adwhiz.ai/api/v1/openapi.json\n- **Tool listing**: https://mcp.adwhiz.ai/api/v1/tools\n- **Tool execution**: `POST https://mcp.adwhiz.ai/api/v1/tools/{tool_name}`\n\n```bash\n# Example: list campaigns via REST API\ncurl -X POST https://mcp.adwhiz.ai/api/v1/tools/list_campaigns \\\n  -H \"Authorization: Bearer $ADWHIZ_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"customer_id\": \"1234567890\"}'\n```\n\nImport the OpenAPI spec URL into any platform that supports OpenAPI actions\nto auto-discover all 99 tools.\n\n## Quick Install\n\n```bash\nclawhub install adwhiz\n```\n\nThis adds the MCP server configuration above to your settings. You will be\nprompted to provide your `ADWHIZ_API_KEY`.\n\n## Getting Your API Key\n\n1. Sign up at https://adwhiz.ai\n2. Connect your Google Ads and/or Meta Ads account via OAuth\n3. Copy your API key from the dashboard settings page\n\n## Example Prompts\n\n### Google Ads\n- \"Audit my Google Ads account and show the top 5 waste areas\"\n- \"Pause all campaigns with CPA above $150\"\n- \"Add these negative keywords to my Search campaigns: [list]\"\n- \"Create a new Search campaign targeting lawyers in New York with $100/day budget\"\n- \"Show me search terms wasting money and suggest negatives\"\n- \"What is my account's average Quality Score this month?\"\n\n### Meta Ads\n- \"Audit my Meta Ads account and show the health score\"\n- \"List all active Meta campaigns with their spend and CTR\"\n- \"Pause the Meta campaign with the highest frequency\"\n- \"Show me daily spend trends for my Meta account over the last 30 days\"\n- \"Which Meta ad sets have the worst CPA?\"\n\n## Data Handling\n\n- AdWhiz only accesses the ad accounts you explicitly linked\n- No campaign data is stored beyond the duration of each API request\n- Mutation logs are retained for 30 days for auditability\n- You can revoke access at any time from https://adwhiz.ai/connect\n\n## Documentation\n\nFull documentation: https://adwhiz.ai/docs\n\nFile v2.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn7c1tc2v65dh1peh00pytfh2181mwep\",\n  \"slug\": \"adwhiz\",\n  \"version\": \"2.1.1\",\n  \"publishedAt\": 1772875887517\n}\n\nArchive v1.3.0: 2 files, 4911 bytes\n\nFiles: SKILL.md (12648b), _meta.json (125b)\n\nFile v1.3.0:SKILL.md\n\n---\nname: adwhiz\ndescription: >\n  Manage Google Ads & Meta (Facebook) Ads from your AI coding tool. 99 MCP\n  tools for auditing, creating, and optimizing ad accounts using natural language.\nmetadata:\n  openclaw:\n    primaryEnv: \"ADWHIZ_API_KEY\"\n    requires:\n      env:\n        - \"ADWHIZ_API_KEY\"\n    homepage: \"https://adwhiz.ai\"\n    source: \"https://github.com/iamzifei/adwhiz\"\n    license: \"MIT\"\n---\n\n# AdWhiz — Google Ads & Meta Ads MCP Server\n\nAdWhiz is a hosted MCP server that connects your AI coding tool to the\nGoogle Ads API and Meta (Facebook) Graph API through a secure, authenticated\nproxy. It exposes **99 tools** across 7 categories so you can audit, create,\nand manage ad campaigns across both platforms using plain English.\n\nAll API calls are authenticated via your personal `ADWHIZ_API_KEY` and routed\nthrough the AdWhiz server at `mcp.adwhiz.ai`. No Google or Meta credentials\nare stored by the skill — authentication is handled entirely server-side\nafter you link your ad accounts at https://adwhiz.ai/connect.\n\n## Security & Permissions Model\n\n- **OAuth 2.0**: User authenticates with Google and/or Meta via AdWhiz's web\n  UI. Refresh tokens (Google) and long-lived access tokens (Meta) are encrypted\n  at rest (AES-256-GCM) and never exposed to the agent.\n- **API key scoping**: Each `ADWHIZ_API_KEY` is bound to a single user's\n  connected accounts. Cross-user access is not possible.\n- **Write safety**: All Google Ads write tools create entities in **PAUSED**\n  status by default. Meta write tools require explicit status parameters.\n- **Mutation logging**: Every mutation is recorded in the `get_operation_log`\n  tool for full auditability.\n- **Read-only by default**: 36 of 99 tools are strictly read-only and cannot\n  modify your accounts.\n- **Confirmation required**: Write tools require user confirmation before\n  executing via the agent's standard permission flow.\n- **No arbitrary code execution**: The MCP server is a hosted HTTP service.\n  No code is downloaded or executed on the user's machine beyond the thin\n  MCP client wrapper.\n\n## Google Ads Tools (70)\n\n### Account (2 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_accounts` | List all accessible Google Ads accounts (auto-expands MCC child accounts) |\n| `get_account_info` | Get account details (currency, timezone, optimization score) |\n\n### Read (20 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_campaigns` | List campaigns with status, type, budget, bidding strategy |\n| `get_campaign_performance` | Campaign metrics: cost, clicks, conversions, CTR, CPA, ROAS |\n| `list_ad_groups` | List ad groups with bids, filtered by campaign |\n| `list_ads` | List ads with headlines, descriptions, final URLs |\n| `list_keywords` | Keywords with match types, bids, quality scores |\n| `get_search_terms` | Search terms report (actual queries triggering ads) |\n| `list_negative_keywords` | Negative keywords at campaign, ad group, or account level |\n| `list_assets` | Sitelinks, callouts, structured snippets |\n| `list_conversion_actions` | Conversion actions with status, type, category |\n| `list_budgets` | Campaign budgets with associated campaigns |\n| `list_bidding_strategies` | Portfolio bidding strategies |\n| `list_audience_segments` | Audience targeting criteria |\n| `list_user_lists` | Remarketing/audience lists for targeting |\n| `get_operation_log` | Recent mutations performed via AdWhiz |\n| `list_recommendations` | Google Ads recommendations (add keywords, raise bids, fix ad strength) |\n| `get_change_history` | Change audit log: who changed what and when |\n| `list_geo_targets` | Geographic location targeting on campaigns |\n| `list_ad_schedules` | Ad schedule (dayparting) criteria on campaigns |\n| `list_labels` | Labels for organizing campaigns, ad groups, ads, keywords |\n| `generate_keyword_ideas` | Keyword ideas with search volume, competition, bid ranges |\n\n### Write (45 tools) — Requires user confirmation\n| Tool | Description |\n|------|-------------|\n| `create_campaign` | Create Search, Display, PMax, or Video campaign (starts PAUSED) |\n| `update_campaign` | Update campaign name |\n| `set_campaign_status` | Pause, enable, or remove a campaign |\n| `create_ad_group` | Create an ad group in a campaign |\n| `update_ad_group` | Update ad group name or CPC bid |\n| `set_ad_group_status` | Pause, enable, or remove an ad group |\n| `create_responsive_search_ad` | Create RSA with headlines + descriptions (starts PAUSED) |\n| `set_ad_status` | Pause, enable, or remove an ad |\n| `add_keywords` | Add keywords with match types and bids |\n| `update_keyword_bid` | Change a keyword's CPC bid |\n| `set_keyword_status` | Pause, enable, or remove a keyword |\n| `add_negative_keyword` | Add negative keyword at campaign or ad group level |\n| `remove_negative_keyword` | Remove a negative keyword |\n| `create_shared_negative_list` | Create a shared negative keyword list |\n| `add_to_shared_list` | Add keywords to a shared negative list |\n| `attach_shared_list` | Attach shared list to a campaign |\n| `create_sitelink` | Create a sitelink asset |\n| `create_callout` | Create a callout asset |\n| `create_structured_snippet` | Create a structured snippet asset |\n| `create_price_extension` | Create a price extension asset |\n| `link_asset_to_campaign` | Link asset to a campaign |\n| `unlink_asset_from_campaign` | Unlink asset from a campaign |\n| `create_conversion_action` | Create a conversion tracking action |\n| `update_conversion_action` | Update conversion action name or status |\n| `create_budget` | Create a campaign budget |\n| `update_budget` | Update budget amount or name |\n| `create_bidding_strategy` | Create a portfolio bidding strategy |\n| `add_audience_to_campaign` | Add audience targeting to a campaign |\n| `update_responsive_search_ad` | Update RSA headlines, descriptions, or URLs |\n| `link_asset_to_ad_group` | Link asset to an ad group |\n| `unlink_asset_from_ad_group` | Remove asset-to-ad-group linkage |\n| `upload_click_conversions` | Upload offline click conversions (gclid-based) |\n| `upload_customer_list` | Upload hashed PII to Customer Match user list |\n| `apply_recommendation` | Apply a Google Ads recommendation |\n| `dismiss_recommendation` | Dismiss a Google Ads recommendation |\n| `add_geo_targeting` | Add geographic location targeting to a campaign |\n| `remove_geo_targeting` | Remove geographic location target from a campaign |\n| `add_ad_schedule` | Add ad schedule (dayparting) to a campaign |\n| `remove_ad_schedule` | Remove ad schedule criterion from a campaign |\n| `set_device_bid_adjustment` | Set device bid adjustment (mobile, desktop, tablet) |\n| `set_demographic_targeting` | Set demographic targeting (age, gender, income) |\n| `create_label` | Create a label for organizing entities |\n| `apply_label` | Apply a label to a campaign, ad group, or ad |\n| `remove_label` | Remove a label from a campaign, ad group, or ad |\n| `create_asset_group` | Create an asset group for Performance Max campaigns |\n\n### Audit (2 tools) — Read-only analysis\n| Tool | Description |\n|------|-------------|\n| `run_mini_audit` | Quick 3-metric audit: wasted spend, best/worst CPA, projected savings |\n| `run_full_audit` | Comprehensive audit: campaigns, keywords, search terms, issues, recommendations |\n\n### Query (1 tool) — Read-only, bounded\n| Tool | Description |\n|------|-------------|\n| `run_gaql_query` | Execute a read-only GAQL query against your account (max 1,000 rows, SELECT only) |\n\n## Meta (Facebook) Ads Tools (29)\n\n### Meta Read (13 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `meta_list_ad_accounts` | List all connected Meta ad accounts |\n| `meta_list_campaigns` | List campaigns with status, objective, budget |\n| `meta_get_campaign_insights` | Per-campaign metrics: spend, clicks, CTR, CPA, frequency (with optional breakdowns) |\n| `meta_list_ad_sets` | List ad sets with targeting, status, budget |\n| `meta_list_ads` | List ads with creative details (title, body, image URL) |\n| `meta_get_account_insights` | Account-level aggregated metrics with daily breakdown |\n| `meta_get_ad_set_insights` | Per-ad-set performance metrics: spend, clicks, CPA, frequency |\n| `meta_get_ad_insights` | Per-ad performance metrics: spend, clicks, conversions, CPA |\n| `meta_get_ad_creatives` | List ad creatives or get creative for a specific ad |\n| `meta_search_interests` | Search targetable interest audiences by keyword |\n| `meta_search_geo_locations` | Search geographic locations for targeting |\n| `meta_estimate_audience_size` | Estimate reach of a targeting spec |\n| `meta_get_account_pages` | List Facebook pages available for running ads |\n\n### Meta Write (15 tools) — Requires user confirmation\n| Tool | Description |\n|------|-------------|\n| `meta_set_campaign_status` | Pause or activate a Meta campaign |\n| `meta_update_campaign_budget` | Update a Meta campaign's daily or lifetime budget |\n| `meta_set_ad_set_status` | Pause or activate a Meta ad set |\n| `meta_set_ad_status` | Pause or activate a Meta ad |\n| `meta_create_campaign` | Create a new Meta campaign with objective and budget |\n| `meta_create_ad_set` | Create an ad set with targeting, budget, optimization goal |\n| `meta_create_ad_creative` | Create ad creative with image/video, link, CTA |\n| `meta_create_ad` | Create an ad linking an ad set to a creative |\n| `meta_update_campaign` | Update campaign name, budget, end time, spend cap |\n| `meta_update_ad_set` | Update ad set name, budget, targeting, schedule |\n| `meta_update_ad` | Update ad name, creative, or status |\n| `meta_create_custom_audience` | Create custom audience from customer lists or website visitors |\n| `meta_create_lookalike_audience` | Create lookalike audience from source audience |\n| `meta_upload_ad_image` | Upload image from URL for ad creatives |\n| `meta_duplicate_campaign` | Duplicate campaign with all ad sets and ads |\n\n### Meta Audit (1 tool) — Read-only analysis\n| Tool | Description |\n|------|-------------|\n| `meta_run_mini_audit` | Quick health audit: score (0-100) across wasted spend, CPA efficiency, budget utilization, creative fatigue |\n\n## MCP Server Configuration\n\nAdWhiz uses **HTTP transport** to connect to the hosted MCP server. No npm\npackages are downloaded or executed at runtime.\n\n```json\n{\n  \"mcpServers\": {\n    \"adwhiz\": {\n      \"transport\": \"http\",\n      \"url\": \"https://mcp.adwhiz.ai/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${ADWHIZ_API_KEY}\"\n      }\n    }\n  }\n}\n```\n\n## REST API (Alternative to MCP)\n\nFor platforms that cannot use the MCP protocol (GPT Actions, Dify, Coze, or\nany HTTP-based workflow), AdWhiz also exposes all 99 tools as a standard\nREST API with an OpenAPI 3.1.0 spec:\n\n- **OpenAPI spec**: https://mcp.adwhiz.ai/api/v1/openapi.json\n- **Tool listing**: https://mcp.adwhiz.ai/api/v1/tools\n- **Tool execution**: `POST https://mcp.adwhiz.ai/api/v1/tools/{tool_name}`\n\n```bash\n# Example: list campaigns via REST API\ncurl -X POST https://mcp.adwhiz.ai/api/v1/tools/list_campaigns \\\n  -H \"Authorization: Bearer $ADWHIZ_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"customer_id\": \"1234567890\"}'\n```\n\nImport the OpenAPI spec URL into any platform that supports OpenAPI actions\nto auto-discover all 99 tools.\n\n## Quick Install\n\n```bash\nclawhub install adwhiz\n```\n\nThis adds the MCP server configuration above to your settings. You will be\nprompted to provide your `ADWHIZ_API_KEY`.\n\n## Getting Your API Key\n\n1. Sign up at https://adwhiz.ai\n2. Connect your Google Ads and/or Meta Ads account via OAuth\n3. Copy your API key from the dashboard settings page\n\n## Example Prompts\n\n### Google Ads\n- \"Audit my Google Ads account and show the top 5 waste areas\"\n- \"Pause all campaigns with CPA above $150\"\n- \"Add these negative keywords to my Search campaigns: [list]\"\n- \"Create a new Search campaign targeting lawyers in New York with $100/day budget\"\n- \"Show me search terms wasting money and suggest negatives\"\n- \"What is my account's average Quality Score this month?\"\n\n### Meta Ads\n- \"Audit my Meta Ads account and show the health score\"\n- \"List all active Meta campaigns with their spend and CTR\"\n- \"Pause the Meta campaign with the highest frequency\"\n- \"Show me daily spend trends for my Meta account over the last 30 days\"\n- \"Which Meta ad sets have the worst CPA?\"\n\n## Data Handling\n\n- AdWhiz only accesses the ad accounts you explicitly linked\n- No campaign data is stored beyond the duration of each API request\n- Mutation logs are retained for 30 days for auditability\n- You can revoke access at any time from https://adwhiz.ai/connect\n\n## Documentation\n\nFull documentation: https://adwhiz.ai/docs\n\nFile v1.3.0:_meta.json\n\n{\n  \"ownerId\": \"kn7c1tc2v65dh1peh00pytfh2181mwep\",\n  \"slug\": \"adwhiz\",\n  \"version\": \"1.3.0\",\n  \"publishedAt\": 1772875256465\n}\n\nArchive v2.1.0: 2 files, 4893 bytes\n\nFiles: SKILL.md (12614b), _meta.json (125b)\n\nFile v2.1.0:SKILL.md\n\n---\nname: adwhiz\ndescription: >\n  Manage Google Ads & Meta (Facebook) Ads from your AI coding tool. 99 MCP\n  tools for auditing, creating, and optimizing ad accounts using natural language.\nmetadata:\n  openclaw:\n    primaryEnv: \"ADWHIZ_API_KEY\"\n    requires:\n      env:\n        - \"ADWHIZ_API_KEY\"\n    homepage: \"https://adwhiz.ai\"\n    source: \"https://github.com/iamzifei/adwhiz\"\n    license: \"MIT\"\n---\n\n# AdWhiz — Google Ads & Meta Ads MCP Server\n\nAdWhiz is a hosted MCP server that connects your AI coding tool to the\nGoogle Ads API and Meta (Facebook) Graph API through a secure, authenticated\nproxy. It exposes **99 tools** across 7 categories so you can audit, create,\nand manage ad campaigns across both platforms using plain English.\n\nAll API calls are authenticated via your personal `ADWHIZ_API_KEY` and routed\nthrough the AdWhiz server at `mcp.adwhiz.ai`. No Google or Meta credentials\nare stored by the skill — authentication is handled entirely server-side\nafter you link your ad accounts at https://adwhiz.ai/connect.\n\n## Security & Permissions Model\n\n- **OAuth 2.0**: User authenticates with Google and/or Meta via AdWhiz's web\n  UI. Refresh tokens (Google) and long-lived access tokens (Meta) are encrypted\n  at rest (AES-256-GCM) and never exposed to the agent.\n- **API key scoping**: Each `ADWHIZ_API_KEY` is bound to a single user's\n  connected accounts. Cross-user access is not possible.\n- **Write safety**: All Google Ads write tools create entities in **PAUSED**\n  status by default. Meta write tools require explicit status parameters.\n- **Mutation logging**: Every mutation is recorded in the `get_operation_log`\n  tool for full auditability.\n- **Read-only by default**: 36 of 99 tools are strictly read-only and cannot\n  modify your accounts.\n- **Confirmation required**: Write tools require user confirmation before\n  executing via the agent's standard permission flow.\n- **No arbitrary code execution**: The MCP server is a hosted HTTP service.\n  No code is downloaded or executed on the user's machine beyond the thin\n  MCP client wrapper.\n\n## Google Ads Tools (70)\n\n### Account (2 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_accounts` | List all accessible Google Ads accounts |\n| `get_account_info` | Get account details (currency, timezone, optimization score) |\n\n### Read (20 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_campaigns` | List campaigns with status, type, budget, bidding strategy |\n| `get_campaign_performance` | Campaign metrics: cost, clicks, conversions, CTR, CPA, ROAS |\n| `list_ad_groups` | List ad groups with bids, filtered by campaign |\n| `list_ads` | List ads with headlines, descriptions, final URLs |\n| `list_keywords` | Keywords with match types, bids, quality scores |\n| `get_search_terms` | Search terms report (actual queries triggering ads) |\n| `list_negative_keywords` | Negative keywords at campaign, ad group, or account level |\n| `list_assets` | Sitelinks, callouts, structured snippets |\n| `list_conversion_actions` | Conversion actions with status, type, category |\n| `list_budgets` | Campaign budgets with associated campaigns |\n| `list_bidding_strategies` | Portfolio bidding strategies |\n| `list_audience_segments` | Audience targeting criteria |\n| `list_user_lists` | Remarketing/audience lists for targeting |\n| `get_operation_log` | Recent mutations performed via AdWhiz |\n| `list_recommendations` | Google Ads recommendations (add keywords, raise bids, fix ad strength) |\n| `get_change_history` | Change audit log: who changed what and when |\n| `list_geo_targets` | Geographic location targeting on campaigns |\n| `list_ad_schedules` | Ad schedule (dayparting) criteria on campaigns |\n| `list_labels` | Labels for organizing campaigns, ad groups, ads, keywords |\n| `generate_keyword_ideas` | Keyword ideas with search volume, competition, bid ranges |\n\n### Write (45 tools) — Requires user confirmation\n| Tool | Description |\n|------|-------------|\n| `create_campaign` | Create Search, Display, PMax, or Video campaign (starts PAUSED) |\n| `update_campaign` | Update campaign name |\n| `set_campaign_status` | Pause, enable, or remove a campaign |\n| `create_ad_group` | Create an ad group in a campaign |\n| `update_ad_group` | Update ad group name or CPC bid |\n| `set_ad_group_status` | Pause, enable, or remove an ad group |\n| `create_responsive_search_ad` | Create RSA with headlines + descriptions (starts PAUSED) |\n| `set_ad_status` | Pause, enable, or remove an ad |\n| `add_keywords` | Add keywords with match types and bids |\n| `update_keyword_bid` | Change a keyword's CPC bid |\n| `set_keyword_status` | Pause, enable, or remove a keyword |\n| `add_negative_keyword` | Add negative keyword at campaign or ad group level |\n| `remove_negative_keyword` | Remove a negative keyword |\n| `create_shared_negative_list` | Create a shared negative keyword list |\n| `add_to_shared_list` | Add keywords to a shared negative list |\n| `attach_shared_list` | Attach shared list to a campaign |\n| `create_sitelink` | Create a sitelink asset |\n| `create_callout` | Create a callout asset |\n| `create_structured_snippet` | Create a structured snippet asset |\n| `create_price_extension` | Create a price extension asset |\n| `link_asset_to_campaign` | Link asset to a campaign |\n| `unlink_asset_from_campaign` | Unlink asset from a campaign |\n| `create_conversion_action` | Create a conversion tracking action |\n| `update_conversion_action` | Update conversion action name or status |\n| `create_budget` | Create a campaign budget |\n| `update_budget` | Update budget amount or name |\n| `create_bidding_strategy` | Create a portfolio bidding strategy |\n| `add_audience_to_campaign` | Add audience targeting to a campaign |\n| `update_responsive_search_ad` | Update RSA headlines, descriptions, or URLs |\n| `link_asset_to_ad_group` | Link asset to an ad group |\n| `unlink_asset_from_ad_group` | Remove asset-to-ad-group linkage |\n| `upload_click_conversions` | Upload offline click conversions (gclid-based) |\n| `upload_customer_list` | Upload hashed PII to Customer Match user list |\n| `apply_recommendation` | Apply a Google Ads recommendation |\n| `dismiss_recommendation` | Dismiss a Google Ads recommendation |\n| `add_geo_targeting` | Add geographic location targeting to a campaign |\n| `remove_geo_targeting` | Remove geographic location target from a campaign |\n| `add_ad_schedule` | Add ad schedule (dayparting) to a campaign |\n| `remove_ad_schedule` | Remove ad schedule criterion from a campaign |\n| `set_device_bid_adjustment` | Set device bid adjustment (mobile, desktop, tablet) |\n| `set_demographic_targeting` | Set demographic targeting (age, gender, income) |\n| `create_label` | Create a label for organizing entities |\n| `apply_label` | Apply a label to a campaign, ad group, or ad |\n| `remove_label` | Remove a label from a campaign, ad group, or ad |\n| `create_asset_group` | Create an asset group for Performance Max campaigns |\n\n### Audit (2 tools) — Read-only analysis\n| Tool | Description |\n|------|-------------|\n| `run_mini_audit` | Quick 3-metric audit: wasted spend, best/worst CPA, projected savings |\n| `run_full_audit` | Comprehensive audit: campaigns, keywords, search terms, issues, recommendations |\n\n### Query (1 tool) — Read-only, bounded\n| Tool | Description |\n|------|-------------|\n| `run_gaql_query` | Execute a read-only GAQL query against your account (max 1,000 rows, SELECT only) |\n\n## Meta (Facebook) Ads Tools (29)\n\n### Meta Read (13 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `meta_list_ad_accounts` | List all connected Meta ad accounts |\n| `meta_list_campaigns` | List campaigns with status, objective, budget |\n| `meta_get_campaign_insights` | Per-campaign metrics: spend, clicks, CTR, CPA, frequency (with optional breakdowns) |\n| `meta_list_ad_sets` | List ad sets with targeting, status, budget |\n| `meta_list_ads` | List ads with creative details (title, body, image URL) |\n| `meta_get_account_insights` | Account-level aggregated metrics with daily breakdown |\n| `meta_get_ad_set_insights` | Per-ad-set performance metrics: spend, clicks, CPA, frequency |\n| `meta_get_ad_insights` | Per-ad performance metrics: spend, clicks, conversions, CPA |\n| `meta_get_ad_creatives` | List ad creatives or get creative for a specific ad |\n| `meta_search_interests` | Search targetable interest audiences by keyword |\n| `meta_search_geo_locations` | Search geographic locations for targeting |\n| `meta_estimate_audience_size` | Estimate reach of a targeting spec |\n| `meta_get_account_pages` | List Facebook pages available for running ads |\n\n### Meta Write (15 tools) — Requires user confirmation\n| Tool | Description |\n|------|-------------|\n| `meta_set_campaign_status` | Pause or activate a Meta campaign |\n| `meta_update_campaign_budget` | Update a Meta campaign's daily or lifetime budget |\n| `meta_set_ad_set_status` | Pause or activate a Meta ad set |\n| `meta_set_ad_status` | Pause or activate a Meta ad |\n| `meta_create_campaign` | Create a new Meta campaign with objective and budget |\n| `meta_create_ad_set` | Create an ad set with targeting, budget, optimization goal |\n| `meta_create_ad_creative` | Create ad creative with image/video, link, CTA |\n| `meta_create_ad` | Create an ad linking an ad set to a creative |\n| `meta_update_campaign` | Update campaign name, budget, end time, spend cap |\n| `meta_update_ad_set` | Update ad set name, budget, targeting, schedule |\n| `meta_update_ad` | Update ad name, creative, or status |\n| `meta_create_custom_audience` | Create custom audience from customer lists or website visitors |\n| `meta_create_lookalike_audience` | Create lookalike audience from source audience |\n| `meta_upload_ad_image` | Upload image from URL for ad creatives |\n| `meta_duplicate_campaign` | Duplicate campaign with all ad sets and ads |\n\n### Meta Audit (1 tool) — Read-only analysis\n| Tool | Description |\n|------|-------------|\n| `meta_run_mini_audit` | Quick health audit: score (0-100) across wasted spend, CPA efficiency, budget utilization, creative fatigue |\n\n## MCP Server Configuration\n\nAdWhiz uses **HTTP transport** to connect to the hosted MCP server. No npm\npackages are downloaded or executed at runtime.\n\n```json\n{\n  \"mcpServers\": {\n    \"adwhiz\": {\n      \"transport\": \"http\",\n      \"url\": \"https://mcp.adwhiz.ai/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${ADWHIZ_API_KEY}\"\n      }\n    }\n  }\n}\n```\n\n## REST API (Alternative to MCP)\n\nFor platforms that cannot use the MCP protocol (GPT Actions, Dify, Coze, or\nany HTTP-based workflow), AdWhiz also exposes all 99 tools as a standard\nREST API with an OpenAPI 3.1.0 spec:\n\n- **OpenAPI spec**: https://mcp.adwhiz.ai/api/v1/openapi.json\n- **Tool listing**: https://mcp.adwhiz.ai/api/v1/tools\n- **Tool execution**: `POST https://mcp.adwhiz.ai/api/v1/tools/{tool_name}`\n\n```bash\n# Example: list campaigns via REST API\ncurl -X POST https://mcp.adwhiz.ai/api/v1/tools/list_campaigns \\\n  -H \"Authorization: Bearer $ADWHIZ_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"customer_id\": \"1234567890\"}'\n```\n\nImport the OpenAPI spec URL into any platform that supports OpenAPI actions\nto auto-discover all 99 tools.\n\n## Quick Install\n\n```bash\nclawhub install adwhiz\n```\n\nThis adds the MCP server configuration above to your settings. You will be\nprompted to provide your `ADWHIZ_API_KEY`.\n\n## Getting Your API Key\n\n1. Sign up at https://adwhiz.ai\n2. Connect your Google Ads and/or Meta Ads account via OAuth\n3. Copy your API key from the dashboard settings page\n\n## Example Prompts\n\n### Google Ads\n- \"Audit my Google Ads account and show the top 5 waste areas\"\n- \"Pause all campaigns with CPA above $150\"\n- \"Add these negative keywords to my Search campaigns: [list]\"\n- \"Create a new Search campaign targeting lawyers in New York with $100/day budget\"\n- \"Show me search terms wasting money and suggest negatives\"\n- \"What is my account's average Quality Score this month?\"\n\n### Meta Ads\n- \"Audit my Meta Ads account and show the health score\"\n- \"List all active Meta campaigns with their spend and CTR\"\n- \"Pause the Meta campaign with the highest frequency\"\n- \"Show me daily spend trends for my Meta account over the last 30 days\"\n- \"Which Meta ad sets have the worst CPA?\"\n\n## Data Handling\n\n- AdWhiz only accesses the ad accounts you explicitly linked\n- No campaign data is stored beyond the duration of each API request\n- Mutation logs are retained for 30 days for auditability\n- You can revoke access at any time from https://adwhiz.ai/connect\n\n## Documentation\n\nFull documentation: https://adwhiz.ai/docs\n\nFile v2.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7c1tc2v65dh1peh00pytfh2181mwep\",\n  \"slug\": \"adwhiz\",\n  \"version\": \"2.1.0\",\n  \"publishedAt\": 1772866859435\n}\n\nArchive v2.0.0: 2 files, 4577 bytes\n\nFiles: SKILL.md (11850b), _meta.json (125b)\n\nFile v2.0.0:SKILL.md\n\n---\nname: adwhiz\ndescription: >\n  Manage Google Ads & Meta (Facebook) Ads from your AI coding tool. 99 MCP\n  tools for auditing, creating, and optimizing ad accounts using natural language.\nmetadata:\n  openclaw:\n    primaryEnv: \"ADWHIZ_API_KEY\"\n    requires:\n      env:\n        - \"ADWHIZ_API_KEY\"\n    homepage: \"https://adwhiz.ai\"\n    source: \"https://github.com/iamzifei/adwhiz\"\n    license: \"MIT\"\n---\n\n# AdWhiz — Google Ads & Meta Ads MCP Server\n\nAdWhiz is a hosted MCP server that connects your AI coding tool to the\nGoogle Ads API and Meta (Facebook) Graph API through a secure, authenticated\nproxy. It exposes **99 tools** across 7 categories so you can audit, create,\nand manage ad campaigns across both platforms using plain English.\n\nAll API calls are authenticated via your personal `ADWHIZ_API_KEY` and routed\nthrough the AdWhiz server at `mcp.adwhiz.ai`. No Google or Meta credentials\nare stored by the skill — authentication is handled entirely server-side\nafter you link your ad accounts at https://adwhiz.ai/connect.\n\n## Security & Permissions Model\n\n- **OAuth 2.0**: User authenticates with Google and/or Meta via AdWhiz's web\n  UI. Refresh tokens (Google) and long-lived access tokens (Meta) are encrypted\n  at rest (AES-256-GCM) and never exposed to the agent.\n- **API key scoping**: Each `ADWHIZ_API_KEY` is bound to a single user's\n  connected accounts. Cross-user access is not possible.\n- **Write safety**: All Google Ads write tools create entities in **PAUSED**\n  status by default. Meta write tools require explicit status parameters.\n- **Mutation logging**: Every mutation is recorded in the `get_operation_log`\n  tool for full auditability.\n- **Read-only by default**: 36 of 99 tools are strictly read-only and cannot\n  modify your accounts.\n- **Confirmation required**: Write tools require user confirmation before\n  executing via the agent's standard permission flow.\n- **No arbitrary code execution**: The MCP server is a hosted HTTP service.\n  No code is downloaded or executed on the user's machine beyond the thin\n  MCP client wrapper.\n\n## Google Ads Tools (70)\n\n### Account (2 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_accounts` | List all accessible Google Ads accounts |\n| `get_account_info` | Get account details (currency, timezone, optimization score) |\n\n### Read (20 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_campaigns` | List campaigns with status, type, budget, bidding strategy |\n| `get_campaign_performance` | Campaign metrics: cost, clicks, conversions, CTR, CPA, ROAS |\n| `list_ad_groups` | List ad groups with bids, filtered by campaign |\n| `list_ads` | List ads with headlines, descriptions, final URLs |\n| `list_keywords` | Keywords with match types, bids, quality scores |\n| `get_search_terms` | Search terms report (actual queries triggering ads) |\n| `list_negative_keywords` | Negative keywords at campaign, ad group, or account level |\n| `list_assets` | Sitelinks, callouts, structured snippets |\n| `list_conversion_actions` | Conversion actions with status, type, category |\n| `list_budgets` | Campaign budgets with associated campaigns |\n| `list_bidding_strategies` | Portfolio bidding strategies |\n| `list_audience_segments` | Audience targeting criteria |\n| `list_user_lists` | Remarketing/audience lists for targeting |\n| `get_operation_log` | Recent mutations performed via AdWhiz |\n| `list_recommendations` | Google Ads recommendations (add keywords, raise bids, fix ad strength) |\n| `get_change_history` | Change audit log: who changed what and when |\n| `list_geo_targets` | Geographic location targeting on campaigns |\n| `list_ad_schedules` | Ad schedule (dayparting) criteria on campaigns |\n| `list_labels` | Labels for organizing campaigns, ad groups, ads, keywords |\n| `generate_keyword_ideas` | Keyword ideas with search volume, competition, bid ranges |\n\n### Write (45 tools) — Requires user confirmation\n| Tool | Description |\n|------|-------------|\n| `create_campaign` | Create Search, Display, PMax, or Video campaign (starts PAUSED) |\n| `update_campaign` | Update campaign name |\n| `set_campaign_status` | Pause, enable, or remove a campaign |\n| `create_ad_group` | Create an ad group in a campaign |\n| `update_ad_group` | Update ad group name or CPC bid |\n| `set_ad_group_status` | Pause, enable, or remove an ad group |\n| `create_responsive_search_ad` | Create RSA with headlines + descriptions (starts PAUSED) |\n| `set_ad_status` | Pause, enable, or remove an ad |\n| `add_keywords` | Add keywords with match types and bids |\n| `update_keyword_bid` | Change a keyword's CPC bid |\n| `set_keyword_status` | Pause, enable, or remove a keyword |\n| `add_negative_keyword` | Add negative keyword at campaign or ad group level |\n| `remove_negative_keyword` | Remove a negative keyword |\n| `create_shared_negative_list` | Create a shared negative keyword list |\n| `add_to_shared_list` | Add keywords to a shared negative list |\n| `attach_shared_list` | Attach shared list to a campaign |\n| `create_sitelink` | Create a sitelink asset |\n| `create_callout` | Create a callout asset |\n| `create_structured_snippet` | Create a structured snippet asset |\n| `create_price_extension` | Create a price extension asset |\n| `link_asset_to_campaign` | Link asset to a campaign |\n| `unlink_asset_from_campaign` | Unlink asset from a campaign |\n| `create_conversion_action` | Create a conversion tracking action |\n| `update_conversion_action` | Update conversion action name or status |\n| `create_budget` | Create a campaign budget |\n| `update_budget` | Update budget amount or name |\n| `create_bidding_strategy` | Create a portfolio bidding strategy |\n| `add_audience_to_campaign` | Add audience targeting to a campaign |\n| `update_responsive_search_ad` | Update RSA headlines, descriptions, or URLs |\n| `link_asset_to_ad_group` | Link asset to an ad group |\n| `unlink_asset_from_ad_group` | Remove asset-to-ad-group linkage |\n| `upload_click_conversions` | Upload offline click conversions (gclid-based) |\n| `upload_customer_list` | Upload hashed PII to Customer Match user list |\n| `apply_recommendation` | Apply a Google Ads recommendation |\n| `dismiss_recommendation` | Dismiss a Google Ads recommendation |\n| `add_geo_targeting` | Add geographic location targeting to a campaign |\n| `remove_geo_targeting` | Remove geographic location target from a campaign |\n| `add_ad_schedule` | Add ad schedule (dayparting) to a campaign |\n| `remove_ad_schedule` | Remove ad schedule criterion from a campaign |\n| `set_device_bid_adjustment` | Set device bid adjustment (mobile, desktop, tablet) |\n| `set_demographic_targeting` | Set demographic targeting (age, gender, income) |\n| `create_label` | Create a label for organizing entities |\n| `apply_label` | Apply a label to a campaign, ad group, or ad |\n| `remove_label` | Remove a label from a campaign, ad group, or ad |\n| `create_asset_group` | Create an asset group for Performance Max campaigns |\n\n### Audit (2 tools) — Read-only analysis\n| Tool | Description |\n|------|-------------|\n| `run_mini_audit` | Quick 3-metric audit: wasted spend, best/worst CPA, projected savings |\n| `run_full_audit` | Comprehensive audit: campaigns, keywords, search terms, issues, recommendations |\n\n### Query (1 tool) — Read-only, bounded\n| Tool | Description |\n|------|-------------|\n| `run_gaql_query` | Execute a read-only GAQL query against your account (max 1,000 rows, SELECT only) |\n\n## Meta (Facebook) Ads Tools (29)\n\n### Meta Read (13 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `meta_list_ad_accounts` | List all connected Meta ad accounts |\n| `meta_list_campaigns` | List campaigns with status, objective, budget |\n| `meta_get_campaign_insights` | Per-campaign metrics: spend, clicks, CTR, CPA, frequency (with optional breakdowns) |\n| `meta_list_ad_sets` | List ad sets with targeting, status, budget |\n| `meta_list_ads` | List ads with creative details (title, body, image URL) |\n| `meta_get_account_insights` | Account-level aggregated metrics with daily breakdown |\n| `meta_get_ad_set_insights` | Per-ad-set performance metrics: spend, clicks, CPA, frequency |\n| `meta_get_ad_insights` | Per-ad performance metrics: spend, clicks, conversions, CPA |\n| `meta_get_ad_creatives` | List ad creatives or get creative for a specific ad |\n| `meta_search_interests` | Search targetable interest audiences by keyword |\n| `meta_search_geo_locations` | Search geographic locations for targeting |\n| `meta_estimate_audience_size` | Estimate reach of a targeting spec |\n| `meta_get_account_pages` | List Facebook pages available for running ads |\n\n### Meta Write (15 tools) — Requires user confirmation\n| Tool | Description |\n|------|-------------|\n| `meta_set_campaign_status` | Pause or activate a Meta campaign |\n| `meta_update_campaign_budget` | Update a Meta campaign's daily or lifetime budget |\n| `meta_set_ad_set_status` | Pause or activate a Meta ad set |\n| `meta_set_ad_status` | Pause or activate a Meta ad |\n| `meta_create_campaign` | Create a new Meta campaign with objective and budget |\n| `meta_create_ad_set` | Create an ad set with targeting, budget, optimization goal |\n| `meta_create_ad_creative` | Create ad creative with image/video, link, CTA |\n| `meta_create_ad` | Create an ad linking an ad set to a creative |\n| `meta_update_campaign` | Update campaign name, budget, end time, spend cap |\n| `meta_update_ad_set` | Update ad set name, budget, targeting, schedule |\n| `meta_update_ad` | Update ad name, creative, or status |\n| `meta_create_custom_audience` | Create custom audience from customer lists or website visitors |\n| `meta_create_lookalike_audience` | Create lookalike audience from source audience |\n| `meta_upload_ad_image` | Upload image from URL for ad creatives |\n| `meta_duplicate_campaign` | Duplicate campaign with all ad sets and ads |\n\n### Meta Audit (1 tool) — Read-only analysis\n| Tool | Description |\n|------|-------------|\n| `meta_run_mini_audit` | Quick health audit: score (0-100) across wasted spend, CPA efficiency, budget utilization, creative fatigue |\n\n## MCP Server Configuration\n\nAdWhiz uses **HTTP transport** to connect to the hosted MCP server. No npm\npackages are downloaded or executed at runtime.\n\n```json\n{\n  \"mcpServers\": {\n    \"adwhiz\": {\n      \"transport\": \"http\",\n      \"url\": \"https://mcp.adwhiz.ai/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${ADWHIZ_API_KEY}\"\n      }\n    }\n  }\n}\n```\n\n## Quick Install\n\n```bash\nclawhub install adwhiz\n```\n\nThis adds the MCP server configuration above to your settings. You will be\nprompted to provide your `ADWHIZ_API_KEY`.\n\n## Getting Your API Key\n\n1. Sign up at https://adwhiz.ai\n2. Connect your Google Ads and/or Meta Ads account via OAuth\n3. Copy your API key from the dashboard settings page\n\n## Example Prompts\n\n### Google Ads\n- \"Audit my Google Ads account and show the top 5 waste areas\"\n- \"Pause all campaigns with CPA above $150\"\n- \"Add these negative keywords to my Search campaigns: [list]\"\n- \"Create a new Search campaign targeting lawyers in New York with $100/day budget\"\n- \"Show me search terms wasting money and suggest negatives\"\n- \"What is my account's average Quality Score this month?\"\n\n### Meta Ads\n- \"Audit my Meta Ads account and show the health score\"\n- \"List all active Meta campaigns with their spend and CTR\"\n- \"Pause the Meta campaign with the highest frequency\"\n- \"Show me daily spend trends for my Meta account over the last 30 days\"\n- \"Which Meta ad sets have the worst CPA?\"\n\n## Data Handling\n\n- AdWhiz only accesses the ad accounts you explicitly linked\n- No campaign data is stored beyond the duration of each API request\n- Mutation logs are retained for 30 days for auditability\n- You can revoke access at any time from https://adwhiz.ai/connect\n\n## Documentation\n\nFull documentation: https://adwhiz.ai/docs\n\nFile v2.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7c1tc2v65dh1peh00pytfh2181mwep\",\n  \"slug\": \"adwhiz\",\n  \"version\": \"2.0.0\",\n  \"publishedAt\": 1772339545832\n}\n\nArchive v1.2.0: 2 files, 3659 bytes\n\nFiles: SKILL.md (8682b), _meta.json (125b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: adwhiz\ndescription: >\n  Manage Google Ads & Meta (Facebook) Ads from your AI coding tool. 58 MCP\n  tools for auditing, creating, and optimizing ad accounts using natural language.\nmetadata:\n  openclaw:\n    primaryEnv: \"ADWHIZ_API_KEY\"\n    requires:\n      env:\n        - \"ADWHIZ_API_KEY\"\n    homepage: \"https://adwhiz.ai\"\n    source: \"https://github.com/iamzifei/adwhiz\"\n    license: \"MIT\"\n---\n\n# AdWhiz — Google Ads & Meta Ads MCP Server\n\nAdWhiz is a hosted MCP server that connects your AI coding tool to the\nGoogle Ads API and Meta (Facebook) Graph API through a secure, authenticated\nproxy. It exposes **58 tools** across 7 categories so you can audit, create,\nand manage ad campaigns across both platforms using plain English.\n\nAll API calls are authenticated via your personal `ADWHIZ_API_KEY` and routed\nthrough the AdWhiz server at `mcp.adwhiz.ai`. No Google or Meta credentials\nare stored by the skill — authentication is handled entirely server-side\nafter you link your ad accounts at https://adwhiz.ai/connect.\n\n## Security & Permissions Model\n\n- **OAuth 2.0**: User authenticates with Google and/or Meta via AdWhiz's web\n  UI. Refresh tokens (Google) and long-lived access tokens (Meta) are encrypted\n  at rest (AES-256-GCM) and never exposed to the agent.\n- **API key scoping**: Each `ADWHIZ_API_KEY` is bound to a single user's\n  connected accounts. Cross-user access is not possible.\n- **Write safety**: All Google Ads write tools create entities in **PAUSED**\n  status by default. Meta write tools require explicit status parameters.\n- **Mutation logging**: Every mutation is recorded in the `get_operation_log`\n  tool for full auditability.\n- **Read-only by default**: 23 of 58 tools are strictly read-only and cannot\n  modify your accounts.\n- **Confirmation required**: Write tools require user confirmation before\n  executing via the agent's standard permission flow.\n- **No arbitrary code execution**: The MCP server is a hosted HTTP service.\n  No code is downloaded or executed on the user's machine beyond the thin\n  MCP client wrapper.\n\n## Google Ads Tools (47)\n\n### Account (2 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_accounts` | List all accessible Google Ads accounts |\n| `get_account_info` | Get account details (currency, timezone, optimization score) |\n\n### Read (14 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_campaigns` | List campaigns with status, type, budget, bidding strategy |\n| `get_campaign_performance` | Campaign metrics: cost, clicks, conversions, CTR, CPA, ROAS |\n| `list_ad_groups` | List ad groups with bids, filtered by campaign |\n| `list_ads` | List ads with headlines, descriptions, final URLs |\n| `list_keywords` | Keywords with match types, bids, quality scores |\n| `get_search_terms` | Search terms report (actual queries triggering ads) |\n| `list_negative_keywords` | Negative keywords at campaign, ad group, or account level |\n| `list_assets` | Sitelinks, callouts, structured snippets |\n| `list_conversion_actions` | Conversion actions with status, type, category |\n| `list_budgets` | Campaign budgets with associated campaigns |\n| `list_bidding_strategies` | Portfolio bidding strategies |\n| `list_audience_segments` | Audience targeting criteria |\n| `list_user_lists` | Remarketing/audience lists for targeting |\n| `get_operation_log` | Recent mutations performed via AdWhiz |\n\n### Write (28 tools) — Requires user confirmation\n| Tool | Description |\n|------|-------------|\n| `create_campaign` | Create Search, Display, PMax, or Video campaign (starts PAUSED) |\n| `update_campaign` | Update campaign name |\n| `set_campaign_status` | Pause, enable, or remove a campaign |\n| `create_ad_group` | Create an ad group in a campaign |\n| `update_ad_group` | Update ad group name or CPC bid |\n| `set_ad_group_status` | Pause, enable, or remove an ad group |\n| `create_responsive_search_ad` | Create RSA with headlines + descriptions (starts PAUSED) |\n| `set_ad_status` | Pause, enable, or remove an ad |\n| `add_keywords` | Add keywords with match types and bids |\n| `update_keyword_bid` | Change a keyword's CPC bid |\n| `set_keyword_status` | Pause, enable, or remove a keyword |\n| `add_negative_keyword` | Add negative keyword at campaign or ad group level |\n| `remove_negative_keyword` | Remove a negative keyword |\n| `create_shared_negative_list` | Create a shared negative keyword list |\n| `add_to_shared_list` | Add keywords to a shared negative list |\n| `attach_shared_list` | Attach shared list to a campaign |\n| `create_sitelink` | Create a sitelink asset |\n| `create_callout` | Create a callout asset |\n| `create_structured_snippet` | Create a structured snippet asset |\n| `create_price_extension` | Create a price extension asset |\n| `link_asset_to_campaign` | Link asset to a campaign |\n| `unlink_asset_from_campaign` | Unlink asset from a campaign |\n| `create_conversion_action` | Create a conversion tracking action |\n| `update_conversion_action` | Update conversion action name or status |\n| `create_budget` | Create a campaign budget |\n| `update_budget` | Update budget amount or name |\n| `create_bidding_strategy` | Create a portfolio bidding strategy |\n| `add_audience_to_campaign` | Add audience targeting to a campaign |\n\n### Audit (2 tools) — Read-only analysis\n| Tool | Description |\n|------|-------------|\n| `run_mini_audit` | Quick 3-metric audit: wasted spend, best/worst CPA, projected savings |\n| `run_full_audit` | Comprehensive audit: campaigns, keywords, search terms, issues, recommendations |\n\n### Query (1 tool) — Read-only, bounded\n| Tool | Description |\n|------|-------------|\n| `run_gaql_query` | Execute a read-only GAQL query against your account (max 1,000 rows, SELECT only) |\n\n## Meta (Facebook) Ads Tools (11)\n\n### Meta Read (6 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `meta_list_ad_accounts` | List all connected Meta ad accounts |\n| `meta_list_campaigns` | List campaigns with status, objective, budget |\n| `meta_get_campaign_insights` | Per-campaign metrics: spend, clicks, CTR, CPA, frequency |\n| `meta_list_ad_sets` | List ad sets with targeting, status, budget |\n| `meta_list_ads` | List ads with creative details (title, body, image URL) |\n| `meta_get_account_insights` | Account-level aggregated metrics with daily breakdown |\n\n### Meta Write (4 tools) — Requires user confirmation\n| Tool | Description |\n|------|-------------|\n| `meta_set_campaign_status` | Pause or activate a Meta campaign |\n| `meta_update_campaign_budget` | Update a Meta campaign's daily budget |\n| `meta_set_ad_set_status` | Pause or activate a Meta ad set |\n| `meta_set_ad_status` | Pause or activate a Meta ad |\n\n### Meta Audit (1 tool) — Read-only analysis\n| Tool | Description |\n|------|-------------|\n| `meta_run_mini_audit` | Quick health audit: score (0-100) across wasted spend, CPA efficiency, budget utilization, creative fatigue |\n\n## MCP Server Configuration\n\nAdWhiz uses **HTTP transport** to connect to the hosted MCP server. No npm\npackages are downloaded or executed at runtime.\n\n```json\n{\n  \"mcpServers\": {\n    \"adwhiz\": {\n      \"transport\": \"http\",\n      \"url\": \"https://mcp.adwhiz.ai/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${ADWHIZ_API_KEY}\"\n      }\n    }\n  }\n}\n```\n\n## Quick Install\n\n```bash\nclawhub install adwhiz\n```\n\nThis adds the MCP server configuration above to your settings. You will be\nprompted to provide your `ADWHIZ_API_KEY`.\n\n## Getting Your API Key\n\n1. Sign up at https://adwhiz.ai\n2. Connect your Google Ads and/or Meta Ads account via OAuth\n3. Copy your API key from the dashboard settings page\n\n## Example Prompts\n\n### Google Ads\n- \"Audit my Google Ads account and show the top 5 waste areas\"\n- \"Pause all campaigns with CPA above $150\"\n- \"Add these negative keywords to my Search campaigns: [list]\"\n- \"Create a new Search campaign targeting lawyers in New York with $100/day budget\"\n- \"Show me search terms wasting money and suggest negatives\"\n- \"What is my account's average Quality Score this month?\"\n\n### Meta Ads\n- \"Audit my Meta Ads account and show the health score\"\n- \"List all active Meta campaigns with their spend and CTR\"\n- \"Pause the Meta campaign with the highest frequency\"\n- \"Show me daily spend trends for my Meta account over the last 30 days\"\n- \"Which Meta ad sets have the worst CPA?\"\n\n## Data Handling\n\n- AdWhiz only accesses the ad accounts you explicitly linked\n- No campaign data is stored beyond the duration of each API request\n- Mutation logs are retained for 30 days for auditability\n- You can revoke access at any time from https://adwhiz.ai/connect\n\n## Documentation\n\nFull documentation: https://adwhiz.ai/docs\n\nFile v1.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn7c1tc2v65dh1peh00pytfh2181mwep\",\n  \"slug\": \"adwhiz\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1772278077822\n}\n\nArchive v1.1.0: 2 files, 3140 bytes\n\nFiles: SKILL.md (6851b), _meta.json (125b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: adwhiz\ndescription: >\n  Manage Google Ads campaigns from your AI coding tool. 44 MCP tools for\n  auditing, creating, and optimizing Google Ads accounts using natural language.\nmetadata:\n  openclaw:\n    primaryEnv: \"ADWHIZ_API_KEY\"\n    requires:\n      env:\n        - \"ADWHIZ_API_KEY\"\n    homepage: \"https://adwhiz.ai\"\n    source: \"https://github.com/iamzifei/adwhiz\"\n    license: \"MIT\"\n---\n\n# AdWhiz — Google Ads MCP Server\n\nAdWhiz is a hosted MCP server that connects your AI coding tool to the\nGoogle Ads API through a secure, authenticated proxy. It exposes **44 tools**\nacross 5 categories so you can audit, create, and manage Google Ads campaigns\nusing plain English.\n\nAll API calls are authenticated via your personal `ADWHIZ_API_KEY` and routed\nthrough the AdWhiz server at `mcp.adwhiz.ai`. No Google credentials or OAuth\ntokens are stored by the skill — authentication is handled entirely server-side\nafter you link your Google Ads account at https://adwhiz.ai/connect.\n\n## Security & Permissions Model\n\n- **OAuth 2.0**: User authenticates with Google via AdWhiz's web UI. Refresh\n  tokens are encrypted at rest (AES-256-GCM) and never exposed to the agent.\n- **API key scoping**: Each `ADWHIZ_API_KEY` is bound to a single Google Ads\n  account. Cross-account access is not possible.\n- **Write safety**: All write tools create entities in **PAUSED** status by\n  default. The agent must explicitly request activation.\n- **Mutation logging**: Every mutation is recorded in the `get_operation_log`\n  tool for full auditability.\n- **Read-only by default**: 17 of 44 tools are strictly read-only and cannot\n  modify your account.\n- **Confirmation required**: Write tools require user confirmation before\n  executing via the agent's standard permission flow.\n- **No arbitrary code execution**: The MCP server is a hosted HTTP service.\n  No code is downloaded or executed on the user's machine beyond the thin\n  MCP client wrapper.\n\n## Tool Categories\n\n### Account (2 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_accounts` | List all accessible Google Ads accounts |\n| `get_account_info` | Get account details (currency, timezone, optimization score) |\n\n### Read (14 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_campaigns` | List campaigns with status, type, budget, bidding strategy |\n| `get_campaign_performance` | Campaign metrics: cost, clicks, conversions, CTR, CPA, ROAS |\n| `list_ad_groups` | List ad groups with bids, filtered by campaign |\n| `list_ads` | List ads with headlines, descriptions, final URLs |\n| `list_keywords` | Keywords with match types, bids, quality scores |\n| `get_search_terms` | Search terms report (actual queries triggering ads) |\n| `list_negative_keywords` | Negative keywords at campaign, ad group, or account level |\n| `list_assets` | Sitelinks, callouts, structured snippets |\n| `list_conversion_actions` | Conversion actions with status, type, category |\n| `list_budgets` | Campaign budgets with associated campaigns |\n| `list_bidding_strategies` | Portfolio bidding strategies |\n| `list_audience_segments` | Audience targeting criteria |\n| `list_user_lists` | Remarketing/audience lists for targeting |\n| `get_operation_log` | Recent mutations performed via AdWhiz |\n\n### Write (25 tools) — Requires user confirmation\n| Tool | Description |\n|------|-------------|\n| `create_campaign` | Create Search, Display, PMax, or Video campaign (starts PAUSED) |\n| `update_campaign` | Update campaign name |\n| `set_campaign_status` | Pause, enable, or remove a campaign |\n| `create_ad_group` | Create an ad group in a campaign |\n| `update_ad_group` | Update ad group name or CPC bid |\n| `set_ad_group_status` | Pause, enable, or remove an ad group |\n| `create_responsive_search_ad` | Create RSA with headlines + descriptions (starts PAUSED) |\n| `set_ad_status` | Pause, enable, or remove an ad |\n| `add_keywords` | Add keywords with match types and bids |\n| `update_keyword_bid` | Change a keyword's CPC bid |\n| `set_keyword_status` | Pause, enable, or remove a keyword |\n| `add_negative_keyword` | Add negative keyword at campaign or ad group level |\n| `remove_negative_keyword` | Remove a negative keyword |\n| `create_shared_negative_list` | Create a shared negative keyword list |\n| `add_to_shared_list` | Add keywords to a shared negative list |\n| `attach_shared_list` | Attach shared list to a campaign |\n| `create_sitelink` | Create a sitelink asset |\n| `create_callout` | Create a callout asset |\n| `link_asset_to_campaign` | Link asset to a campaign |\n| `create_conversion_action` | Create a conversion tracking action |\n| `update_conversion_action` | Update conversion action name or status |\n| `create_budget` | Create a campaign budget |\n| `update_budget` | Update budget amount or name |\n| `create_bidding_strategy` | Create a portfolio bidding strategy |\n| `add_audience_to_campaign` | Add audience targeting to a campaign |\n\n### Audit (2 tools) — Read-only analysis\n| Tool | Description |\n|------|-------------|\n| `run_mini_audit` | Quick 3-metric audit: wasted spend, best/worst CPA, projected savings |\n| `run_full_audit` | Comprehensive audit: campaigns, keywords, search terms, issues, recommendations |\n\n### Query (1 tool) — Read-only, bounded\n| Tool | Description |\n|------|-------------|\n| `run_gaql_query` | Execute a read-only GAQL query against your account (max 1,000 rows, SELECT only) |\n\n## MCP Server Configuration\n\nAdWhiz uses **HTTP transport** to connect to the hosted MCP server. No npm\npackages are downloaded or executed at runtime.\n\n```json\n{\n  \"mcpServers\": {\n    \"adwhiz\": {\n      \"transport\": \"http\",\n      \"url\": \"https://mcp.adwhiz.ai/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${ADWHIZ_API_KEY}\"\n      }\n    }\n  }\n}\n```\n\n## Quick Install\n\n```bash\nclawhub install adwhiz\n```\n\nThis adds the MCP server configuration above to your settings. You will be\nprompted to provide your `ADWHIZ_API_KEY`.\n\n## Getting Your API Key\n\n1. Sign up at https://adwhiz.ai\n2. Connect your Google Ads account via OAuth\n3. Copy your API key from the dashboard settings page\n\n## Example Prompts\n\n- \"Audit my Google Ads account and show the top 5 waste areas\"\n- \"Pause all campaigns with CPA above $150\"\n- \"Add these negative keywords to my Search campaigns: [list]\"\n- \"Create a new Search campaign targeting lawyers in New York with $100/day budget\"\n- \"Show me search terms wasting money and suggest negatives\"\n- \"What is my account's average Quality Score this month?\"\n\n## Data Handling\n\n- AdWhiz only accesses the Google Ads account you explicitly linked\n- No campaign data is stored beyond the duration of each API request\n- Mutation logs are retained for 30 days for auditability\n- You can revoke access at any time from https://adwhiz.ai/connect\n\n## Documentation\n\nFull documentation: https://adwhiz.ai/docs\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7c1tc2v65dh1peh00pytfh2181mwep\",\n  \"slug\": \"adwhiz\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1771833693591\n}\n\nArchive v1.0.0: 2 files, 2373 bytes\n\nFiles: SKILL.md (5047b), _meta.json (125b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: adwhiz\ndescription: >\n  Manage Google Ads campaigns from your AI coding tool. 44 MCP tools for\n  auditing, creating, and optimizing Google Ads accounts using natural language.\nmetadata:\n  openclaw:\n    primaryEnv: \"ADWHIZ_API_KEY\"\n    requires:\n      bins:\n        - node\n    install:\n      - kind: node\n        package: \"@adwhiz/mcp-server\"\n    homepage: \"https://adwhiz.ai\"\n---\n\n# AdWhiz — Google Ads MCP Server\n\nAdWhiz is a remote MCP server that gives your AI tool direct access to the\nGoogle Ads API. It exposes **44 tools** across 5 categories so you can audit,\ncreate, and manage Google Ads campaigns using plain English.\n\n## Tool Categories\n\n### Account (2 tools)\n- `list_accounts` — List all accessible Google Ads accounts\n- `get_account_info` — Get account details (currency, timezone, optimization score)\n\n### Read (14 tools)\n- `list_campaigns` — List campaigns with status, type, budget, bidding strategy\n- `get_campaign_performance` — Campaign metrics: cost, clicks, conversions, CTR, CPA, ROAS\n- `list_ad_groups` — List ad groups with bids, filtered by campaign\n- `list_ads` — List ads with headlines, descriptions, final URLs\n- `list_keywords` — Keywords with match types, bids, quality scores\n- `get_search_terms` — Search terms report (actual queries triggering ads)\n- `list_negative_keywords` — Negative keywords at campaign, ad group, or account level\n- `list_assets` — Sitelinks, callouts, structured snippets\n- `list_conversion_actions` — Conversion actions with status, type, category\n- `list_budgets` — Campaign budgets with associated campaigns\n- `list_bidding_strategies` — Portfolio bidding strategies\n- `list_audience_segments` — Audience targeting criteria\n- `list_user_lists` — Remarketing/audience lists for targeting\n- `get_operation_log` — Recent mutations performed via AdWhiz\n\n### Write (25 tools)\n- `create_campaign` — Create Search, Display, PMax, or Video campaign (starts PAUSED)\n- `update_campaign` — Update campaign name\n- `set_campaign_status` — Pause, enable, or remove a campaign\n- `create_ad_group` — Create an ad group in a campaign\n- `update_ad_group` — Update ad group name or CPC bid\n- `set_ad_group_status` — Pause, enable, or remove an ad group\n- `create_responsive_search_ad` — Create RSA with headlines + descriptions (starts PAUSED)\n- `set_ad_status` — Pause, enable, or remove an ad\n- `add_keywords` — Add keywords with match types and bids\n- `update_keyword_bid` — Change a keyword's CPC bid\n- `set_keyword_status` — Pause, enable, or remove a keyword\n- `add_negative_keyword` — Add negative keyword at campaign or ad group level\n- `remove_negative_keyword` — Remove a negative keyword\n- `create_shared_negative_list` — Create a shared negative keyword list\n- `add_to_shared_list` — Add keywords to a shared negative list\n- `attach_shared_list` — Attach shared list to a campaign\n- `create_sitelink` — Create a sitelink asset\n- `create_callout` — Create a callout asset\n- `link_asset_to_campaign` — Link asset to a campaign\n- `create_conversion_action` — Create a conversion tracking action\n- `update_conversion_action` — Update conversion action name or status\n- `create_budget` — Create a campaign budget\n- `update_budget` — Update budget amount or name\n- `create_bidding_strategy` — Create a portfolio bidding strategy\n- `add_audience_to_campaign` — Add audience targeting to a campaign\n\n### Audit (2 tools)\n- `run_mini_audit` — Quick 3-metric audit: wasted spend, best/worst CPA, projected savings\n- `run_full_audit` — Comprehensive audit: campaigns, keywords, search terms, issues, recommendations\n\n### Query (1 tool)\n- `run_gaql_query` — Execute any read-only GAQL query (max 1,000 rows)\n\n## MCP Server Configuration\n\n### Option A: stdio transport (via npx)\n\nAdd this to your `openclaw.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"adwhiz\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@adwhiz/mcp-server\"],\n      \"env\": {\n        \"ADWHIZ_API_KEY\": \"your-api-key-here\"\n      }\n    }\n  }\n}\n```\n\n### Option B: HTTP transport (remote server)\n\n```json\n{\n  \"mcpServers\": {\n    \"adwhiz\": {\n      \"transport\": \"http\",\n      \"url\": \"https://mcp.adwhiz.ai/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer your-api-key-here\"\n      }\n    }\n  }\n}\n```\n\n## Quick Install\n\n```bash\nclawhub install adwhiz\n```\n\n## Example Prompts\n\n- \"Audit my Google Ads account and show the top 5 waste areas\"\n- \"Pause all campaigns with CPA above $150\"\n- \"Add these negative keywords to my Search campaigns: [list]\"\n- \"Create a new Search campaign targeting lawyers in New York with $100/day budget\"\n- \"Show me search terms wasting money and suggest negatives\"\n- \"What is my account's average Quality Score this month?\"\n\n## Safety Defaults\n\n- New campaigns and ads are always created in **PAUSED** status\n- Every mutation is logged in the operation log\n- Read-only tools never modify your account\n- Write tools require confirmation before executing\n\n## Documentation\n\nFull documentation: https://adwhiz.ai/docs\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7c1tc2v65dh1peh00pytfh2181mwep\",\n  \"slug\": \"adwhiz\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1771747501725\n}","readmeExcerpt":"Skill: AdWhiz Owner: iamzifei Summary: Manage Google Ads & Meta (Facebook) Ads from your AI coding tool. 113 MCP tools for auditing, creating, and optimizing ad accounts using natural language. Tags: advertising:2.2.0, google-ads:2.2.0, latest:2.4.0, mcp:2.2.0, meta-ads:2.2.0 Version history: v2.4.0 | 2026-08-15T02:08:11.447Z | auto **Major update: Expanded capabilities and improved control for Google Ads and Meta Ad","codeSnippets":[],"executableExamples":[{"language":"json","snippet":"{\n  \"mcpServers\": {\n    \"adwhiz\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.adwhiz.ai/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${ADWHIZ_API_KEY}\"\n      }\n    }\n  }\n}"},{"language":"bash","snippet":"claude mcp add --transport http adwhiz https://mcp.adwhiz.ai/mcp \\\n  --header \"Authorization: Bearer $ADWHIZ_API_KEY\""},{"language":"bash","snippet":"curl -X POST https://mcp.adwhiz.ai/api/v1/tools/list_campaigns \\\n  -H \"Authorization: Bearer $ADWHIZ_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"customer_id\": \"1234567890\"}'"},{"language":"bash","snippet":"# Example: list campaigns via REST API\ncurl -X POST https://mcp.adwhiz.ai/api/v1/tools/list_campaigns \\\n  -H \"Authorization: Bearer $ADWHIZ_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"customer_id\": \"1234567890\"}'"},{"language":"bash","snippet":"clawhub install adwhiz"},{"language":"json","snippet":"{\n  \"mcpServers\": {\n    \"adwhiz\": {\n      \"transport\": \"http\",\n      \"url\": \"https://mcp.adwhiz.ai/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${ADWHIZ_API_KEY}\"\n      }\n    }\n  }\n}"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: adwhiz\ndescription: >\n  Manage Google Ads & Meta (Facebook) Ads from your AI coding tool. 113 MCP\n  tools for auditing, creating, and optimizing ad accounts using natural language.\nmetadata:\n  openclaw:\n    primaryEnv: \"ADWHIZ_API_KEY\"\n    requires:\n      env:\n        - \"ADWHIZ_API_KEY\"\n    homepage: \"https://adwhiz.ai\"\n    source: \"https://github.com/iamzifei/adwhiz\"\n    license: \"MIT\"\n---\n\n# AdWhiz — Google Ads & Meta Ads MCP Server\n\nAdWhiz is a hosted MCP server that connects your AI coding tool to the\nGoogle Ads API and Meta (Facebook) Graph API through a secure, authenticated\nproxy. It exposes **113 tools** across 7 categories so you can audit, create,\nand manage ad campaigns across both platforms using plain English.\n\nAll API calls are authenticated via your personal `ADWHIZ_API_KEY` and routed\nthrough the AdWhiz server at `mcp.adwhiz.ai`. No Google or Meta credentials\nare stored by the skill — authentication is handled entirely server-side\nafter you link your ad accounts at https://adwhiz.ai/connect.\n\n## Security & Permissions Model\n\n- **OAuth 2.0**: User authenticates with Google and/or Meta via AdWhiz's web\n  UI. Refresh tokens (Google) and long-lived access tokens (Meta) are encrypted\n  at rest (AES-256-GCM) and never exposed to the agent.\n- **API key scoping**: Each `ADWHIZ_API_KEY` is bound to a single user's\n  connected accounts. Cross-user access is not possible.\n- **Write safety**: All Google Ads write tools create entities in **PAUSED**\n  status by default. Meta write tools require explicit status parameters.\n- **Mutation logging**: Every mutation is recorded in the `get_operation_log`\n  tool for full auditability.\n- **Read-only by default**: 44 of 113 tools are strictly read-only and cannot\n  modify your accounts.\n- **Confirmation required**: Write tools require user confirmation before\n  executing via the agent's standard permission flow.\n- **No arbitrary code execution**: The MCP server is a hosted HTTP service.\n  No code is downloaded or executed on the user's machine beyond the thin\n  MCP client wrapper.\n\n## Google Ads Tools (80)\n\n### Account (2 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_accounts` | List all accessible Google Ads accounts (auto-expands MCC child accounts) |\n| `get_account_info` | Get account details (currency, timezone, optimization score) |\n\n### Read (22 tools) — Read-only\n| Tool | Description |\n|------|-------------|\n| `list_campaigns` | List campaigns with status, type, budget, bidding strategy |\n| `get_campaign_performance` | Campaign metrics: cost, clicks, conversions, CTR, CPA, ROAS |\n| `list_ad_groups` | List ad groups with bids, filtered by campaign |\n| `list_ads` | List ads with headlines, descriptions, final URLs |\n| `list_keywords` | Keywords with match types, bids, quality scores |\n| `get_search_terms` | Search terms report (actual queries triggering ads) |\n| `list_negative_keywords` | Negative keywords at campaign, ad group, or account level |\n| `list_asset"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7c1tc2v65dh1peh00pytfh2181mwep\",\n  \"slug\": \"adwhiz\",\n  \"version\": \"2.4.0\",\n  \"publishedAt\": 1786759691447\n}"},{"path":"skill-card.md","content":"## Description:\n\nManage Google Ads & Meta (Facebook) Ads from your AI coding tool with MCP tools for auditing, creating, and optimizing ad accounts using natural language.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[iamzifei](https://clawhub.ai/user/iamzifei)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers, marketing operators, and agencies use AdWhiz to connect an AI coding tool to Google Ads and Meta Ads accounts for campaign audits, reporting, optimization, and account changes through a hosted MCP or REST interface.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The hosted connector can read and change connected Google Ads and Meta Ads accounts, including budget changes, activation or removal actions, and customer list uploads.\n\nMitigation: Connect only intended ad accounts, review each write confirmation carefully, and revoke AdWhiz access when it is no longer needed.\n\nRisk: The skill depends on an ADWHIZ_API_KEY that authorizes access to the user's connected ad accounts.\n\nMitigation: Store the API key only in the agent's secret or environment configuration and rotate it if it may have been exposed.\n\n## Reference(s):\n\n- [AdWhiz Homepage](https://adwhiz.ai)\n- [AdWhiz Documentation](https://adwhiz.ai/docs)\n- [AdWhiz OpenAPI Specification](https://mcp.adwhiz.ai/api/v1/openapi.json)\n- [AdWhiz Tool Listing](https://mcp.adwhiz.ai/api/v1/tools)\n- [ClawHub Skill Page](https://clawhub.ai/iamzifei/skills/adwhiz)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Markdown, Shell commands, Configuration, API calls]\n\n**Output Format:** [Markdown with inline JSON and shell command examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May trigger hosted MCP or REST calls that read or change connected Google Ads and Meta Ads accounts after user authorization.]\n\n## Skill Version(s):\n\n2.4.0 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Manage Google Ads & Meta (Facebook) Ads from your AI coding tool. 113 MCP tools for auditing, creating, and optimizing ad accounts using natural language. Skill: AdWhiz Owner: iamzifei Summary: Manage Google Ads & Meta (Facebook) Ads from your AI coding tool. 113 MCP tools for auditing, creating, and optimizing ad accounts using natural language. Tags: advertising:2.2.0, google-ads:2.2.0, latest:2.4.0, mcp:2.2.0, meta-ads:2.2.0 Version history: v2.4.0 | 2026-08-15T02:08:11.447Z | auto **Major update: Expanded capabilities and improved control for Google Ads and Meta Ad","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1347,"uniquenessScore":48,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T11:02:56.908Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T11:02:56.908Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T22:39:29.146Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}