agentleFS
chanktbchanktb/claude-google-ads/skills/google-ads/SKILL.md

google-ads

Skill11 starsChanged 5 months agoMITView on GitHub

Router / orchestrator for the claude-google-ads suite. Use when the user wants to do anything with Google Ads but hasn't named a specific step — "help me with Google Ads", "launch Google Ads for my store", "run google ads", or just /google-ads. Reads account-context.yaml, runs setup if missing, figures out where the account is in the lifecycle, and dispatches to the right sub-skill (setup, measurement, audit, plan, builder-*, pusher, tracker, optimizer, assets, experiments). It orchestrates; it does not do the work.

  • Reads credentials

29 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use gohighlevel, tiktok-ads and 3 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.
  • 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

  • hyperfx-aiSkill

    tiktok-ads

    Plan and create TikTok advertising campaigns end-to-end via the Hyper MCP, with strict parameter validation for objective-specific requirements. Use when the user wants to launch TikTok ads, set up TikTok traffic or reach campaigns, configure conversions or app-promotion campaigns, upload TikTok video creatives, or analyze TikTok ad performance. Also triggers on tiktok marketing, tiktok campaign, tiktok ppc, or tiktok ads manager.

    Also in 5 projects that use this

  • brainbytes-devSkill

    linkedin-ads

    LinkedIn advertising strategy for B2B lead generation, brand awareness, and recruitment. Use when running LinkedIn ad campaigns.

    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

  • AnthropicSkill

    onboarding

    Generate an onboarding checklist and first-week plan for a new hire. Use when someone has a start date coming up, building the pre-start task list (accounts, equipment, buddy), scheduling Day 1 and Week 1, or setting 30/60/90-day goals for a new team member.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

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

  • 0

    Common

    Most of the 26 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 6

    Very specific

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

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

    Look for account-context.yaml in the working directory (or a --context <path> the user gives).

    line 17
  2. Very specific:

    Missing →: run claude-google-ads:setup first.

    line 18
  3. Very specific:

    Read the context connections block (or detect live).

    line 22
  4. Very specific:

    If Google Ads is missing → stop and run setup.

    line 33
  5. Distinctive:

    Run the context validator to read readiness, and scan the working dir for prior artifacts:

    line 38
  6. Distinctive:

    If the user named a task, map it and dispatch:

    line 54
  7. Distinctive:

    If ambiguous, ask ONE clarifying question, then route.

    line 67
  8. Very specific:

    pusher: always: create PAUSED, human approval, spend cap.

    line 77
  9. Distinctive:

    When the user just says /google-ads (no task), produce a short status: readiness, what artifacts exist, and the single recommended next …

    line 80
  10. Very specific:

    One working folder per business; nothing scattered: All context + outputs live under a single <workdir> with dated subfolders, and secrets …

    line 96

“Common” is measured: kept by at least 6 in 10 of the 26 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 — Router

The single entry point. Find out where the user is in the campaign lifecycle and hand off to the right sub-skill. Enforce the order so nothing runs on a broken foundation.

STEP 0 — Locate context

Look for account-context.yaml in the working directory (or a --context <path> the user gives).

  • Missing → run claude-google-ads:setup first. Nothing else runs without context.
  • Present → continue.

STEP 0b — Connection precheck (REQUIRED — don't run skills on a half-connected account)

Read the context connections block (or detect live). Before routing, confirm the prerequisites are set up; the suite's value depends on real data, and it must never run on a gap silently (see the no-fabricate gate):

ConnectionTierIf missing
Google Ads (read-only GAQL MCP)MANDATORYSTOP. Nothing runs. Send the user to setup to connect a Google Ads MCP.
Store (Shopify/Woo/BigCommerce)required for full valueGuide to connect (MCP or an Admin token in a .env). Without it: no real AOV / true-ROAS — those outputs render UNVERIFIED — connect store.
Merchant Center (ecom)required for feed healthGuide to connect. Without it: product performance only, feed health (OOS/disapproval, D14-B) = UNVERIFIED.
GA4recommendedGuide to connect. Without it: no Ads-vs-GA4 value cross-check.
GSCoptionalNote only.

If Google Ads is missing → stop and run setup. If a value-tier source (store/Merchant/GA4) is missing → surface a one-line "connect these for full value" banner with the how-to, then proceed at reduced scope — every output that needed the missing source is flagged UNVERIFIED, never fabricated. Don't quietly skip.

STEP 1 — Assess lifecycle stage

Run the context validator to read readiness, and scan the working dir for prior artifacts:

python ${CLAUDE_PLUGIN_ROOT}/skills/setup/scripts/validate_context.py ./account-context.yaml

Map state → the next sensible step:

ReadinessArtifacts presentLikely next step
not setup-complete—setup (finish context)
setup-complete, no audit—audit and/or measurement
measurement = FAILmeasurement reportback to tracking fixes (block plan/build)
measurement OK, no planaudit + measurementplan
plan exists, no specGOOGLE-ADS-PLAN.mdbuilder-* for the chosen types
spec exists, not pushedcampaign-spec.jsonpusher
campaign live—tracker (new) / optimizer (mature)

STEP 2 — Route by intent

If the user named a task, map it and dispatch:

  • "audit / score / what's wrong / wasted spend" → audit
  • "tracking / conversions / GA4 import / double count" → measurement
  • "plan / budget / what campaigns / media plan / forecast" → plan
  • "build pmax / performance max" → builder-pmax
  • "build search" → builder-search
  • "branded / brand campaign / conquesting" → builder-branded-search
  • "demand gen / youtube / discovery" → builder-demand-gen
  • "push / export / upload / go live" → pusher
  • "how's it doing / pacing / learning phase / anomaly" → tracker
  • "optimize / improve ROAS / negatives / raise tROAS / weekly review" → optimizer
  • "experiment / A/B / split test" → experiments
  • "ad copy / headlines / assets / creative" → assets If ambiguous, ask ONE clarifying question, then route.

STEP 3 — Full launch (when the user wants the whole thing)

For "set up Google Ads for my business", run the pipeline in order, pausing for input where needed:

setup → measurement [GATE] → audit → plan → builder-* → pusher [approval] → tracker → optimizer

Hard gates (never skip):

  • No plan/build before measurement passes (FAIL blocks; WARN carries a risk note).
  • build-ready wants brand_terms (for branded search + PMax exclusion).
  • pusher always: create PAUSED, human approval, spend cap.

STEP 4 — "Where am I?" summary

When the user just says /google-ads (no task), produce a short status: readiness, what artifacts exist, and the single recommended next action — then offer to run it. Don't dump everything; point to the next step.

Model dispatch (run cheap, decide expensive)

Spend compute by cognitive load, not by habit — see ${CLAUDE_PLUGIN_ROOT}/references/model-tier-dispatch.md. The router itself is Judge (J) work (lifecycle reasoning, routing, gates). But the heavy collection each sub-skill needs is Scout/Routine — so as orchestrator, push it down:

  • Scout (S, haiku) — the validate_context.py run in STEP 1, a single status pull, one URL check.
  • Routine (R, sonnet) — assembling the active-campaign set, full data-bundle pulls for audit/optimizer/tracker.
  • Judge (J, main session) — picking the next lifecycle step, all gates, the "where am I" call. Delegate S/R via Agent(subagent_type: "general-purpose", model: …) so the sub-agent keeps MCP + Bash; tell it to return raw, not conclude. Each sub-skill carries its own per-STEP tier table.

Notes

  • The router orchestrates; each sub-skill reads the same account-context.yaml and writes to the working directory. Business data never lives in the plugin — it stays in your local account-context.yaml.
  • One working folder per business; nothing scattered. All context + outputs live under a single <workdir> with dated subfolders, and secrets are recorded as POINTERS (not copied) — see ${CLAUDE_PLUGIN_ROOT}/references/workspace-layout.md. If there's no working folder yet, setup creates it.
  • Sub-skills are invoked by their namespaced names (claude-google-ads:setup, claude-google-ads:audit, …).

Download now (ZIP)

Does it work?

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

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

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.