BLOG · 19 OCTOBER 2026

GA4 purchase event not firing on Shopify: how to test it with one order

Your Shopify store has orders, and Google Analytics 4 shows no purchase events at all, or the ecommerce reports stay empty after a change to your tags. Before you compare totals, find out whether the purchase event fires, from which tag, and with what data. One test order is enough for that.

This guide is about the event itself. If purchases do arrive but GA4 shows fewer than Shopify, the cause is usually the browser losing some of them, which the page on GA4 showing fewer purchases than Shopify covers.

Where the purchase event comes from on Shopify

Shopify's help connects GA4 through the Google & YouTube sales channel: you install the channel and use the Tag ID of a GA4 web data stream. Google's own article on setting up the Google tag for Shopify says the channel sends ecommerce events to Google Analytics and lists some of them, such as view_item_list, view_cart and add_shipping_info. It also says that disconnecting the Google Analytics integration in the channel's settings stops all data the channel sends, purchases included.

Other stores send purchase from a custom pixel under Settings > Customer events, from a Google Tag Manager container or from theme code. Shopify's developer docs say the checkout_completed event, which pixels use for purchases, fires once per checkout, typically on the Thank you page. With a post-purchase upsell it fires on the first upsell page instead, and it is not triggered again on the Thank you page. If the page that should trigger it fails to load, it does not fire at all.

Test it with one order

  1. 1Open Google Tag Assistant and connect it to your store's address. Google says Tag Assistant puts your own device in debug mode, so your events show in DebugView.
  2. 2In GA4, open Admin, and under Data display click DebugView. Keep it open in a second tab.
  3. 3On your store, accept the cookie banner if you have one. Then place a real order with a low price product, or use your test payment method.
  4. 4Wait for the Thank you page to load fully. Do not close the tab early.
  5. 5Watch DebugView. Note whether purchase appears, and open it to read transaction_id, value, currency and items.
  6. 6Look at Tag Assistant too. It shows which Google tag fired on the Thank you page and with which measurement ID.
  7. 7Open Reports > Realtime in GA4 and check the card Event count by event name. Google says Realtime covers the last 30 minutes.
  8. 8Refund or cancel the test order afterwards, so it does not stay in your sales.

What the result tells you

No events at all, not even page_view. The Google tag does not load. Check that the channel is connected to the right GA4 property and data stream. Shopify says that in markets that require consent, pixels run only when visitors have given the permissions the pixel needs, so test once with cookies accepted. Google says DebugView does not show events when consent mode is used and the visitor has not consented to analytics cookies.

page_view and checkout events arrive, purchase does not. The tag loads, but nothing sends purchase on the last step. A custom pixel must subscribe to checkout_completed and send the event itself. Old purchase code in the Thank you page's additional scripts may no longer run after Shopify's move to the newer Thank you and Order status pages. On a store with a post-purchase offer, a tag that waits for the Thank you page misses the order, because the event fired on the upsell page.

purchase arrives in DebugView with no transaction_id. GA4 cannot deduplicate it and the Transaction ID dimension shows "(not set)". Google's ecommerce guide notes, in its refund example, that the transaction ID is required for purchases and refunds.

purchase arrives with value but no currency. Google's ecommerce guide says to set currency at the event level when you send value. Without it, check whether revenue shows in your reports at all.

purchase arrives twice. Two tags send it, usually the channel and a Tag Manager or custom pixel copy. Google's Shopify article warns about duplicate tags when conversions run both in the channel and in a storefront or custom pixel.

purchase arrives in DebugView and Realtime but not in reports. Standard reports take longer. Check again the next day.

Common reasons on Shopify

  • The channel was reconnected to a different property. The events go to a GA4 property you are not looking at.
  • A custom pixel with a typo in the measurement ID. It fires, but into nothing you can see.
  • A consent tool that blocks the tag for everyone. If accepting the banner does not change anything in Tag Assistant, the consent tool may not pass the choice to Shopify.
  • The store is still password protected. Several guides warn that tracking cannot be tested properly before the password page is removed. Shopify's GA4 page does not say this, so treat it as a thing to rule out.
  • A tag in Tag Manager waits for a data layer event that Shopify's new checkout no longer pushes. It worked on the old checkout and stopped after the upgrade.

If the browser keeps losing it, server-side tracking for Shopify stores sends it from the order.

FAQ

Do debug events count in my reports?

Google's DebugView help does not say they are left out. It advises filtering developer traffic while debug mode is on. One test order is unlikely to matter, but refund it in Shopify.

Why does purchase fire on the upsell page and not the Thank you page?

Shopify fires checkout_completed on the first upsell offer page when the store shows one. A tag that only listens on the Thank you page misses those orders.

Should I keep both the channel and my own GA4 tag?

Only if you have removed purchase from one of them. Google tells merchants to avoid duplicate tags.

Can a server send purchases instead?

Yes. Google's Measurement Protocol lets a server send events to GA4. Google says it is meant to add to what the Google tag collects, and joins its events to online activity by the client ID.

Where Tikra fits

Tikra sends each paid online order to GA4 from our server, with the Shopify order ID as the transaction ID, so the purchase does not depend on a tag running on the Thank you page or the upsell page. When Tikra's pixel has read the buyer's Google Analytics client ID and session ID with analytics consent, they go with the purchase. Without them, Tikra uses an ID made for the order: the revenue counts, but GA4 cannot show where the buyer came from.

Before Google Analytics 4 gets any order from Tikra, you confirm that the store's own GA4 purchase tracking is off, so each order has one sender. Google gives no confirmation per order, so Tikra shows its GA4 orders as sent and asks you to look for the next order in Realtime. Tikra applies your customers' consent choices to every order, and in Strict mode an order is sent to GA4 only when the buyer allowed analytics. A written guarantee in our Terms covers eligible orders: at least 97 % reach each platform, fixed within 12 hours or a month's fee credited (Terms of Service, section 8).

The free diagnosis does not read GA4. It shows your paid orders of the last 7 full days, how many came from a Meta, Google or TikTok ad, and, after a full day and 10 paid online orders, how many your shoppers' browsers reported. It sends none of your orders anywhere.

Run the free diagnosis

Related

Guide

Meta Pixel purchase event not firing on Shopify, and "fbq is not defined"

How to test whether your Meta Pixel sends Purchase on a Shopify store, what the result tells you, and what the "fbq is not defined" error means for your tracking.

Guide

The GA4 purchase key event on Shopify: how to mark it, import it into Google Ads, and why it does not match your orders

What changed when GA4 renamed conversions to key events, how to check that purchase is a key event for your Shopify store, how to import it into Google Ads, and why the count differs from your Shopify orders.

Guide

GA4 purchase revenue shows 0 on Shopify: why purchases arrive without revenue

GA4 counts your Shopify purchases but shows purchase revenue as 0 or (not set). The usual causes, from a missing value or currency to a value sent as text, refunds and report delays, and how to find the one in your store.

Problem

Post-purchase upsell orders missing in Meta or GA4

Shoppers accept a post-purchase upsell in Shopify, but Meta or GA4 shows only the first order value. Why upsells go missing and how to check your numbers.

All tracking problems · All guides