GA4 tells you where your visitors come from and where they leave. It is free, and on Shopify it takes one app to connect. The setup is the easy part. Most of the mistakes come afterwards: adding a second tag, trusting GA4’s order count, or bolting on a server-side fix that makes the numbers look better while making them less accurate. This guide covers both.
Before you start
You need:
- A Google account, and a GA4 property with a web data stream (analytics.google.com, Admin, Create, Property). Set the property’s time zone and currency to match your store.
- Your store open to the public. Shopify’s help centre notes that Google Analytics cannot track events while the online store is password protected (Shopify Help Center).
- No other GA4 tag on the store. Check your theme code, any Google Tag Manager container and Settings → Customer events for an older GA4 tag or custom pixel. If one exists, remove it before connecting, or every page view and purchase may be counted twice.
Step 1: Connect GA4 through the Google & YouTube app
These steps follow Google’s own article, Shopify: Set up your Google tag, read on 15 October 2026:
- In Shopify admin, search for Google & YouTube and install the app.
- On the app’s Overview page, find the section for setting up Google Analytics 4 only and click Get started.
- Under Your Google Account, choose to connect a property.
- Select your GA4 property, click Connect, then Confirm.
You do not need Google Merchant Center for this. Shopify’s help page says so directly.
What Shopify sends
Once connected, the app sends standard ecommerce events, including product views, cart additions, checkout starts and purchases. Google’s article lists the events added most recently: view_item_list when a collection is viewed, remove_from_cart, view_cart, and add_shipping_info when shipping details are entered at checkout. That is enough to build the funnel described below without Tag Manager.
Step 2: Check it is recording
- In GA4, open Reports → Realtime.
- In another browser, visit your store and click through a few products. You should appear as an active user within a minute.
- Place a test order, for example with a 100% discount code. A
purchaseevent should appear in Realtime shortly afterwards.
If nothing appears, check in this order: the app shows your property as connected; the store is not password protected; your own browser is not blocking Google Analytics (try a private window without extensions); and no cookie banner choice is preventing collection for your visit.
Step 3: Change the two settings that matter
Data retention. GA4 keeps detailed event data for two months by default, which is too short to compare this month with the same month last year in Explorations. In Admin → Data collection and modification → Data retention, set event data retention to 14 months, the maximum on the free version.
Search Console link. In Admin → Product links → Search Console links, link your Search Console property. GA4 then shows which Google searches bring visitors to your store.
purchase is treated as a key event by default, so you do not need to mark it yourself.
Why GA4 will always show fewer orders than Shopify
Shopify records every order on its own servers. GA4 records a purchase only when the Google tag runs in the shopper’s browser. It will not run, or will run with limited data, when:
- the shopper uses an ad blocker or a browser that blocks analytics;
- the shopper declines analytics cookies on your consent banner (in the UK and EU, consent is required before analytics cookies are set);
- the session crosses devices or the browser clears its storage between visit and purchase.
So a gap between Shopify orders and GA4 purchases is normal, and its size depends on your visitors. Use Shopify’s order count as the true number of sales. Use GA4 for what it does better than Shopify: traffic sources, landing pages and the path visitors take.
Why this guide no longer recommends a Measurement Protocol “fix”
An earlier version of this guide, like many others, suggested sending every Shopify order to GA4 from a Make.com scenario through Google’s Measurement Protocol, using the customer’s ID as the client_id. We have removed it because it does more harm than good:
- Google’s documentation says the
client_idshould match the ID generated by the Google Analytics tag on your website (Measurement Protocol guide). An order webhook does not contain that ID. A purchase sent with another ID belongs to a “user” who never visited, so it arrives with no traffic source. - GA4 deduplicates purchases that share a transaction ID, but Google describes this in terms of transactions from the same user (Google Analytics Help). A server copy under a different ID, or with a transaction ID formatted differently from the browser’s, can be counted as a second sale.
The result is a GA4 purchase count that moves closer to Shopify’s for the wrong reason. If you need complete conversion data for ad bidding, that is a different problem with a different fix: see Google Ads conversion tracking for Shopify and, for Meta, CAPI Shield.
The reports worth opening
Reports → Acquisition → Traffic acquisition. Sessions by channel. Add the purchases column to see which channels convert, not just which bring visitors.
Reports → Engagement → Landing page. Which pages visitors arrive on. A landing page with many sessions and few engaged sessions needs work before it gets more traffic.
Reports → Monetisation → Checkout journey. Where shoppers leave between starting checkout and buying.
Explore → Funnel exploration. Build the steps view_item, add_to_cart, begin_checkout, purchase, and break it down by device or by session default channel group. Compare each step with your own previous months; the step that has weakened is the place to look. The free conversion rate optimisation guide shows what to do once you have found it.
A one-week check
After seven days, compare:
- GA4 sessions with Shopify’s sessions for the same dates. They will not match exactly, because the two count differently and GA4 misses visitors who decline consent, but they should move together day by day.
- GA4 purchases with Shopify orders. Note the gap. You now have a baseline; if it suddenly widens later, something has broken, such as a theme change or a second tag.
If the purchase gap shrinks to almost nothing without you changing anything, look for a duplicate tag before celebrating.