FiftyStrong · paid social
Two creatives already cut, one destination: the diagnostic quiz at
fiftystrong.app/quiz. Below is paste-ready copy for both, the button, and the
conversion event to buy against — plus three things that have to be fixed before any of it spends.
1055150507004620, created in the Reelly portfolio and
connected to ad account 1761459111652871 only. Deployed to
fiftystrong.app/quiz and verified by walking the funnel end to end on production: all
five events fired in order and the dataset's last_fired_time moved from never
to the moment of the walk. (Event counts in Events Manager lag by up to 30 minutes —
last_fired_time is the immediate proof of receipt.)
| Moment | Standard event | Custom event | Verified on prod |
|---|---|---|---|
| Lands on the quiz | PageView | — | fired |
| Starting — answers Q1 | ViewContent | QuizStart | fired |
| Finishing — reaches the paywall | Lead | QuizComplete | fired |
| Paying — taps the buy button | InitiateCheckoutvalue 18.00 USD | — | fired |
start_here
(mobility / balance / strength / energy) and goal_match to the completion event, so
creative could be read per segment. That is an inference about a named person's physical condition
— derived from questions about stairs, floors and continence — attached to an advertising
identifier. Meta's Business Tools Terms prohibit sending sensitive user data, and a
balance tag amounts to telling Meta this woman is unsteady on her feet. Those
parameters have been removed. The segment breakdown belongs in our own analytics; the pixel
carries only that she finished.
requestAnimationFrame loop, which browsers pause in a hidden tab. A woman who
switches to a text message mid-loader could come back to a stalled screen, and she would never
reach the paywall, which is the exact event we are optimising on. The loader now runs off the wall
clock, so a background pause is absorbed rather than restarted, and a setTimeout
guard advances the screen even if rAF never resumes. Confirmed by completing a full walk with
document.hidden === true — the condition that previously stranded it.
Decision one
Four events are wired. The question is which one Meta buys against, and the binding constraint is volume: an ad set needs roughly 50 conversions a week to leave the learning phase and deliver predictably. Anything rarer than that and the algorithm never gets a stable signal, no matter how meaningful the event is.
| Event | What it means | Est. of clicks | Clicks/wk for 50 | Verdict |
|---|---|---|---|---|
PageView | Landed on the quiz | ~100% | 50 | Too shallow |
ViewContentQuizStart | Answered question one | 60–75% | ~70 | Buys tappers |
LeadQuizComplete | Finished every question, reached the paywall | 20–30% | ~200 | Optimise here |
InitiateCheckout | Tapped the buy button | 2–5% | ~1,650 | Too sparse |
At a realistic $1.00–1.50 CPC for women 48–65 in the US, Lead needs roughly
$35–45/day to clear 50 conversions a week. InitiateCheckout would need around
$300/day to do the same — an order of magnitude more than a validation test should cost, and
you would sit in learning phase the entire time.
There is a second reason, and it matters more than the arithmetic. InitiateCheckout
currently fires on a fake door — the paywall button answers "Checkout isn't open yet…
nothing has been charged." Optimising toward women who tap a button that cannot complete would train
delivery on an outcome that will mean something entirely different once payments are live.
Lead means the same thing before and after launch, so the audience Meta learns now
stays valid.
QuizComplete is a custom event, and delivery optimisation on a custom event starts
with no cross-platform training data behind it. It now fires alongside the standard
Lead, same moment, same parameters. Optimise on Lead; keep reading
QuizComplete for reporting, because it carries start_here (her archetype)
and goal_match — which is how you find out whether the balance ad and the energy ad
are pulling different women.
Decision two
Headline and description are locked to the two below. Meta's button list is fixed. Download is out — there is nothing to download and the App Store has nothing on it. Sign Up mismatches: the quiz asks for no account. That leaves Learn More and Get Started.
Run Learn More as the primary. It consistently earns the highest click-through of the two, and because delivery is optimising on a deep event, extra top-of-funnel volume is useful rather than wasteful — Meta sorts it. Test Get Started as the challenger once each has 50 leads.
Get your personalized workout plan now
At home · No equipment · Built for women over 50
Creative A · "Says who?" · 14.8s
The cut opens on a woman being told it's too late and answers back, so the caption catches that and hands it somewhere to go. Both variants are short by design — the video carries the emotion, the caption only has to name the offer. The dashed line marks roughly where mobile truncates to "See more", so everything before it has to earn the tap.
"It's too late to start." It isn't. Strength, energy, and moving through an ordinary day without thinking about it — you can still have all of it at 48, at 55, at 62. It just takes exercising smart. Two minutes of questions, then a workout plan customized to your goals and built around your limitations. At home, no equipment.
"It's too late to start." It isn't. Strength, energy, and moving through an ordinary day without thinking about it — none of that is gone. Getting it back is about exercising smart, not harder. Two minutes of questions, then a workout plan customized to your goals and built around your limitations. At home, no equipment.
Creative B · workout programme · 70s
This one is a demonstration — eight named moves, no equipment, a chair — so the copy stays specific, with numbers she can check against what she just watched. Seventy seconds is long for cold traffic, so also cut a 15-second version from the first two movements plus the end card.
Eight moves. Twelve minutes. That's all you need to blast that menopause belly fat. That's a FiftyStrong session — made for women over 50, at home, nothing to buy. Get your personalized workout plan, tailored to your goals and built around your limitations, with FiftyStrong.
Eight moves. Twelve minutes. Built around what menopause actually changes — the middle included. That's a FiftyStrong session — made for women over 50, at home, nothing to buy. Get your personalized workout plan, tailored to your goals and built around your limitations, with FiftyStrong.
Before this spends
None of the copy above trips Meta's policies — it never asserts anything about the viewer, and it makes no claim above what the evidence supports. The creatives are a different matter, and the account is inside the shared Reelly portfolio, so strikes here are not free.
INSET_BEFORE_AFTER, a fabricated belly pair, which its own README already flags. Both
women are AI-generated and neither transformation happened, which is separately a problem under UK
DMCC rules if you run outside the US.
INSET = INSET_NUMBERS in render_overlays.py and rebuild —
the safe card (8 MOVES · 12 MINUTES · NO EQUIPMENT) already renders every run. For Creative A, cut
the bathroom "before" and open on the line instead: the defiance lands on the words, not the body.
"you're 56 / it's too late to change" states the viewer's age — Meta's
Personal Attributes policy prohibits copy implying you know a person's age or health status, and
quotation marks are not a reliable defence at automated review. Creative B's
8 moves to blast menopause belly both names a health status and trades on negative
self-perception.
"it's too late to change" — says who? keeps the whole idea with no age in
it. For B: 8 moves · 12 minutes · no equipment, or
Strength training made for women over 50.
Find your starting point over 2-minute check · at home · no equipment.
Setup
/quiz, never the root — the root is a coming-soon page with a dead
App Store badge, which is the worst possible landing for paid traffic.?dev=1: that reveals the screen-stepper HUD.1055150507004620, live on /quiz.InitiateCheckout as the optimisation event once payments are live
and you are clearing ~1,600 clicks a week. Not before.