---
title: Claude Ads (open source)
description: "An open-source paid-media skill pack for Claude Code: 12 ad platforms, a full audit-to-report lifecycle, deterministic scoring, and versioned JSON"
canonical: "https://10xgtm.ai/oss/claude-ads"
type: open-source-review
license: MIT
repo: "https://github.com/AgriciDaniel/claude-ads"
language: Python
---

# Claude Ads

An open-source paid-media skill pack for Claude Code: 12 ad platforms, a full audit-to-report lifecycle, deterministic scoring, and versioned JSON reports, read-only by default with no per-account fee.

The **broadest paid-media skill for Claude Code**: 12 ad platforms and a full audit-to-report lifecycle, MIT and free. Two things set it apart. It is **read-only and draft-first by default** (every live-write capability ships disabled in v2), and, unlike the same author's claude-seo, it **explicitly forbids injecting a self-promo footer** into your deliverables. The catches are the ordinary open-source ones: one maintainer, code that runs locally near your ad accounts, and a fully current build that lives partly behind a paid Skool community.

## Project facts

- **License:** MIT
- **Repo:** https://github.com/AgriciDaniel/claude-ads
- **Stars:** 8.5k
- **Language:** Python

## What it does

- Audits paid-media accounts across 12 platforms (Google, Meta, YouTube, LinkedIn, TikTok, Microsoft, Apple, Amazon, Reddit, Pinterest, Snapchat, X) from authorized exports or account reads, returning dated evidence and explicit confidence
- Plans campaigns, channels, budgets, measurement, and experiments, and drafts copy, image, video, and product-photo briefs through dedicated create, creative, and photoshoot skills
- Runs a conductor-and-worker architecture where one conductor owns scope and aggregation, bounded workers return schema-valid findings, and a required-worker failure marks the run partial instead of presenting a fake complete audit
- Produces a versioned JSON run bundle as the canonical result, then renders Markdown, HTML, and optional PDF from the same validated data via WeasyPrint
- Monitors pacing, delivery, tracking, creative fatigue, policy, and performance, and reports missing data, stale sources, contradictions, and partial failures
- Drafts account changes with launch and optimize in draft mode, keeping live writes disabled until a specific capability, explicit IDs, a before-and-after diff, owner approval, an idempotency key, a verification window, and a rollback record are all in place
- Installs as a Claude Code plugin or through a local install.sh that builds a managed Python 3.11 or 3.12 environment, with optional Playwright browser capture and WeasyPrint PDF rendering

## What it can't do

- Apply live account changes out of the box; the v2 public release ships every write and mutation capability disabled, so it audits and drafts changes for review, and never optimizes a live account on its own
- Score a platform it has not been given an approved profile for, since a disabled or unapproved platform produces no health score and evidence coverage under 60% reads as insufficient
- Pull data without your own authorized exports or platform API credentials; there is no proprietary benchmark or competitive-intelligence index bundled in
- Replace an experienced media buyer's judgment; practitioners note an LLM tends to confirm the mainstream take and needs a human watching every recommendation
- Run itself hands-off, since audits execute Python and shell in your environment, so setup, upgrades, and reading the source stay your job
- Permanently delete campaign objects, which v2 does not support by design

---
Full review: https://10xgtm.ai/oss/claude-ads
