claude-ads README

The project's README from github.com/AgriciDaniel/claude-ads. As one markdown file: README.md.

Claude Ads, Claude-first paid-media operations across twelve advertising platforms

Claude Ads

Claude-first, portable paid-media operations for agencies, consultants, and in-house performance teams.

Claude Ads turns authorized exports or account reads into source-grounded audits, plans, creative workflows, experiments, monitoring, and reports. It is read-only by default. Live changes stay disabled until the exact platform and operation pass approval, idempotency, verification, audit, and rollback gates.

[!NOTE] Claude Ads ships from two homes: the public release at AgriciDaniel/claude-ads (MIT, no membership required) and the community mirror at AI-Marketing-Hub/claude-ads, where AI Marketing Hub Pro members get early access and direct collaboration.

Validated inputs flow through bounded workers into schema-valid findings and deterministic reports

What it does

Platforms

Twelve first-class paid-advertising platform surfaces

Segment Platforms
Search, video, and social Google Ads, Meta Ads, YouTube Ads, LinkedIn Ads, TikTok Ads, Microsoft Advertising, Reddit Ads, Snapchat Ads, X Ads
Commerce and retail media Apple Ads, Amazon Ads, Pinterest Ads

Each platform has a focused skill, audit worker, control reference, capability declaration, and testable routing surface. The capability manifest is the authoritative record for live reads and writes.

Commands

Standalone installs use /ads. Claude Code plugins are namespaced and use /claude-ads:ads. Both load the same ads/SKILL.md contract.

Command Outcome
/ads setup Create the client, account, KPI, privacy, and guardrail profile
/ads audit [all|platform|scope] Run a complete or scoped evidence-backed audit
/ads plan Build channel, campaign, budget, competitor, and measurement plans
/ads create Produce copy, image, video, or product-photo assets
/ads launch --draft Draft a campaign mutation plan without changing the account
/ads monitor Review pacing, delivery, tracking, fatigue, policy, and performance
/ads optimize --draft Draft evidence-backed optimization changes
/ads experiment Design or read out a controlled test
/ads report Render a validated JSON run bundle
/ads research refresh Refresh platform, policy, API, benchmark, and ecosystem evidence
/ads validate Validate contracts, runs, capabilities, maturity, or release readiness
/ads status, /ads next Show current status and the highest-priority blocker

Platform shortcuts such as /ads google, /ads meta, /ads amazon, and /ads reddit route to the matching platform audit.

Demo

Claude Ads command discovery inside Claude Code

The GIF shows the original command-discovery experience. The v2 command table above and the platform table are current and authoritative.

Installation

Claude Code is the canonical runtime. Codex, Gemini, Cursor, Windsurf, Goose, and compatible Agent Skills hosts can consume the same skill files where their runtime supports them.

Prefer the host's native plugin flow or a tagged release archive with a verified SHA-256 checksum. Never pipe a remote installer directly to a shell.

For Claude Code, the native plugin flow is:

/plugin marketplace add AgriciDaniel/claude-ads
/plugin install claude-ads@ai-marketing-hub-claude-ads

Or install from a local clone of the public repository:

git clone https://github.com/AgriciDaniel/claude-ads.git
cd claude-ads
bash install.sh --source=local

Select another standalone host explicitly:

bash install.sh --target=codex --source=local
bash install.sh --target=gemini --source=local --no-deps

PowerShell uses the same managed ownership model:

git clone https://github.com/AgriciDaniel/claude-ads.git
Set-Location claude-ads
.\install.ps1 -Source local

Managed dependencies support CPython 3.11 and 3.12 on the declared Linux, macOS, and Windows wheel matrix. Unsupported interpreters fail before the destination changes. Use --no-deps or -NoDeps for a skill-only install.

Browser capture requires an operator-installed Playwright browser payload. PDF rendering requires the host's WeasyPrint and Pango system libraries. These are documented in the external runtime dependency manifest.

Uninstall only manifest-owned files:

bash uninstall.sh --target=claude

The PowerShell equivalent is uninstall.ps1.

Architecture

One conductor dispatches platform and cross-platform workers, then validates and renders a canonical JSON bundle

One conductor owns scope, policy, aggregation, and final artifacts. Workers analyze bounded slices and return schema-valid findings. Required-worker failure makes the run partial. It is never silently presented as a complete audit.

The canonical result is versioned JSON. Markdown, HTML, and PDF are renderings of the same validated run bundle.

Scoring and evidence

Health and evidence coverage remain separate; scoring requires an approved platform profile

Controls use pass, fail, unknown, or not_applicable.

See the scoring reference and production implementation in claude_ads_core/scoring.py.

Account safety

All adapters are read-only by default. Applying a change requires:

  1. A tested and enabled capability for the exact operation.
  2. Explicit account and object IDs.
  3. A human-readable before and after diff with blast radius.
  4. Owner approval within account-defined ceilings.
  5. An idempotency key, audit destination, rollback, and verification window.
  6. Verification that remote state still matches the mutation precondition.

Missing ceilings mean no write. Permanent deletion is not supported in v2. Credentials belong in environment variables, an OS keychain, or an approved secret manager. They never belong in the repository, profiles, reports, or logs.

Evidence and release controls

The public-safe control-plane/ records product boundaries, dated sources, claims, capabilities, safety rules, privacy rules, ecosystem decisions, and release requirements.

See the release requirements and publishing policy.

Development

Create a virtual environment and run the complete suite:

python3.12 -m venv .venv
.venv/bin/python -m pip install --no-deps -e .
.venv/bin/python -m pip install --require-hashes --only-binary=:all: -r requirements.lock
.venv/bin/python -m pip install --require-hashes --only-binary=:all: -r requirements-dev.lock
.venv/bin/python -m pip check
.venv/bin/python -m pytest -q

Useful focused checks:

python -m claude_ads_core --version
python -m claude_ads_core validate finding path/to/finding.json
bash -n install.sh uninstall.sh

Repository map

ads/                  main skill, interface metadata, and shared references
skills/               platform and lifecycle skills
agents/               platform, cross-platform, research, and verifier workers
claude_ads_core/      typed contracts, adapters, validation, and scoring
control-plane/        evidence, capability, safety, maturity, and release state
scripts/              browser, creative, reporting, and release helpers
evals/                routing and behavioral evaluation cases
tests/                deterministic, security, installer, and adapter tests

Privacy

Client data, raw private research, captured prompts, credentials, account exports, and agent transcripts must never enter Git history, reports, or release archives. Keep credentials in environment variables, an OS keychain, or an approved secret manager.

License

Original Claude Ads code and documentation are available under the MIT License. Third-party APIs, trademarks, documentation, and cited artifacts remain subject to their own terms. Review the source ledger and third-party notices before importing external work.

claude-ads (AgriciDaniel/claude-ads)

Searching Database…

What is this?A Claude Code skill for paid-media operations: it turns authorized ad-account exports or reads into source-grounded audits, campaign plans, creative briefs, experiments, monitoring, and versioned reports across 12 ad platforms.
Is this a standalone app or something that lives inside Claude Code?It is a skill, not an app: Claude Code is the canonical runtime, and Codex, Gemini, Cursor, Windsurf, and Goose can consume the same skill files where their runtime supports them. Standalone installs use /ads commands; Claude Code plugins use /claude-ads:ads.
Are there extra dependencies I have to install myself for everything to work?Yes, two: browser capture needs an operator-installed Playwright browser payload, and PDF rendering needs the host's WeasyPrint and Pango system libraries. Both are documented in the external runtime dependency manifest.
Can it actually make changes in my ad accounts, or is it analysis only?It is read-only by default. Live changes stay disabled until the exact platform operation passes capability, approval, idempotency, verification, audit, and rollback gates — missing ceilings mean no write, and permanent deletion is not supported in v2.
Which ad platforms does it cover?Twelve: Google, Meta, YouTube, LinkedIn, TikTok, Microsoft, Reddit, Snapchat, and X Ads on the social side, plus Apple, Amazon, and Pinterest Ads for commerce and retail media. Each platform gets its own focused skill, audit worker, and capability manifest.
Where do my credentials and client data end up?Credentials belong in environment variables, an OS keychain, or an approved secret manager — never in the repository, profiles, reports, or logs. Client data, account exports, and agent transcripts must never enter Git history, reports, or release archives.
Is it free to use for client work?Yes — the public release is MIT-licensed with no membership required, so agency and in-house commercial use is fine. Third-party APIs, trademarks, and cited artifacts remain under their own terms.
What is the difference between this repo and the AI Marketing Hub mirror?The public release here is MIT with no membership required. The AI-Marketing-Hub/claude-ads community mirror is where AI Marketing Hub Pro members get early access and direct collaboration.
What does 'source-grounded' actually mean in practice?Claims need dated sources: no source means no current platform claim, and no implementation, fixture, and test means no capability claim. Reports also flag missing data, stale sources, contradictions, and partial failures instead of papering over them.
Can it handle several client accounts at once?Yes. /ads setup creates the client, account, KPI, privacy, and guardrail profile, and scoring works at portfolio level — a failed platform is excluded from portfolio scoring and marks the whole run partial.
Why are launch and optimize draft-only commands?/ads launch --draft and /ads optimize --draft produce a human-readable before/after diff with blast radius, so an owner can approve within account-defined ceilings before anything is applied. Missing ceilings mean no write.
Size
5.9 MB
Stars
10K
Age
8mo
Commits · 90 Days