agentleFS
hyperfx-aihyperfx-ai/marketing-skills/skills/google-ads/SKILL.md

google-ads

Skill107 starsChanged 5 months agoMITView on GitHub

Plan and create new Google Ads campaigns and report on existing accounts via the Hyper MCP. Use when the user wants to launch Search, Display, Performance Max, Video, Demand Gen, Shopping, or App campaigns, build Google Ads reports or dashboards, diagnose conversion tracking, or mentions Google Ads, AdWords, search ads, display ads, Performance Max, PMax, PPC, Google campaigns, search term reports, budget analysis, conversion funnels, negative keywords, or manager accounts (MCC).

We split this skill into the rules it gives an agent

4 rules. 0 are common, 2 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 23 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If google_ads_accounts_list is not found, the integration to connect is Google Ads.

    line 19
  2. Distinctive:

    Every tool in this skill is named by its canonical tool name.

    line 23
  3. Very specific:

    If a tool is not found: in Hyper chat, find its toolkit id with discover_toolkits and pass it to enable_toolkit.

    line 31
  4. Distinctive:

    Every campaign build follows this sequence.

    line 85

“Common” is measured: kept by at least 6 in 10 of the 23 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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 google_ads_accounts_list is not found, the integration to connect is 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
Hyper chatCall the tool by its name; search_tools(queries=["<provider> <action>"]) shows its parameters<name>(...)
MCP client (Claude, Cursor, Codex, ChatGPT)search("<what you want to do>"), then describe("<name>")call_read("<name>", {...}), call_write or call_destructive: the one that describe names in call_with
Hyper CLIhyperai search "<what you want to do>", then hyperai describe <name>hyperai call <name> --json '{...}'

If a tool is not found: in Hyper chat, find its toolkit id with discover_toolkits and pass it to enable_toolkit. On an MCP client or the CLI, tell the user which integration to connect in Hyper.

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) → the ad-creative-generation skill.
  • 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>. Generated create and update tools take (customer_id, body), where body is the bare resource object in snake_case. A generated _remove takes body={"resource_name": "customers/<cid>/<collection>/<id>"}. The keyword, location, asset-group, asset-link, image-upload and _delete tools take flat arguments: read them with describe or search_tools.

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_location_targets_listA campaign's locations, each with its place name (canonical_name).
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. Generated bodies take the full resource_name that the mutate returns (e.g. "campaign": "customers/<cid>/campaigns/<id>"). The flat tools (google_ads_location_targets_add, google_ads_keywords_create, google_ads_asset_groups_create, google_ads_asset_group_assets_link, google_ads_campaign_assets_link) take the bare id: the last part of that resource name. 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.

PLACES COME FROM THE ID: Name a targeted place only from its canonical_name (google_ads_location_targets_list, or geo_target_constant.canonical_name in GAQL). A campaign name or the user's words is not a location.

SMALL SAMPLES: A cost per result from fewer than 10 conversions gets one line that the sample is too small to judge. Do not rank or cut a campaign on that cost alone.

DERIVED NUMBERS SHOW THEIR INPUTS: A total, difference or rate that you compute names the tool values it comes from: "312 carts with no purchase (414 add-to-carts − 102 purchases)".

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 files of your row only, before calling any tools. The other reference files are for other tasks
  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, by the campaign file; read a section of references/constraints.md only when a step names it
  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 campaignPlan: references/discovery.md. Build, after the user approves the plan: references/campaigns/search-display.md
Create a Performance Max campaignPlan: references/discovery.md. Build, after the user approves the plan: references/campaigns/pmax.md
Add an asset group to an existing PMax campaignreferences/campaigns/pmax.md
Create a Video, Demand Gen, Shopping, or App campaignPlan: references/discovery.md. Build, after the user approves the plan: references/campaigns/other-types.md
Run a report / GAQL query / analyze performance with no recipe belowreferences/reporting.md
Account health snapshot / "how is the account doing?"references/reports/account-overview.md
Diagnose conversion trackingreferences/reports/conversion-tracking.md
Find wasteful search terms / negative keyword candidatesreferences/reports/search-terms-waste.md
Conversions by action or per stagereferences/reports/conversion-by-action.md
A lead-gen or B2B multi-stage funnelreferences/reports/conversion-funnel.md
Where the spend goesreferences/reports/budget-distribution.md
Whether to restructurereferences/reports/campaign-structure.md
Campaign performance over timereferences/reports/campaign-performance.md
Ad-level performancereferences/reports/ad-performance.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

A report names the customer ID, the date range, the GAQL resource queried and its key results, and says whether the output is a written report or a dashboard. It treats rows as evidence, not as recommendations, unless the user asks for recommendations.

Download now (ZIP)

  • Other versions26 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 26

    1. superdesigndev/treg★ 5.7ksame name
    2. nowork-studio/notfair-plugin★ 4.1ksame name
    3. nowork-studio/toprank★ 4ksame name
    4. OpenClaudia/openclaudia-skills★ 724same name
    5. pedronauck/skills★ 641same name
    6. ivangfalco/ads-skills★ 267same name
    7. HybridAIOne/hybridclaw★ 159same name
    8. AceDataCloud/Skills★ 17same name
    9. chanktb/claude-google-ads★ 11same name
    10. pbc-os/smb-starter-kit★ 10same name

    16 more not listed

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • Used alongsideProjects with it also use google-ads-assets, gohighlevel and 5 more.

    Other files people use alongside this one.

    Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
    • chanktbSkill

      google-ads-assets

      Generates Google Ads creative assets shared across campaign types: responsive search ad headlines and descriptions, Performance Max asset-group copy and search themes, Demand Gen image/video briefs, and sitelinks/callouts. Enforces character limits, brand voice from account-context.yaml, and policy/ trademark safety. Use when the user says "ad copy", "headlines", "descriptions", "assets", "creative", "rsa", "asset group copy", "sitelinks", "callouts".

      Also in 3 projects that use this

    • windsor-aiSkill

      gohighlevel

      Analyze GoHighLevel CRM data through Windsor.ai. Use when the user asks about their GoHighLevel account — contacts, opportunities and pipeline stages, deal value, appointments, campaigns, lead sources, or conversion rates. It can also create or update a contact and create an invoice, always after the user confirms the exact change. It does not send emails or SMS, book or change appointments, or modify pipeline or campaign settings. Do not use for other CRMs (HubSpot, Salesforce), outbound messaging, or ad-platform performance data.

      Also in 3 projects that use this

    • vinayakmamodiaSkill

      linkedin-ads

      Expert LinkedIn Ads strategist for B2B companies. Use when the user asks about LinkedIn advertising, LinkedIn campaign setup, LinkedIn ad targeting, LinkedIn bidding strategies, LinkedIn ad formats, LinkedIn retargeting, LinkedIn ABM campaigns, LinkedIn Thought Leader Ads, LinkedIn funnel architecture, LinkedIn ads measurement/attribution, LinkedIn ads troubleshooting, LinkedIn creative best practices, or any B2B paid social strategy involving LinkedIn. Also triggers on "LinkedIn campaign", "LinkedIn CPM", "LinkedIn CTR", "LinkedIn lead gen", "B2B ads", "demand gen on LinkedIn", "sponsored content", or "LinkedIn ads not working". Do NOT use for LinkedIn organic content/posting (use linkedin-content skill) or LinkedIn outbound messaging (use cold-email skill).

      Also in 5 projects that use this

    • isiahw1Skill

      google-search-console

      Query and analyze Google Search Console data for SEO insights. Use when users want to analyze search performance, find content optimization opportunities, check URL index status, manage sitemaps, or make data-driven content decisions. Supports multiple properties and covers keyword discovery, CTR analysis, position tracking, and technical SEO checks.

      Also in 3 projects that use this

    • refly-aiSkill

      google-analytics

      Integrate with Google Analytics for web metrics. Use when you need to: (1) retrieve website analytics reports, (2) track traffic and user metrics, or (3) analyze web performance data.

      Also in 3 projects that use this

    • itallstartedwithaideaSkill

      google-ads-audit

      Structured Google Ads account audit across 7 dimensions. Activate when the user asks to "audit my account", "check for problems", "find issues", "review my campaigns", or requests a comprehensive account health assessment. Delivers findings with severity ratings and prioritized action items.

      Also in 3 projects that use this

  • In this repository31 other files it gives its agents.

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.