Universal Pixel Debugger

Guides

Duplicate purchase events: real duplicates vs. normal repeats

Updated 2026-09-28

Seeing a purchase event more than once does not mean it was counted twice. Most repeats are the same event sent to several pixels or ad accounts, or in several request formats, and each destination receives it once. A real duplicate is the same event sent again to the same destination for the same order: a second tag firing within seconds, or the order-confirmation page loading again.

What you see

After a test order, the network log shows two, five or more purchase requests. Meta may show several Purchase hits, Google Ads several conversion requests, and GA4 a purchase hit of its own. The question is which of them go to the same destination, in the same format, for the same order.

Why it happens

SituationHow it looks in the requestsReal duplicate?
One event sent to several pixels or accountsSame name, different destination: Meta id, GA4 tid, Google Ads accountNo
One event in several request formatsGoogle Ads conversion, view-through and CCM paths for the same accountNo
One order reported to several networksDifferent networks, same order IDNo
The same event fired twice by the pageSame destination, format, name and order or event ID, seconds apartLikely
The confirmation page loaded againSame order ID on a new page visit, laterLikely, unless the network deduplicates it

Several pixels or ad accounts

Many sites send each event to more than one destination, such as two Meta pixels or two Google Ads accounts. One live store sent every Meta event to five pixel IDs. Each pixel gets the event once. You can recognize this by the destination: the pixel ID in id for Meta, the measurement ID in tid for GA4, and the account number in the path or in tid for Google Ads. Two Meta pixels receiving the same Purchase with the same event ID are two destinations, not a duplicate.

Several request formats

The Google tag can send one conversion as a conversion request, a view-through request and a CCM request, once per account. These are one hit in several formats, with slightly different fields. See why one Google Ads conversion sends several requests.

One order on several networks

A Meta Purchase, a GA4 purchase and a Google Ads conversion for the same order are three reports to three separate systems. They should share the order ID: cd[transaction_id] or cd[order_id] for Meta, ep.transaction_id for GA4, and oid or transaction_id for Google Ads. Differences in value or currency between them are a separate problem; see Meta and GA4 revenue mismatch.

The same event fired twice

If the same destination receives the same event, in the same format, with the same order ID or event ID, a few hundred milliseconds or a couple of seconds apart, the page most likely fired the tag twice. A common cause to check is two installations of the same tag, for example a platform's built-in integration and a tag manager tag for the same pixel.

A reload of the confirmation page

If the thank-you page fires the purchase tag on every load, reloading it or returning to it later can send the purchase again with the same order ID. This happens on a new page visit, usually more than a few seconds after the first. Whether the network counts it again depends on its own deduplication, so check whether the tag fires on a repeat load at all.

Browser and server events

If the site also sends purchases from its server (for example through Meta's Conversions API), Meta is documented to deduplicate a browser event and a server event that share the same event name and event ID. The browser side sends that ID as eid or eventID. The extension sees only browser requests, so check on the server side that the same ID is sent there too.

How to check with Universal Pixel Debugger

  1. Open the side panel with the toolbar icon on the site, click Clear, then place a test order and wait on the confirmation page.
  2. Find the purchase rows. The same event sent to several destinations or formats of one network, on the same page visit and with the same event ID (or none, within 3 seconds), shows as one row with ×N and "to N destinations", or the formats, such as "CCM + view-through". That is fan-out, not duplication.
  3. Check the Issues list. Potential duplicate appears when the same network, destination, request format, conversion label and exact sent name repeat an event ID or order ID within 3 seconds.
  4. Open an event to read its Order ID, occurrence IDs and destination, each with a copy button.
  5. Reload the confirmation page. A reload starts a new page visit in the timeline. Type the order ID in the search box to list every event that carried it, across page visits.

Issues are hints, not proof of how a network counted. A repeat more than 3 seconds apart, or a repeat without an order ID or event ID, is not flagged as a potential duplicate, so check reloads with the order ID search.

What to fix

If the purchase shows up once but without a currency in GA4, see GA4 purchase missing currency.