Discrepancies between Shopify and GA4 purchases

We’re using a Stape plugin for Shopify to inject GTM on all pages with a custom loader and server-side integration enabled. Also, we’re using our own data layer mainly because Stape’s data layer is not working perfectly with our theme (some events are firing twice like view_item_list, view_item; currency conversion is not working).

Since we’re using ss tracking we expected to see the minimum difference between Shopify and GA4 orders but some of our Shopify orders are missing in GA4 and some are attributed to incorrect source/medium if we compare with Shopify.
There is a significant difference for the affiliate traffic channel where some transactions are missing in GA4 or attributed to direct/none instead of Rakuten/Affiliate channel.
What can be wrong here?

Also, I’ve compared the overall number of transactions Shopify vs GA4 for the last 30 days, showing that GA4 captured 95% of total orders.
Is this difference acceptable for ss ga4 implementation?

What can cause this difference?

What can we check/do to minimize the gap?

I appreciate any suggestion here.


Your problem with identifying the source of your traffic could be due to a variety of reasons. Most often, the problem may be related to incorrect tag setting with respect to consent.That is, when page view does not trigger on the first landing when user accepts consent, but triggers only on subsequent pages (because of which url is lost and traffic detection does not work correctly in GA4).
It can also be a problem that some events are sent through the web and some through the server (for example because your GA4 Config fires later than the event tag).

Also keep in mind that traffic attribution, number of sessions and any other parameters in GA4 and Shopify work on different algorithms. A score of 95% between GA4 and Shopify is quite normal considering this.

Hi Alex, thanks for the reply.

We aren’t using consent solutions to block tracking on our website.

Also, I’ve checked using GTM preview mode all events are firing through the web and the server. However, I’ve noticed that some delay is happening for the begin_checkout event to display on the ss container preview but I don’t think that it should be an issue.

What else can check?