Event deduplication across collection paths
Event deduplication is the practice of ensuring a single user action is counted once, even when the same event is sent through multiple paths — for example browser tag and server-side. GA4 deduplicates purchases by transaction_id, and pixel platforms commonly use an event id shared between client and server. Without deduplication, dual-sending inflates conversions and revenue.
What this means
Modern measurement often sends the same event two ways for resilience: a browser tag and a server-side call. If both reach analytics unkeyed, the action is counted twice. Deduplication uses a shared, stable identifier so the platform recognises the second copy as the same event and drops it.
GA4 deduplicates purchases when they share a `transaction_id`; pixel-based platforms typically rely on a common event id sent from both the browser and the server.
Keys and pitfalls
The dedup key must be consistent across paths and stable for the same action — a transaction_id for a purchase, or a generated event id created once and passed to both sender. Generating different ids per path defeats deduplication; reusing an id across genuinely different actions wrongly collapses them. The key should be an opaque event identifier, never personal data like an email. Test by deliberately dual-sending and confirming the platform reports one event.
- Share one stable key across client and server paths
- GA4 dedups purchases by transaction_id
- Pixel platforms dedup by a shared event id
How it appears in analytics and logs
Duplicate events mean inflated counts — purchases, conversions, or revenue appearing larger than reality. Deduplication keys (transaction_id, event id) make double-counting collapse back to one.
Diagnostic use case
Send events from both client and server for reliability while ensuring each action counts once, by sharing a stable identifier so duplicates collapse.
What WebmasterID can help detect
WebmasterID classifies and records events first-party, so you can reason about which path recorded an event and avoid inflating totals when combining client and server collection.
Common mistakes
- Dual-sending events without any shared dedup key.
- Generating a different id per collection path.
- Using personal data (email) as the deduplication key.
Privacy and accuracy notes
Deduplication keys should be event identifiers (like a transaction or generated event id), not personal data. Do not use emails or device identifiers as the dedup key.
Related pages
- Server-side event tracking
Server-side event tracking sends events from your own server (or a server-side tag container) to the analytics backend, instead of firing them directly from the visitor's browser. It can improve data control, resilience to ad-blockers, and where data is processed — but it does not remove consent obligations and can hide client context. This page covers the model and the trade-offs.
- The Measurement Protocol
The Measurement Protocol is an HTTP interface for sending analytics events directly to the backend, without a browser tag. It is what makes server-side, offline, and backend events possible: a server, a kiosk, or a CRM can post events as JSON. With that power comes responsibility — events must be well-formed and de-duplicated, and identity and consent rules still apply on the server.
- The purchase event and e-commerce
The purchase event records a completed transaction and anchors all e-commerce reporting: revenue, items, and conversion value. It carries a transaction id, a value and currency, and an items array describing what was bought. The discipline is to record the order, not the customer — product and revenue data belong in the event, personal identity does not.
- Website observability
Reconcile client and server event paths.
Sources and verification notes
- Google — GA4 Measurement Protocol and event collectionTransaction-level deduplication via transaction_id for purchases.
Last reviewed 2026-06-24. Facts are checked against primary/official sources where available; uncertain specifics are marked “Data not yet verified” rather than guessed.