Key takeaways
- Each platform (Shopify, Google Ads, GA4, Meta) requires its own conversion tracking setup.
- Shopify’s Customer Events API is the recommended way to send conversion data to ad platforms.
- Shopify’s built-in Analytics reports give you order data without any extra setup.
- Avoid installing the same pixel in multiple places - duplicate events inflate your reported conversions.
Conversion tracking is what turns your ad spend from a guess into a measurement. Without it, you can’t know which campaigns, keywords, or audiences drive actual purchases. The problem with Shopify is that there are multiple overlapping tracking systems to set up correctly.
This guide walks through the full picture.
Shopify’s built-in conversion tracking
Shopify tracks every order natively. No setup required.
Where to find it: Analytics → Reports → Sales over time, Orders over time, and Conversion rate.
Shopify’s analytics show you:
- Total sales and order count
- Conversion rate (sessions to orders)
- Average order value
- Top products and collections by revenue
- Traffic sources at a high level
Limitations: Shopify’s analytics don’t integrate with your ad platforms. You can see that 100 orders happened, but not which ones came from your Google Ads campaign vs. your email list vs. organic search.
For that level of attribution, you need platform-specific tracking.
To measure results, see add google tag manager to shopify.
Google Analytics 4 (GA4) conversion tracking
GA4 tracks the full shopping journey and can attribute purchases to traffic sources.
Setup via Shopify’s native integration:
- Go to Online Store → Preferences
- Find the Google Analytics section
- Enter your GA4 Measurement ID (G-XXXXXXXXXX)
- Enable Enhanced Ecommerce
This sends basic purchase data to GA4. For richer ecommerce tracking (product view, add to cart, begin checkout events), use the Google & YouTube Shopify app or set up via Customer Events.
Viewing conversions in GA4: Reports → Monetization → Ecommerce purchases. Shows revenue, transaction count, and item-level data.
Google Ads conversion tracking
For Google Ads to optimize your campaigns toward purchases, it needs to know when a purchase happens.
Recommended method — Customer Events:
- Settings → Customer events → Add custom pixel
- Write a pixel that listens to
checkout_completedand fires the Google Ads conversion via gtag:
To measure results, see create a landing page in shopify.
Related: Capture UTM Values in Shopify Forms.
To measure results, see add a custom conversion element in shopify.
Related: Fix Duplicate Pixel Events in Shopify.
analytics.subscribe('checkout_completed', (event) => {
const order = event.data.checkout;
gtag('event', 'conversion', {
'send_to': 'AW-XXXXXXXXX/XXXXXXXXXXXX',
'value': parseFloat(order.totalPrice.amount),
'currency': order.currencyCode,
'transaction_id': order.order.id
});
});
Alternative method: Use the Google & YouTube Shopify app (free, by Google). It handles Google Ads conversion tracking and GA4 automatically.
Meta (Facebook) Pixel conversion tracking
Meta Pixel tracks who visits your store and reports purchases back for ad optimization and retargeting.
Setup via Shopify’s Facebook & Instagram app:
- Install the Facebook & Instagram app from the Shopify App Store
- Connect your Facebook Business Manager account
- The app automatically sets up the Meta Pixel and sends purchase events
Or via Customer Events:
- Settings → Customer events → Add custom pixel
- Add the Meta Pixel base code and listen for
checkout_completed - Fire
fbq('track', 'Purchase', {...})with order value and currency
Do not use both methods at the same time. This is the most common cause of duplicate purchase events in Meta Ads Manager.
How to avoid duplicate conversion events
Duplicate events inflate your reported conversions and make ad optimization unreliable. Common causes:
Meta Pixel installed twice: once via the Facebook & Instagram app, once via manual pixel code in theme.liquid. Fix: use only the app, remove manual code.
GA4 tag firing twice: Shopify’s native integration AND a GTM GA4 tag both active. Fix: use one source, disable the other.
The “additional scripts” field in Checkout settings: if you added pixel code here years ago, it may now conflict with a newer integration. Go to Settings → Checkout → scroll to “Order status page” and check for old pixel code.
How to diagnose: use Meta Events Manager → Test Events tab, or GA4’s DebugView. If you see the same event firing twice within milliseconds, you have a duplicate.
TikTok, Pinterest, and other ad platforms
The pattern is the same for all ad platforms:
- Check if there’s a native Shopify app (TikTok has one, Pinterest has one)
- If yes, use the app — it handles pixel installation and purchase event tracking
- If no, use Customer Events to install a custom pixel
Always test using the platform’s native testing tools after setup. Don’t assume it’s working just because the pixel is installed.
Attribution: why different platforms show different numbers
Google Ads, Meta, GA4, and Shopify Analytics will each show different conversion numbers for the same time period. This is normal and expected.
Why it happens:
- Each platform uses its own attribution model (last-click, data-driven, 7-day view-through, etc.)
- A customer might click a Meta ad, then a Google search ad, then convert — all three platforms claim the conversion
- Shopify only counts the actual order; ad platforms include modeled conversions
Use Shopify’s native order data as your ground truth. Use ad platform conversions for optimization within each platform’s own interface.
Related: Track Click Events in Shopify.
Related: Track Scroll Events in Shopify.
FAQ
Different attribution models, time windows, and counting methods. Each platform claims attribution for clicks/views within its window. Cross-platform conversions are claimed multiple times. Modeled conversions (when actual signal is missing) inflate ad platform totals. Shopify only counts real orders. Treat ad platform numbers as relative-to-themselves, Shopify as ground truth.
Shopify's native analytics for total business performance — orders, revenue, AOV. Platform pixels (Meta, Google Ads) for in-platform optimization decisions — they tell each platform what to optimize toward. Don't expect them to match each other. Reconcile only at high level (total ad spend ROAS), not per-conversion.
Shopify natively tracks orders by sales channel (Online Store, POS, Instagram, Amazon) in Analytics → Reports. For unified attribution across channels, you'd need a third-party tool (Triple Whale, Northbeam) that ingests data from all sources. Native Shopify reports are sufficient for most stores running 2–3 channels.
Yes. iOS 14.5+ Apple Tracking Transparency reduced Meta's signal accuracy meaningfully, with Google somewhat affected. Shopify's first-party tracking and Customer Events are less affected because they run server-side. Implementing Meta Conversions API (server-side) recovers some of the lost iOS signal — Shopify's Facebook & Instagram app handles this automatically.
Yes — micro-conversion events. Customer Events fires product_added_to_cart, checkout_started, etc. Send these to Meta and Google Ads as custom events to optimize toward earlier funnel signals. Useful when actual purchase volume is too low for ad platforms to optimize against directly.