Check out our guide to set up a Data Layer in Shopify.
Even with a correct setup, Shopify Server-side Tracking can sometimes behave unexpectedly. Below are the most common issues and how to resolve them.
begin_checkout events not firingProblem: Purchase or checkout events do not trigger as expected.
Solution: Check your Customer Events Pixel settings in Shopify:
1. Go to Shopify Admin → Settings → Customer Privacy
2. Set the privacy setting to Not Required
When this setting is Required, Shopify blocks the code needed to fire ecommerce events.
Problem: begin_checkout or purchase events do not appear in the server-side preview.
Solution:
1. Fully close the Client-side GTM Preview
2. Open only the Server-side Preview in one browser tab
3. Open your Shopify store in a separate tab
4. Refresh the store page and look for a page_view event in the server preview
5. Ensure both containers are published before testing
6. Having both previews open can interfere with event forwarding.
Problem: Your product feed for Meta (Facebook) or Pinterest stops working after disconnecting their pixels in Shopify.
Solution:
1. Create a dummy pixel in Meta or Pinterest
2. Connect this dummy pixel to the Shopify app
3. Keep your main pixel connected via the Server-Side Container.
This allows the Shopping Feed to remain linked while all real tracking runs server-side.
Issue: No events show up in the server-side preview despite a correct setup.
Solution: The Google & YouTube app in Shopify may override Server-side Tracking.
1. Go to Shopify Admin → Apps → Google & YouTube.
2. Disconnect Google Analytics 4 from this app.
This app often sends events directly to Google, bypassing your server container.
Problem: Shopify or GA4 reports drop after enabling Consent Mode v2 with Server-side Tracking.
Solution:
1. Integrate Consent Mode v2 with Shopify cookies
2. Cookiebot currently offers the most reliable Shopify integration
3. Follow Cookiebot’s Shopify installation guide
4. Complete all steps under Enabling the Customer Privacy API, except Step 6.
A correct Consent Mode setup allows GA4 to model conversions and preserve insights even without full cookie consent.
Problem: When using client-side pageview triggers based on checkout URLs (for example /checkout), Shopify may generate dynamic checkout URLs. As a result, the page_location sent to GA4 does not reflect the real checkout URL.
Instead of a clean URL such as:
GA4 may receive a URL similar to:
This makes checkout tracking unreliable and can break: page-based triggers, funnel analysis, and checkout step reporting in GA4.
It usually happens because Shopify’s web pixel sandbox dynamically rewrites checkout URLs. If you rely on the default page_location, GA4 receives the sandboxed URL instead of the real checkout path.
Solution: You can fix this by cleaning the checkout URL in Google Tag Manager before it is sent to GA4.
1. Create a Custom JavaScript Variable in GTM
2. Go to your GTM web container
3. Navigate to Variables → New → Custom JavaScript and paste the following code:
4. Name the variable (e.g. Page Location – Clean) and save it.
5. Override page_location in Your GA4 Tag by opening your GA4 configuration tag in GTM, going to Fields to Set, adding a new field:
Field Name: page_locationValue:
{{Page Location – Clean}}Save the tag and publish your web container.
6. Navigate through the Shopify checkout, inspect the GA4 request, confirm that page_location now shows a clean and consistent checkout URL.
This approach removes Shopify’s sandbox path before the hit is sent to GA4, ensuring:
• accurate checkout URLs
• reliable page-based triggers
• consistent GA4 funnel and checkout reporting.