Agent skill

Google Ads

by HybridAIOne in HybridAIOne/hybridclaw

Manage Google Ads accounts with safe GAQL reporting, campaign planning, guarded mutations, and gateway-proxied REST API calls.

MITAuto-check passedMarketing & SEO

Install Google Ads

skills CLI
$ npx skills add HybridAIOne/hybridclaw --skill google-ads -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install HybridAIOne/hybridclaw google-ads --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/HybridAIOne/hybridclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/google-ads .claude/skills/google-ads && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
google-ads
GitHub stars
159
Token cost
~4k tokens
SKILL.md length
942 words
Files
4 (incl. scripts, references)
Skills in repo
72
Repo updated
First seen
Licence
MIT

At a glance

Manage Google Ads accounts with safe GAQL reporting, campaign planning, guarded mutations, and gateway-proxied REST API calls.

  • Works in 7 steps: Start with reads. For reporting, draft… → For live read-only Google Ads API calls,… → Use the bundled helper only for offline… → …
  • Tasks that involve Paid advertising
  • SKILL.md covers Scope, Default Workflow, Secret Refs and Command Contract, plus 4 more sections
  • Runs Python scripts from its folder; calls python3; reaches googleads.googleapis.com and googleapis.com; needs GOOGLEADS_DEVELOPER_TOKEN and GOOGLE_WORKSPACE_CLI_TOKEN

What it does

Google Ads is an agent skill from HybridAIOne/hybridclaw. Manage Google Ads accounts with safe GAQL reporting, campaign planning, guarded mutations, and gateway-proxied REST API calls.

Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts and reference files (for example `evals/scenarios.json`, `references/setup-and-operations.md` and `scripts/google_ads.py`).

It sits in Marketing & SEO, covering Paid advertising. It works with Google Ads. The repository describes itself as: Enterprise-ready self-hosted AI assistant runtime with sandboxed execution, secure credentials, approvals, and memory. The licence is MIT.

When your agent uses it

  • Tasks that involve Paid advertising

Example prompts

  • “/google-ads”

Requirements

  • Python 3
  • A credential in GOOGLEADS_DEVELOPER_TOKEN
  • A credential in GOOGLE_WORKSPACE_CLI_TOKEN

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. Start with reads. For reporting, draft or generate GAQL, review it, then run
  2. For live read-only Google Ads API calls, use http_request directly. Do not
  3. Use the bundled helper only for offline planning/review utilities and guarded
  4. Use plan before every write-like request. The plan output carries
  5. Do not execute amber or red operations from the plan unless the user has
  6. Run /brand-voice before submitting any generated headline, description,
  7. Use http_request for direct query execution and the helper report-plan

What it can do on your machine

Read from SKILL.md and the folder at commit 8162701. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • googleads.googleapis.com
    • googleapis.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • GOOGLEADS_DEVELOPER_TOKEN
    • GOOGLE_WORKSPACE_CLI_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Google Ads loads about 4k tokens when it runs, and up to ~5.9k if it reads all its reference files. Until then it costs about 34 tokens; SKILL.md has 942 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~34
When it runs · the whole SKILL.md, loaded when a task matches
~4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from HybridAIOne/hybridclaw at commit 8162701, republished under its MIT licence (© HybridAIOne). 942 words, ~4,042 tokens.

Download SKILL.mdSave it as .claude/skills/google-ads/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
google-ads
description
Manage Google Ads accounts with safe GAQL reporting, campaign planning, guarded mutations, and gateway-proxied REST API calls.
user-invocable
true
requires.bins
python3

Google Ads

Use this skill for Google Ads API work: GAQL reports, account and campaign inspection, campaign/ad group/ad/keyword planning, recommendation review, and carefully gated account mutations.

Scope

  • list accessible customers and MCC children
  • run GAQL reporting queries through the official Google Ads REST API
  • translate common English and German reporting requests into reviewable GAQL
  • reuse the R21.6 NL-to-SQL review prompt payload shape for GAQL model review
  • plan campaign, ad group, keyword, budget, bid strategy, recommendation, and audience operations with an explicit stakes tier
  • execute approved campaign create/status/rename/remove/bid-strategy changes
  • execute approved daily and lifetime budget updates
  • execute approved ad group, keyword, and ad lifecycle changes
  • execute approved Customer Match, remarketing, lookalike, and in-market/user interest audience operations
  • execute approved conversion action create/status/attribution changes
  • apply or dismiss approved Google Ads recommendations
  • enforce brand-voice review before any ad-copy field is submitted
  • refuse budget, campaign-state, bid strategy, ad-copy submission, conversion-action edit, and customer-match upload actions unless the user has already provided an explicit operator grant for that exact action
  • measure skill run cost through normal HybridClaw UsageTotals

Default Workflow

  1. Start with reads. For reporting, draft or generate GAQL, review it, then run it only if the query is scoped enough for the request.
  2. For live read-only Google Ads API calls, use http_request directly. Do not run the helper through bash for account listing, GAQL execution, or other read-only REST calls when http_request is available.
  3. Use the bundled helper only for offline planning/review utilities and guarded mutation commands:
    bash
    python3 skills/google-ads/scripts/google_ads.py ...
  4. Use plan before every write-like request. The plan output carries stakesTier, requiresEscalation, requiredGrant, and brandVoiceGateRequired fields.
  5. Do not execute amber or red operations from the plan unless the user has granted the exact requiredGrant in the same turn or through an approved F14 escalation.
  6. Run /brand-voice before submitting any generated headline, description, sitelink, callout, or other ad-copy asset. If brand voice is not configured, keep the copy as a draft and ask for approval before submission.
  7. Use http_request for direct query execution and the helper report-plan when the user asks in natural language and a GAQL query must be generated.

Secret Refs

Use http_request for live Google Ads HTTP calls. OAuth access tokens and the developer token are injected server-side by the gateway from secret handles, so real values never enter the model context. The helper uses the same gateway contract only for commands that explicitly require helper-side validation.

Required setup:

bash
hybridclaw auth login google \
  --client-id "<google-oauth-client-id>" \
  --client-secret "<google-oauth-client-secret>" \
  --account you@example.com \
  --scopes "https://www.googleapis.com/auth/adwords"

hybridclaw auth status google

Set GOOGLEADS_DEVELOPER_TOKEN in this order:

  1. Browser admin: open the active HybridClaw admin URL ending in /admin/secrets.
  2. Browser /chat or TUI fallback: /secret set GOOGLEADS_DEVELOPER_TOKEN "<developer-token>".
  3. Local console fallback: hybridclaw secret set GOOGLEADS_DEVELOPER_TOKEN "<developer-token>".

Do not ask the user to add secret route entries for normal Google Ads skill use. The skill should pass bearerSecretName: "GOOGLE_WORKSPACE_CLI_TOKEN" and secretHeaders: [{ "name": "developer-token", "secretName": "GOOGLEADS_DEVELOPER_TOKEN", "prefix": "" }] in each http_request call.

Optional stored defaults use the same setup order: browser admin at /admin/secrets, then /secret set in browser /chat or TUI, then local console fallback.

bash
hybridclaw secret set GOOGLEADS_CUSTOMER_ID "<customer-id-without-hyphens>"
hybridclaw secret set GOOGLEADS_LOGIN_CUSTOMER_ID "<manager-id-without-hyphens>"

If the account is managed through an MCC, include --login-customer-id on live commands or store GOOGLEADS_LOGIN_CUSTOMER_ID. Customer ids must be sent to the API without hyphens.

Command Contract

List accessible Google Ads customers:

json
{
  "url": "https://googleads.googleapis.com/v20/customers:listAccessibleCustomers",
  "method": "GET",
  "bearerSecretName": "GOOGLE_WORKSPACE_CLI_TOKEN",
  "secretHeaders": [
    {
      "name": "developer-token",
      "secretName": "GOOGLEADS_DEVELOPER_TOKEN",
      "prefix": ""
    }
  ],
  "skillName": "google-ads"
}

Run a GAQL report:

json
{
  "url": "https://googleads.googleapis.com/v20/customers/1234567890/googleAds:searchStream",
  "method": "POST",
  "headers": {
    "login-customer-id": "1234567890"
  },
  "json": {
    "query": "SELECT campaign.id, campaign.name, metrics.clicks FROM campaign WHERE segments.date DURING LAST_7_DAYS LIMIT 20"
  },
  "bearerSecretName": "GOOGLE_WORKSPACE_CLI_TOKEN",
  "secretHeaders": [
    {
      "name": "developer-token",
      "secretName": "GOOGLEADS_DEVELOPER_TOKEN",
      "prefix": ""
    }
  ],
  "skillName": "google-ads"
}

Plan GAQL from natural language without authentication:

bash
python3 skills/google-ads/scripts/google_ads.py --format json report-plan \
  "Show German campaigns with CTR below 1% this week"

Emit the GAQL variant of the R21.6 NL-to-SQL prompt-template family:

bash
python3 skills/google-ads/scripts/google_ads.py --format json prompt-template \
  "Show campaign clicks for last week" \
  --query "SELECT campaign.id, metrics.clicks FROM campaign WHERE segments.date DURING LAST_7_DAYS LIMIT 10"

Classify and inspect an operation before any write:

bash
python3 skills/google-ads/scripts/google_ads.py --format json plan \
  "Bump the daily budget on campaign X by 20%"

Review ad copy before submission:

bash
python3 skills/google-ads/scripts/google_ads.py --format json ad-copy-review \
  --headline "Fast CRM Migration" \
  --description "Switch cleanly with a migration plan"

Execute approved mutations only after the exact grant is present:

bash
python3 skills/google-ads/scripts/google_ads.py campaign-status 1234567890 111222333 \
  --status PAUSED \
  --grant approve-google-ads-campaign-state-change

python3 skills/google-ads/scripts/google_ads.py campaign-create 1234567890 444555666 \
  --name "DE Search Brand" \
  --grant approve-google-ads-budget-or-bid-change

python3 skills/google-ads/scripts/google_ads.py campaign-bid-strategy 1234567890 111222333 \
  --strategy target-roas \
  --target-roas 4.0 \
  --grant approve-google-ads-budget-or-bid-change

python3 skills/google-ads/scripts/google_ads.py campaign-rename 1234567890 111222333 \
  --name "DE Search Brand - Exact" \
  --grant approve-google-ads-structure-edit

python3 skills/google-ads/scripts/google_ads.py campaign-remove 1234567890 111222333 \
  --grant approve-google-ads-campaign-state-change

python3 skills/google-ads/scripts/google_ads.py budget-amount 1234567890 444555666 \
  --amount-micros 25000000 \
  --grant approve-google-ads-budget-or-bid-change

python3 skills/google-ads/scripts/google_ads.py budget-lifetime-amount 1234567890 444555666 \
  --total-amount-micros 250000000 \
  --grant approve-google-ads-budget-or-bid-change

python3 skills/google-ads/scripts/google_ads.py ad-group-create 1234567890 111222333 \
  --name "DE Search Competitors" \
  --status PAUSED \
  --grant approve-google-ads-structure-edit

python3 skills/google-ads/scripts/google_ads.py ad-group-status 1234567890 777888999 \
  --status PAUSED \
  --grant approve-google-ads-structure-edit

python3 skills/google-ads/scripts/google_ads.py ad-group-rename 1234567890 777888999 \
  --name "DE Competitor Alternatives" \
  --grant approve-google-ads-structure-edit

python3 skills/google-ads/scripts/google_ads.py ad-group-remove 1234567890 777888999 \
  --grant approve-google-ads-structure-edit

python3 skills/google-ads/scripts/google_ads.py keyword-create 1234567890 777888999 \
  --text "crm migration" \
  --match-type EXACT \
  --grant approve-google-ads-structure-edit

python3 skills/google-ads/scripts/google_ads.py keyword-status 1234567890 777888999 111222333 \
  --status PAUSED \
  --grant approve-google-ads-structure-edit

python3 skills/google-ads/scripts/google_ads.py keyword-remove 1234567890 777888999 111222333 \
  --grant approve-google-ads-structure-edit

python3 skills/google-ads/scripts/google_ads.py rsa-create 1234567890 777888999 \
  --headline "Fast CRM Migration" \
  --headline "Clean Data Move" \
  --headline "Launch With Control" \
  --description "Switch cleanly with expert migration planning" \
  --description "Move your CRM data with a clear rollout plan" \
  --final-url "https://example.com" \
  --brand-voice-approved \
  --grant approve-google-ads-ad-copy-submit

python3 skills/google-ads/scripts/google_ads.py ad-status 1234567890 777888999 222333444 \
  --status PAUSED \
  --grant approve-google-ads-structure-edit

python3 skills/google-ads/scripts/google_ads.py ad-remove 1234567890 777888999 222333444 \
  --grant approve-google-ads-structure-edit

python3 skills/google-ads/scripts/google_ads.py conversion-action-create 1234567890 \
  --name "Lead form submit" \
  --category LEAD \
  --grant approve-google-ads-conversion-action-edit

python3 skills/google-ads/scripts/google_ads.py conversion-action-attribution 1234567890 222333444 \
  --attribution-model DATA_DRIVEN \
  --grant approve-google-ads-conversion-action-edit

python3 skills/google-ads/scripts/google_ads.py remarketing-list-create 1234567890 \
  --name "Pricing visitors" \
  --remarketing-action "customers/1234567890/remarketingActions/111222333" \
  --grant approve-google-ads-audience-management

python3 skills/google-ads/scripts/google_ads.py lookalike-list-create 1234567890 \
  --name "Buyer lookalikes" \
  --seed-user-list-id 111222333 \
  --country-code DE \
  --grant approve-google-ads-audience-management

python3 skills/google-ads/scripts/google_ads.py campaign-user-interest-target 1234567890 111222333 80400 \
  --grant approve-google-ads-audience-management

python3 skills/google-ads/scripts/google_ads.py customer-match-list-create 1234567890 \
  --name "Hashed CRM buyers" \
  --grant approve-google-ads-customer-match-upload

python3 skills/google-ads/scripts/google_ads.py customer-match-job-create 1234567890 \
  "customers/1234567890/userLists/111222333" \
  --grant approve-google-ads-customer-match-upload

python3 skills/google-ads/scripts/google_ads.py customer-match-add-hashes 1234567890 \
  "customers/1234567890/offlineUserDataJobs/111222333" \
  --sha256-email "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
  --sha256-phone "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" \
  --address-info-json '{"hashedFirstName":"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc","hashedLastName":"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd","countryCode":"DE","postalCode":"10115"}' \
  --grant approve-google-ads-customer-match-upload

python3 skills/google-ads/scripts/google_ads.py customer-match-job-run 1234567890 \
  "customers/1234567890/offlineUserDataJobs/111222333" \
  --grant approve-google-ads-customer-match-upload

python3 skills/google-ads/scripts/google_ads.py apply-recommendation 1234567890 \
  "customers/1234567890/recommendations/abc123" \
  --grant approve-google-ads-recommendation-apply

python3 skills/google-ads/scripts/google_ads.py dismiss-recommendation 1234567890 \
  "customers/1234567890/recommendations/abc123" \
  --grant approve-google-ads-recommendation-dismiss

Use --validate-only with mutation commands when you want Google Ads to validate the request without executing it.

Run the offline eval suite:

bash
python3 skills/google-ads/scripts/google_ads.py --format json eval-scenarios
Show full SKILL.md (350 more words)Show less

Working Rules

  • Reads are autonomous by default when scoped to the requested account and date range.
  • Every write starts as a plan. Treat the plan as authoritative for whether escalation is required.
  • Any write to campaigns, budgets, ads, ad groups, keywords, bid strategies, conversion actions, recommendations, or audiences requires explicit operator approval before execution.
  • Budget mutations, campaign pause/enable, ad-copy submission, customer-match uploads, bid-strategy switches, and conversion-action edits are red-tier. Refuse them without an exact approval grant.
  • Customer-match uploads must use pre-hashed PII only. Do not hash raw customer PII inside the model context, and do not request raw customer lists in chat.
  • Customer Match execution intentionally uses Google Ads API OfflineUserDataJobs for operators who need the Ads API path, while acknowledging that Google points new Customer Match implementations toward Data Manager in current guidance. Keep that as a deliberate product choice, not an accidental drift.
  • Customer Match execution is split into explicit list creation, offline job creation, hash-only add operations, and job run commands. The helper accepts only 64-character SHA-256 hashes for email, phone, and address-info hash fields; raw customer identifiers remain out of scope.
  • Recommendation applies are amber-tier even when Google presents them as a simple button. Read recommendations first, summarize the account impact, then ask for approval.
  • Keep GAQL narrow: include a date window for performance metrics, use a LIMIT for exploratory reports, and select only fields needed for the task.
  • For German-language requests, preserve the user's business terms in the narrative but emit GAQL using official English resource and field names.
  • Cost per assistant run is recorded by HybridClaw UsageTotals; helper output includes costMeasurement.system = "UsageTotals" so evals can verify the accounting contract. R5.4 per-skill sub-limit enforcement remains a gateway concern; this skill declares the google-ads sub-limit key and emits the metering marker that enforcement consumes.

Eval Suite

The fixture at evals/scenarios.json contains 36 offline scenarios across GAQL reporting, campaign edits, ad authoring, audience management, recommendation actions, conversion tracking, and high-stakes refusals. The helper verifies each scenario's expected stakes tier, escalation requirement, brand-voice gate, and cost-measurement contract.

References

Validation

Run:

bash
python3 skills/skill-creator/scripts/quick_validate.py skills/google-ads
python3 skills/google-ads/scripts/google_ads.py --help
python3 skills/google-ads/scripts/google_ads.py --format json eval-scenarios

© HybridAIOne, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (scripts, references) in skills/google-ads of HybridAIOne/hybridclaw.

  • SKILL.md
  • evals/scenarios.json
  • references/setup-and-operations.md
  • scripts/google_ads.py

Open the folder on GitHubat commit 8162701

Compare with similar skills

Google Ads next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Google Ads compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Google Ads this skillHybridAIOne/hybridclaw159—~4kAutomated safety check: PassMIT
Blog GoogleAgriciDaniel/claude-blog2.3k1 repos~3.3kAutomated safety check: NotesMIT
AdsCesarjoquin/Marketing-Skills2021 repos~3.5kAutomated safety check: PassMIT
Adscoreyhaines31/marketingskills54k1 repos~7kAutomated safety check: PassMIT
Google Adssuperdesigndev/treg4.9k—~1.9kAutomated safety check: PassCustom licence
Money Adsiamzifei/show-me-the-money1k—~2.4kAutomated safety check: PassCustom licence

Similar skills

  • Blog Google

    AgriciDaniel/claude-blog

    Google API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity…

    2.3k GitHub starsUsed in 1 repo~3.3k tokens
    Marketing & SEOAuto-check: notes
  • Ads

    Cesarjoquin/Marketing-Skills

    When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms.

    202 GitHub starsUsed in 1 repo~3.5k tokens
    Marketing & SEOAuto-check passed
  • Ads

    coreyhaines31/marketingskills

    When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms.

    54k GitHub starsUsed in 1 repo~7k tokens
    Marketing & SEOAuto-check passed
  • Google Ads

    superdesigndev/treg

    Traps when running Google Ads through treg — the API requirements and cleanup semantics that cost round-trips or money.

    4.9k GitHub stars~1.9k tokensUpdated today
    Marketing & SEOAuto-check passed
  • Money Ads

    iamzifei/show-me-the-money

    Paid advertising automation for Google Ads, Meta Ads, and other ad platforms.

    1k GitHub stars~2.4k tokensUpdated 1 mo ago
    Marketing & SEOAuto-check passed
  • Paid Ads

    freekmurze/dotfiles

    When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms.

    1k GitHub starsUsed in 14 repos~2.4k tokens
    Marketing & SEOAuto-check passed

More from HybridAIOne/hybridclaw

All 72 skills in this repo
  • Hermes3000 Writing

    HybridAIOne/hybridclaw

    Use Hermes3000 to plan, draft, revise, save, check consistency, and export long-form manuscripts through the Hermes3000 AI writing portal API.

    159 GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Manim Video

    HybridAIOne/hybridclaw

    Plan, script, render, and stitch Manim Community Edition videos in Python.

    159 GitHub stars~4.7k tokensUpdated today
    Auto-check: notes
  • Skill Creator

    HybridAIOne/hybridclaw

    Create and update SKILL.md-based skills with strong trigger metadata, lean docs, and reliable init, validate, package, and publish workflows.

    159 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • XLSX

    HybridAIOne/hybridclaw

    Create, edit, inspect, and analyze .xlsx spreadsheets and Excel workbooks.

    159 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Excalidraw

    HybridAIOne/hybridclaw

    Create and revise editable .excalidraw diagrams as Excalidraw JSON for architecture diagrams, flowcharts, sequence diagrams, concept maps, and other hand-drawn explainers.

    159 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Human Distill

    HybridAIOne/hybridclaw

    Distill a real person into a hireable coworker agent from their source material — chat exports, emails, meeting transcripts, documents, interviews, and live mirroring.

    159 GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Google Ads

What does Google Ads do?

Manage Google Ads accounts with safe GAQL reporting, campaign planning, guarded mutations, and gateway-proxied REST API calls. Google Ads is an agent skill from HybridAIOne/hybridclaw. Manage Google Ads accounts with safe GAQL reporting, campaign planning, guarded mutations, and gateway-proxied REST API calls.

When should I use Google Ads?

Google Ads fits situations like: tasks that involve Paid advertising.

How do I install Google Ads in Claude Code?

Run `npx skills add HybridAIOne/hybridclaw --skill google-ads -a claude-code`. Or copy the skill folder (skills/google-ads in HybridAIOne/hybridclaw) into .claude/skills/google-ads in your project. Claude Code loads it when a task matches its description.

How do I install Google Ads in Codex?

Run `npx skills add HybridAIOne/hybridclaw --skill google-ads -a codex`. Or copy the skill folder (skills/google-ads in HybridAIOne/hybridclaw) into .agents/skills/google-ads in your project. Codex loads it when a task matches its description.

Can I use Google Ads in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add HybridAIOne/hybridclaw --skill google-ads -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/google-ads, .gemini/skills/google-ads, .github/skills/google-ads and .opencode/skills/google-ads in your project.

What does Google Ads need to run?

Going by SKILL.md and its folder, Google Ads needs Python for the scripts in its folder, the command-line tools its instructions call (python3) and credentials named GOOGLEADS_DEVELOPER_TOKEN and GOOGLE_WORKSPACE_CLI_TOKEN. Our summary lists: Python 3; A credential in GOOGLEADS_DEVELOPER_TOKEN; A credential in GOOGLE_WORKSPACE_CLI_TOKEN.

Does Google Ads access the network?

SKILL.md names 2 domains. In commands or code: googleads.googleapis.com and googleapis.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Google Ads safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Google Ads use?

Google Ads is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Google Ads use?

About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.9k tokens, read only when the agent opens those files.

What are the alternatives to Google Ads?

Skills that share tags, products or a category with Google Ads: Blog Google (AgriciDaniel/claude-blog, 2.3k stars), Ads (Cesarjoquin/Marketing-Skills, 202 stars), Ads (coreyhaines31/marketingskills, 54k stars) and Google Ads (superdesigndev/treg, 4.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Google Ads?

HybridAIOne (a GitHub organization) maintains it in HybridAIOne/hybridclaw, which has 159 GitHub stars. The repository holds 72 skills in this directory. The repository was last updated on October 9, 2026.

Source: HybridAIOne/hybridclaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.