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.

Thanks

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.

1 Like

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?

Hi @Konstantin_Yatsenko and @Alex - we also recently implemented sGTM with server-side GA4 from Stape with custom loader and cookie keeper.

Although we see improvement in order tracking (more orders are now being tracked in GA4) but the discrepancy between Shopify and GA4 is still quite high: we are missing about ~30% of orders/revenue in GA4 when compared to Shopify order by order (we would love to get to your level of 95% order parity between the 2 platforms)

  • All events are sent server-side (for the measurement id we implemented server-side for)
  • GA4 config fires on initialization
  • We use a tagging server on our domain
  • We use native shopify consent
  • Everything works well when testing

Yet, the reports show a big gap. When we analyze discrepancy and compare Shopify vs GA4 order by order, there’s no pattern as to what single segment might be responsible for the missing orders country/region/market/channel/device/etc - it’s more or less evenly distributed across any dimension.

What would you recommend that we look at to further troubleshoot? (theme, other apps installed, known scripts/js errors that may affect data collection etc)

Is 95% order accuracy still attainable?

Appreciate your thoughts!

It is normal to see a bigger gap in backend and GA4, even with serverside it doesnt make much difference because for GA4 its still picked up clientside.

it is possible to get close to 100% revenue tracking in GA4 if you use a webhook as fallback for when youre not able to track them clientside. Just be aware you will get some unassigned traffic from that webhook, because its very difficult (if not impossible) to replicate a full GA4 hit with webhook - atleast this is my experience.

Mabye other people also have input.

1 Like

Thank you @jeppe_Nielsen !

After posting my original comment I realized that our setup wasn’t complete (we missed to configure the correct process for sending the webhook purchases to GA4 with proper deduplication) - we set that up and for the days since then we’ve had almost 100% orders tracking in GA4.

Noted, about Unassigned - thank you! Outside of this reason - do you have other cases of Unassigned in your store? We had problems with that before moving to this server-side setup - trying to understand where it’s coming from.
Thanks!

I have only seen a lot of unassigned traffic when some ga4 events would go directly to ga4 while other would go to the server first. The reason for this in that specific case was because of a plugin (ga4 shopify) which had not been turned off.

1 Like