Guides

Duplicate purchase events in GA4: how to find the cause in the browser

Updated September 2026 · 5 min read

When Google Analytics™ 4 shows more purchases or more revenue than your store recorded, the first suspect is a purchase sent more than once for the same order. The browser shows you how many times it was sent, where to and by which script.

What GA4 deduplicates, and what it doesn’t

Google’s help article Minimize duplicate key events with transaction IDs says that GA4 deduplicates purchase events with the same transaction ID, and that this only works for web data streams. That has three consequences:

Find the duplicate in DevTools

  1. Open DevTools (F12), go to the Network tab, tick Preserve log and filter by collect.
  2. Place a test order. On the confirmation page, count the requests with en=purchase, including each line of batched POST requests.
  3. Compare the measurement ID (tid) and ep.transaction_id of each one. Two sends of this order to the same tid are a duplicate; if they share the transaction ID, GA4 may absorb it, and if the ID differs or is missing, both can be counted. The same order sent to two different properties can be intended.
  4. Look at the Initiator of each request (a column in the Network tab, and a tab in the request details): the chain of scripts that sent it helps tell a Google tag in the site code from a Google Tag Manager container or a store platform’s own integration.
  5. Reload the confirmation page, and go back and forward. If another purchase event is sent, you have confirmed a repeated browser send. Check GA4 separately to see whether it was counted again.
  6. Repeat with each payment method: some return to the confirmation page twice, or through a different URL.

Common causes

How to fix it