Pixel Auditor/Help/Duplicate event detection

Duplicate event detection

The 3-layer dedup chain and how to read duplicate flags.

Duplicate fires are the single most common bug in real-world tag setups. Pixel Auditor catches them with a three-layer dedup chain plus a rapid-fire heuristic.

The dedup chain

Layer 1 — page agent (400 ms window)

At capture time, fires are deduplicated within a 400 ms window keyed by tagId + eventName + extractedId. This collapses fires captured by both the JS hook and the network layer.

Layer 2 — service worker relay (identity-keyed)

The service worker drops messages from the page agent that match an identity it's already relayed to the panel. Catches the rare case where two content-script instances on the same frame both report the same fire.

Layer 3 — panel-side render (chronological rank)

The panel sorts by capture time and drops adjacent rows with identical fingerprints. Last line of defence.

Rapid-fire heuristic

A row is only marked as duplicate when at least two fires of the same event land within 10 seconds. A purchase event that legitimately fires twice across a session (separate transactions) is not marked duplicate.

Common causes of duplicates

CauseSignal
Direct + GTM installation of the same pixelTwo installation sources on the tag card
SPA route handler + history listenerMultiple page_view on a single route change
Hardcoded fbq + GTM Meta tagTwo pixel IDs detected, both firing
Conversion tag on every page (instead of just thank-you page)Multiple purchase on different pages
GTM trigger configured on "All Pages" and "Page View"Two page_view on every page

Forensic analysis

Click a duplicate row to see the duplicate analysis: timing of each fire, installation source per fire, and an event-specific hint. For example:

DUPLICATE — purchase Fired 2× in 1.2s - via GTM (GTM-WX9F2K) at +0.04s - via direct <script> at +1.24s Likely cause: pixel installed both directly and through GTM. Remove one.

What's NOT a duplicate

  • Multiple GA4 properties receiving the same hit — that's routing, not duplication.
  • The same event firing on different page loads — only intra-session, intra-10s fires are flagged.
  • Body-parse failures on identical network requests — Pixel Auditor's null-ID suppression handles this case.