P
odooPXL
Start FreeBook Demo

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.

Screenshot: Dual-pixel event flow diagram

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. 1

    Event ID generation

    When a Sale Order is confirmed in Odoo, odooPXL generates a UUID and attaches it to the order record.

  2. 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. 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. 4

    Platform deduplicates

    Meta, Google, and other platforms match on event_id and keep a single conversion. If only one arrives, it still counts.

Maximum signal. Zero double-counting. That is dual-pixel.

Set it up once — odooPXL handles deduplication automatically.