All case studies

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.
  1. 01 Meta Lead, last 7d 360 ⚠
  2. 02 bridge page load → fbq Lead ✗
  3. 03 autoConfig Leads on non-form pages ✗
  4. ── patch: Lead on form success only ──
  5. 04 direct bridge visit → 0 Lead ✓
  6. 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 Lead event 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..."
Nonprofit client, via Upwork · 5 out of 5 stars

Seeing something like this?

Tell me what's not counting