platform-guidesUpdated 2025

Your Shopify Checkout is Stealing Credit from Your Best Campaigns

GA4 shows checkout URLs as landing pages? Your campaigns are losing attribution at Shopify checkout. Fix it in 3 minutes with cross-domain tracking.

7 min readplatform-guides

You check your GA4 landing page report. Something's wrong. 40% of your purchases are attributed to "checkout.shopify.com / referral" instead of your Facebook ads, Google campaigns, or email sequences.

Your best campaigns look like failures. Your actual winners are invisible. You're making budget decisions based on completely broken data.

🚨 Not sure what's breaking your tracking?

Run a free 60-second audit to check all 40+ ways UTM tracking can fail.

Scan Your Campaigns Free

✓ No credit card ✓ See results instantly

Why This Happens

Shopify uses a separate checkout domain (checkout.shopify.com) for all Shopify Plus stores and certain payment methods. When customers proceed to checkout, GA4 treats it as a new session from a different website.

The problem:

Code
Customer journey (actual):
Facebook Ad → yourstore.com/product → checkout.shopify.com/purchase → Conversion

GA4 attribution (broken):
Landing page: checkout.shopify.com
Source/Medium: checkout.shopify.com / referral
Campaign: (not set)

Your $5,000 Facebook campaign that drove the sale? GA4 thinks the checkout page did it.

How Bad Is It?

Typical impact:

  • 30-50% of conversions misattributed to checkout domain
  • Paid campaigns show zero ROI (actual conversions hidden)
  • Organic channels get inflated credit
  • Attribution reporting completely unreliable

Example:

Code
Actual performance:
- Facebook Ads: 100 conversions, $50 CPA
- Google Ads: 50 conversions, $60 CPA
- Organic: 20 conversions

GA4 shows (broken):
- Facebook Ads: 40 conversions, $125 CPA (looks terrible!)
- Google Ads: 20 conversions, $150 CPA (looks terrible!)
- checkout.shopify.com: 110 conversions (what?!)
- Organic: 20 conversions

😰 Is this your only tracking issue?

This is just 1 of 40+ ways UTM tracking breaks. Most marketing teams have 8-12 critical issues they don't know about.

• 94% of sites have UTM errors

• Average: $8,400/month in wasted ad spend

• Fix time: 15 minutes with our report

✓ Connects directly to GA4 (read-only, secure)

✓ Scans 90 days of data in 2 minutes

✓ Prioritizes issues by revenue impact

✓ Shows exact sessions affected

Get Your Free Audit Report

The 3-Minute Fix

This uses GA4's cross-domain measurement to maintain session continuity across Shopify's checkout domain.

Step 1: Configure Cross-Domain Tracking in GA4

GA4 Setup (2 minutes):

  1. Open GA4 → AdminData StreamsWeb
  2. Click your web stream
  3. Click Configure tag settings
  4. Scroll to Configure your domains
  5. Click Add condition
  6. Add these three domains (one at a time):
    • yourstore.com (your custom domain)
    • yourstore.myshopify.com (your Shopify admin domain)
    • checkout.shopify.com (Shopify checkout domain)
  7. Click Save

Example configuration:

Code
Domain 1: "mydemostore.com" (match type: contains)
Domain 2: "mydemostore.myshopify.com" (match type: contains)
Domain 3: "checkout.shopify.com" (match type: contains)

Step 2: Add Checkout Domain to Unwanted Referrals

Still in Configure tag settings:

  1. Scroll to List unwanted referrals
  2. Click Add condition
  3. Add these domains:
    • checkout.shopify.com
    • yourstore.myshopify.com
  4. Click Save

Why this matters: Prevents GA4 from starting a new session when users move between domains.

Step 3: Test with Real Purchase (1 minute)

Testing checklist:

  1. Open incognito window
  2. Visit your store from a UTM-tagged URL:
    Code
    yourstore.com?utm_source=test&utm_medium=email&utm_campaign=test
    
  3. Add product to cart
  4. Proceed to checkout (you'll be redirected to checkout.shopify.com)
  5. Complete purchase
  6. Check GA4 Real-time report
  7. Verify: Original landing page (yourstore.com) gets credit, NOT checkout domain

What You'll See After Fixing

Before (Broken Attribution):

Code
GA4 Landing Pages Report:
1. checkout.shopify.com/12345 — 250 conversions
2. yourstore.com — 180 conversions
3. yourstore.com/product — 100 conversions

After (Correct Attribution):

Code
GA4 Landing Pages Report:
1. yourstore.com — 220 conversions
2. yourstore.com/product — 180 conversions
3. yourstore.com/sale — 130 conversions
(checkout.shopify.com disappears from report!)

Campaign attribution fixes automatically:

  • Facebook Ads show real conversion numbers
  • Google Ads show real ROI
  • Email campaigns get proper credit
  • You can finally trust your data

Advanced: Verify It's Working

Check 1: Exclusion List

GA4 → Admin → Data Streams → Web → More tagging settings → Show all → Excluded referrals

Verify you see:

  • checkout.shopify.com
  • yourstore.myshopify.com

Check 2: Real-Time Testing

  1. Open GA4 → ReportsReal-time
  2. Make test purchase
  3. Watch session flow in real-time
  4. Session should remain unbroken across domain change

Check 3: Landing Page Report

After 24-48h:

  1. GA4 → ReportsAcquisitionTraffic acquisition
  2. Add secondary dimension: Landing page
  3. Search for "checkout.shopify.com"
  4. Should see dramatic decrease (or zero) in checkout domain as landing page

Troubleshooting

Issue 1: Still Seeing checkout.shopify.com as Landing Page

Problem: Configuration complete but checkout domain still appears in reports.

Cause: Changes only affect new sessions, not historical data.

Fix:

  1. Verify cross-domain tracking configured correctly
  2. Verify unwanted referrals list includes checkout.shopify.com
  3. Wait 24-48h for new data to accumulate
  4. Historical data remains incorrect (expected)

Issue 2: Shopify Plus Custom Checkout

Problem: Using custom checkout domain (e.g., checkout.yourstore.com).

Fix:

  1. Add your custom checkout domain to cross-domain list
  2. Add to unwanted referrals list
  3. Follow same process

Issue 3: Shop Pay Transactions Still Break

Problem: Shop Pay purchases lose attribution.

Cause: Shop Pay uses additional domains.

Fix:

  1. Add shop.app to cross-domain list
  2. Add to unwanted referrals list

FAQ

Will this fix historical data?

No, only future tracking. GA4 cannot retroactively fix attribution for past conversions. But new purchases will show accurate attribution immediately (24-48h for data to appear in reports).

Do I need Shopify Plus?

No. This works for all Shopify plans. All Shopify stores redirect to checkout.shopify.com for checkout, regardless of plan.

What about Shop Pay?

Covered by the checkout.shopify.com domain configuration. Shop Pay transactions go through Shopify's checkout domain.

How do I verify it's working?

Make a test purchase from a UTM-tagged URL. Check GA4 to confirm the original landing page gets credit, not the checkout URL. Use Real-time report for immediate verification.

Does this work with Google Tag Manager?

Yes. If you use GTM instead of native GA4, add the same cross-domain configuration to your GA4 Configuration tag in GTM:

Code
Cross Domain Tracking: checkout.shopify.com,yourstore.myshopify.com

Will this affect my Facebook Pixel or other tracking?

No. This only affects GA4 attribution. Facebook Pixel, TikTok Pixel, and other tracking pixels operate independently.

What if I use Shopify Scripts for custom checkout?

Cross-domain tracking still works. Add your specific checkout domain to the configuration.

Can I see which campaigns drive checkout visits?

Yes, but after fixing cross-domain tracking, you'll see campaigns that drive original landing pages, not checkout pages. This gives you accurate campaign performance.

How long does it take to see results?

Immediate for new sessions. Real-time report shows correct attribution within minutes. Standard reports update within 24-48 hours.

What if I have multiple Shopify stores?

Configure cross-domain tracking for each GA4 property separately. Each store needs its own checkout.shopify.com and myshopify.com domains in the configuration.

Internal Guides

Google Official Documentation

Shopify Resources

Conclusion

Shopify's separate checkout domain breaks GA4 attribution by default. Cross-domain tracking fixes it in 3 minutes.

Fix checklist:

  • ✅ Add yourstore.com, yourstore.myshopify.com, checkout.shopify.com to cross-domain configuration
  • ✅ Add checkout.shopify.com and yourstore.myshopify.com to unwanted referrals list
  • ✅ Test with real purchase from UTM-tagged URL
  • ✅ Verify original landing page gets credit (not checkout domain)
  • ✅ Wait 24-48h for new data to accumulate in reports

Result: Accurate campaign attribution, reliable ROI data, correct marketing decisions based on real performance.

✅ Fixed this issue? Great! Now check the other 39...

You just fixed one tracking issue. But are your Google Ads doubling sessions? Is Facebook attribution broken? Are internal links overwriting campaigns?

Connects to GA4 (read-only, OAuth secured)

Scans 90 days of traffic in 2 minutes

Prioritizes by revenue impact

Free forever for monthly audits

Run Complete UTM Audit (Free Forever)

Join 2,847 marketers fixing their tracking daily

UTM

Get Your Free Audit in 60 Seconds

Connect GA4, run the scan, and see exactly where tracking is leaking budget. No credit card required.

Trusted by growth teams and agencies to keep attribution clean.