Why it happens
Browser tags count a purchase when the order page loads. A Shopify pixel reports a finished checkout with an event that is triggered once per checkout, usually on the Thank you page. Shopify's own documentation says the event is not sent if that page fails to load. A buyer who pays and closes the window, or whose browser blocks the tag, leaves no purchase in the browser.
Express buttons change the path to the Thank you page. Shopify calls Shop Pay, Apple Pay, Google Pay, Amazon Pay and PayPal's fast options accelerated checkouts. Some of them offer buttons on the product page, so the buyer skips the cart. A branded button lets the buyer complete the payment with that method. Each path has more steps between the click and your Thank you page, and each step is a chance for the browser part to break.
The ad click can get lost on the way. Even when the purchase arrives, Meta and Google need the buyer's click ID or cookie to tie it to an ad. A payment step on another domain can start without the storefront's cookies. Then the purchase counts but shows as not coming from your ad (see GA4 shows your Shopify purchases as (direct) or Unassigned).
Payment domains show up as referrals in GA4. When a buyer returns from a payment page, GA4 can start a new session with the payment domain as its source. That has its own page: Shopify checkout shows as a referral in GA4.
Some Shop orders are another sales channel. Shopify can list your products in the Shop app. Those orders are recorded under the Shop sales channel, not your online store, so a pixel on your storefront never saw the visit.
Check it yourself
- 1In Shopify admin > Orders, filter by sales channel and keep the online store. Take the paid orders of the last 7 full days.
- 2Open a few of those orders and note the payment method of each. Shopify's payments finance report can also show sales by payment method.
- 3Split your orders into card payments made in checkout and orders paid with Shop Pay, Apple Pay, Google Pay or PayPal.
- 4In Meta Events Manager > Data sources > your pixel > Overview, read the Purchase count for the same days. Check whether purchases arrive from the browser, the server or both.
- 5In Shopify admin > Sales channels > Facebook & Instagram, open the Settings tab > Share data > Change. At Conservative, the app sends purchases from the browser only. Enhanced and Maximum add Meta's Conversions API, which sends the purchase between Shopify's and Meta's servers.
- 6In GA4 > Explore, start a Free form exploration with the dimension Transaction ID and the metric Ecommerce purchases. Look up the order IDs of your express orders. Missing ones point to the browser path.
- 7Place one test order with each button you offer, from the product page and from checkout. Watch Meta Test events and GA4 Realtime for each.
A purchase sent from the paid order doesn't depend on the checkout page; see why server-side tracking fixes missing purchases.
FAQ
Is Shop Pay bad for tracking?
No. The payment works the same. The browser part of tracking has more steps to survive, and a server connection does not depend on them.
Why do Apple Pay orders look fine in checkout but not from the product page?
A button on the product page skips the cart and starts a different path. Test both places.
Should I turn off the express buttons?
That trades sales for tracking. Fix the tracking first and keep the buttons.
Does GA4 have a server option on Shopify?
Google Analytics 4 accepts purchases sent from a server through its Measurement Protocol. Someone has to send them.