GOOGLE ANALYTICS 4

GA4 purchases with no transaction ID or "(not set)"

GA4 counts purchases, but some rows show "(not set)" where the transaction ID should be. Each of those purchases cannot be matched to a Shopify order.

Why it happens

A tag sends the purchase without a transaction ID. The transaction ID is a field of the purchase event that the sender fills in. A theme snippet, a tag manager tag or an app can send a purchase event and leave the field out, or fill it with a variable that is empty on that page. GA4 then reports the purchase and shows "(not set)" in the Transaction ID dimension.

The same purchase arrives from two senders with different IDs. Google uses the transaction ID to avoid counting one purchase twice. When one sender uses the order number and another uses a different value, or one leaves it empty, GA4 sees two purchases. The total looks too high, and single rows cannot be matched to orders.

Revenue counts but the source is missing. A purchase sent from a server without the shopper's browser ID can still carry revenue, yet GA4 cannot tell where the buyer came from. That shows as "(not set)" in source and medium, which is a different gap from the transaction ID, and the two are easy to confuse in one report.

Check it yourself

  1. 1In GA4, open Reports > Monetization > Ecommerce purchases. Set the date range to the last 7 full days.
  2. 2Open Admin > Property details and note the time zone. Compare the same days in Shopify admin > Analytics > Reports, which uses your store's time zone.
  3. 3Open Explore and start a Free form exploration. Add the dimension Transaction ID and the metrics Purchases and Purchase revenue.
  4. 4Sort by Transaction ID. A row with "(not set)" is a purchase sent without the ID. A value that appears twice is a duplicate.
  5. 5In Shopify admin, open Orders and filter by Sales channel. Compare the Shopify order numbers with the IDs in Explore. Note which orders are missing and which are extra.
  6. 6List every tag that sends purchases to GA4: your theme code, Google Tag Manager, a custom pixel under Shopify admin > Settings > Customer events, and any app. Open each one's purchase event and check that the transaction ID is filled.
  7. 7Keep one sender for purchases, or make every sender use the same value as the transaction ID, for example the order number.
  8. 8After the fix, place a test order and watch it in the GA4 Realtime report and then in Explore the next day. Standard reports can take longer than Realtime to show it.

Why each purchase needs one sender and one ID is in one sender per purchase on Shopify.

Run the free diagnosis

FAQ

What does (not set) mean in GA4?

GA4 received no value for that dimension on that row. For Transaction ID it means the purchase event came without the ID.

Do purchases without a transaction ID still count as revenue?

They can. The purchase and its revenue are counted, but you cannot match the row to an order, and a repeat of the same sale cannot be recognized.

Why do I see the same transaction ID twice?

A purchase was recorded twice, for example because the confirmation page loaded again or two tags fired. Check each sender and the page where it fires.

Is (not set) in source and medium the same problem?

No. That one is about where the buyer came from, and it does not depend on the transaction ID.

Related

Problem

GA4 shows fewer purchases than Shopify

GA4 reports fewer purchases or less revenue than your Shopify admin. Why browser tracking loses orders and how to compare transaction IDs in Explore.

Problem

GA4 shows your Shopify purchases as (direct) or Unassigned

GA4 records your Shopify purchases but puts them in Direct or Unassigned. Why the purchase loses its visit, and how to check it in Traffic acquisition and Explore.

Problem

Purchases show up days later in Meta Ads Manager or GA4

Why Meta Ads Manager or GA4 shows a purchase days after the order: attribution windows, processing time and late server events. How to compare fairly.

Problem

Shop Pay, Apple Pay and PayPal purchases missing in Meta or GA4

Orders paid with Shop Pay, Apple Pay, Google Pay or PayPal express buttons are missing in Meta or Google Analytics 4. Why browser tags miss them and how to check.

All tracking problems · All guides