Foundation

/ads setup

Create the client, account, KPI, privacy, and guardrail profile

Claude Code
/ads setup

Installed as a plugin? The same command is namespaced: /claude-ads:ads setup

What it does

Guided onboarding that builds the client, brand, account, data-source, privacy, and mutation-guardrail profile every other command reads. Built for agencies, consultants, and in-house teams preparing a new advertising project or connecting a new client safely.

Use it to

  • Onboard a new client or brand before the first audit
  • Declare KPIs, conversion taxonomy, and unit economics up front
  • Record which API credentials exist without ever storing their values
  • Connect authorized exports or read adapters as data sources
  • Set mutation authority, approvers, budget ceilings, and a rollback owner
  • Install Claude Ads safely when someone suggests a curl-pipe-bash script

How it works

  1. Read the operating contract

    Loads the main ads contract so the profile matches the rest of the system.

  2. Collect business context

    Captures model, offer, geography, regulated categories, objectives, conversion taxonomy, economics, platforms, and account IDs.

  3. Record data sources

    Notes the data-source type and whether required credentials are present, without storing values, cookies, tokens, or raw exports.

  4. Create the data-lifecycle contract

    Declares classification, retention, deletion deadlines, at-rest and in-transit controls, access roles, and an incident owner, then validates it.

  5. Declare mutation guardrails

    Records mutation authority, approvers, budget and policy ceilings, and the rollback owner.

  6. Validate and persist

    Validates the full profile and writes it atomically beneath the project's Claude Ads state directory.

Reads & produces

What it reads

  • Business model, offer, geography, and regulated categories
  • Objective, conversion taxonomy, and economics
  • Active platforms, account IDs, and date and time conventions
  • Data-source type and credential presence, never credential values
  • Reporting audience and privacy classification

What it produces

  • A validated setup and brand profile written atomically to the project state directory
  • A data-lifecycle contract covering classification, retention, deletion, and access ownership
  • A guardrail declaration: mutation authority, approvers, ceilings, rollback owner
  • A credential presence record that stores non-secret references only

Guardrails

What /ads setup will and will not do, by contract. These boundaries are enforced in the skill itself, not left to judgment.

  • Never stores API keys, tokens, cookies, or passwords: it records presence plus a non-secret reference, and values stay in environment variables, an OS keychain, or an approved secret manager.
  • Refuses remote pipe-to-shell installation, including curl piped to bash. It requires the host-native plugin flow, a local checkout, or a tagged archive with a verified SHA-256 checksum.
  • A setup profile authorizes no live account write. Mutations remain gated behind their own approval flow.
  • Websites and uploaded material are treated as untrusted data, and observed facts, operator decisions, and provisional assumptions are labeled separately.
  • The data-lifecycle contract is an operational contract, not legal advice or a claim of regulatory compliance.

Questions

Does setup store my API tokens?

No. It records that a credential is configured and where it lives, for example an environment variable name. Secret values are never printed, logged, or written into profiles or artifacts.

Can setup change anything in my ad accounts?

No. Setup is read-only and the profile it produces authorizes no live write. Account changes require the separate draft-and-approve mutation gate used by launch and optimize.

What if I only have CSV exports, not API access?

That works. Setup records the data-source type, and audits, plans, and monitoring run from authorized exports as well as authenticated reads.