
Last weekend my past self showed up in a dream holding a Stripe dashboard screenshot that said $47.23 in ad revenue and asked me, in the most accusatory tone possible, why I still hadn't shipped video creatives for the SaaS I launched in February. So this post is me, present-self, answering the questions he should have asked before he wasted 23 evenings. If you're a solo dev looking at the Facebook Ads tool landscape and wondering whether you really need to DM a TikTok creator at midnight — read on. This is also, incidentally, an AI Google Ads Generator postmortem, because the same creatives ended up on both platforms.
Q1: "Do I actually need a real human KOL for product ad videos?"
Past me: yes, obviously, that's how everyone does it.
Present me: no. You're a senior dev with 12 years on the stack, you've shipped worse hacks than this. The reason you think you need a KOL is because every marketing blog says "authenticity wins." What they don't say is that 70% of the winning ads on Meta's Ad Library right now are stitched-together stock B-roll with a synthetic voiceover. I checked. I spent a Sunday with yt-dlp and a psql instance categorizing 312 ads from three competitors. The "authentic creator" ones underperformed the synthetic ones on hook retention.
So no. You don't need a KOL. You need a video that doesn't look like a 2019 PowerPoint.
Q2: "Why did your first three attempts fail?"
Because I'm an engineer and I tried to engineer it.
Attempt 1: ffmpeg + ElevenLabs + stock footage
I wrote a pipeline. It worked. The output looked like a hostage video. The lip-sync was nonexistent because I wasn't using an avatar — just a voiceover over stock clips. CTR on the test campaign: 0.4%. Industry baseline is ~1.2%.
Attempt 2: HeyGen avatar with a custom script
Better. But the avatar blinked exactly every 2.1 seconds and my brain couldn't unsee it once a friend pointed it out. Also burned through the starter credits in one afternoon iterating on the script.
Attempt 3: The "just film yourself" approach
I have a webcam. I have a face. I do not, it turns out, have the willingness to record 14 takes of "Hi, are you tired of losing leads?" at 11pm while my downstairs neighbor's dog barks. Tangent: that dog has cost me at least four production deploys' worth of focus. Anyway — abandoned after take 6.
Q3: "Okay so what actually worked?"
I evaluated four tools in the AI ad video generator category. Here's the boring table, because dev.to readers (and Google's snippet bot) like boring tables:
| Tool | Pricing entry | Output formats | Annoying limit |
|---|---|---|---|
| HeyGen | $29/mo | MP4 1080p | Watermark on starter |
| Synthesia | $22/mo | MP4 only | No 9:16 vertical on entry plan |
| Adsmaker.ai | $39/mo | MP4 + project file | 30 renders/mo cap |
| Nextify.ai | $34/mo | MP4 + raw asset bundle | UI is genuinely confusing |
I picked Nextify.ai for one extremely mundane reason: it exports the individual audio and B-roll layers as a bundle, so I can re-edit in DaVinci Resolve without re-rendering the whole thing. That's it. That was the deciding factor. Not the model quality, not the templates, not anything on their landing page.
Q4: "What sucks about it?"
Two specific things, because I promised past-me I'd be honest:
-
The script editor lags hard once you go past ~180 words. I had to draft scripts in VS Code with the
Rewrapextension and paste them in chunks. On a 32GB M2, this is silly. - The "trending hooks" library is mostly recycled from 2024. I saw the same "POV: you just discovered..." opener in 11 different templates. If you're targeting a sophisticated B2B audience, you'll write your own hooks anyway.
Also their billing emails come from a noreply@ address that got flagged by my Fastmail rules twice. Minor, but noted.
Q5: "What's the takeaway for past-me?"
Here's the workflow I wish I'd had on day one. Steal it:
1. Scrape 50+ ads in your category (Meta Ad Library is free)
2. Categorize: hook type, length, voiceover style, B-roll density
3. Pick the 3 ad structures that appear most in TOP performers
4. Write 5 script variants per structure (= 15 scripts)
5. Generate ALL 15 with one AI tool, same avatar, same voice
6. A/B test in batches of 3, $20/day, 48hr windows
7. Kill anything below 1.0% CTR after 4,000 impressions
8. Iterate on the winning hook, not the winning video
The thing I got wrong for 117 commits straight was treating each video as a precious artifact. They're not. They're rows in a table. Generate cheaply, test ruthlessly, throw most away.
That's it. Go ship something. The dog is barking again.
Top comments (0)