agentleFS
omarmfouad25omarmfouad25/google-marketing-agent/skills/setup/SKILL.md

setup

Skill4 starsChanged 30 days agoMITView on GitHub

Set up google-marketing-agent from zero, or fix a broken setup. Use when the user says "set up google-marketing-agent", "connect my Google Ads", "the doctor is red", "add another account", or when any tool fails with a sign-in, permission or access-level error.

191 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use add-voice-transcription, add-discord and 10 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.
  • juancruzmunozalbeloSkill

    add-voice-transcription

    Add voice message transcription to NanoClaw using OpenAI's Whisper API. Automatically transcribes WhatsApp voice notes so the agent can read and respond to them.

    Also in 5 projects that use this

  • MicrosoftSkill

    add-discord

    Add Discord bot channel integration via Chat SDK.

    Also in 11 projects that use this

  • MicrosoftSkill

    add-slack

    Add Slack channel integration via Chat SDK.

    Also in 11 projects that use this

  • juancruzmunozalbeloSkill

    add-telegram-swarm

    Add Agent Swarm (Teams) support to Telegram. Each subagent gets its own bot identity in the group. Requires Telegram channel to be set up first (use /add-telegram). Triggers on "agent swarm", "agent teams telegram", "telegram swarm", "bot pool".

    Also in 7 projects that use this

  • +8 more from microsoft

The file

We split this skill into the rules it gives an agent

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

  • 0

    Common

    Most of the 170 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 8

    Very specific

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

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

    Call setup_doctor. If every line is ✓, say so and stop.

    line 23
  2. Distinctive:

    Read the first ✗ line and its fix.

    line 24
  3. Distinctive:

    Create a Google Cloud project (console.cloud.google.com).

    line 30
  4. Very specific:

    Call guide("access") if they ask about developer tokens or access levels.

    line 38
  5. Very specific:

    Account access: Call accounts_list. If the account is listed "via manager", the profile needs that manager as loginCustomerId: npx …

    line 42
  6. Distinctive:

    If it is not listed at all, the signed-in Google user needs access to it in Google Ads.

    line 45
  7. Very specific:

    Search Console Full or Restricted user.

    line 47
  8. Very specific:

    After each fix, call setup_doctor again and report only what changed.

    line 49
  9. Very specific:

    When everything they need is green, call account_profile and summarise the profile.

    line 50
  10. Very specific:

    Never ask the user to paste a client secret, refresh token or service-account key into the chat.

    line 61
  11. Very specific:

    Never edit ~/.config/google-marketing-agent/*.json by hand on their behalf.

    line 63
  12. Distinctive:

    Never turn on writes for them.

    line 64

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

Setup

Walk the user from nothing to a green setup_doctor, one step at a time. Each step ends with a check; move on only when that step is green.

When to use

  • First run: no profiles, or tools answer "No accounts configured" / "Not signed in".
  • A tool failed with invalid_grant, USER_PERMISSION_DENIED, PERMISSION_DENIED, a disabled API, or test-level access.
  • The user wants to add another Google Ads account or link GA4 / Search Console / Tag Manager.

Inputs

None. Everything comes from setup_doctor and the user's answers.

Steps

  1. Call setup_doctor. If every line is ✓, say so and stop.
  2. Read the first ✗ line and its fix. Handle the earliest broken stage first, in this order:
    1. Signed out / no credentials → step 3.
    2. Google Ads access level (only test accounts visible, or "Test level") → step 4.
    3. Account not readable (USER_PERMISSION_DENIED, wrong manager) → step 5.
    4. GA4 / Search Console / Tag Manager lines → step 6.
  3. Cloud project and OAuth client. Explain the four one-time steps, wait for "done" after each:

    1. Create a Google Cloud project (console.cloud.google.com).
    2. Enable the Google Ads API, plus Google Analytics Data API, Google Analytics Admin API, Google Search Console API and Tag Manager API for the products they use.
    3. OAuth consent screen: Internal if they are in a Google Workspace organisation; otherwise External and set it to In production. Testing mode makes the sign-in expire after 7 days.
    4. Credentials → Create credentials → OAuth client ID → Desktop app.

    Then tell them to run npx google-marketing-agent init in their own terminal and pick their accounts. Call guide("access") if they ask about developer tokens or access levels.

  4. Access level. The Cloud project that owns the OAuth client starts at Test level. Tell them: Cloud Console → APIs & Services → Google Ads API → Overview → apply for Explorer (usually approved within minutes). The OAuth client must be in that same project. Use guide("access") for the levels table.
  5. Account access. Call accounts_list. If the account is listed "via manager", the profile needs that manager as loginCustomerId: npx google-marketing-agent accounts set <alias> loginCustomerId <manager id>. If it is not listed at all, the signed-in Google user needs access to it in Google Ads.
  6. Other products. For each ✗ line, give the exact role from the fix text (GA4 Viewer, Editor for key events; Search Console Full or Restricted user; Tag Manager Read/Edit/Publish) and the profile field to set (ga4PropertyId numeric ID, gscSiteUrl exactly as Search Console lists it, gtmContainerId GTM-XXXX).
  7. After each fix, call setup_doctor again and report only what changed.
  8. When everything they need is green, call account_profile and summarise the profile. Mention that profiles are read-only; changes need npx google-marketing-agent accounts set <alias> writes true after reading the safety guide, then a restart of their MCP client.

Output

A short checklist: each stage ✓ or ✗ with the one next action. End with either "Setup complete" or exactly what is still missing and who has to grant it (the user, their Google Ads admin, their Workspace admin).

Never

  • Never ask the user to paste a client secret, refresh token or service-account key into the chat. Secrets go into init in their own terminal only.
  • Never edit ~/.config/google-marketing-agent/*.json by hand on their behalf; use the CLI commands above.
  • Never turn on writes for them. Explain how, and let them decide.

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.