mcpField
G
google-ads

google-ads

github.com/hyperfx-aiMarketing & growth107204 installsUpdated 4d ago
Repository

About google-ads

A Google Ads skill for researching, planning, creating, and reporting on campaigns through Hyper MCP. It requires evidence-based discovery and explicit approval before changes, and creates campaigns paused.

Key features

  1. 01Campaign research and planning
  2. 02GAQL-based account reporting
  3. 03Resource-by-resource campaign creation
  4. 04Approval before changes
  5. 05Campaigns created paused

Use cases

  1. 01Planning a new Google Ads campaign
  2. 02Reviewing account performance
  3. 03Creating a campaign after approval

MCP support

Requires Hyper MCP and a connected Google Ads integration. It uses the MCP tool surface for account discovery, GAQL reporting, and campaign resource operations.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/hyperfx-ai/marketing-skills --skill google-ads

After installing, type/google-adsin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
constraints.md
discovery.md
heuristics.md
mcc.md
report-template.md
reporting.md
references/campaigns/
other-types.md
pmax.md
search-display.md
references/reports/
account-overview.md
ad-performance.md
budget-distribution.md
campaign-performance.md
campaign-structure.md
conversion-by-action.md
conversion-funnel.md
conversion-tracking.md
search-terms-waste.md

Details

From the project README

Google Ads

Strategic guide for building new Google Ads campaigns and reporting on existing accounts. Research first, consult intelligently, validate everything, and build with the granular resource tools in dependency order (budget → campaign → targeting → ad groups → ads / asset groups). The API has exactly one campaign create — google_ads_campaigns_create — and the campaign type is just advertising_channel_type; type-specific requirements are enforced by the tools' built-in validators, which return corrective errors. Reporting is GAQL-backed and evidence-first — dashboards are optional presentation surfaces.

Requirements

If search("google_ads_accounts_list") does not find google_ads_accounts_list, stop and tell the user to enable Hyper MCP and connect Google Ads.

How to run the tools in this skill

Every tool in this skill is named by its canonical tool name. Run it with the call your surface gives you:

SurfaceFind a toolRun it
MCP client (Claude, Cursor, Codex, ChatGPT)search("<what you want to do>"), then describe("<name>")call("<name>", {...})
Hyper CLIhyperai search "<what you want to do>", then hyperai describe <name>hyperai call <name> --json '{...}'

If a tool is not found, its integration is not connected or not enabled for the workspace: stop and tell the user which integration to connect.

Out of scope

  • Live optimization mutations (bid adjustments, pausing keywords, restructuring existing campaigns). Reports may recommend these changes; applying them needs explicit per-change user approval.
  • Creative generation (headlines, descriptions, images) → ad-creative-generation.
  • Cross-platform campaign launches → use this skill for Google, then invoke meta-ads / tiktok-ads separately.

Tool surface

Reads are GAQL (google_ads_gaql_query covers every resource). Writes are one tool per resource operation, named google_ads_<resource>_<create|update|remove>; create/update take (customer_id, body) where body is the bare resource object in snake_case.

ToolPurpose
google_ads_accounts_listDiscover accessible accounts (and MCC sub-accounts).
google_ads_gaql_queryRun a GAQL query (conversion actions, search terms, any resource).
google_ads_campaign_budgets_createCreate the budget first (micros!).
google_ads_campaigns_create / _update / _removeThe ONE campaign create — every advertising_channel_type (SEARCH, DISPLAY, PERFORMANCE_MAX, VIDEO, DEMAND_GEN, SHOPPING, MULTI_CHANNEL for App).
google_ads_ad_groups_create / _update, google_ads_ad_groups_deleteAd groups under a campaign.
google_ads_ad_group_ads_create / _update / _removeAds (typed: responsive_search_ad, responsive_display_ad, video / demand-gen ad types).
google_ads_keywords_create / _update / _delete / _listKeywords (positive and negative).
google_ads_locations_search, google_ads_location_targets_addResolve location names, target them.
google_ads_image_assets_uploadImage assets — accepts file_id from the workspace file manager, image_url, or base64.
google_ads_video_assets_linkRegister a YouTube video ID as a video asset (the Ads API cannot host video files — videos must be on YouTube).
google_ads_asset_groups_createPMax asset group (atomic: text + image assets in one call).
google_ads_conversion_actions_create, google_ads_user_lists_create, google_ads_bidding_strategies_create, google_ads_shared_sets_create, …Full per-resource CRUD surface — same naming pattern.
google_ads_requestRaw escape hatch for any uncovered endpoint.
data_apps_build, data_apps_refreshOptional dashboards / data apps for reports.

Rules that must never be forgotten

BUDGETS IN MICROS: $50/day = 50,000,000 micros. Never pass dollar amounts directly.

ALWAYS START PAUSED: Create campaigns with status="PAUSED". Activate only after explicit user approval.

SUMMARIZE BEFORE CREATE: Present the full build plan (budget, campaign settings, targeting, ad groups, ads/assets) and get explicit user approval before the first mutate. Create in dependency order and reference each created resource by the resource_name the mutate returns. The tools validate bodies against the real API schema (writable fields, enum values) plus channel-type rules and return corrective errors — fix and retry rather than guessing.

NEVER INVENT: Don't assume URLs, budgets, or location IDs. Don't skip research. Don't invent keywords or copy — creative comes only from the actual site. Don't build without user buy-in.

GAQL GUARDRAILS: Never join ad_group_criterion with search_term_view. Never query more than 5 sub-accounts in a single batch.

See references/constraints.md for the full constraint set.

All reference files live in references/. Read them at references/<file> (e.g. references/discovery.md). They are not in the same directory as this SKILL.md.

Core process

Every campaign build follows this sequence. Do not skip steps.

  1. Identify the goal — new campaign, reporting/analysis, or both?
  2. Check the routing table and read the referenced files before calling any tools
  3. Discovery is mandatory for creation (references/discovery.md) — account setup, site scan, conversion tracking check, market research, consultation
  4. Present the pre-creation summary and wait for explicit approval
  5. Build in dependency order (budget → campaign PAUSED → targeting → ad groups → ads/assets) after approval, re-checking references/constraints.md at each step
  6. Activate only when the user approves

Full workflow: Initial Setup → Research (site + GAQL + market) → Analyze (goals, audience, keywords) → Consult (options + trade-offs) → Recommend (structure + bids) → Confirm (summary approved) → Create in dependency order (PAUSED) → Verify by GAQL → Activate (post-approval).

Routing table

The user wants to…Read these files first
Create a Search or Display campaignreferences/discovery.md → references/campaigns/search-display.md
Create a Performance Max campaignreferences/discovery.md → references/campaigns/pmax.md
Add an asset group to an existing PMax campaignreferences/campaigns/pmax.md
Create a Video, Demand Gen, Shopping, or App campaignreferences/discovery.md → references/campaigns/other-types.md
Run a report / GAQL query / analyze performance (any kind)references/reporting.md → the matching references/reports/*.md recipe
Account health snapshot / "how is the account doing?"references/reporting.md → references/reports/account-overview.md
Diagnose conversion trackingreferences/reporting.md → references/reports/conversion-tracking.md
Find wasteful search terms / negative keyword candidatesreferences/reporting.md → references/reports/search-terms-waste.md
Build a Google Ads dashboard or data appreferences/reporting.md → matching report recipe's dashboard section
Work across an MCC / many sub-accountsreferences/mcc.md → references/reporting.md
Goal not yet clearreferences/discovery.md — discovery clarifies the goal

Reporting responses follow references/report-template.md; keep claims tied to queried data per references/heuristics.md.

Comments

Markdown supported