Duplicate events
Five ways one conversion becomes two, how to tell them apart, and why a second plugin is the most common cause.
updated
Double counting happens when the two copies of an event do not share an event ID. That is the whole mechanism: one conversion becomes two because the platform has no way to tell they are the same thing. Everything below is a different route to that same double count — and the most common by far is that something other than PixelCapi is also firing your pixel.
The five causes of double counting
1. A second plugin or snippet fires the same pixel
Two tracking plugins, or a plugin plus a hard-coded snippet in your theme, or either of those plus a tag manager container. Each one generates its own event ID, so the platform sees two unrelated conversions.
How to tell: the free tracking checker reads your public page and reports the same platform ID being initialised more than once, with both code locations. It also flags the case it cannot resolve: if a tag manager container is present and a platform is installed directly in the HTML, the container might fire the same platform again — and nothing outside the browser can see inside a container to confirm it.
Fix: run one source of truth. Deactivate the other, or remove the snippet.
2. The two halves carry different IDs
The browser copy and the server copy are meant to share one ID. If they differ, the platform has no way to know they are the same conversion.
How to tell: network tab → the facebook.com/tr request → its eid parameter, compared
with the event ID in the plugin’s log for that page load. Dedup Doctor does this comparison
for every event automatically.
3. A cached page freezes one ID for everybody
The inverse failure, and worse. If a plugin bakes a per-visitor event ID into the HTML, the page cache serves that single ID to every visitor. The platform then deduplicates thousands of genuine conversions into one.
PixelCapi avoids this by construction: no per-visitor ID is written into cacheable HTML. See LiteSpeed and REST caching.
4. Legacy event names on TikTok
TikTok’s deduplication key is the combination of the event source, the event name and the event ID. If a queued event was stored under an old event name while the browser fired the current one, the two do not match as a pair even though the ID is identical.
PixelCapi handles this by rewriting queued rows when event names change, rather than draining the queue — draining could block a plugin update or a checkout, and the window between the two is exactly when the mismatch would occur. Rows already sent keep their original name.
5. Lead, if you force a browser copy
Lead is server-only by design. Form plugins have no way to share the server’s event ID with the page, so a browser Lead would necessarily carry a different ID and double every submission. A server-only Conversions API event is valid, and it counts.
If you have added your own browser-side Lead event alongside the plugin’s, that is your duplicate.
Diagnosing in order
- Run the tracking checker on the affected page — it finds cause 1 in seconds.
- Open Dedup Doctor and look for events with mismatched IDs — cause 2.
- Check whether the ID is identical across different visitors — cause 3.
- If TikTok only, check for queued rows under a stale event name — cause 4.
Related
Was this page helpful?