Dual-Pixel Architecture
Two signals, one conversion. Browser and server events fire in parallel with a shared event ID so ad platforms see maximum signal without double-counting.
The Problem
Server-side tracking alone misses click-level context like fbclid, gclid, and ttclid that the browser captures. Browser tracking alone misses 20-40% of conversions due to ad blockers and privacy restrictions.
Running both without deduplication means double-counted conversions, inflated ROAS, and algorithms that optimize for phantom events. You need both channels working together with a shared identity.
How odooPXL Solves It
Browser + server firing in parallel
The odooPXL JavaScript tracker fires a browser event while the Odoo backend simultaneously sends a server event. Both carry the same event_id, so ad platforms deduplicate automatically.
Shared event ID deduplication
Every conversion is stamped with a UUID generated at the point of sale, order confirmation, or lead creation. Meta, Google, and TikTok all use this ID to merge duplicates into a single conversion.
Graceful degradation
If the browser event is blocked by an ad blocker or ITP, the server event still arrives. If the server event fails, the browser event provides coverage. You never lose both signals.
Deduplication reporting
See exactly how many events were delivered via browser-only, server-only, or both channels. Understand your actual coverage rate across platforms.
How Deduplication Works
- 1
Event ID generation
When a Sale Order is confirmed in Odoo, odooPXL generates a UUID and attaches it to the order record.
- 2
Browser event fires
The JavaScript tracker on the thank-you page sends a Purchase event to Meta Pixel, Google gtag, etc., including the event_id.
- 3
Server event fires
Simultaneously, the Odoo backend sends the same Purchase event via CAPI with the identical event_id and hashed customer data.
- 4
Platform deduplicates
Meta, Google, and other platforms match on event_id and keep a single conversion. If only one arrives, it still counts.
Related Features
Maximum signal. Zero double-counting. That is dual-pixel.
Set it up once — odooPXL handles deduplication automatically.