Loading tutorials…
Loading tutorials…
Shopify's native Google channel app is now the right way to install GA4 — not the old liquid-snippet hacks that haunt half the tutorials online. Here's the current, supported path.
Who this is forShopify store owners installing GA4 for the first time, or migrating from a manual liquid install to the native integration. If your store does $20K+/month in revenue and your ecommerce data is unreliable, every week of bad data is a week of bad marketing decisions.
What you'll need
Step 1
If GA4 is already partially installed via liquid snippet, theme.liquid edit, or third-party app — uninstall it first. Double-installs are the #1 Shopify+GA4 issue.
In your Shopify admin, go to Online Store → Themes → Actions → Edit code. Open layout/theme.liquid and search for "gtag" or "G-". If you find a gtag.js snippet, comment it out or remove it.
Repeat for theme.liquid in any other published themes and for any snippet files (like google-analytics.liquid).
Go to Settings → Customer events. Remove any custom pixels that mention Google Analytics. Keep Meta, TikTok, and other ad pixels — only remove GA4 ones.
Go to Apps. Uninstall any third-party GA4 apps (Analyzify, GA4 Conversion Tracking by Littledata, etc.) BEFORE installing the native Google channel. They will conflict.
Wait 60 minutes for Shopify's cache to clear before continuing. This avoids ghost events firing during the cutover.
Step 2
Shopify admin → Sales channels → Add channel → Google & YouTube. This is the official, Shopify-built path.
In Shopify admin, click Settings (bottom left) → Apps and sales channels → Develop apps... no, sorry: the path is admin → top-left store name → Sales channels → click the + next to Sales channels.
Search Google & YouTube. Click Add channel. Approve the permissions Shopify asks for.
Once installed, open the channel. Click Get started, then Connect your Google account. Pick the Google account that owns your GA4 property.
Follow the prompts to either (a) connect an existing GA4 property or (b) create a new one. If you already created one, picking it here is correct.
Toggle Send to Google Analytics 4 to ON. The app will now stream events to GA4 — including page views, add_to_cart, begin_checkout, and purchase — via Shopify's server-side connection.
Step 3
Open the Customer events section in Shopify admin and verify that the GA4 customer pixel is enabled and sandboxed correctly.
Go to Settings → Customer events. You should see a "Google Analytics 4" pixel (added automatically by the Google channel app).
Click into it. Confirm Status is Connected and Permissions are Granted.
Customer events are Shopify's replacement for the old "Additional Scripts" checkout field. They run in a sandboxed environment that respects customer consent and fires server-side for purchase events. This is what makes the install reliable across iOS, Safari, and consent-rejecting traffic.
If you don't see a GA4 customer pixel, the Google channel app didn't auto-create one. Click Add custom pixel, name it "GA4 Backup," and paste a minimal gtag.js snippet referencing your Measurement ID. But first — verify why the auto-create failed (usually a permissions issue with the connected Google account).
Step 4
Run a test purchase or use Shopify's draft order feature to fire real events. Watch them appear in GA4 DebugView.
Install the Google Analytics Debugger Chrome extension. Enable it.
In a new incognito window (without ad blockers), visit your store. Add a product to cart. Begin checkout. Complete a real test order using a test payment method or a $0.01 product.
Open GA4 → Admin → DebugView in a second tab. You should see your session appear with events in this order: page_view → view_item → add_to_cart → begin_checkout → add_shipping_info → add_payment_info → purchase.
Click the purchase event in DebugView. Verify the parameters: transaction_id (Shopify order number), value (order total), currency, items array (each line item with id, name, price, quantity).
If any parameter is missing or "(not set)", the Shopify product feed isn't mapped correctly. Go to the Google channel → Settings → Product data and confirm product feed sync is enabled.
Step 5
In GA4 → Admin → Events, toggle Mark as Key Event on the purchase event. Without this, you can't import the conversion to Google Ads or Meta.
Wait 24 hours after your test purchase for GA4 to register the event in the Events list.
Go to GA4 → Admin → Events. Find purchase in the list. Toggle Mark as Key Event ON.
Also recommended: mark begin_checkout as a Key Event if you want to track checkout abandonment as a secondary conversion in ads.
Don't mark add_to_cart as a Key Event — it fires too often and dilutes Smart Bidding signal. Track it as a regular event for reporting.
Step 6
If your checkout runs on checkout.yourdomain.com (Shopify Plus) or a custom domain, you need cross-domain configuration so client_id persists.
Most Shopify stores use yourdomain.com for storefront and checkout.shopify.com (or yourdomain.com/checkouts/...) for checkout. The Google channel handles this automatically.
If you're on Shopify Plus with a custom checkout domain (checkout.yourdomain.com), go to GA4 → Admin → Data Streams → Web → Configure tag settings → Configure your domains.
Add both yourdomain.com and checkout.yourdomain.com. This ensures client_id stays consistent across both, so GA4 sees them as one session.
Verify by completing a purchase and confirming the source/medium in GA4 Reports → Acquisition is what you'd expect (e.g., google / cpc) and not (direct) / (none).
Step 7
Link GA4 to Google Ads and import purchase as a Google Ads conversion action — see the dedicated link-GA4-with-Google-Ads tutorial.
Once purchase is firing reliably in GA4 (24+ hours of clean data), you can import it to Google Ads as a conversion action. This unlocks Smart Bidding for Shopping campaigns and Performance Max.
The flow lives in GA4 → Admin → Product Links → Google Ads links and then Google Ads → Goals → Conversions → Import.
We have a dedicated tutorial on this — see Link GA4 with Google Ads in the related tutorials below.
Don't skip this. Smart Bidding on Shopping campaigns without GA4-fed conversion data costs most stores 20-40% in efficiency.
Common mistakes
Keeping the old liquid gtag snippet active
What goes wrong: Page views and purchases fire twice. Sessions look 2x reality. Revenue in GA4 appears 2x actual. Smart Bidding optimizes toward inflated targets and overspends.
How to avoid: Remove gtag.js from theme.liquid, theme-specific liquid snippets, and any custom pixels. Run Realtime for 24 hours to confirm event counts halve back to expected.
Using a third-party GA4 app alongside the native channel
What goes wrong: Analyzify, Littledata, and similar apps were essential before checkout extensibility — but now they conflict with the native install. You get double-counted events, mismatched item arrays, and a tracking bill you don't need.
How to avoid: Uninstall the third-party app once the Google channel is verified working. Save $30-100/month and improve data accuracy.
Skipping the Customer events sandbox
What goes wrong: You manually paste gtag.js into the Additional Scripts field on the legacy checkout. Apple's ITP and consent-rejecting traffic strip the tag client-side. Purchase events fire on only 60-70% of sessions. You think your conversion rate is plummeting when it's just tracking loss.
How to avoid: Use Customer events (Settings → Customer events). The sandboxed pixel + server-side fallback for purchases recovers 30%+ of the data you were losing.
Not configuring product feed sync
What goes wrong: Purchase events fire but item arrays are empty or missing names. Product-level revenue reports show "(not set)" for half your SKUs. You can't answer which products drove which spend.
How to avoid: In the Google channel app, enable product feed sync. Confirm all products appear with title, brand, category, price, and availability before relying on item-level GA4 reports.
Marking add_to_cart as a Key Event
What goes wrong: Add-to-cart fires 5-10x more often than purchase. Google Ads Smart Bidding treats it as a primary conversion signal, optimizes for cart adds rather than buyers, and you get 50%+ more abandoned carts but the same number of orders.
How to avoid: Mark only purchase (and optionally begin_checkout) as Key Events. Use add_to_cart as a secondary event for funnel analysis.
Recap
Done — what's next
How to set up GA4 ecommerce tracking properly
Read the next tutorial
Hand it off
Shopify + GA4 is one of those setups where the difference between 'installed' and 'installed correctly' is what determines whether your ad spend pays back. A vetted GA4 specialist familiar with Shopify can audit, install, and validate the full ecommerce stack in 1-2 weeks for $400-800 total at $14-16/hr — and that includes the Google Ads import.
See specialist rates
Yes. The Google & YouTube channel app is free from Shopify. Google Analytics 4 itself is also free for standard usage (up to 10 million events/month per property). You're only paying if you use Google Ads or run the GA360 enterprise tier.
Yes. The Google channel installs the storefront tag, but checkout-specific events (purchase, begin_checkout, add_payment_info) run through the Customer Events sandbox. Both work together — the channel manages the connection, Customer Events provides the firing environment for checkout pages.
Most common cause: product feed sync is disabled in the Google channel, so the items array doesn't include price data. Less common: currency mismatch (Shopify is in CAD, GA4 property is in USD). Check Google channel → Settings → Product data first.
For most stores, no. The Google channel's built-in server-side firing for purchase events covers 95% of what you'd gain from a full server-side stack. Markets Pro's server-side tracking is relevant only if you're running international Markets with complex tax/duty considerations.
Wait 7 days minimum after a clean install. Compare GA4's revenue total to Shopify's actual revenue (Orders report). Expect 3-7% gap due to attribution differences and consent-rejecting traffic — anything beyond 15% means something is misconfigured.
Google Analytics 4
Ecommerce tracking in GA4 isn't optional — it's the foundation of every revenue report, ROAS calculation, and ad-platform optimization decision. Done right it pays back forever. Done wrong it produces numbers that everyone in the org argues about for months.
Google Analytics 4
Linking these two correctly is what makes Google's stack actually function as a stack. Done wrong, you'll have two systems that disagree about reality for years. Here's the right setup, in order.
Google Analytics 4
GA4 Realtime is supposed to show traffic within 60 seconds. When it shows zero — and your site is clearly getting visits — the cause is one of about six things. This is the diagnostic order.
Google Analytics 4
DIY GA4 is a great idea — until it isn't. This is the honest framework: when the cost of unreliable data exceeds the cost of hiring help, and how to tell which side you're on.