Vibrantix.
Funnel architecture · Client J · Webinar 1
One webinar · nine days

$5,700 in ads. $100,000 back.

Return on ad spend
17.5×
Ad spend
$5,700
Contracted
$100,000
Enrolments
6 of 16 calls

Every page behind it

Four opt-in variants, one two-step form, two thank-you pages, one tracking page. Click any box to open what it does and why it is built that way.

01Opt-in pages, A/B tested4 variants → 1 winner

One skeleton, four angles

Every variant keeps the same structure and changes only the angle, so a winner tells you something you can reuse. Change two things at once and the test tells you nothing.

  • Qualifying line above the headline. Its job is to make the wrong person leave.
  • Headline names the real reason they are stuck, not the outcome they want.
  • Three pillars, then date, time, location and price in one row.
  • One button. Nothing else on the page is clickable.
  • Read rule: only call a winner on a gap of 5 percentage points or more. Less is noise.
02The two-step formregister first, ask second

The order is the whole trick

Step two sits after the registration, never in front of it. Put the question first and it becomes a gate. On a launch where we did exactly that, 46.8% of the people who typed their name and email were never registered at all.

  • The page above the form already says "for entrepreneurs doing more than €10K a month", so the question only confirms what the page has already filtered for.
  • Under €10K and no business yet are the unqualified answers here.
  • The answer is stored on the person's row, right next to the ad that produced them.
  • Five seconds is in the subhead on purpose. It is the reason people finish it.
03Two thank-you pagesonly one of them teaches Meta

Send Meta only your buyers

Meta optimises toward whatever you report as a conversion. Report everyone and it goes and finds you more of everyone. Report only the qualified and it starts hunting for people who look like buyers.

  • A custom event, e.g. QualifiedRegistration, fires only on the qualified page.
  • The ad set optimises for that event, not for "Lead".
  • Your cost per lead gets worse. Cost per qualified registration is the number you judge.
  • Stronger version: send it server-side through the Conversions API so it survives ad-blockers.
04The custom analytics pagethe part nobody builds

Why it has to be custom

The ad platform stops at the opt-in. The CRM starts at the call. Nothing joins them, so nobody can tell you which ad produced the person who paid. This page is that join.

  • A dynamic UTM stamps the ad name onto every click: utm_content={{ad.name}}
  • Stored on the registrant's row with their variant and their step-two answer.
  • Joined to calls and enrolments on email, then grouped by ad.
  • On this launch it showed the best click-through in the account produced 4 registrations at $25 each, while the worst click-through produced 18 at $19.

See the live tracking page →

Client anonymised. Dollar figures converted from EUR at the time of the launch (~€5,050 spend, ~€87,000 contracted); ROAS is contracted revenue over ad spend. Contracted includes payment-plan balances not yet paid. Form screenshots reproduced from the client's live build. The four-variant structure and the 5-point read rule are our standard build. The 46.8% figure is from a different launch where the question was placed in front of the registration.