50Queen · Launch Ad Set · Funnel Readout

$325 bought 243 real email addresses and nothing else

Everything below is the launch ad set alone — US · Women 45–65 · Broad · Lead, live 21 August, now paused. Final numbers. The advertising works and the quiz works. Payment is where it stops: three women reached a payment form and none of them finished. Lead counts come from the database, not from Meta.

Ad set 120252198044700131 21 Aug 17:42 → 25 Aug, final Paused $80/day Validation campaign excluded

Where the money went

Three and a half days of delivery at $80/day. Everything above the paywall is healthy or better. Everything below it is zero.

Spend
$325.32
final · $80/day
Link clicks
1,028
7.71% CTR · $0.32
Emails captured
247
243 real · $1.34 each
Paywall views
247
$1.32 each
Checkout attempts
3
$108.44 each
Customers
0
$0.00 revenue
The one sentence version

You are paying market-beating rates for attention — a 7.71% link click-through rate at $0.32 a click, and a real email address for $1.34 — and then losing 99% of it at the moment of payment. No amount of ad optimisation fixes a funnel that converts nothing at the end.

Ad performance

The ad set holds two creatives. One of them received essentially all the budget.

Delivery and cost — final
Ad Spend Impr. Reach Freq. Link clicks Link CTR Cost / link click CPM
A56 · Says Who · 15s $322.2713,28811,2721.18 1,0257.71%$0.31$24.25
A40 · Says Who 40s · 15s (starved) $3.0542391.08 37.14%$1.02$72.62
Ad set total $325.3213,33011,3111.18 1,0287.71%$0.32$24.41

What the 1,402 “clicks” actually were

Meta's headline clicks metric counts every click on the ad unit, not just the ones that open your site. Only 72% of them were link clicks; the rest were reactions, saves, comments, shares, caption expands and taps on the page name. Read the link-click line, not the click line.

Click composition — why 10.73% is the wrong number
MetricCountCTRWhat it means
Meta's headline “clicks”1,43010.73%Every click on the ad unit — do not use this
Link clicks — opened the quiz1,0287.71%The real click-through rate
Unique link clicks9617.21%Distinct women who opened it
On-platform clicks4023.02%Reactions, saves, shares, page taps

Conversion down the ad funnel

Link clicks to landing to email to checkout
StageCountRate from previousCost eachSource
Impressions13,330$0.024Meta
Link clicks1,0287.71%$0.32Meta
Unique link clicks (people)96193.5%$0.34Meta
Opened the quiz996100%+$0.33PostHog
Answered question 143243.4%$0.75PostHog
Gave an email24757.2%$1.32Database
Reached the paywall247100%$1.32PostHog
Opened a checkout31.2%$108.44PostHog + Stripe
Paid00.0%Stripe

Video engagement

How much of each creative actually gets watched
Ad Impressions 50% watched 95% watched Reached 95% ThruPlays
A56 · Says Who · 15s 12,8545,0902,86622.3%2,798
A40 · Says Who 40s · 15s 421149.5%3
Three things in this data

Your real click-through rate is 7.71%, not 10.73%. Meta's headline clicks counts reactions, saves, shares and page taps — 402 of them. Only 1,028 clicks opened the quiz. 7.71% on cold broad targeting is still a strong ad; it is just not the number Ads Manager shows first, and planning against 10.73% would overstate your traffic by 39%.

The in-app browser handoff is excellent. 961 unique women clicked the link and 996 opened the quiz — PostHog counts more arrivals than Meta counts unique clickers, because Meta's pixel is blocked more often than your own first-party /ingest proxy. There is no measurable loss at this step at all.

The creative never fatigued. Frequency 1.18 across 11,311 women. You stopped because the funnel does not convert, not because the audience ran out — this targeting has a great deal of headroom whenever the paywall is worth feeding.

Meta undercounts your leads — the database is the truth

Meta reports 239 leads at $1.36. The database holds 247 email addresses, every one attached to a completed quiz, every one distinct — of which 243 are real and four are your own test addresses. The database is the only system that wrote a row, so it is the one to trust: your true cost per real email is $1.34.

Separately, A40 took $3.05 of $325 — 42 impressions. Meta concentrated delivery onto A56 within hours, so you still have no read on the 40s-targeted cut. It needs its own ad set with its own budget or it will never get delivery.

Quiz drop-off, every screen

Distinct funnel ids reaching each screen since the ad set went live, in the order she meets them. Bar length is volume relative to the first screen. Two screens lose almost everything; the other twenty-seven lose almost nothing.

Question Interstitial — no answer required Conditional branch — only some see it
s1-1Fitness that works with your body, not against it996
s1-2You're not unfit432−56.6%
s1-3How old are you?405−6.3%
s1-4A year from now, what would you most want to be true?394−2.7%
s1-5What's changed in the last few years?381−3.3%
s1-6It's physiology. Not willpower.370−2.9%
s2-1In a typical week, how much do you move?361−2.4%
s2-2Can you get up from the floor without using your hands?355−1.7%
s2-3Can you carry shopping up a flight of stairs without stopping?348−2.0%
s2-4Can you stand on one leg for 10 seconds?346−0.6%
s2-5By mid-afternoon, how do you usually feel?345−0.3%
s2-6Where do you feel stiff or achy in the mornings?344−0.3%
s2-7These aren't separate problems305branch
s2-8Do you ever leak when you cough, sneeze, laugh or jump?343−0.3%
s2-9Then we won't ask you to jump262branch
s2-10Anything we should work around?342−0.3%
s2-11Mobility first, then strength337−1.5%
s3-1How are you sleeping?336−0.3%
s3-2Are hot flushes or night sweats part of your day?3360.0%
s3-3Who else are you looking after at the moment?335−0.3%
s3-5What have you got at home?334−0.3%
s3-6Three days. Fifteen minutes. A chair.330−1.2%
s4-1When you've tried to get moving before, what got in the way?329−0.3%
s4-2Fifteen minutes is not selfish261branch
s4-3What matters most about staying strong?317−3.6%
s4-4What should we call you?310−2.2%
s4-5Where should we send your plan?294−5.2%
s5-1Putting your plan together244−17.0%
s5-5Paywall246
Read this shape, not the numbers

The bar collapses once, at the top, and then stays almost perfectly flat for twenty-five screens. 996 women see question one and 432 answer it. Of those 432, 57% go all the way to the paywall. Nobody is bored by your quiz — it holds attention better than most onboarding flows do, losing under 2% per question through the middle.

The second real leak is the email gate: 294 reach "Where should we send your plan?" and 247 give an address, so 47 women complete a 25-question quiz and then refuse. That is the most expensive 18% in the funnel, because every one of them was already qualified.

Answer rate on the questions that record one

Screens that fire a submit event convert at 95–100% — she answers essentially every question she is shown. The blanks are interstitials with only a Continue button, or the free-text name and email screens, which do not emit the event.

Viewed versus answered
ScreenViewedAnsweredRate
s1-1 · First question99643243.4%
s1-3 · How old are you?40539497.3%
s1-4 · A year from now…39438196.7%
s1-5 · What's changed…38136495.5%
s2-4 · Stand on one leg34634599.7%
s2-8 · Do you ever leak…34334299.7%
s3-1 · How are you sleeping?336336100%

Note what this rules out. The intimate questions — incontinence, hot flushes, who you care for — convert at 99–100%. Sensitivity is costing you nothing. The only screen with an answer-rate problem is the first one.

Paywall event analytics

All paywall events in the ad set's window, split by pricing arm. The experiment went live mid-afternoon on 23 August, so the 114 pre-experiment visitors are this ad set's earlier traffic, who saw the old $99 / $45 / $16 ladder before assignment existed.

Paywall funnel by pricing arm, distinct people
ArmOfferViewed ScrolledScroll rateAbandoned CheckoutsView → checkout
founding49$99 → $49 once733750.7%3634.1%
weekly8 (charges $9)$99 anchor, $16 → $9/wk603558.3%2700.0%
pre-experiment$99 / $45 / $161145649.1%4600.0%
All24712851.8%10931.2%

How far down the page she gets

People reaching each scroll depth, by arm. Every checkout came from the shortest-read arm.

founding49
37
20
17
10
weekly8
35
27
18
16
pre-exp.
56
29
15
10
25%50%75%100%
The counter-intuitive bit

weekly8 is read more thoroughly and bought less. 46% of its scrollers reach the bottom of the page against 27% for founding49, yet founding49 produced all three checkouts and weekly8 produced none. Reading further is not interest — it is looking for the catch. An $8-a-week price anchored against $99 invites her to work out what the total is; $49 once needs no arithmetic.

At 73 versus 60 people this is nowhere near significant and you should not call the experiment on it. But it is the only directional signal you have, and it points the same way as every checkout that has ever opened.

Half of them never scroll at all

119 of 247 paywall viewers produce no scroll event whatsoever. They land on the price and leave without moving the page. Combined with 109 explicit abandon events, the paywall is not losing an argument — it is not getting one started.

Every checkout this ad set produced

Stripe livemode, filtered to real people. Four sessions across three consecutive days — but only three have a matching client-side event, so only three are evidence that a woman actually tried to pay. All on the $49 one-time plan, all founding49, all arriving through the Facebook in-app browser. None of them paid.

Real user checkout sessions
Opened (UTC) Email Amount Location Device Checkout type Outcome
23 Aug 15:45howellshari3@…$49 TorontoAndroid · FB appHosted Expired unpaid
24 Aug 03:05sunseeker67@…$49 WinnipegiPhone · FB appHosted Open, unpaid
25 Aug 01:13haldanetara09@…$49 EdmontoniPhone · FB app No checkout event
25 Aug 03:19nadinedesroches08@…$49 TorontoAndroid · FB appEmbedded Started, closed in 0.93 s

Everything else in the Stripe account within this window is noise and is not counted: four sessions from your own Hong Kong IPs, and one from a curl/8.7.1 scraper.

A Stripe session is not proof she tried to pay

haldanetara09 has a live $49 Stripe session with her email on it — and no checkout event of any kind. Her last recorded action is landing on the paywall; the session appears four seconds later with no click, no scroll, and no checkout_screen_viewed in between.

haldanetara09 — last recorded seconds
Time (UTC)Event
01:13:18.320paywall_viewed
01:13:19.165paywall_section_viewed — last event, ever
01:13:23Stripe session created — no click recorded

There is no checkout_started for her either, client-side or server-side. So either her analytics died while the page kept working, or something creates sessions without a deliberate click. Until that is resolved, Stripe session count overstates real intent.

Fixed — deployed 25 Aug

Seven checkout_started events exist in total, and the two most recent — the only ones from the embedded flow — carried no $session_id and no quiz_public_id, because that flow fired them server-side. They could not be opened as a replay, attributed to a pricing arm, or joined to a Stripe session.

The justification was that in-app browsers never deliver client-side PostHog events. Measured across this ad set: 38,367 client events from 1,027 people, 94% of them inside the Facebook or Instagram browser, every day the ads ran. The original observation was real but was a different, already-fixed bug. Those four events were moved back to the browser and deployed to production on 25 August, so the join works again from the next visitor onward.

Four of the seven checkout_started events are the founder's own tests, so filtering that event without excluding them roughly doubles the apparent demand.

What the sheet-close data does and doesn't say

Every embedded checkout that has opened has also closed — but the dwell times say these are not all the same event:

Embedded checkout sheet, all opens to date
WhoOpenedOpen for
Your own test (HK)00:54:5011.6 s
nadinedesroches0803:19:270.93 s
Your e2e test03:26:3713.5 s

Your two tests held the sheet open for 11–13 seconds, which reads as looking at it and dismissing it deliberately. So checkout_sheet_closed is an ordinary dismissal event, not evidence of a crash. Only nadinedesroches08's 0.93 s is anomalous — an order of magnitude faster — and that is a single observation which could equally be a mis-tap outside the sheet. Worth reproducing; not yet a finding.

Separately, and still true: Apple Pay is not a Stripe payment_method_type — it is a wallet carried on card, so ["card"] does not by itself disable it. What the embedded sessions did drop is link and amazon_pay, and payment_method_configuration_details is null where the hosted sessions carried pmc_1RebPq….

The read

The ad is not the problem and neither is the quiz. A 7.71% link click-through rate, a $0.32 link click, a real email address for $1.34 and a frequency of 1.18 are numbers most advertisers would take happily — and the audience is not close to saturated. A quiz that loses under 2% per question across twenty-five questions, including questions about incontinence, is a well-built quiz. Both are assets.

The economics do not work yet and are not close. Three checkout attempts on $325 is $108 each. Even if every one had paid — and none did — that is $106 spent to earn $49. The gap is not a tuning problem; it is roughly 2x, and that is the optimistic reading where checkout converts at 100%. At a realistic 30% it is 7x.

What I would do, in this order

  1. Watch these four replays first. These are the four women with a live Stripe session — but only three fired a checkout event. Two reached the hosted page, one started the embedded flow and closed it in under a second, and haldanetara09 fired nothing at all. Watching them is the fastest way to learn which of those is a bug.
    Session replays — the four who attempted payment
    WhoWhen (UTC)CheckoutReplay
    howellshari3@23 Aug 15:42Hosted 01a02f49…
    sunseeker67@24 Aug 02:57Hosted 01a031b4…
    haldanetara09@25 Aug 01:09No event 01a03676…
    nadinedesroches08@25 Aug 03:10Embedded 01a036e5…
  2. Reproduce on a real phone, and fix the instrumentation. Walk the funnel in the Facebook in-app browser and tap “Start my plan”. Two things to settle: whether the sheet can dismiss itself, and how a Stripe session gets created with no client-side event. Until the second is answered, session count overstates intent.
  3. Make the first screen respond instantly. 564 women lost on one tap is the biggest single number in this document. The page is one 487 KB document — 263 KB over the wire even compressed, carrying 110 KB of JavaScript, 73 KB of CSS and all 29 screens inline. On a mid-range Android in the Facebook browser that parses for a noticeable beat after first paint, and taps landing in that window get swallowed. This is a hypothesis, not a finding — but it is testable in an hour and it is the one plausible mechanical explanation for a 57% drop on a screen whose successors convert at 97%.
What would change the verdict

One completed purchase. Everything here is a funnel with a zero at the end, and zero divided by anything is still zero. The moment a single stranger pays $49, every ratio above becomes a real conversion rate you can optimise instead of a hypothesis.