Key Takeaways
- Good static ads are quietly outperforming video on a lot of Meta accounts right now — they're cheaper to make and Meta is serving them well.
- Claude Code can absolutely generate static ads, and generate them in bulk once it knows what a winning ad looks like.
- The winning formula is four things: stop the scroll, call out the pain point, speak the viewer's language, and learn from competitors.
- The catch is everything around the model: installs, API keys, a swipe file of winning ads, a distilled principles doc, brand assets, and a separate text-rendering layer because image models still butcher headlines and logos.
- The setup is a weekend before your first clean ad. — paste a URL, pick static ad, done.
Below is the complete Claude Code workflow, written out in full — the principles, the prompts, and the parts nobody warns you about. Read it and you can build the whole thing yourself. Or you can skip straight to the finished version and start making ads today.
What Makes a Static Ad Actually Win Right Now?
On the majority of ad accounts we touch, good static ads are currently beating video. Statics are faster to produce, cheaper to test, and Meta is treating them well in the auction — so a strong image can out-earn a polished video that took ten times as long to make. That's the opening: the barrier to a winning static is creative quality, not production budget.
After studying over 500 winning statics, the ones that print money almost always do the same four things. Everything later in this workflow exists to make Claude do these four on demand.
1. Stop the scroll
The first job of the ad is to survive the thumb. A pattern interrupt — an unexpected visual, a bold contrast, a face mid-expression, a number that doesn't belong — buys the half-second you need. If it looks like an ad, it dies. If it looks like a screenshot, a meme, or a text a friend sent, it gets read.
2. Call out the pain point
Winning statics name the problem before they sell the product. "Still paying an agency $3k a month?" beats "Introducing our platform." The viewer should see themselves in the first line, not your feature list.
3. Speak the language of the viewer
The copy has to sound like the customer's own words — the phrases they'd type into a review or a group chat, not your internal product vocabulary. This is where most AI-generated ads fall apart: they sound like a brand, not a person.
4. Learn from competitors
Every winning angle in your category is already running in the Meta Ad Library. The fastest path to a good ad is to study what's already converting, then out-execute it — not to invent a concept from a blank page.
These four principles are the whole game. The rest of this guide is about getting Claude Code to apply them reliably — and about how much scaffolding that actually takes.
What Do You Need Before Claude Code Can Make One Ad?
This is the part the excited threads skip. Before Claude Code renders a single frame, you need a working stack. None of it is hard on its own; together it's an afternoon-to-a-weekend of setup before your first clean ad exists.
- A paid Claude plan and Claude Code installed. You'll need Node and a terminal you're comfortable in, plus the CLI authenticated.
- An image model with API access and billing. Claude writes the prompts and orchestrates, but a diffusion or image model does the pixels. That means an account and a credit card on a provider like , plus keys wired into your environment.
- A swipe file of winning ads. The principles above only help if Claude has examples. You need to collect and organize dozens — ideally hundreds — of winning statics before Claude has any taste.
- Brand assets, prepped. Your logo as a transparent PNG and an SVG, exact hex codes, the actual brand fonts, and product shots cut out on transparent backgrounds. Image models won't invent your logo correctly, so you supply it.
- A text-rendering layer. This is the big one people don't expect — covered in full below. Image models still can't reliably render a crisp headline, a price, or a legal line, so you end up building a separate step just to put readable text on the ad.
If that list already sounds like a project, that's the honest picture. HeyOz collapses this entire setup into a single step : you paste your product URL, it pulls your logo, colors, fonts, and product imagery automatically, and you're generating on winning-ad templates in minutes — no keys, no billing, no swipe file to build. It's free to start, so the fair comparison is "one weekend of setup" versus "three minutes."
How Do You Teach Claude the Winning-Ad Principles?
Claude doesn't know your category's winning patterns out of the box. You teach it by building a swipe file and distilling it into a principles document Claude reads on every run — a CLAUDE.md or a skill file.
- Collect winning statics. Pull ads from the — competitors, adjacent brands, and any static that's been running a long time (longevity is the public signal that an ad is profitable).
- Tag each one. For every ad, note the hook type, the pain point, the layout, the color logic, and why it stops the scroll. This tagging is the actual work — and it's manual.
- Distill into rules. Turn the patterns into explicit instructions Claude can follow. Vague taste doesn't transfer; specific rules do.
A trimmed version of that principles file looks like this:
Maintaining this file is ongoing — winning patterns shift, so the swipe file and rules need refreshing every few weeks to stay current. On HeyOz, this layer already exists and stays updated for you : its static-ad engine is trained on winning ad patterns, so you inherit the taste without building or maintaining the library. If you'd rather see the assisted version of this exact idea, here's 60 static ads from one product URL with Claude and HeyOz .
How Do You Actually Generate the Ad Image?
With the principles file in place, Claude can write a generation prompt that respects your layout and brand rules. A prompt for the background-and-product layer looks like this:
The part nobody warns you about: text
Here's the wall every DIY builder hits. Image models still cannot reliably render exact copy. Ask one for a headline and a price and you'll get warped letters, invented words, a mangled logo, and a legal line that reads like alphabet soup. For an ad — where the headline is the whole point — that's fatal.
So the real workflow splits in two. The image model makes the background and product. A separate rendering step lays the actual text, logo, and price on top as crisp vector or code-drawn elements — using a tool like Pillow, an HTML-to-image renderer, or an SVG template. That means you're now also building and maintaining a small rendering pipeline, matching fonts, and hand-tuning safe zones so nothing clips when Meta crops your 1:1 into a 9:16 story.
Then you repeat the export for every placement — 1:1, 4:5, and 9:16 at minimum — checking each crop by hand.
This split — model for pixels, code for text — is exactly the friction HeyOz removes . Its editor renders your headline, price, and logo as real, editable text layers over the generated image, in every aspect ratio, with safe zones handled — so you get a legible, on-brand ad without wiring up a rendering pipeline of your own. Related reading if you want the brand-consistency angle: keeping brand consistency across AI-generated ads .
How Do You Learn From Competitors at Scale?
Principle four — learn from competitors — deserves its own system, because it's where most of your winning angles come from. The manual version:
- Search the for every competitor and adjacent brand in your category.
- Save the ads that have been running longest — longevity is the public proxy for profitability.
- Feed those ads to Claude as references and have it extract the angle, the hook, and the offer structure.
- Build an angle matrix: problem, promise, proof, and format for each, scored by how often it recurs across winners.
Doing this at scale means wiring Claude Code to the ad data directly, which is its own setup — see our guide to connecting Claude Code to Meta Ads and cloning competitor ad structures . It's powerful, and it's another few hours of plumbing.
Or you start from angles that are already working. HeyOz gives you winning-ad templates inspired by proven patterns out of the box, so competitor research becomes a refinement step instead of a from-scratch project.
How Do You Turn One Ad Into a Hundred?
Volume is the reason to automate at all — the account that tests 100 creatives finds winners the account testing 3 never sees. Once the pieces above exist, you can loop Claude Code to batch variations: swap headlines, rotate pain points, restyle backgrounds, and re-export every placement.
In practice, batching surfaces the real costs. Every variation burns tokens and context. Brand consistency drifts across a big run, so you need QC. Text rendering has to be checked on each output because one clipped headline kills the ad. And the whole system needs maintenance as models and winning patterns change.
This is where the DIY route quietly turns into a part-time job. HeyOz generates 10 to 20 on-brand variations from a single brief in minutes , with the text legible and the brand locked across all of them — the volume without the babysitting. Here's how the assisted variation loop looks in practice: generating ad variations at scale .
What Does the Claude Code Route Actually Cost You?
Add it up honestly. The Claude Code route is genuinely capable — but here's the real bill next to the shortcut, dimension by dimension:
- Setup time — Claude Code: an afternoon to a weekend wiring installs, API keys, a swipe file, a principles doc, and a text-rendering layer. HeyOz: none — paste a product URL.
- First finished ad — Claude Code: after all the setup, plus prompt iteration and manual text overlay. HeyOz: a few minutes from signup.
- Text, price, and logo accuracy — Claude Code: needs a separate rendering pipeline you build and maintain. HeyOz: real editable text layers, handled.
- 100 variations — Claude Code: scripting, token spend, and per-output QC. HeyOz: 10-20 on-brand variations per brief, repeat.
- Skills required — Claude Code: terminal, API keys, a bit of Python for rendering. HeyOz: none.
- Ongoing cost — Claude Code: model tokens, image-API credits, and your maintenance time. HeyOz: from $44.99/month, free to start.
The Claude Code path is a real skill worth having, and this guide gives you the whole map. But if the goal is winning static ads in front of customers — not a pipeline to maintain — the math points one way. Start free on HeyOz and skip straight to the ads.
Is There a Faster Way to Make Static Ads?
Yes — and it's the whole reason this guide has a shortcut in every section. HeyOz is an AI ad platform that turns a product URL into ready-to-post static ads, with the winning-ad principles above built in.
- Paste your product URL — HeyOz pulls your logo, brand colors, fonts, and product imagery automatically.
- Pick "static ad" — you start on templates modeled on winning ad patterns, so the scroll-stopping, pain-point-led structure is already there.
- Generate 10-20 variations — with legible, editable headlines, prices, and logos in every placement (1:1, 4:5, 9:16).
- Edit and publish — tweak text in the built-in editor and schedule straight to Meta, TikTok, or Instagram.
No installs, no API keys, no swipe file, no rendering pipeline — and it's free to start with a 3-day trial. Create your first static ads on HeyOz now , or if you want to see the Claude-assisted version of this exact workflow, read 60 static ads from one product URL .
Frequently Asked Questions
Can Claude Code really make static ads?
Yes. Claude Code can write the prompts, orchestrate an image model for the visuals, and batch out variations. It just needs a principles file and a text-rendering step, because image models can't render exact copy on their own.
Why can't the image model just write the headline?
Diffusion and image models still garble exact text, prices, and logos. Winning static ads live or die on a legible headline, so serious workflows render text as a separate layer over the generated image. HeyOz does this for you with real editable text layers.
How many winning ads do I need to teach Claude?
Dozens at minimum, ideally a few hundred, tagged by hook, pain point, and layout. The more structured your swipe file, the better Claude's output — which is also why building and maintaining it is the most time-consuming part of the DIY route.
Do I need to know how to code?
For the full Claude Code route, a little — you'll use the terminal, set API keys, and likely touch Python for the text-rendering layer. If you'd rather not, a platform that bundles all of it is the faster path.
What's the fastest way to make static ads without the setup?
Use HeyOz : paste a product URL, pick static ad, and generate on winning-ad templates in minutes. It's free to start, and it skips the installs, keys, swipe file, and rendering pipeline entirely.
Are static ads really beating video right now?
On a majority of the ad accounts we work with, yes — good statics are outperforming video, because they're cheaper to produce, faster to test, and Meta is serving them well. That makes them the highest-leverage format to get right today.
About the author
Ahad Shams
Ahad Shams is the Founder of HeyOz, an all-in-one ads and content platform built for founders and small teams. He has worked across consumer goods and technology, with experience spanning Fortune 100 companies such as Reckitt Benckiser and Apple. Ahad is a third-time founder; his previous ventures include a WebXR game engine and Moemate, a consumer AI startup that scaled to over 6 million users. HeyOz was born from firsthand experience scaling consumer products and the need for a unified, execution-focused marketing platform.

