claude-ads is a free, open source marketing & customer engagement project written in Python and released under MIT. It has 9,355 GitHub stars, 1,381 forks and 18 open issues, and was last pushed 6 days ago. On this registry it ranks #16 of 50 tracked projects in Marketing & Customer Engagement, with 5 head-to-head comparisons available. It gained 50 stars over the last 3 tracked days.

What is claude-ads?

Claude Ads is an MIT-licensed, Claude-first paid-media operations skill for Claude Code that gives agencies, consultants, and in-house performance teams source-grounded audits, planning, monitoring, and reporting across 12 advertising platforms from one read-only-by-default command surface.

What it is

Claude Ads is an open-source Python skill that runs paid-media operations inside Claude Code and compatible Agent Skills hosts. It covers 12 ad platforms: Google Ads, Meta Ads, YouTube Ads, LinkedIn Ads, TikTok Ads, Microsoft Advertising, Reddit Ads, Snapchat Ads, and X Ads in the search, video, and social segment, plus Apple Ads, Amazon Ads, and Pinterest Ads in the commerce and retail media segment. Every platform ships a focused skill, an audit worker, a control reference, a capability declaration, and a testable routing surface, all loading the same ads/SKILL.md contract.

The problem it solves is scatter. Paid-media work lives across browser dashboards and exports, and ad accounts get changed without an evidence trail. 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, and live changes stay disabled until the exact platform and operation pass approval, idempotency, verification, audit, and rollback gates. control-plane/manifests/capability-manifest.json is the authoritative record for what may be read or written.

Key capabilities

  • Audits paid-media accounts with dated evidence and explicit confidence, across all 12 platforms, through /ads audit [all|platform|scope].
  • Plans campaigns, channels, budgets, measurement, and experiments, and creates copy, image, video, and product-photo briefs and assets.
  • Drafts account mutations without applying them, using /ads launch --draft and /ads optimize --draft.
  • Produces versioned JSON run bundles, then renders Markdown, HTML, and optional PDF via /ads report.
  • Monitors pacing, delivery, tracking, fatigue, policy, and performance.
  • Reports missing data, stale sources, contradictions, and partial failures instead of papering over them.
  • Exposes the wider command surface: /ads setup, /ads plan, /ads create, /ads monitor, /ads experiment, /ads research refresh, /ads validate, /ads status, and /ads next, with shortcuts such as /ads google, /ads meta, /ads amazon, and /ads reddit.

Who uses it and how

  • Agencies and consultants running paid media for multiple clients, routing each account through /ads setup client, account, KPI, privacy, and guardrail profiles.
  • In-house performance teams working from authorized exports or account reads that need dated evidence and explicit confidence rather than dashboard impressions.
  • Compliance-sensitive teams that require read-only default behavior and gated writes before any account change.
  • Members of AI Marketing Hub Pro, who get early access and direct collaboration on the community mirror at AI-Marketing-Hub/claude-ads; the public release at AgriciDaniel/claude-ads needs no membership.
  • Multi-host teams: Claude Code is the canonical runtime, and Codex, Gemini, Cursor, Windsurf, and Goose consume the same skill files where their runtime supports them.

Getting started

Install through the native Claude Code plugin flow: /plugin marketplace add agricidaniel/claude-ads, then /plugin install claude-ads@ai-marketing-hub-claude-ads. Standalone installs invoke /ads while plugin installs invoke the namespaced /claude-ads:ads; a tagged release archive with a verified SHA-256 checksum is preferred, and a remote installer should never be piped directly to a shell.

How it compares

The registry facts name no comparable paid-media tools, and no list of paid products this project replaces is provided. Claude Ads stands alone in this registry.

When to use it — and when not to

Choose it when paid-media work must stay inside Claude Code or another Agent Skills host, when every audit needs dated evidence and a versioned JSON run bundle, and when live writes should stay off until the approval, idempotency, verification, audit, and rollback gates pass. Do not choose it if the team wants a hosted, browser-only ad-ops dashboard with no agent runtime, or needs writes enabled from the first session. Budget for two documented rough edges: installs added before v2.0.0 sit under the stale local marketplace alias agricidaniel-claude-ads and must be removed and re-added, and the demo GIF still shows the original command-discovery experience rather than the current v2 command table.

project readme (upstream, from github) — read inline

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.

What it does

  • Audits paid-media accounts with dated evidence and explicit confidence.
  • Plans campaigns, channels, budgets, measurement, and experiments.
  • Creates copy, image, video, and product-photo briefs and assets.
  • Monitors pacing, delivery, tracking, fatigue, policy, and performance.
  • Produces versioned JSON, then renders Markdown, HTML, and optional PDF.
  • Drafts safe account changes without applying them by default.
  • Reports missing data, stale sources, contradictions, and partial failures.

Platforms

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

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

If you added this marketplace before v2.0.0, Claude Code still holds it under the stale local alias agricidaniel-claude-ads. Remove that alias, then re-add and install:

/plugin marketplace remove agricidaniel-claude-ads
/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 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

Controls use pass, fail, unknown, or not_applicable.

  • Health, evidence coverage, regulatory exposure, and opportunities stay separate.
  • Unknown controls reduce evidence coverage without changing known health.
  • Coverage of 80% or more is graded, 60 to 79% is provisional, and below 60% is insufficient evidence.
  • Optional, beta, premium, unavailable, and ineligible features stay unscored.
  • A disabled or unapproved platform profile produces no health score.
  • A failed platform is excluded from portfolio scoring and makes the run partial.

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.

  • No source means no current platform claim.
  • No implementation, fixture, and test means no capability claim.
  • No approval and rollback means no account mutation.
  • No independent verification means no release.

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 install --require-hashes --only-binary=:all: -r .git

readme truncated — read the full docs on github

Frequently asked questions

Is claude-ads free to use?

claude-ads is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does claude-ads do?

Claude-first paid-media operations skill for Claude Code across 12 ad platforms (Google, Meta, YouTube, LinkedIn, TikTok, Microsoft, Apple, Amazon, Reddit, Pint

What is claude-ads written in?

claude-ads is primarily written in Python. Its source is publicly available at https://github.com/AgriciDaniel/claude-ads, and it has 9,355 GitHub stars.