MarketBeat — OpenAI IPO creative

Rounds 1 → 6 · The Feed Media · updated 2026-08-25

Round 1 is the first build off Luiz's scripts. Round 2 is six changes made after looking at what the ad account actually says. Everything from round 1 is still here — nothing was replaced, so the two can run against each other.

Offer: “Don’t Wait for the OpenAI IPO” — 7 AI stocks you can buy today · normally $29.97, free today. RegistrationCode is appended by the media buyer at trafficking.

The finding that drove most of this

Two pen ads have been live since 31 July. Same format, same voice, same window, same account. The only visible difference is which offer they point at — and the gap is large:
Live adOfferCPLCTR
DCT_199 “Pen ad 2”offer=highyield$11.883.1%
DCT_198 “Pen ad 1”offer=hottestipos$15.845.2%
TFM account average—$16.104.0%
GrowJoy (competing agency, same account)—$12.304.5%
The IPO angle pulled 68% more clicks and converted 33% worse. It's a click magnet that under-converts — which lines up with the two ICPs on file: high-yield speaks to the conservative, dividend-focused buyer; IPO speaks to the younger, aggressive one. The first is who actually downloads. Caveat: two ads, and the copy differs as well as the offer, so this is a strong signal rather than a clean A/B — but it's 8,063 conversions of signal, and every round-1 concept sits on the IPO side of it.
Not a creative change — a media one. GrowJoy runs 95 ads to our 18 per 30 days on near-identical total spend: $4,013 per ad vs $22,663. Their edge is spreading budget across many creatives, not making better ones. Our pen ads are already dynamic creatives with three videos each, which is the right container — it just needs more of them at lower spend per test.
CHANGE 01

Test the offer, not just the creative

Every round-1 concept is IPO-angle. This holds the hook skeleton of round 1 V1 exactly and swaps only the angle and the offer, so if the offer really is the lever, this one ad says more than six more IPO variants would.
ROUND 1“3 most dangerous words”
19.6s · IPO angle · 7aistocks
NEWSame skeleton, high-yield
21.4s · dividend angle · highyield
CHANGE 02

Break the single hook skeleton

All three round-1 pen ads are “The 3 most dangerous [words/assumptions/bets]”, and all three dinner scripts are a brother-in-law regret story. That's two tests wearing six hats. With new-creative tests moving to $500/day, near-identical creatives split the budget without splitting the question. Two genuinely different openings:
ROUND 1“3 most dangerous assumptions”
26.0s · same skeleton as V1 and V3
NEW“I asked my broker…”
21.8s · authority / conflict opening
NEW“Everyone is waiting for one stock”
19.0s · direct contrast, no first-person story
CHANGE 03

Stop the pen covering the words

The pen barrel sits over the line it's reading. In round 1 it hides up to three words at a time — on a format whose entire job is getting copy read, that's working against itself. The pen is now 10% narrower. Left is round 1, right is the new build, same moment in the read:
Occlusion, before and after
Round 1 hides “report”, “download” and “free”; the new build clips one word
CHANGE 04 + 05

Add an end card, and cut the length

The end card: the 1440 reference closes on a signup screen with a “Sign-Up Now!” pill — it asks for the click. Round 1 just stopped on a scene and asked for nothing.
The length: round 1 ran 46–59s against a 35s reference, because the scripts are full narratives. The trims drop the middle beat of each — the flourishes, not the argument — landing at 38–46s. Both changes are in the new cuts; round 1 is untouched beside them.
REFERENCE1440 Media
35s · note the signup screen it ends on
ROUND 1V1 brother-in-law
59s · no end card
NEWV1 trimmed + end card
46s
ROUND 1V2 Thanksgiving
55s · no end card
NEWV2 trimmed + end card
40s
ROUND 1V3 10:47 couch
46s · no end card
NEWV3 trimmed + end card
38s
UNCHANGED

Round 1, in full

The third pen ad, and both DCT_207 image directions. Nothing here changed.
ROUND 1“3 most dangerous bets”
25.5s

DCT_207 — native images

Option A matches the reference: the image slot is a plain editorial photo and the headline lives in the ad unit, so nothing is baked in. Option B sets the headline on top. Native's whole trick is not looking designed, so A is the on-format answer and B is the hedge.
REFERENCESeeking Alpha native unit
Plain photo; headline sits in the ad furniture below
A — Data centre, golden hour
16:9 · closest to the reference
A — Exchange facade
16:9
A — Silicon wafer
16:9
A — Server hall
16:9
A — Data centre
square
A — Exchange
square
A — Wafer
square
A — Server hall
square
B — All 7 Revealed
“You can’t buy OpenAI yet. You can buy these 7.”
B — 7 AI Tickers
“Public companies positioned before the IPO.”
B — 7 Public Names
“Normally $29.97. Free today.”
B — All 7 Revealed
“The AI wave hits public markets.”
ROUND 3 · CHANGE 07

We went to build the wrong format, and the reference stopped us

Checked Notion for MarketBeat concepts still sitting in brief stage. Three had real content — and one of them, DCT_206_Dangerous, is the copy above: V1/V2/V3 word-for-word. But its Style field says “Text Over Video”, and we'd built pen ads. So the briefed version had never been made.

Before building a text-over-video cut, we pulled the Foreplay reference attached to that brief. It's a pen ad. The Style field is simply wrong — the reference is the format we'd already built. Building to the label would have meant building the wrong thing to satisfy a bad database field. So we compared ours to the reference instead, and it showed two things we were off on: it runs 13 seconds (ours were 20–26s, because the copy is roughly twice as long), and a real human hand holds the pen — which is most of why it reads as someone filming a page rather than as an ad.
REFERENCEDCT_206's actual reference
13s · a pen ad, not text-over-video · note the hand
ROUND 1Our V1
19.6s · floating pen, no hand
NEWReference-matched cut
16.6s · reference's tighter copy, $29.97 not $29
NEWSame cut, hand-held pen
16.6s · isolates the hand as the only variable
The hand asset
Generated, background removed, nib measured at (605,45) so the tip still lands on each word
Two pipeline items for Luiz, not creative: DCT_206's Style should read Motion/pen, not Text Over Video. And DCT_207 is used twice — “DCT_207_Native” and “DCT_207_The Robot Hire Nobody's Talking About”. Attribution runs on RegistrationCode=…dct###, so two live ads on one number collapse into a single row in the partner dashboard. (The Robot Hire card is an empty template — boilerplate SOP toggle, no copy — so there's nothing to build there yet.)
ROUND 4 · CHANGE 08

Making the hand actually hold up next to the reference

First hand attempt was better than a floating pen but still read as a sticker. Five tells against the reference: too small, no contact shadow so it floated above the paper, lighting mismatch (studio-white cutout on a warm daylight page), no forearm (cropped clean at the wrist), and a near-vertical grip instead of a ~35° writing angle.

Two passes to fix it. v2 regenerated the asset larger, with forearm running off the bottom-left and a proper writing angle, then warm-graded it to the page and added a contact shadow — but the background removal left a white halo around the arm, which against a beige page reads as a cutout outline and arguably looked worse. v3 erodes the alpha, feathers the new edge and de-spills the remaining white fringe. That's the one to look at.
Reference · v2 (halo) · v3 (fixed)
Same moment in the read. Note the white outline on the middle forearm, gone on the right
v1First hand
Small, vertical, no forearm
v2Bigger + graded
Right pose, but haloed
v3 — BESTHalo removed
16.6s · 54/54 word-sync
CHANGE 08b

…except the hand was holding the pen backwards

Zoomed in, v1–v3 all had the same fault: the pen is upside down. The reference isn't a writing grip at all — it's a pointing grip, hand below the barrel, fingers wrapped round it like holding a stick, tip up. Ours used a writing grip (thumb-and-index pinch, barrel through the web of the thumb) but inverted so the nib pointed up — i.e. a person writing with the pen the wrong way round. The earlier note about a “~35° writing angle” was a misread of the reference, and the prompt baked that error straight into the asset.
The tell, zoomed — reference vs v3
Left: fingers wrapped round the barrel, pointing. Right: a writing pinch with the pen inverted
Reference · v3 (backwards) · v4 (correct)
v4 grips the barrel in a closed fist, blunt end below the little finger
v4 — CORRECT GRIPPointing hand
16.6s · 54/54 word-sync · use this one, not v1–v3
Second bug found on the way: the background remover is a person segmenter, and it silently deleted the thin pen above the grip — the asset came back as a hand holding nothing, with the top 650px of pen gone. Since these are generated on a pure-white sweep, v4 is keyed directly off the white instead of AI-matted. Worth remembering for any future prop: remove-background cannot be trusted with held objects.
CHANGE 09

The other approach: generate the whole frame at once

The reason a composite is hard is that the reference is one photograph — hand, pen, paper and shadow all share a single light. So we also tried generating the entire frame in one shot. It's markedly more photoreal than anything composited: real window light, a real shadow cast onto the page, wood desk, shallow depth of field.

But it can't ship as a pen-read ad. The text on that page is model-generated, so we can't set the copy, the price or the offer — and controlling copy exactly is the entire reason this pipeline exists. It's here as the look benchmark for what we're aiming the composite at, and it's a strong candidate as a native static in the DCT_207 mould, where no verbatim script is needed.
Fully generated frame
Photoreal ceiling · copy not controllable · not shippable as a pen read
ROUND 5 · CHANGE 10

Luiz's notes on the voiceover ads — the dinner cuts, rebuilt shot by shot

Luiz, 24 Aug: “the pen ads look good. However, there are a lot of changes I'd make to the voiceover ads.” Three notes, all on DCT_205:

1. The image must match what's being said. His example was the line “brags about the money he made on Peloton” — the B-roll should be a cocky guy showing his phone at the dinner table; ours looked like everyone wanted to see what was on the phone. He's right, and it was structural: round 2 had six stills for a 46-second script, so each one had to cover ~8 seconds of narration and could only be mood-adjacent. 2. Cadence. The 1440 reference cuts roughly every two seconds, dissolves between shots, and every shot zooms in or out. 3. Captions sometimes lag the voice. He captions with his own tool, so the ask was: fix the B-roll, don't spend time on captions.
The “brags about the money” moment — round 2 vs round 5
Left: the table leaning in to look. Right: the brother-in-law, phone up, mid-boast
Round 2 · V1 trimmed, one frame every 2s
6 stills across 46s
Round 5 · V1 trimmed, one frame every 2s
18 stills across 46s — one per script beat
What changed in the build. Each script was broken into beats (V1: 26, V2: 21, V3: 19) and a still was generated for that line — “his face turned red like a tomato” is a flushed close-up, “you're the one holding the bag” is him peering into an empty paper bag, “Suppliers / Backers / Infrastructure” is a wafer, a handshake, a server aisle. Shots are timed to the word the beat starts on, dissolve over 0.4s, and alternate zoom-in / zoom-out. Trimmed cuts reuse the same stills, so the full and trimmed versions of each script now match shot-for-shot.

Captions: per Luiz's note, the trafficking set is caption-free — he adds his own. A captioned twin of each cut is here too, with the timing lead fixed, in case it's quicker to use as-is. (Fixing it also surfaced a wrap bug in round 2: long caption lines were being clipped at the frame edge.) Recurring characters — the brother-in-law (slicked hair, blue shirt) and the narrator (grey, dark crewneck) — are prompted consistently but are AI stills, so faces drift a little between shots.

Trafficking set — no captions

R5V1 brother-in-law · trimmed
46s · 18 shots · end card
R5V2 Thanksgiving · trimmed
40s · 15 shots · end card
R5V3 10:47 couch · trimmed
38s · 17 shots · end card
R5V1 · full
59s · 26 shots · end card
R5V2 · full
55s · 21 shots · end card
R5V3 · full
46s · 19 shots · end card

Same cuts, captioned

Karaoke captions with the lead fixed and the pill kept above Meta's bottom-third crop. Optional.
V1 trimmed · captioned
46s
V2 trimmed · captioned
40s
V3 trimmed · captioned
38s
V1 full · captioned
59s
V2 full · captioned
55s
V3 full · captioned
46s
Pen ads: approved as-is per the same note. The one to traffic is TFM-T2V-mb-ref13-hand4.mp4 (correct grip), plus the round-2 set above.
ROUND 6 · CHANGE 11

Luiz's voice, and the real landing page at the end

Luiz, 24 Aug, on round 5: “It's wayyy better now.” Two more notes. The VO drifts as the read goes on — he generated his own ElevenLabs take at 1.13× speed and sent it (“give it to Claude and the result will be better”). And when the script gets to the seven stocks, show the landing page.

So this cut uses his audio file untouched (51s vs our 57s — the faster pace also tightens the average shot to 2.1s), re-timed shot-for-shot to his read, and the end card is now a capture of the live offer=7aistocks page inside the phone frame, starting on “MarketBeat put all seven in a report” and holding ~10s to the end. His read closes “free for the next 24 hours” rather than “it's free today”, so the last beat was re-cued to match.

One thing to decide: the landing page prints today's date in its body copy (“free today, Tuesday, August 25th”). A baked-in screenshot is stale the day after it's captured. Options: recapture on the trafficking day, crop the date line out, or keep the HTML mock end card. This cut uses the 25 Aug capture.
R6V1 full · Luiz's VO · no captions
55s · 26 shots · LP end card from 45s
V1 full · Luiz's VO · captioned
55s · captions re-timed to his read
The end card
Live page capture, phone frame, “Sign-Up Now!” pill kept from the 1440 reference
V2 and V3 still carry our ElevenLabs “Jon” read. Send those two VOs the same way and they'll be re-timed and get the same end card — the pipeline now takes an audio file as input.