Mode: Period Comparison • Period A (Mar 18 – Apr 11) vs Period B (Apr 12 – Apr 23, 2026)
The question: the LP went from producing ~0.4 leads/day to 0 leads/day starting April 12. Why?
The method: two-period behavioral comparison using Microsoft Clarity (aggregate metrics, session recordings, clicked-text analysis, JS errors, device + referrer breakdown), cross-referenced with live in-browser LP inspection and Meta Support's own platform acknowledgment.
What you'll find: two problems stacked, one client-specific and fixable, one platform-wide and officially acknowledged. The diagnostic path, the evidence, the fix deployed, and the remaining uncertainty.
The GHL form iframe was embedded from a Cloudflare-fronted custom domain (link.revelationmarketing.ca). Cloudflare's Bot Fight Mode began serving cross-origin iframe requests with HTTP 403 Cf-Mitigated: challenge + X-Frame-Options: SAMEORIGIN, causing the iframe to silently fail to render for a growing share of cold mobile traffic. Users saw a VSL, scrolled to where the form should be, saw nothing, rage-clicked, and left.
Iframe source swapped from the custom domain to api.leadconnectorhq.com (GHL's native API domain — same form, same workflow, no Cloudflare challenge). Live browser test in a previously-broken session confirmed the iframe now renders at full size in ~1.2 seconds. EMQ wiring and CAPI Lead event preserved.
Meta Support confirmed in writing on April 23: "widespread technical issue related to iOS model prediction degradation that began in mid-March. This has caused significant CPA spikes and delivery instability for several advertisers, particularly those targeting US-based audiences with high iOS densities." Also confirmed investigating an attribution-sync discrepancy from the mid-March attribution setting updates. JC's account fits both profiles exactly.
Period A converters produced multi-step form interactions: tapped field placeholders (rendered as bullet-dots in Clarity), entered text, clicked "Next" between form steps, clicked "Book My Free Marketing Audit" to submit, landed on /booking-confirmation. Period B users produced zero "Entered Text" events, zero "Next" clicks, zero submissions, and instead rage-clicked on phantom hashes at the form location — the behavioral signature of tapping where a form should be but isn't responding.
Confidence the iframe fix is the dominant cause of the lead collapse: ~70% (up from 55% earlier today after the behavioral comparison). The phantom-click pattern in Period B vs the text-entry pattern in Period A is strong evidence. Lead flow should resume within 24-48 hours; lead volume may remain suppressed until Meta's iOS model prediction fix ships. Pipeline re-engagement (Roberto et al.) is the uncorrelated revenue lever for what remains of April.
| Metric | Period A Mar 18 – Apr 11 (25 days) |
Period B Apr 12 – Apr 23 (12 days) |
Read |
|---|---|---|---|
| Total sessions | 587 | 771 | +31% volume, 3x daily rate |
| Bounce rate | 88.4% | 100% | Nobody progresses past LP in Period B |
| Avg scroll depth | 37.4% | ~49% | More engagement with no output — users reach form area |
| Avg session duration | 1.76 min | ~2.0 min | Similar time on page |
| Dead / Rage / Quickback clicks | 14 / 0 / 0 | 1 / 0 / 0 | No quickback → ad-LP scent mismatch is not the cause |
| Booking-confirmation visits (completed form) | 8 | 0 | Implied CVR 1.36% → 0% |
| Real form submissions (per GHL) | 10 | 0 | Source of truth for real conversions |
| New / Returning sessions | 497 / 89 (85/15) | 673 / 98 (87/13) | No shift in audience composition |
| Phantom-click ratio | ~60% | 91% | Clicks on invisible elements spiked — form-area failure signature |
95% of all sessions are mobile (Period A: 556/586). Desktop and tablet combined are 5%. Any issue that only affects mobile browsers affects ~everyone.
Period A: IG 365 (62%) • FB 188 (32%) • Direct 30 (5%).
Period B (Apr 17-23): IG 182 (63%) • FB 91 (31%) • Direct 12. Mix unchanged.
Period B: IG mobile 1.88 min / 62.7% scroll. FB mobile 2.76 min / 33.2% scroll. FB users spend 50% more time but scroll half as deep. FB in-app webview has stricter 3rd-party cookie posture — a prime candidate for Cloudflare challenge exposure.
Type: Technical • Device: Mobile (95% of traffic) • Evidence: Live browser test showed display: none; opacity: 0; width: 0; height: 0. curl of form URL with mobile UA + referer returned HTTP 403 Cf-Mitigated: challenge + X-Frame-Options: SAMEORIGIN. Zero postMessage events from iframe over 6-second parent listener. 91% phantom-click rate in Period B (vs 60% in Period A).
Fix: Iframe src swapped from link.revelationmarketing.ca to api.leadconnectorhq.com. Live browser now renders iframe at 694×1400px. Deployed April 23.
Type: Platform (external) • Device: iOS audiences disproportionately • Evidence: Meta Support confirmed in-writing April 23 tracking a widespread technical issue since mid-March causing CPA spikes + delivery instability. Matches JC's Reddit-sourced "Complete crash after Sunday" thread (r/FacebookAds, 40 upvotes, 10+ buyers reporting identical 3-day zero streaks). Matches JC's account timeline exactly.
Fix: Not under client control. Monitor weekly via Meta Support. Throttle budget (already at $50/day). Expect suppressed volume until Meta's model fix ships.
Type: Platform reporting • Evidence: Meta Support: "I am also investigating a potential discrepancy in how conversion signals are being processed following the mid-March attribution setting updates." Matches the industry-wide engage-through rebucketing Meta shipped in March 2026. Ads Manager conversion numbers unreliable; backend (GHL, Stripe) is source of truth.
Fix: Read conversion counts from GHL pipeline, not Ads Manager dashboard. Note discrepancy in scorecard.
Type: UX • Evidence: Period A was a custom HTML multi-step form ("Book My / Your Free Marketing Audit", "Next" button clicked 22 times, rich "Entered Text" events). Period B is a single-page GHL iframe form ("Book Your Free Strategy Call", no "Next" navigation). Even if the iframe renders correctly, the offer framing and friction profile changed. Period A CVR was 1.36%; below the >3% benchmark; friction was already present before the iframe break.
Fix: Post iframe-fix, measure post-fix CVR. If <1%, consider A/B test of multi-step vs single-page layout and field reduction.
Type: Creative / hook • Evidence: All-time play rate 9%, April daily average 8%, some days (Apr 19) 0% of loaders pressed play. Avg % watched 37% (below 45% benchmark). Has been a chronic pattern, not tied to the zero-lead window.
Fix: Deferred until iframe + platform clear. Thumbnail / first 3-second re-test when priorities allow.
Watched reviewed session recordings of Roberto (Apr 1), Azadeh (Apr 3), Amira (Apr 3), Abdul (Apr 3). Every converter produced this exact click + type sequence over 2-4 minutes of active duration:
/booking-confirmation?name=[first name]Zero "Entered Text" events. Zero "Next" clicks (no multi-step form in Period B). Clicks on phantom outer-page hashes (wl4v5j27, 2uvyxohn2, ▫▫) 6-17 times per session. No navigation to /booking-confirmation. Classic signature of "form area is present in the DOM but the iframe content isn't responding."
Post-fix desktop screenshot (April 23, after domain swap): the form section now renders fully with heading "Book Your Free Strategy Call," the $10K revenue-floor notice, and all form fields visible (How are you handling marketing, biggest challenge, local area, Business Name / Website / Socials, $3,500 investment ready). Form is interactive. Iframe fully loaded.
Pre-fix state (reproduced in fresh Chrome MCP session): same page, same form container, but iframe was at display: none; opacity: 0; width: 0; height: 0. Where the form should be: blank space. This is what users saw who hit Cloudflare's challenge without a passing __cf_bm cookie.
Why Brandon couldn't reproduce it in his own incognito: Cloudflare's bot scoring uses IP reputation, automation fingerprints, and cookie history. A residential iPhone in incognito with no prior GHL admin visits can often pass. Automated browsers, some FB in-app webviews, and certain mobile configurations don't. This is why manual QA missed it — the bug was visible only to a subset of real traffic invisible to the tester.
Why: Iframe fix deployed April 23. Need to see whether leads resume to validate the diagnosis.
Impact: HIGH • Effort: QUICK
Measure: GHL pipeline new-opportunity count • Clarity /booking-confirmation page visits • CAPI Lead event in Meta Events Manager (EMQ ≥ 8.0 target from B-036)
Why: Roberto ($4K/mo DFY candidate, no BAMFAM per B-029b), No Show stage, Ghosted stage. Latent revenue that doesn't depend on ads, iframe, or Meta model fixes. Best April lever.
Impact: HIGH for April revenue • Effort: MEDIUM (JC time + coaching)
Measure: Responses → re-booked calls → closed deals in next 7 days
Why: Volume will stay suppressed until Meta ships the model prediction fix. Need ETA to plan budget + creative cycles around it.
Impact: HIGH for volume recovery • Effort: QUICK (weekly ping)
Measure: Meta Support bug acknowledgment notes • r/FacebookAds sentiment tracking • CPA trend in account once platform stabilizes
Why: B-036 goal was EMQ ≥ 8.0 via GHL iframe CAPI dedup. Domain swap shouldn't regress this, but needs confirmation on first real submission.
Impact: MEDIUM for pixel conditioning • Effort: QUICK (check Events Manager)
Measure: EMQ score on first post-fix Lead event in Meta Events Manager
Why: Brings the custom-branded domain back into play for future use. Not urgent now that the fix works via the native domain, but worth fixing at the source so the branding option survives.
Impact: LOW for JC short-term, MEDIUM for Growth OS methodology • Effort: QUICK (copy-paste ticket with headers evidence)
Measure: GHL response + whether they offer an embed-origin allowlist or Bot Fight relaxation
Next 48 hours: watch for first real form submission in GHL pipeline. When it lands, check EMQ in Meta Events Manager. Confirm /booking-confirmation Clarity session appears.
Monday April 28 checkpoint: if lead flow returned → re-run this analysis in Mode 2 (Performance Check) on the post-fix period to establish new baseline. If lead flow still flat → escalate to session-recording replay of post-fix sessions + deeper Meta platform investigation.
Rerun cadence: weekly during platform turbulence. Monthly in normal conditions. Triggered by scorecard CVR drop ≥ 20%.