osprex.ai · Custom Build campaign · paid funnel audit

Osprex Funnel Audit

Published Sep 14, 2026 · report #1
Meta data: Sep 1–12, 2026 (Ads Manager, reports through yesterday) CRM: GHL through Sep 14 Pixel 1572265074377416: Aug 17–Sep 13 VSL engine: since Sep 5
01
The bottleneck is upstream of the page: 74% of your landing-page views and 3 of your 4 "booked calls" came from Audience Network in-app placements for 14% of the spend. Those are game/app click-throughs and bot sign-ups (Colombian numbers, fake area codes, garbage names). Meta learned from them, so the Schedule optimization is now chasing more of the same.
02
The $200 cost-per-result cap is strangling delivery. Daily spend fell from $124 (Sep 5) to $22 (Sep 10) against a $200/day budget. With no real conversions to bid on, the cap tells Meta to stop buying.
03
Real traffic (Facebook + Instagram) is 216 landing-page views for $758, and it produced one bookable human who didn't show. That is 0.5% LPV→booking and ~$760 per booking. The page then loses 95% of visitors before they press play on the VSL.
04
The old Osprex Demo campaign (→ /rei, old pixel) is still running and spent more than the new one: $1,151 for 5 form leads, 0 shows. It is not part of this funnel but it is most of your September ad bill.

Campaign totals, Sep 1–12

Spend
$889
$200/day budget, ~$74/day actual
CPM
$34.90
FB $30 · IG $137 · AN $16
Link CTR
5.43%
1.61% without Audience Network
Landing page views
845
$1.05 each · $3.51 excl. AN
"Schedules" (Meta)
4
$222 each · 3 spam, 1 no-show
Real cost per booking
$889
1 human booked, 0 showed

Where the traffic actually came from

Platform breakdown of the one ad set ("Talking Head Ad Angles"). Placements are manual with Advantage+ placements off, and Audience Network is checked. Instagram is buying impressions at a $137 CPM, which means the creative has almost no engagement signal there.

PlatformSpendShareImpr.CPMLink clicksCTRCPCLPV$/LPVSchedulesRead
Audience Network (in-app)$127.9314%8,118$15.761,10313.59%$0.12626$0.203junk
Facebook (Reels $227, Feed/other ~$228)$455.1451%14,962$30.422421.62%$1.88187$2.430real, weak
Instagram$303.1334%2,209$137.22351.58%$8.6629$10.451overpriced
Threads / WhatsApp / uncategorized$2.970%189430noise
Total$889.17100%25,478$34.901,3845.43%$0.64845$1.054

Within Facebook: Reels took $227 for 26 clicks ($8.75 per LPV); "Ads on Facebook Reels" took $29 for 11 clicks at 0.11% CTR; Stories did 17% CTR on $11. The Instagram "Schedule" is Cris De Souza (cruise line, Sep 13, no answer).

Funnel, stage by stage

Red is the Audience Network share. Follow the blue: that is the funnel you are really paying for.

ImpressionsMeta
25,478
AN 32%
Link clicksMeta
1,384
5.4% CTR · AN 80%
Landing page viewsMeta · pixel PageView 2.3K since Aug 17
845
61% of clicks · AN 74%
VSL playspixel VSLPlay, all traffic
126
~5% of page views
Watched to 50%pixel VSL50
10
8% of plays
Booked (Meta Schedule)ad set, Sep 1–12
4
3 spam · 1 real
Showed
0
All paid trafficAudience Network share

Page views are not tracked server-side, so the play-rate denominator is the pixel's 2.3K PageViews (Aug 17–Sep 13, all sources incl. organic and bots). Even against paid LPVs only since Sep 5 (81), plays attributed to ads in the engine are 10 — a 12% play rate at best. Either way, roughly 9 in 10 people who reach the page never start the video.

VSL watch depth (vsl-0905, since Sep 5)

MilestoneEngine (deduped per browser)Pixel events% of starts (engine)
Play30126100%
25% (~1:34)1447%
50% (~3:08)71023%
75% (~4:43)4613%
95% (~5:58)227%

Half of the people who press play are gone before 1:34. Of the 30 engine-tracked plays only 10 carry an ad attribution (Angle 2 ×3, Angle 6 ×2, Angle 5 ×2, Angles 8/9/10 ×1) — the rest is organic and dialer traffic. Sample is tiny; the play-rate number is the one to act on, not the drop-off curve yet.

Daily spend: the cap is choking delivery

$22
9/1
$90
9/2
$31
9/3
$111
9/4
$124
9/5
$119
9/6
$99
9/7
$99
9/8
$46
9/9
$22
9/10
$48
9/11
$77
9/12

Budget is $200/day; the ad set never got close and has been decelerating since Sep 9. Three of the four "Schedules" landed on Sep 2 (the Audience Network spam burst), the fourth on Sep 4. Since then: zero conversions, and the algorithm has nothing under $200 to bid toward. Sep 1 and Sep 4 also show 3.4K and 10.1K impressions at 0.5% CTR — cheap Reels/AN inventory being sprayed.

By ad

Angle 2 got 65% of the budget because it "converted" — all four Schedules are on it, three of them fake. The CTR column is polluted by AN (Angle 6's 16% CTR is $0.10 clicks). Angle 3 is the tell: 7,096 impressions at a $2.78 CPM and 0.10% CTR is Meta dumping it into Ads-on-Reels overlays nobody clicks.

AdSpendImpr.CPMLink clicksCTRCPCLPV$/LPVSched.GHL leads
Angle 2$575.0510,322$55.715885.70%$0.98330$1.7446
Angle 1$71.872,300$31.25994.30%$0.7362$1.1600
Angle 9$61.08860$71.02849.77%$0.7355$1.1100
Angle 6$41.532,467$16.8339816.13%$0.10240$0.1702
Angle 7$38.47848$45.37829.67%$0.4755$0.7000
Angle 5$34.10390$87.44184.62%$1.8914$2.4400
Angle 8$29.50707$41.738512.02%$0.3561$0.4800
Angle 3$19.727,096$2.7870.10%$2.828$2.4600
Angle 10$11.47247$46.44145.67%$0.8210$1.1500
Angle 4$6.38241$26.4793.73%$0.7110$0.6400
10 ads$889.1725,478$34.901,3845.43%$0.64845$1.0548

No ad has enough clean traffic to be judged on creative yet. Frequency is 1.1–1.3 across the board, so fatigue is not a factor.

Every lead this campaign produced (GHL, tag custom build - osprex / first-touch campaign)

DateContactAdWhat happenedVerdict
Sep 2 12:52Johanna · +57 312… (Colombia)Angle 6Form fill, no bookingspam
Sep 2 14:06Petra Marmol · +1 311… (invalid area code)Angle 6Dialer no-showspam
Sep 2 15:16Juan José León Toro · +57 304…Angle 2Booked (Meta Schedule)spam
Sep 2 15:40Paola Andrea Téllez · +1 312…Angle 2Booked · F – Invalid Numberspam
Sep 2 15:43María Luisa Arevalo · +1 313…Angle 2Form fill, dialer no-showspam
Sep 2 15:49"Alexxx" · +57 300…Angle 2Booked (Meta Schedule)spam
Sep 4 15:48Elvaince Menelas · Done Deal FundingAngle 2Booked · No answer · no-showreal, no-show
Sep 7 06:45"Ngwykbvf Hwwhvh" · Dqiddi LLC · +1 521…noneForm fill, dialer no-showbot (passed phone check)
Sep 13 02:46Cris De Souza · Victory Cruise LinesAngle 2 (IG)Booked · No answerreal, off-ICP, no-show

Six Spanish-named sign-ups inside three hours on Sep 2, four with Colombian numbers, all from Audience Network in-app — that is an incentivized-install app farm, not a targeting leak (the ad set is US-only; Colombia was later added as an exclusion, which does nothing against this). The US phone check shipped mid-day Sep 2 and stopped the +57 numbers, but 311/312/313/521 all pass a NANP regex, and "Ngwykbvf Hwwhvh" walked straight through on Sep 7.

The other campaign is still burning

Osprex Demo Campaign (account 1557381365880920 → osprex.ai/rei, old pixel, Lead-optimized) spent $1,150.77 Sep 1–12 for 5 "Website Leads" at $230 each: Angle 5 $444 (1 lead), Angle 9 $348 (1), Angle 3 $136 (2), Angle 8 $123 (1). The two that reached GHL with attribution (Joe Pinto, chris grant) are both dialer no-shows. Combined September spend across both accounts is ~$2,040 for zero demos held.

What to do, in order

Best · do today

Cut the junk supply before touching anything else

  • Placements: edit the ad set → manual placements → uncheck Audience Network entirely, and uncheck "Ads on Facebook Reels" (overlay). Keep Facebook Feed, Instagram Feed, Instagram Stories/Reels, Facebook Reels. Do not switch to Advantage+ placements — that re-enables AN.
  • Bid strategy: drop the $200 cost-per-result goal → Highest volume. A cap on a pixel with 1 real conversion only throttles; it cannot protect you.
  • Optimization event: keep Schedule only if you accept ~$100–150/day of exploration for 2–3 weeks. Cheaper path: optimize for a VSL50 custom conversion for one week — it is a quality signal humans produce and bots don't, it exists on the pixel already (10 events), and it steers delivery back to people who watch — then move to Schedule once you have 10+ clean bookings.
  • Reset the learning: duplicate the ad set rather than editing in place so the three fake Schedules stop shaping delivery.
  • Form hardening (engine + site): server-side phone validation in /app/lead (reject on the server, not just the modal), an area-code allow-list (311/312-ish sequential fakes and unassigned NPAs like 521 should fail), a hidden honeypot field, and Cloudflare Turnstile on step 1. Bot leads are currently fed to CAPI as conversions, which is how this loop started.
Second · this week

Fix the page's one real number: play rate

  • ~95% of visitors never press play. Test: autoplay muted with captions and a "tap for sound" state; make the poster frame the first thing in the viewport on mobile (currently the pain-mirror hero copy sits above it); shorten the headline above the player to one line.
  • Half of starters leave before 1:34 — the first 60–90 seconds of the 6:17 cut need the payoff, not the setup. Cut a 2:30 version and split-test by slug (videoSlug already isolates stats per cut).
  • Add a "book without watching" CTA under the player — real leads are booking off the copy anyway (the one human booked on Sep 4 from Angle 2).
  • Instrument page views server-side (a pageview event next to vsl_progress) so play rate stops depending on a pixel count that includes bots and organic.
  • Decide on the old Osprex Demo campaign: pause it, or repoint its ads to the tracked root funnel. At $230 per unreachable form lead it is your biggest line item.
Avoid

Don't scale, don't rewrite creative, don't trust "Schedules" yet

  • Raising budget or launching new angles now buys more Audience Network sign-ups and teaches the pixel harder.
  • No ad has 100 clean clicks; ranking angles on CTR today ranks placements, not hooks. Re-read ads after one week of FB/IG-only delivery.
  • Stop reading Website Schedules / cost per result as the KPI until the form is hardened. Use GHL contacts with a dialer disposition as the source of truth.
  • Don't add Colombia-style geo exclusions to chase this; it's a placement problem, and the traffic is already US-only.

Data notes