Claude Ads Skill: Make Video Ads From Claude With One Connector
A Claude ads skill knows how an ad should be made, and a connector is what gets it rendered: one real run from a prompt typed in Claude to a rendered 6-second video ad, with every tool call and the 6 credits it cost.
Mauricio Valdivia
·11 min

One prompt in Claude, one rendered ad, 6 credits
At 11:00:38 UTC on Tuesday, October 20, 2026, a Claude Code session handed one paragraph to Novoads: a woman in a bright kitchen, a sage-green water bottle, and a single spoken line about ice that was still frozen a day later. The clip was finished at 11:02:33. Six seconds, vertical, with sound. It cost 6 credits.
Search for a Claude ads skill and most of what ranks is about the thinking around an ad. One of the first results is an open-source repo, AgriciDaniel/claude-ads, which describes itself as a "Claude-first paid-media operations skill for Claude Code across 12 ad platforms", and around it sit lists of skills for strategy, briefs and copy. This guide covers the step after the brief: the connector Claude calls to render the ad, the exact prompt and tool calls from our run, what each step charged, and how to turn one clip into a test you can read.
Why an ads skill needs a connector
A skill and a connector do different jobs, and Anthropic draws the line between them in its own guide to Claude's building blocks. For ad production, our view is that an ad needs both.
Anthropic's split: procedure and connectivity
Anthropic's explainer, Skills explained, defines Skills as "folders containing instructions, scripts, and resources that Claude discovers and loads dynamically when relevant to a task." MCP, the Model Context Protocol, is the other half. The same article puts the division in one line: "MCP connects Claude to data; Skills teach Claude what to do with that data." Its advice for using them is just as short: "Use both together: MCP for connectivity, Skills for procedural knowledge."
How a skill folder is laid out, and how Claude decides when to load one, is covered step by step in our walkthrough of Claude Code skills for Meta ad creative. This guide does not repeat it.
What the split means when the job is an ad
The next part is our reading, not Anthropic's. Its sentence is about data. For ads, the connector side does more than fetch: it is where the render happens, where the credits are spent and where the finished file lands. So the work divides like this:
- The skill side, procedure: the angle, the hook, the spoken line written out in quotes, the clean-plate clause that keeps text and music out of the frame, the rule that a visible label needs protecting, and which model to run at which size.
- The connector side, connectivity: the tools Claude can call, starting with
estimate_cost,generate_video,generate_image,get_generationandlist_generations, plus your account, your credit balance and your finished files.
A skill can also carry scripts, and a script can call a rendering API directly. Either way, the skill holds the knowledge and the pixels come from a service outside Claude.
Two doors into Novoads, and which one we used
Novoads can be reached from Claude in two ways, and they are kept separate on purpose:
- The connector. An MCP server at
https://novoads.ai/api/mcp. You add it in claude.ai or Claude Code and sign in with OAuth, so there is no API key to copy or leak. - The skill pack. An open-source folder of skills at github.com/novoads/agent-skills for Claude Code and Cursor. It drives the Novoads REST API with an API key you create in your account.
Everything in the run below went through the first door, the MCP connector. The skill pack was not involved. If you are weighing other agent routes, our posts on the Arcads Claude Code repo and Arcads' own MCP and on Higgsfield's MCP walk through how those two connect.

One real run from Claude, call by call
Every prompt, call and number in this section is copied from the session's own record of the run on October 20, 2026.
The product and the brief
The product was a plain matte sage-green insulated steel bottle, described in words in the prompt rather than uploaded as a photo. That kept the test about the prompt and the connector. The angle is the classic one for an insulated bottle: the ice is still there the next day. The format is a selfie-style UGC clip, 9:16, six seconds, one line of dialogue, no captions burned in.
For a branded product you would upload the product photo first with upload_asset, one of the connector's tools, and keep its label sharp with a protective clause in the prompt. We left the label out here, so nothing printed could come back garbled.
The prompt, word for word
This is the paragraph the session passed to generate_video, unedited:
Vertical 9:16 UGC selfie video, filmed on a phone front camera held at arm's length, TikTok style. No on-screen text, no captions, no background music. A woman in her late twenties with shoulder-length dark hair, a grey crewneck sweatshirt and no makeup stands in a bright apartment kitchen in the morning. She holds a plain matte sage-green insulated steel water bottle with no logo and no printed text up beside her face, taps the lid once and says, smiling: "I filled this with ice yesterday morning. Still ice. I'm not kidding." Natural handheld micro-movements, natural room sound, photorealistic, clean ending.
Each sentence carries one piece of the procedure a skill would hold:
- The first fixes the format: the aspect ratio, a front camera at arm's length, the selfie look.
- The second is the clean plate. Text, captions and music get added afterwards, where you control the font and the track.
- The actor line names age, hair, clothes and setting, so the model has less to invent.
- The product line says what the bottle is and, after the connector's warning, what it is not: no logo, no printed text.
- The dialogue sits in quotation marks, in full, so the model has exact words to say.
- The last line asks for handheld movement and a clean ending, so the clip cuts cleanly into a longer edit.
Each tool call, and what it returned
The connector calls, in the order the session made them:
list_generationswith{limit: 50}. Read only. It confirmed which Novoads workspace the connector was signed in to before anything was spent.estimate_costwith{kind: "video", model: "seedance-2.0-mini", durationSeconds: 6, resolution: "720p", language: "en"}and the first draft of the prompt. It returned{"credits": 6, "balance": 582, "sufficient": true}and one warning,label_without_hold, on the word "bottle". The rule behind it says a visible label, package or screen needs a protective clause, or its printed text comes back garbled. We answered it by making the bottle plain.- The same quote on three other cells, to find the cheapest usable one: Seedance 2.0 Mini at 480p came back at 3 credits, Omni Flash at 360p at 6, Kling v3 Pro at 1080p at 12. We kept Seedance 2.0 Mini at 720p. The connector's own guidance is to default to 720p and to treat each model's lowest tier as a draft tier, cheaper and still charged, for iteration rather than for the cut that ships.
generate_videowith{model: "seedance-2.0-mini", durationSeconds: 6, resolution: "720p", aspectRatio: "9:16", language: "en", audioEnabled: true}, an idempotency key and the final prompt. It returned{"jobId": "3b153494-5b80-4fe0-a309-f1768500e034", "status": "queued", "creditsCharged": 6}at once instead of holding the connection open. The key matters on a flaky network: the same key within 24 hours returns the first submission instead of rendering and charging again.get_generationwith thatjobId. The first poll saidqueued. The second saidsucceeded, with the MP4 andcredits: 6.
Four of those five steps spent nothing. One charged, and the quote came before it.
What came back from the connector
The job was created at 11:00:38 UTC and completed at 11:02:33, so the whole render took under two minutes from the moment generate_video was called.
The clip, frame by frame
Seedance 2.0 Mini · prompt: a woman in her kitchen holds a sage-green water bottle to her phone camera and says the ice is still frozen a day later · 6 credits · rendered 2026-10-20
The file is 720 by 1280 pixels and 6.08 seconds long, with audio. The line came back word for word: a local transcript of the clip reads "I filled this with ice yesterday morning. Still ice. I'm not kidding."
The one miss
The model put a small emblem near the base of the bottle, even though the prompt asked for no logo. You can see it in all four frames. For a test clip it does not matter. For a branded product it is one more reason to upload the real product photo as a reference and check every frame before an ad goes live.
What Novoads' records show
Novoads' own record of the job matches what the connector returned:
- Generation
3b153494-5b80-4fe0-a309-f1768500e034: Seedance 2.0 Mini, 6 seconds, 720p, 9:16, succeeded. - One debit of 6 credits, described as "Seedance 2.0 Mini video generation (6s, 9:16, 720p) via MCP".
- The balance went from 582 to 576.
Turning one clip into a test you can read
One clip is a sample, not a test. The connector makes the next step cheap to plan, because every render can be priced before it runs.
The volume formula: hooks times formats
The variation formula (our working rule, not a platform rule): variations = hooks × formats. Start with three hooks and two formats, six ads, and keep the actor, the product and the body of the script fixed, so the hook is the thing you are reading.
A hook here means the first spoken line and the first action. For the bottle, two openings worth testing next are a lid twist with "Day two. Still ice." and a car-seat shot with "This sat in my car all afternoon." Neither has been rendered. Our guide to testing ten openings on one video ad covers how to write them, and the five-layer system for iterating a winner covers what to change once one wins.
Price the batch before you render it. estimate_cost spends nothing and reads your balance first. At the rate it quoted on 2026-10-20, three 6-second Seedance 2.0 Mini clips at 720p are 18 credits. The second format, a 4:5 still of each hook from generate_image, is 1 credit per image on the default image model, GPT Image 2.5 Sunburst. Six variations come to 21 credits.
What Meta says about when a test can be read
Volume is only useful if the numbers can be read, and Meta's own pages set the clock (all read 2026-10-20):
- Learning. An ad set exits the learning phase "after about 50 results in the week after the ad set's last significant edit", and while it is learning, ad sets "are less stable and usually have a higher CPA."
- New ads reset it. Meta's list of significant edits includes "Adding a new ad to your ad set". Our reading: launch the six together, in their own ad set or test, instead of dripping new ads into one that is already running.
- Split tests. Meta says you start seeing results "once there are at least 100 events observed for the cost per result you're testing", and that you should wait until the test has ended to judge the final result.
- Fatigue. Ads Manager shows a Creative fatigue status "when cost per result is more than or equal to twice as much as ads you ran in the past."
How many ads one ad set can usefully carry is its own question, and our breakdown of Meta's ad limits answers it.
Kill and scale thresholds
Our working rule for reading the six (ours, not Meta's):
- Wait for Meta's learning window, or for the 100-event mark in a split test, before calling a winner. If your budget cannot buy that many purchases in a week, read an earlier event such as add-to-cart, and write down that you did.
- Kill a variation once it has spent twice your target cost per purchase without a purchase.
- Keep a variation that holds at or under your target cost per purchase through the read, then write three new bodies under its hook.
- Scale the keeper's budget in steps. Meta's own example is that a change from $100 to $101 "isn't likely" to restart learning, while a change from $100 to $1000 may.
- Refresh a winner when Ads Manager marks it Creative fatigue: build the next six from its hook with a new angle, rather than starting from zero.
| Moment | Threshold | Whose rule |
|---|---|---|
| Learning ends | About 50 results in a week | Meta |
| Split test readable | 100 events per cost per result | Meta |
| Fatigue flagged | Cost per result 2x past ads | Meta |
| Kill | 2x target CPA spent, no sale | Ours |
| Scale | Budget raised in steps | Ours, on Meta's example |
The first seconds of each variation carry most of the read, so it helps to know what hook rate measures and what a low one means, and how creative fatigue shows up on Meta and TikTok.
How Novoads connects to Claude in three steps
The connector spends credits from your Novoads plan, on the same schedule the app charges. Novoads starts at $15/month (Starter, 200 credits per month), and every plan is on the pricing page. Setup takes one URL or one command.
In claude.ai
Screenshot: novoads.ai/mcp, the three steps that add the Novoads connector to Claude, taken 2026-10-20
- Copy the connector URL:
https://novoads.ai/api/mcp. - Open Claude's connectors: Customize, then Connectors, then Add custom connector, and paste the URL in.
- Sign in with OAuth and approve the two permissions it asks for. No API key is issued. Then ask Claude for an ad.
In Claude Code
One command in your terminal:
claude mcp add --transport http novoads https://novoads.ai/api/mcp
Then run /mcp inside Claude Code, finish the sign-in and restart it, because a session fixes its tool list at startup. Cursor and VS Code take the same URL, and the Novoads connector page has the snippet for each.
The skill pack, if you want the REST door
Open an empty folder in Claude Code or Cursor and paste https://github.com/novoads/agent-skills help me set this up. The agent clones the pack, runs setup and stops at the one step only you can do: pasting the Novoads API key you create in Settings under Developer. From there it writes the brief, calls Novoads on your account and brings the finished render back into the session.
A skill can describe an ad; a render proves it
A good ads skill makes Claude better at the thinking: the audit, the angle, the brief, the copy. None of that is an ad until something renders it, and the useful part of rendering through a connector is that it puts a number on every step before you spend it. Our run was one paragraph, a quote that cost nothing, one paid call and one file, with 6 credits on the ledger.
The skill decides what is worth rendering. The connector makes it, says what it cost, and leaves the read to your ad account. Price it, render it, read it, then let the numbers choose the next six.
If you would rather build UGC ads inside the app, with actors and templates, start from AI UGC ads.
Frequently Asked Questions
Do I need an API key to make ads from Claude with Novoads?
Not for the connector. In claude.ai or Claude Code you add https://novoads.ai/api/mcp as a connector and sign in with OAuth, approving two permissions, and no key is issued. The open-source skill pack is the other door: it drives the Novoads REST API from Claude Code or Cursor, so its setup asks for an API key you create in Settings under Developer.
Key Takeaways
- Anthropic's advice is to use MCP for connectivity and Skills for procedural knowledge together. For ads, our reading is that the skill holds the procedure and the connector is where the render happens and the credits are spent.
- Our run on 2026-10-20 went through the Novoads MCP connector from a Claude Code session: estimate_cost, generate_video and get_generation turned one prompt into a 6-second vertical Seedance 2.0 Mini clip in under two minutes, for 6 credits.
- Quote before you render. estimate_cost spends nothing, reads your balance and flags prompt problems, like the label warning that made us strip every logo and printed word from the bottle.
- Plan variations as hooks times formats and price the batch first: at the 2026-10-20 rates, three hooks as a 6-second clip plus a 4:5 still come to 21 credits.
- Read the test on Meta's terms (about 50 results in the week after the last significant edit to exit learning), then apply a plain rule of your own: cut what spends twice your target cost per purchase without a sale, and raise budgets in steps.
Sources
- •Anthropic: Skills explained: How Skills compares to prompts, Projects, MCP, and subagents
- •Meta Business Help Center: About the Learning Phase
- •Meta Business Help Center: Significant Edits and Learning Phase
- •Meta for Business: A/B Testing Ads on Facebook & Instagram
- •Meta Business Help Center: Creative Fatigue Recommendations in Meta Ads Manager




