Proof of pairing
Are your conversions being counted twice?
Sending an event twice is not the bug — it is the design. The pixel fires in the browser, your server sends the same event to the platform’s API, and both carry one shared event ID so the platform collapses them into a single conversion. Double counting happens when that ID does not match, and Dedup Doctor is where you see whether it did.
the mechanism
A shared event ID, and a place to check it
Deduplication is a promise the platform makes only if you give it the right input. The input is one event ID on both copies of the same event.
What you are looking at
One row per copy. Same event, same ID, two sources — and the platform’s trace ID beside each, which is the platform confirming it received that specific send.
Example rows in the format Dedup Doctor uses — not data from a live store.
TODO(owner: screenshot)
Dedup Doctor, showing paired browser and server events with their event IDs and platform trace IDs.
how it works
Four steps, one of which is the proof
- step 1
One ID is minted per event
The event ID is generated once and travels on both the browser copy and the server copy. It is never baked into cacheable HTML, so a cached page cannot hand the same ID to two different visitors.
- step 2
Both copies are recorded as they are sent
Each send is logged with its event name, its event ID and the platform’s own response, including the trace ID the platform returns.
- step 3
The two copies are compared
Dedup Doctor puts the browser row and the server row next to each other and compares the actual event IDs — not a checkbox that says deduplication is enabled.
- step 4
You read the verdict
Matched means the platform received both halves with one ID. A missing half tells you which side failed and what the platform said about it.
documentation
Read the details
The reference pages for this, including the parts that are still being verified.
-
Tools
Dedup Doctor
The browser copy and the server copy of every event, side by side, compared by their actual event IDs.
-
Troubleshooting
Processed vs Deduplicated
What Meta's two labels actually mean, why a "deduplicated" server event is good news, and what a healthy row looks like.
-
Troubleshooting
Duplicate events
Five ways one conversion becomes two, how to tell them apart, and why a second plugin is the most common cause.
-
Getting Started
Verify your first event
How to prove a browser event and a server event were paired — the exact evidence to look for, and what a healthy result looks like.
Questions people ask about this
Short answers. Anything we cannot confirm, we say so.
If both copies are sent, am I not double counting by definition?
Not when the two copies carry the same event ID. That shared ID is what the platform uses to recognise the browser event and the server event as one conversion. Double counting starts when the IDs differ, or when a second plugin fires its own copy with an ID of its own.
What does Dedup Doctor actually compare?
The actual event IDs on the browser copy and the server copy of each event, shown side by side, with the trace IDs the platform returned as evidence that each half arrived.
Does page caching break the shared event ID?
Not here. No per-visitor event ID is baked into cacheable HTML, so byte-identical cached pages still produce unique matched pairs. This has been verified against LiteSpeed Cache and other common page caches, including a multi-layer REST cache bypass.
Can it tell me if another plugin is firing the same pixel?
A second plugin firing its own copy shows up as an event the platform received that PixelCapi did not send. The Conflict Scanner that names the conflicting source is in development — the roadmap badge on this site marks anything not yet shipped.
Stop guessing. Start proving.
Check what your site is sending right now, or see what PixelCapi Pro costs.
Dedup Doctor
See pricing