> For the complete documentation index, see [llms.txt](https://help.littledata.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.littledata.io/advanced/troubleshooting/shopify-vs-google-analytics-data-discrepancies.md).

# Shopify vs Google Analytics data discrepancies

See why data might be different between Google Analytics and Shopify Analytics

## Shopify vs GA4 data discrepancies

GA4 and Shopify Analytics often show different numbers for the same period. This page explains the most common reasons and what you can do about them.

Some differences can't be fixed, because [Shopify and GA4 use different tracking methods](https://help.shopify.com/en/manual/reports-and-analytics/discrepancies). The goal is to understand the gap, not to make it zero.

### Traffic sources

Shopify's sessions by traffic source report groups a lot of traffic into broad buckets like Direct or Unknown. GA4 usually gives a more detailed view of where traffic comes from, so we recommend using GA4 for traffic source analysis.

### Session counts

Shopify and GA4 define and count sessions differently, so session counts rarely match.

Littledata sends some events from the browser and others from the server. Cart, checkout and purchase events (from **Add to Cart** onwards) are sent server-side. Littledata links these server-side events to the customer's browser session, so GA4 sees one session instead of several. See [how it works: Shopify to GA4](https://help.littledata.io/integrations/shopify-to-google-analytics/how-it-works-shopify-to-ga4#server-side-events).

### Timing, time zone and currency

If orders or revenue for the same day don't match:

* **Data latency.** GA4 can take several hours to process data. Compare date ranges that ended at least 24 hours ago.
* **Time zone.** Check that your Shopify store and your GA4 property use the same time zone.
* **Currency.** If your GA4 property uses a different currency from your store, GA4 [converts the revenue](https://support.google.com/analytics/answer/9796179) using the previous day's exchange rate. Revenue can differ from Shopify, especially when exchange rates move a lot.

### Ad blockers, VPNs and privacy browsers

Ad blockers, VPNs and browsers like Safari and Brave can block or limit browser tracking:

* Safari's Intelligent Tracking Prevention (ITP) shortens cookie life, so returning visitors can look like new ones.
* Brave blocks most tracking unless the visitor allows it for your site.

Littledata's [server-side events](https://help.littledata.io/integrations/shopify-to-google-analytics/how-it-works-shopify-to-ga4#server-side-events) help close some of this gap, because they don't rely on the browser.

### Consent (GDPR and CCPA)

In many regions you must [ask visitors for consent](https://help.littledata.io/partner-recipes/cookie-consent-integrations) before tracking them. When visitors decline, their journey can't be tracked, so some gap with Shopify is expected. This is now one of the most common reasons for discrepancies, and it can't be fully fixed.

Littledata reads each visitor's choice from [Shopify's Customer Privacy API](https://help.littledata.io/partner-recipes/cookie-consent-integrations/shopify-customer-consent-api). A destination respects those choices when **Consent mode** is turned on in its **General** settings tab. Use a consent app that works with Shopify's Customer Privacy API.

For stores with visitors in the EEA, Google also requires Consent Mode v2. See [using Google Consent Mode v2 with Shopify](https://help.littledata.io/integrations/shopify-to-google-analytics/using-google-consent-modev2).

### Page builders and landing pages

Page builders like GemPages or Shogun, and landing pages on subdomains, can break tracking if they aren't set up correctly. Make sure GA4 loads on every page. If you're not sure, contact our support team.

### Duplicate tracking

Having more than one GA4 tracker on your site can double count events. [Check for duplicate trackers](https://help.littledata.io/integrations/shopify-to-google-analytics/fix-duplicate-tracking-ga4) on the page and in Google Tag Manager.

### GA4 data limits

Standard GA4 properties can process up to 10 million events per query in explorations. Large stores can hit this limit, especially with long or compared date ranges, and GA4 then samples the data.

Reports with too many unique values (high cardinality) can also group rows into a single **(other)** row. GA4 shows a "Some data condensed" warning when this happens.

### Customers leave quickly

If a customer closes the tab right after an action, browser events may not have time to send. This mostly affects browser events, not the server-side purchase event.

### Booking apps

Apps that let customers book appointments through your Shopify store can create orders that count as purchases in GA4. This adds to your purchases and revenue. You can filter these orders out in GA4 reports. Or, in the Littledata app, exclude them before they reach GA4 with the **Order channels exclusion list** or **Order tags exclusion list**. See [how to exclude orders by order channel](https://help.littledata.io/advanced/troubleshooting/how-to-exclude-orders-by-source).

### Related articles

* [How it works: Shopify to GA4](https://help.littledata.io/integrations/shopify-to-google-analytics/how-it-works-shopify-to-ga4)
* [How to fix duplicate tracking in GA4](https://help.littledata.io/integrations/shopify-to-google-analytics/fix-duplicate-tracking-ga4)
* [How to fix Unassigned traffic in GA4](https://help.littledata.io/advanced/troubleshooting/fix-unassigned-traffic-ga4)
* [Cookie consent integrations](https://help.littledata.io/partner-recipes/cookie-consent-integrations)
