The Ad Machine

We built an ad generation system in a day. Not a prototype — something that runs every Monday morning, reads what’s actually working in our ad account, and generates new creative against those signals. Here’s what we learned building it.

The problem with AI-generated ads isn’t that the technology is bad. It’s that most people use it wrong. They prompt the model with vague creative direction and hope it produces something usable. Sometimes it does. Usually it doesn’t.

The thing is, you already know what works. The data is sitting in your ad account. Which ICPs convert. Which hooks perform. Which angles get attention. The gap is that nobody built a system to read that data and feed it back into the creative process automatically.

That’s what we built.


The system has two parts. A brief compiler and a creative engine.

The brief compiler runs Monday morning. It reads the performance data — which customer profiles are converting at what ROAS, which hooks are scoring highest by platform, what campaign is active this week. It assembles that into a structured brief: who the ad is for, what image to start from, what copy to use, what angle has been working.

The creative engine picks up the brief fifteen minutes later. It takes the product image, builds a prompt from the brief, and generates a video via Seedance 2.0. Then it posts to a review channel with the brief attached so anyone reviewing knows exactly why that concept was chosen — not just what it looks like.

Three new ad concepts every Monday. No shoot. No brief meeting. No back-and-forth.


The most important thing we learned building this: never let the AI invent the product.

Text-to-video generates its own version of whatever glasses it thinks smart eyewear looks like. That version will not match your product. It will be close enough to look plausible and wrong enough to be useless.

Image-to-video starts from your actual product photo. The model then animates the scene around it — which means the glasses in the final video are your glasses, not a hallucination. This sounds obvious in retrospect. We had to learn it by watching several videos come back with beautiful cinematography and completely wrong products.

The rule now: every ad generation starts from a real product image. The Shopify CDN serves clean white-background perspective shots for every SKU. We pipe those in directly. The model never gets to invent the product.


The other thing we figured out: when you’re selling audio eyewear, you can’t show a heads-up display in the lens.

Early on we tested FPV-style ads with AR interface overlays showing call notifications and music controls. The feedback was immediate: it looks like AR glasses, not audio glasses. That’s a completely different category with different buyers and different expectations. We were accidentally running ads for a product we don’t sell.

The USPs for audio glasses communicate through behavior, not interface. Someone walking through a coffee shop, answering a call without touching their phone. Someone running without earbuds. The glasses are there. The call gets answered. Nothing else needs to be shown.

We now apply a clean text overlay to every generated video — Open-Ear Audio, Hands-Free Calls, AI Assistant Built-In — fading in over the lifestyle scene. No lens. No AR. Just the experience, described simply.


The system doesn’t auto-publish anything. Everything routes to a review channel where the team reacts to approve or reject. That’s a deliberate choice and it’s worth explaining.

The automation is for generation, not judgment. The model is good at building prompts from signals and executing them at scale. It is not good at knowing whether a particular video fits the brand this week, or whether the timing is right for a specific campaign. Humans are better at that.

The goal isn’t to remove people from the process. It’s to make sure people are only doing the parts that actually require human judgment. Reviewing three strong concepts and picking the best one is a good use of thirty seconds. Briefing an agency, waiting two weeks, reviewing rounds of revisions — that’s the part the machine should handle.


What surprised me most was how much the system improved once we connected it to real performance data. The first tests used generic prompts. Fine results, nothing remarkable. Once we wired in the ICP profiles and the ROAS data, the concepts got significantly better — not because the model got smarter, but because it was working from specific information instead of general creative instinct.

The highest-ROAS Reebok ad uses a contrarian hook aimed at an AI-forward early adopter. The second-highest uses a mountain sport angle aimed at active lifestyle consumers. Those aren’t guesses. They’re patterns from months of real spend. Feeding them back into the creative brief means the new ads start from a position of evidence, not assumption.

That’s the difference between AI-generated creative and AI-informed creative. One produces output. The other produces output that has a reason to work.

Wispr · jabondano · 🦞