Wonder v38 — the in-image CTA button is gone
Ten ads. No drawn button anywhere. Each ad is one native 9:16 photograph at 1152×2048 and the 4:5 is a crop of that same plate, with a per-plate crop window measured so it never slices a person, a hand or the product.
1 · The CTA finding, now tested on a wider set
Obvi: 0 of 70 stored ads draw a shopping button; the offer lives in ad_creative_link_title, the headline field Meta itself renders under the image. Original write-up.
Wider test (GetHookd, 45 brands, 66 US static image ads, every one inspected as pixels):
6 ads (9.1%) do draw a button. 25 carry a non-clicking label pill, 35 carry nothing. Four more carry a bare drawn click instruction with no enclosing shape — so 10 of 66 have a drawn CTA of some kind.
Verdict: QUALIFY, not confirm. Dropping the button as the house default is well supported — nine ads in ten don't have one. Saying the category never does it is not supported. And the button-drawers are not only junk: the two highest-performing of the six are established DTC brands (perf 100 and 84), and both pills carry an offer or a category — BUY 1 GET 1 FREE, SHOP KINKY STRAIGHT — never a bare "Shop now". The two conventional "Learn More" pills both score 1/Testing. If we ever put a pill back, that is the shape worth testing.
Also learned: auditing only the bottom 38% of a frame undercounts by a third — two of the six buttons sat mid-frame. Full audit.
2 · What replaced the button
Obvi's own bottom furniture, rotated so no two neighbouring ads carry the same device: a proof line (6 ads), a thumbs guarantee (2), a spec row (2). It is type directly on the photograph — no panel, band, strip or scrim behind any of it.
Placement differs by ratio deliberately. The 4:5 runs in feed with nothing over the image, so the furniture is bottom-pinned exactly as Obvi runs it. The 9:16 loses its bottom 35% to the Reels caption and CTA overlay, so the same line sits under the support line where it is actually seen. Removing the button is what made that possible — it was the heaviest object in the frame and it owned the bottom third.
One open decision. Six of the ten carry no proof roundel. On W01/W05 the bottles run the full width of the frame and on W07/W08 two portraits run edge to edge, so every 188–212px roundel position was measured to land on the product label, a face or the before/after evidence. Filling the frame edge to edge and stamping a roundel on it are in direct conflict. Those six say the review count in the furniture line instead. If you want the roundel back on all ten, the plates have to give up some scene.
3 · The 4:5 crop windows
Every plate was measured against a pixel ruler. A 4:5 window is 1440 of the plate's 2048 rows, so any subject spanning more than 1440 rows cannot be cropped without cutting something. Three of the ten original plates failed that test — W03 (hair crown 60 → bottle base 1845, span 1785), W05 (cap 195 → reflection 1800, span 1605) and W09 (fingers 230 → bottle base 1890, span 1660). Any window either sliced her forehead or cut the bottle base.
They were reshot rather than cropped badly. The brief that worked states three pixel bands, not percentages: top band backdrop only, a core band holding the whole subject with slack, bottom band floor only — plus "shoot much wider than instinct". The first attempt still overshot by ~60px, so the core band was tightened to 420–1620 to leave room for the model's overshoot. The two before/after plates were reshot twice more: their heads sat mid-frame, so a hook either covered the parting — the actual evidence — or landed in the Reels reserve. They now sit in the bottom half with the upper half a lit, shadowed wall.
| Ad | Plate | 4:5 window | Why not dead centre |
| W01 | W01 | y340–1780 | down 33px so the centre bottle's base is not clipped |
| W02 | W02 | y307–1747 | true centre |
| W03 | W03e | y330–1770 | reshot, round 3 — hair now fills the top band |
| W04 | W04 | y150–1590 | up 157px — a centre crop sliced her raised fingers |
| W05 | W05d | y307–1747 | reshot — the oil pour fills the top band |
| W06 | W06 | y307–1747 | true centre, cleanest of the ten |
| W07 | W07d | y307–1747 | reshot twice — portraits moved to the bottom half |
| W08 | W08d | y307–1747 | reshot twice — same |
| W09 | W09d | y307–1747 | round 2 kept; round 3 read better but sliced her hand |
| W10 | W10 | y350–1790 | down 43px so the base and reflection survive |
4 · Hooks — all ten lead with the pain
Rebuilt from a pain map, not from features, and each ad enters the tension from a different door: direct recognition, feared future, social exposure, a stalled plateau, a recurring cost, a hidden cause, a failed alternative, category negation, a physical complaint, a life-stage shock. Each card below names its pain and its entrance.
The claim boundary is unchanged and deliberate. The only bridge used is the qualified sentence already live on the PDP — batana oil may help with shedding, and conditions dry, fragile lengths. No timeframe, no regrowth promise, no "in 2 weeks". That is a conscious difference from Obvi, whose own H04/H06/H10 run "REGROW Hair in Just 2 Weeks".
No price, no discount, no offer anywhere in the artwork — that is the finding applied. The offer belongs in Meta's headline field.
5 · Gates — all clean, and what the gates do not catch
| Gate | Result |
| Text overflow | 0 / 20 |
| Solid blocks over size (blockgate) | 0 |
| Element collisions | 0 |
| Meta safe zone | 20 / 20 |
| Legibility vs the photograph (104 elements) | 0 fail |
| Furniture over product label / face / before-after result | 0 / 0 / 0 |
Two honest notes. First, the product gate measures the label, not the bottle — a generous bottle-shaped box made it fire on everything and meant nothing. Second, the gate only checks pills, badges and buttons, so it never looks at a plain headline: five readability defects passed every gate and were caught by eye (navy type crossing dark dropper caps on W01 and W10, navy over dark hair on W09, a navy spec row on a black top in W08-45, a white brand line on light pink in W01-45). All five were fixed by per-element ink, then re-measured.
Weakest ad: W10. Its headline still crosses the bottle's cap and its furniture sits on busy marigolds. Legible, gate-clean, but the least resolved of the ten — say the word and it gets the same three-band reshoot the others had.
What is real
The product is the actual bottle in every scene, generated with source/real-bottle-reference.png attached. The only numeric proof is the genuine 4.8/5 from 1,121 Trustpilot reviews, said once per ad. Free shipping and skip-or-cancel are live PDP terms. The spec row is true.
The two before/after plates are generated stand-ins and are labelled on the artwork — "ILLUSTRATION · NOT A CUSTOMER RESULT". That label is a compliance requirement, not decoration. No invented customer count, testimonial, timeframe or measured result anywhere.
Method: gpt-image-2.5-flare at quality=medium via /v1/images/edits. No text generated into artwork — all typography composited deterministically in Remotion.
FIVE OILS — NOTHING CHANGED
One ingredient. Cold-pressed batana oil.
Pain: disappointment with a cabinet full of hair oils that did nothing
Entrance: failed-alternative indictment
plate W01 · 4:5 crop y340–1780 · bottom furniture: proof line — ★★★★★ 4.8/5 · 1,121 verified reviews · no roundel — no position clears product/face/result
No in-image CTA button.
20 THINGS — IN YOUR HAIR OIL
Ours has one: 100% batana oil.
Pain: distrust of long ingredient lists after being sold complicated products
Entrance: category negation
plate W02 · 4:5 crop y307–1747 · bottom furniture: proof line — ★★★★★ 4.8/5 · 1,121 verified reviews · no roundel —
No in-image CTA button.
STUCK — SAME LENGTH FOR 3 YEARS
Conditions dry, fragile lengths.
Pain: hair that never gets past a certain length because the ends keep breaking off
Entrance: plateau / stalled progress
plate W03e · 4:5 crop y330–1770 · bottom furniture: proof line — ★★★★★ 4.8/5 · 1,121 verified reviews · no roundel —
No in-image CTA button.
WASH DAY — SHOULDN'T COST YOU LENGTH
Conditions dry, fragile lengths.
Pain: the handful of broken hair left after every wash day
Entrance: recurring cost / private moment
plate W04 · 4:5 crop y150–1590 · bottom furniture: thumbs guarantee — skip or cancel anytime · free shipping · proof roundel
No in-image CTA button.
GREASY — IT JUST SITS ON YOUR HAIR
Cold-pressed. One ingredient.
Pain: heavy oils that coat the hair and leave it limp instead of feeding it
Entrance: failed alternative, physical
plate W05d · 4:5 crop y307–1747 · bottom furniture: spec row — 100% batana oil · cold-pressed · 30ml · one ingredient · no roundel — no position clears product/face/result
No in-image CTA button.
SHEDDING — CHECK YOUR BRUSH
Batana oil may help with shedding.
Pain: the amount of hair coming out in the brush every single day
Entrance: direct pain recognition
plate W06 · 4:5 crop y307–1747 · bottom furniture: proof line — ★★★★★ 4.8/5 · 1,121 verified reviews · no roundel —
No in-image CTA button.
YOUR PART — IS WIDER THAN LAST YEAR
Batana oil may help with shedding.
Pain: watching the parting widen year on year and knowing where it is heading
Entrance: feared future
plate W07d · 4:5 crop y307–1747 · bottom furniture: proof line — ★★★★★ 4.8/5 · 1,121 verified reviews · no roundel — no position clears product/face/result · labelled ILLUSTRATION · NOT A CUSTOMER RESULT
No in-image CTA button.
NO EDGES — EVERY STYLE SHOWS IT
Batana oil may help with shedding.
Pain: thinned edges that limit every style and are visible to everyone
Entrance: visible / social exposure
plate W08d · 4:5 crop y307–1747 · bottom furniture: spec row — 100% batana oil · cold-pressed · 30ml · one ingredient · no roundel — no position clears product/face/result · labelled ILLUSTRATION · NOT A CUSTOMER RESULT
No in-image CTA button.
THINNING — STARTS AT THE SCALP
Massage in at the root. 100% batana oil.
Pain: treating the strand for years without ever treating where hair actually grows
Entrance: hidden-cause reveal
plate W09d · 4:5 crop y307–1747 · bottom furniture: thumbs guarantee — skip or cancel anytime · free shipping · proof roundel
No in-image CTA button.
POSTPARTUM — THE SHEDDING NOBODY WARNS YOU
Batana oil may help with shedding.
Pain: postpartum shedding arriving unannounced on top of everything else
Entrance: life-stage shock
plate W10 · 4:5 crop y350–1790 · bottom furniture: proof line — ★★★★★ 4.8/5 · 1,121 verified reviews · no roundel —
No in-image CTA button.