These are the 7 most common Shopify tracking mistakes: double-firing conversion tags, broken cross-domain tracking, wrong conversion counting method, missing currency on purchase events, not filtering internal traffic, ignoring consent mode, and running too many tracking tools at once.

1. Double-Firing Conversion Tags

This is the single most common tracking mistake on Shopify. And it is surprisingly easy to create without realizing it.

Here is how it happens. You install Shopify's Google channel, which adds Google Ads conversion tracking. Then you (or your developer, or your agency) also adds a Google Ads conversion tag through GTM or a custom script. Now every purchase fires two conversion events. Your ROAS looks twice as good as it really is.

The sneaky part: Google Ads will not warn you about this. It happily counts both conversions and uses them for bidding. So your automated bid strategies are making decisions based on inflated data, which means they are overbidding on underperforming keywords.

How to check: Go to Google Ads > Goals > Conversions > Summary. Look for multiple purchase/conversion actions. If you see two or more with the same or similar names, one of them needs to be removed or set to "Secondary" (observation only). You can also check by looking at your conversion count vs Shopify order count. If Google Ads is reporting 2x your actual orders, you have a double-counting problem.

2. Broken Cross-Domain Tracking

Shopify's checkout lives on a different domain (checkout.shopify.com) for most stores. When a visitor clicks "Checkout" and gets redirected to that domain, the browser treats it as a new session unless cross-domain tracking is properly configured.

Without cross-domain tracking, GA4 sees two sessions: one on your store, and one on checkout.shopify.com. The checkout session shows up as a "referral" from your own domain. This inflates your session count, tanks your conversion rate, and messes up your attribution because the ad click that brought the visitor gets lost in the domain switch.

If you are using Shopify's native Google channel, cross-domain tracking should be handled automatically. But if you installed GA4 through GTM, you need to add checkout.shopify.com to your cross-domain configuration in your GA4 tag settings. Go to your GA4 Configuration tag in GTM > Fields to Set > add "linker" with the domains parameter including both your domain and checkout.shopify.com.

Cross-domain tracking flow between Shopify store and checkout
Without cross-domain tracking, the checkout redirect breaks session continuity and attribution data.

Get Your Free Ad Score

See your Google Ads and Meta score in 60 seconds.

Start Free Audit

3. Wrong Conversion Counting Method

Google Ads lets you count conversions two ways: "Every" conversion, or "One" per click. The right setting depends on the conversion type, and getting it wrong quietly warps your data.

For purchase events, use "Every." If someone clicks your ad and buys three times, those are three real conversions. You want all three counted.

For add-to-cart, begin-checkout, or newsletter signups, use "One." If someone adds five items to cart after clicking one ad, that is not five conversions. It is one conversion intent. Counting it as five inflates your conversion numbers and gives the algorithm a misleading signal.

We see this wrong about 30% of the time. It is easy to set up and forget about, but it compounds over time. A campaign that looks like it is generating 500 add-to-cart conversions per month might really be generating 200 if counting is set to "Every."

4. Missing Currency on Purchase Events

This one is subtle. Your GA4 purchase event fires, it shows up in your reports, the event count looks right. But your revenue data shows zero. Or it is wildly off.

The cause is almost always a missing or incorrect currency parameter. GA4 requires a currency code (like "USD" or "EUR") on every ecommerce event that includes a value. Without it, GA4 records the event but ignores the revenue. Your event count is accurate but your revenue is blank.

Check this in GA4 DebugView or the Realtime report. Click on a purchase event and look at the parameters. If you see "value: 49.99" but no "currency" parameter, that is the problem. The fix is simple: add the currency parameter to your data layer or tag configuration. On Shopify, set it to the store's default currency.

5. Not Filtering Internal Traffic

This is probably the most underestimated mistake. Your team browses the store. Your developer tests checkout. You place test orders. Without an internal traffic filter, all of that activity ends up in your reports alongside real customer data.

For small stores where internal traffic is a tiny fraction of total traffic, it does not matter much. But for stores doing $5K-20K/month in revenue, internal activity can skew your data more than you think. A few test orders can shift your average order value. Internal browsing inflates your pageview counts on low-traffic pages.

Set up an internal traffic filter in GA4: Admin > Data Streams > your stream > Configure tag settings > Define internal traffic. Add your office IP addresses. Then create a data filter (Admin > Data Settings > Data Filters) to exclude traffic from that definition.

For Google Ads, add IP exclusions at the campaign or account level so your own visits do not trigger ad impressions or clicks.

6. Ignoring Consent Mode

If you sell to customers in the EU, UK, or California, consent mode is not optional in 2026. And ignoring it has consequences for your tracking data.

Without consent mode, here is what happens: a customer in Germany visits your store and declines cookies. Your GA4 and Google Ads tags respect that and do not fire. That customer buys. The conversion is never recorded. Google Ads never sees it. Your ROAS for German traffic looks worse than it actually is.

With consent mode v2 properly configured, Google's tags still fire in a privacy-safe way. They do not set cookies or collect personal data for users who decline consent, but they send anonymized pings that allow Google to model the missing conversions. The result is more accurate (though still estimated) conversion data.

For Shopify stores, you need a consent management platform (CMP) that supports Google Consent Mode v2. Options like Cookiebot, OneTrust, or Pandectes integrate with Shopify and send the correct consent signals to Google's tags. Without a CMP that fires the consent API calls, your tags have no way to know the user's consent status.

7. Running Too Many Tracking Tools at Once

This last one is more of a pattern than a single mistake. Over time, Shopify stores accumulate tracking tools. Shopify's native analytics. The Google channel. A GTM container. A Facebook pixel app. An analytics app from the Shopify App Store. Maybe a heat mapping tool like Hotjar.

Each of these tools adds JavaScript to your pages. And some of them overlap. The Google channel fires GA4 and Google Ads tags. GTM might fire the same tags. A Facebook pixel app fires the Meta pixel, but maybe the Google channel does too through its Shopify integration.

The result is duplicate events, conflicting data, and a measurably slower site. We have seen Shopify stores with 6+ tracking tools that could be replaced by a single GTM container with proper configuration.

Audit what you have. Make a list of every tracking tool, app, and script running on your store. Identify overlaps. Pick one source of truth for each platform (GA4 through GTM, or GA4 through the Google channel, but not both). Remove the rest. Your data gets cleaner and your site gets faster. Check our analytics tracking service if you need help with this.

Frequently Asked Questions

Compare your Google Ads or GA4 conversion count with Shopify's order count over the same period. If the gap is larger than 15%, something is off. Also check for duplicate transaction IDs in GA4 and review your Google Ads conversion actions for duplicates.

Technically yes, but it almost always causes duplicate tracking. If you use GTM for your tracking, disable GA4 and Google Ads tracking in Shopify's Google channel. Only use the Google channel for product feed syncing to Merchant Center.

Yes. Shopify's checkout runs on a separate domain for most stores, which can break cross-domain tracking and cause session splitting. Non-Plus stores also cannot add custom scripts to checkout, limiting what events you can capture there.

Check your core conversion tracking monthly (compare ad platform conversions to Shopify orders). Run a full tracking audit quarterly. Also audit after any Shopify theme update, app installation, or changes to your checkout flow.

Check Your Tracking in 60 Seconds

COREPPC's free audit checks your Google Ads and Meta accounts for tracking gaps, wasted spend, and missed conversions.

Start Free Audit