Transaction ID dimension
Transaction ID is the dimension that holds the unique identifier you assign to a completed purchase via the purchase event's transaction_id parameter. GA4 uses it to deduplicate purchases: two purchase events sharing one transaction_id within a window are treated as the same order, not two. Supplying a stable, genuinely unique value is what keeps revenue from being double-counted when a confirmation page reloads.
What this means
GA4's purchase event carries transaction_id, the unique key for an order. The transaction ID dimension exposes it so analytics revenue can be reconciled line-by-line against your order management system.
It is also the join key when you blend GA4 data with backend sales records.
Deduplication and uniqueness
GA4 deduplicates purchase events that share the same transaction_id, which is what prevents a refreshed 'thank you' page from booking the same sale twice. This protection only works if the value is stable for an order and unique across orders.
Reusing an ID across different orders, or omitting it, breaks deduplication and distorts revenue. Generate the ID server-side from the real order number wherever possible.
- Unique key on the purchase event
- Drives GA4 purchase deduplication
- Must be stable per order and unique across orders
How it appears in analytics and logs
A transaction ID value is your order key. Inflated revenue often means a missing or non-unique transaction_id, so reloads of the confirmation page each counted as a new order.
Diagnostic use case
Use transaction ID to tie analytics orders back to your order system and to let GA4 collapse duplicate purchase events from page reloads into one.
What WebmasterID can help detect
WebmasterID can record purchase events keyed by your order ID first-party, so revenue reconciles with your backend without third-party tracking.
Common mistakes
- Omitting transaction_id and double-counting reloads.
- Reusing one transaction_id across different orders.
- Encoding personal data into the order identifier.
Privacy and accuracy notes
Transaction ID should reference an order, not a person. WebmasterID records order identifiers first-party and avoids encoding personal data in them.
Related pages
- Affiliation dimension
Affiliation is the ecommerce dimension that labels the store, marketplace, or partner an order is attributed to, set via the affiliation parameter on the purchase event (and optionally per item). It lets one GA4 property separate revenue across multiple storefronts or fulfilment partners without standing up separate properties. It is a free-text label, so consistency is entirely on the sender.
- Coupon dimension
Coupon is the dimension that records the promotion code applied to a purchase. In GA4 ecommerce, coupon exists at two scopes: an order-level coupon on the purchase event and an item-level coupon inside each items entry. Order-level reflects a cart-wide code; item-level reflects a discount on a specific product. Reading the wrong scope, or assuming one implies the other, misstates which promotions drove sales.
- The purchase event and e-commerce
The purchase event records a completed transaction and anchors all e-commerce reporting: revenue, items, and conversion value. It carries a transaction id, a value and currency, and an items array describing what was bought. The discipline is to record the order, not the customer — product and revenue data belong in the event, personal identity does not.
- Event Explorer
Inspect purchase events by transaction ID.
Sources and verification notes
- GA4 developer docs — Measure ecommerce (purchase)Documents transaction_id and purchase deduplication.
Last reviewed 2026-06-24. Facts are checked against primary/official sources where available; uncertain specifics are marked “Data not yet verified” rather than guessed.