On this page
Every tracking guide says to run the pixel and the Conversions API together, and almost none of them says why, so it gets treated as belt and braces. It is not. The two are sending the same event over two routes with different failure modes, and the reason the setup is worth doing properly is what happens when only one of them arrives.

Two copies of one event
| Browser pixel | Conversions API | |
|---|---|---|
| Sent by | The merchant’s phone | Your server |
| Stopped by | iOS settings, ad blockers, Safari, a page that never finishes loading | Nothing |
| Carries | The event and its ID | The event, its ID, and the hashed contact details |
| Arrives | Most of the time | Every time |
The browser copy has been the unreliable one since the iOS privacy changes, and on funding traffic that is eighty to ninety percent phones it is unreliable in exactly the population you care about. Running it alone means an unknown share of your qualified leads are invisible to the optimisation: Meta is learning from a sample that was filtered by which merchants happen to run an ad blocker, which has nothing to do with which merchants fund.
Deduplication, and why it is the thing to check
Both copies are sent with the same event ID. Events Manager matches them, sees one event rather than two, and keeps the better-attributed copy. On GoHighLevel and the main WordPress plugins that ID is put on both copies for you; a custom build passes it itself, which is what the event ID in the fbq call is for.

This is the failure worth being afraid of, because it does not look like a failure. Two copies counted separately means the account reports twice the leads it produced, so the cost per lead halves overnight and the campaign looks like the best thing you have ever run. Meanwhile the optimisation is running on duplicates and the phone is not ringing any more than it was. A $24 cost per lead that is really $48 is worse than knowing it is $48.
What this means for the build
- Fire both copies from the same moment: the load of the qualified page, after the one-time passcode has come back. Two copies of an event that fires in the wrong place are still two wrong events.
- Put the hashed contact details on the server copy. That is the half of the job the browser copy cannot do, and without it Meta cannot attribute the event to an ad click.
- Never send the disqualified path down either route. The rule about what gets sent back applies to the server copy exactly as it does to the pixel, and a server event is easier to fire by accident.
- Run the test in Events Manager with the test event code so it does not touch live data, and confirm one deduplicated Lead rather than two.
None of this is difficult, and on a hosted page builder most of it is a switch. It is on the list because it is invisible: a pixel-only setup and a correctly deduplicated one look identical from the outside, and the difference shows up months later as a campaign that never quite learned who to find.
Questions brokers ask
Do I need the Conversions API if I already have the Meta pixel?
Yes. The browser pixel is blocked by iOS settings, ad blockers and slow pages, so a share of your leads never reaches Meta. The Conversions API sends the same event from your server, where nothing can block it.
Will sending the lead twice double-count it?
Not if both copies carry the same event ID. Events Manager matches them and keeps one. If they do not carry the same ID, every lead counts twice, your cost per lead looks half what it is, and the optimisation is running on duplicates.
How do I check that deduplication is working?
Open Events Manager, go to your event, and look at the Deduplicated column. It should be filling up. If it is empty, the two copies are not being matched and the setup needs fixing before anything else.
What is an event ID in the Meta pixel?
A string sent with both copies of the same conversion so Meta can recognise them as one event. GoHighLevel and the main WordPress plugins set it for you; a custom build passes it in the fbq call and in the server payload.
Which copy does Meta keep when both arrive?
One event, with the better attribution of the two. In practice that usually means the server copy, because it carries the hashed email and phone that let Meta match the lead back to the ad click.
Reference
The video this comes fromThe two-route diagram, the ten-step build and the transcript in full.
