Claude Code logo YouTube Ads logo

Run YouTube Ads from Claude Code

Manage YouTube Ads campaigns inside Claude Code (CLI) — 11 tools, OAuth setup in about 60 seconds, no dashboard switching.

  • 11 YouTube Ads tools, all in Claude Code

  • Paused-by-default. Cannot delete campaigns.

  • OAuth setup in ~2 minutes

See it in action

In Claude Code

Create a YouTube Ads campaign: - Product: Online cooking course, $79 one-time purchase - YouTube video: https://youtu.be/YOUR_VIDEO_ID - Landing page: https://example.com/cooking-course - Budget: $50/day - Target: Foodies and home cooks in the US, ages 25-54 Validate the video first, then create the campaign with extensions — keep it paused.

Launch a YouTube video campaign — End-to-end video campaign with validation, asset discovery, and extensions.

Overview

Adspirer is the MCP server that connects Claude Code (CLI) to your YouTube Ads ad accounts, turning campaign management into a chat conversation. Anthropic Claude Code in your terminal — perfect for engineering teams that script ad ops. On the platform side, 11 tools cover in-Stream, In-Feed & Shorts video campaigns with automatic video validation. Adspirer reads and writes — pull performance reports, audit validate your video before you spend, launch new campaigns, pause underperformers, and reallocate budget — all from chat. New campaigns are always created paused so you can review before they go live, Adspirer cannot delete existing campaigns by design, and the free tier (15 tool calls / month, no credit card) is enough to run a full audit before you pay. Setup takes about 60 seconds via one CLI command.

Safety guarantees

  • New campaigns always created paused for review

  • Adspirer cannot delete existing campaigns

  • Budget changes need explicit confirmation

  • OAuth 2.1 + PKCE — passwords never seen

How it works

How it works

Claude Code

You ask in chat

prompt

Adspirer

11 tools, paused-by-default

tool calls

YouTube Ads

Live data, paused for review

Step 01

Connect

Paste the MCP URL into Claude Code, OAuth into YouTube Ads.

Step 02

Manage

Ask in chat. Adspirer routes through 11 YouTube Ads tools.

Step 03

Scale

Switch accounts in chat. Same audits across every client.

What you can do

11 tools across YouTube Ads. The ones you'll use most:

  • Validate your video before you spend — `validate_video` verifies your YouTube video is **public or unlisted**, at least **10 seconds** long, embeddable, and hosted on YouTube — catching problems before campaign creation instead of after you've paid for impressions.

  • Launch across In-Stream, In-Feed & Shorts — `create_youtube_campaign` builds one video campaign spanning all three YouTube placements and creates it **paused**, so you review targeting, budget, and creative before anything goes live.

  • Route to the right Google campaign type — When you don't name a format, `select_google_campaign_type` helps you choose between Search, Performance Max, or YouTube — so a video brief doesn't accidentally ship as a Search campaign.

  • Reuse or upload your logo & assets — `discover_existing_assets` finds logos and images already in your Google Ads account for reuse; `validate_and_prepare_assets` uploads and validates a new **square (1:1) logo** when none exists.

  • Add extensions to boost visibility — `add_sitelinks`, `add_callout_extensions`, and `add_structured_snippets` attach extensions after the campaign is built — Adspirer notes these can lift ad visibility by **15-25%**.

  • Track views, VTR & cost per view — `get_campaign_performance` returns views, engagement, conversions, and cost for your YouTube campaigns, and `list_campaigns` surfaces every campaign — perfect for the "which campaigns have the best view-through rate?" question.

  • Confirm every extension is attached — `list_campaign_extensions` verifies your sitelinks, callouts, and structured snippets actually attached — closing the loop on the 6-step YouTube creation workflow.

Campaign types

Every YouTube Ads format Adspirer supports — request one in chat.

In-Stream

Plays before, during, or after other YouTube videos and is **skippable after 5 seconds** — the core format for demos and brand storytelling.

In-Feed

Thumbnail-plus-text ads in YouTube search results and the related-videos sidebar that play when a viewer clicks — strong for capturing active browsers.

Shorts

Full-screen vertical video in the YouTube Shorts feed. **9:16** creative performs best, but any format will serve here.

Demand Gen (YouTube-only)

Every campaign runs on Google's Demand Gen format with YouTube-only channel controls — Gmail, Discover, and Display placements are **disabled**, so ads show only on YouTube.

Video validation

Before any campaign, `validate_video` confirms your creative is public/unlisted, 10s+, and embeddable. Attach up to **5 videos** per campaign (1 primary + 4 additional).

Pick an intent

More prompts to try

Claude Code shines on multi-step agent tasks — drop a brief, walk away, get a report.

Brand awareness with multiple videos — Multi-video awareness campaign (up to 5 videos) aimed at a broad reach audience.

Brand awareness with multiple videos
Set up a YouTube video campaign for brand awareness: - Brand: Sustainable clothing company - Primary video: https://youtu.be/VIDEO_ID_1 - Additional videos: https://youtu.be/VIDEO_ID_2, https://youtu.be/VIDEO_ID_3 - Budget: $100/day - Target: Eco-conscious consumers, ages 18-44, United States and Canada - Bidding: Maximize clicks Write compelling headlines and descriptions.

Check YouTube performance — View-through-focused performance read across your YouTube campaigns.

Check YouTube performance
Pull my YouTube campaign performance for the last 30 days. Show video views, engagement rate, conversions, cost per conversion, and CTR. Which campaigns have the best view-through rate?

Pick your audience

Who this is for

In-house growth marketer running YouTube Ads solo

Each Monday, ask Claude Code to pull last week's YouTube Ads performance, surface campaigns running below your ROAS threshold, and recommend creative refreshes for fatigued ads.

Replaces a 60–90 minute manual review with a 5-minute chat, and surfaces problems before they tank ad-set performance.

Compare & decide

Compare

Adspirer vs alternatives

For running YouTube Ads from Claude Code.

Adspirer DIY MCP server Legacy SaaS dashboard
Setup time ~60 seconds via one CLI command 2–4 hours building MCP server 30–60 min onboarding + sales call
Cost — entry tier Free (15 calls / mo) Hosting + maintenance $200–500 / mo minimum
Works inside Claude Code Yes — one CLI command Yes (if you build it correctly) No — external dashboard only
Multi-account Yes — switch in chat Manual per-account auth Yes — but each account billed
Read + Write Full read + write (create / pause / update) Whatever you build Mostly read-only or seat-gated writes
Safety: cannot delete Hard-coded — no delete tool Up to you Varies
Pricing transparency Public — $0 / $49 / $99 / $199 Self-hosted Often quote-only

Cost

Pricing

If Adspirer wins for you, here's what it costs. Start free; upgrade if you outgrow it.

Free Forever

$0

15 tool calls / mo

All platforms. ChatGPT & Claude access. No credit card.

Start free →
Best for Claude Code

Plus

$49 / mo

150 tool calls / mo

Performance analysis + standard campaigns.

Compare Plus →

Pro

$99 / mo

600 tool calls / mo

AI optimization, bulk ops, deeper diagnostics.

Compare Pro →

Max

$199 / mo

3,000 tool calls / mo

Priority support (24h SLA), custom integrations.

Compare Max →

Set up

Configure

Required: Claude API access (or Claude.ai Pro / Max). Most users finish in about two minutes.

Show setup steps for Claude Code

Add Adspirer to Claude Code

Run in your terminal:

claude mcp add --transport http adspirer https://mcp.adspirer.com/mcp

Authenticate

Claude Code launches your browser for OAuth. Sign in to Adspirer and link your ad accounts.

Verify

Run claude and ask: Check my connected ad platforms. Tools should now appear in the available-tools list.

Common questions

FAQ

Setup

Do I need a developer to set this up?

Some terminal comfort helps but you don't need to be a developer — adding the MCP server is one command (claude mcp add --transport http adspirer https://mcp.adspirer.com/mcp or the equivalent for your CLI). OAuth happens in your browser. Total time: about 60 seconds.

Capabilities

Can I switch from Claude Code to a different AI client later?

Yes. Your Adspirer account is independent of the AI client — sign up once, then connect the same MCP URL from ChatGPT, Claude, Cursor, Codex, Windsurf, or any supported client. Tool calls are pooled across clients on the same plan; switching costs you nothing.

What's the minimum budget, and which bidding strategy should I use?

YouTube campaigns require a $15/day minimum, though $50+/day is recommended for meaningful data. Maximize Clicks is the default and needs no conversion tracking; Maximize Conversions and Target CPA optimize for signups or purchases but require conversion tracking to be set up first. Expect roughly $0.01-0.30 CPV and $4-10 CPM.

What ad copy and assets does a YouTube campaign need?

You'll need 1-5 headlines (40 characters max), 1-5 descriptions (90 characters max), a business name (25 characters max), and a square (1:1) logo. Long headlines (90 characters) and a call-to-action (defaults to Learn More) are optional. Run discover_existing_assets to reuse a logo already in your account, or validate_and_prepare_assets to upload a new one.

Ad formats

What does Adspirer check before my YouTube video can run?

validate_video verifies the video is hosted on YouTube (not Vimeo or Drive), set to Public or Unlisted (never Private), at least 10 seconds long, and embeddable. You can attach up to 5 videos per campaign (1 primary + 4 additional). It accepts full youtube.com/watch?v= URLs, youtu.be/ short links, youtube.com/shorts/ links, or a bare 11-character video ID.

What's the difference between In-Feed, In-Stream, and Shorts placements?

In-Feed ads appear as a thumbnail + text in YouTube search results and the related-videos sidebar and play on click. In-Stream ads play before, during, or after other videos and are skippable after 5 seconds. Shorts ads are full-screen vertical videos in the Shorts feed. Adspirer campaigns serve across all three — 9:16 vertical creative performs best in Shorts.

Why does my YouTube campaign run as a "Demand Gen" campaign?

YouTube campaigns are built on Google Ads' Demand Gen format with YouTube-only channel controls — Gmail, Discover, and Display placements are disabled, so your ads show only on YouTube. That differs from Performance Max, where Google's AI spreads spend across every channel. Use YouTube Ads when you want YouTube-specific control.

Does Adspirer create or generate the video for me?

No. Adspirer manages campaigns, not video production — you provide your own YouTube-hosted video (public or unlisted). Make it with any tool you like (CapCut, Canva, Premiere, Descript, or your phone), upload it to YouTube, then hand Adspirer the URL for validate_video and create_youtube_campaign.

Compare

What's the read vs. write boundary on YouTube Ads?

Adspirer is full read and write. It can pull reports, audit performance, and analyze data (read), and it can launch new campaigns, pause underperformers, update budgets, and adjust targeting (write). Two safety guardrails are hard-coded: new campaigns are always created paused so you review before they go live, and Adspirer cannot delete existing campaigns. You keep full control.

Related integrations

Same Claude Code, different platform — or same YouTube Ads, different AI client.

Claude Code × other platforms

YouTube Ads × other AI clients

Go deeper

Ready to connect Claude Code to YouTube Ads?

Start free — 15 tool calls per month, no credit card. Setup takes about 2 minutes.

Try Adspirer free

Free skills for YouTube Ads

All skills →