Skip to content
Agentmart
Submit a tool

google-ads

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

Skill by HybridAIOne

IndexedMIT★ 159
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/hybridaione-google-ads

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

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

Use cases: backend, marketing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/google-ads

What's inside

Skill name
google-ads
Description
Manage Google Ads accounts with safe GAQL reporting, campaign planning, guarded mutations, and gateway-proxied REST API calls.
License
MIT
Instructions
365 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (4)

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

SKILL.md (first lines)

# 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

From HybridAIOne/hybridclaw, MIT.

More from HybridAIOne/hybridclaw

Compare and alternatives

    Featured in

    Signals

    Stars
    159
    Forks
    17
    Open issues
    323
    Last commit (this folder)
    Jul 2, 2026 (3 months ago)
    Last release
    Oct 24, 2026 (3 days ago)

    From GitHub (fetched Oct 24, 2026).

    Details

    License
    MIT
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026

    More from HybridAIOne

    Cite this page

    google-ads skill. Agent Mart. https://agentmart.dev/skills/hybridaione-google-ads (last updated 2026-10-24)