Nonprofit
360 leads in a week that mostly weren't leads
A nonprofit's Meta account reported far more leads than real form fills. I stopped the over-count the same day, then rebuilt the tracking properly.
- // symptom
- Meta showed 360 Leads in 7 days, far more than the real form submissions.
- // cause
- A Lead event fired on page load of a bridge page (about 75%), and Meta's autoConfig invented events on non-form pages (about 25%).
- // fix
- A same-day hot patch to fire Lead only on form success. Then GTM with autoConfig off, server-side CAPI with a shared event ID, and a Google Ads rebuild.
- // result
- About 93% of non-PageView events were identified as noise, and 14 over-firing sources were removed across 7 landing-page variants.
- 01 Meta Lead, last 7d 360 ⚠
- 02 bridge page load → fbq Lead ✗
- 03 autoConfig Leads on non-form pages ✗
- ── patch: Lead on form success only ──
- 04 direct bridge visit → 0 Lead ✓
- 05 CAPI Lead · shared event_id ✓ 200
- Meta Pixel
- Meta Conversions API
- GTM
- Google Ads
- WordPress
The problem
A nonprofit running a small ad budget saw Meta report 360 leads in a week. The inbox didn’t agree. Their priority was blunt: stop the over-reporting today.
What I found
I pulled the event export and sampled the Lead events.
- About 75% came from a
Leadevent that fired when a “bridge” page loaded. Refresh it, bookmark it, come back to it: another lead. - About 25% were phantom events. Meta’s autoConfig was inventing Leads and other events on pages with no form at all.
Across the account, roughly 93% of non-PageView events were noise. A server-side mirror of browser events was also running quietly in the background.
Same day: the hot patch
I removed the page-load Lead and fired it from the form’s success callback instead. Leads now mean a form was actually submitted.
Then the rebuild
- Moved the pixel into GTM with autoConfig turned off.
- Built a server-side Conversions API Lead from the form handler, sharing an event ID with the browser so Meta dedupes the pair.
- Added a server-side Purchase from the payment provider’s notifications.
- Rebuilt Google Ads conversions (it had been counting page views as conversions) with Lead and Purchase actions and Enhanced Conversions.
- Applied the same fix to 7 landing-page variants, removing 14 over-firing sources.
How I proved it
Visiting the bridge page directly now fires no Lead. Tag Assistant confirmed Lead fires only on a successful form submission. The server log showed Meta accepting the CAPI event. A scripted check of the retired landing pages passed 40 of 40.
Handed off
A few settings only the account owner can change, like domain verification and event priority order, went to the client as a short checklist.
"He went above and beyond the original request, delivered clear documentation of his work product..."
Seeing something like this?
Tell me what's not counting