ConverlayConverlay
TrackingShopifyTroubleshooting

Shopify Conversion Tracking Not Working? A Complete Troubleshooting Guide

ConverlayFebruary 14, 202612 min read

You are spending money on ads, people are buying from your store, but your ad platform says otherwise. Maybe Meta reports half the purchases you know happened. Maybe Google Analytics shows a different number than your Shopify dashboard. Maybe your TikTok pixel stopped firing entirely and you have no idea when it broke. This is one of the most common and most expensive problems Shopify merchants face, and it is almost always fixable once you understand what is actually going wrong.

This guide is written for store owners and marketers who are actively dealing with broken conversion tracking. We will start with symptoms, move through diagnosis, identify root causes, cover platform-specific fixes, and explain why browser-based pixels are fundamentally unreliable on Shopify in 2026. If you just want to fix the problem permanently, skip to the server-side tracking section at the end.

Common Symptoms of Broken Conversion Tracking

Before diving into fixes, let us identify exactly what "not working" looks like. These are the most common symptoms Shopify merchants report:

  • Conversions missing entirely: Customers are completing purchases but your ad platform (Meta, Google, TikTok) shows zero or very few conversion events. Your Shopify orders dashboard and your ad platform dashboard tell completely different stories.
  • Pixel fires on some pages but not on checkout or thank-you page: Your pixel helper extension shows events on product pages and add-to-cart, but nothing fires during checkout or after purchase. This is the single most common issue on Shopify.
  • Duplicate events: Your ad platform is reporting more conversions than actually happened, inflating your numbers and corrupting your optimization data. You might see two or three Purchase events for a single order.
  • Wrong purchase values: Conversions are being recorded, but the revenue values are incorrect. You might see $0 purchase values, values that include tax and shipping when they should not, or currency mismatches.
  • Pixel fires but conversions do not appear in the ad platform: Your browser extension confirms the pixel is firing, network requests are being sent, but when you check Meta Events Manager or Google Ads, nothing shows up. This is usually a configuration or matching problem.
  • Tracking works on desktop but fails on mobile: Your conversion numbers from desktop traffic look reasonable, but mobile (especially iOS) shows a massive drop. This points to browser privacy restrictions silently blocking your tracking.
  • Intermittent failures: Tracking works sometimes and breaks other times with no obvious pattern. Some customers trigger events correctly, others do not. This is often related to ad blockers, browser privacy settings, or race conditions in script loading.

If any of these sound familiar, keep reading. We will systematically work through each possible cause.

Step-by-Step Diagnostic Checklist

Before making any changes, you need to understand exactly what is happening. Run through this checklist in order. Each step narrows down the problem.

1. Verify the Pixel Is Installed and Loading

Install the appropriate browser extension for your platform:

  • Meta Pixel: Install the Meta Pixel Helper Chrome extension.
  • Google Tag: Install Google Tag Assistant (or use the Tag Assistant companion extension).
  • TikTok Pixel: Install the TikTok Pixel Helper Chrome extension.

Visit your Shopify store in a fresh Incognito window (to avoid cached scripts and extensions interfering) and navigate through your store: homepage, product page, add to cart, and initiate checkout. Watch the helper extension at each step. You should see it light up and show the events being sent.

If the extension shows nothing at all, your pixel is not installed or not loading. Check your Shopify theme code or app settings. If it shows events on product pages but nothing during checkout, you have hit Shopify's checkout domain restriction, which we will cover below.

2. Inspect Network Requests Directly

The pixel helper extensions are useful, but they do not tell the whole story. Open Chrome DevTools (right-click the page and select "Inspect", then go to the "Network" tab) and filter requests:

  • For Meta: filter by facebook.com/tr
  • For Google: filter by google-analytics.com/collect or googletagmanager.com
  • For TikTok: filter by analytics.tiktok.com

Check the request payload. Look for the event name (e.g., Purchase, purchase, CompletePayment), the value parameter, and the currency. A status code of 200 means the request was received by the ad platform. If you see no requests at all, scripts are being blocked. If you see requests with a non-200 status, there may be a configuration error with your pixel ID or access token.

3. Check the Ad Platform's Events Manager

Even if the pixel fires from the browser, the ad platform might not be receiving or processing the events correctly. Check each platform's diagnostics tool:

  • Meta: Go to Events Manager, select your pixel, and click "Test Events." Open your store in another tab and trigger some events. They should appear in the test events panel within a few seconds. Also check the "Diagnostics" tab for warnings or errors.
  • Google: In Google Ads, go to Tools > Conversions, select your conversion action, and check the status. "Recording conversions" means it is working. "No recent conversions" or "Inactive" means events are not arriving or are not matching.
  • TikTok: In TikTok Ads Manager, go to Assets > Events and check the event status. Use the "Test Event" feature to verify real-time.

4. Test with Ad Blockers Disabled

If your pixel appears to work in a clean Incognito window but fails for real visitors, ad blockers are likely the cause. Extensions like uBlock Origin, AdBlock Plus, Ghostery, and even built-in browser protections (like Brave's shields or Firefox's Enhanced Tracking Protection) will silently block tracking scripts from loading and network requests from being sent. The pixel simply never fires, and no error is thrown.

There is no way to fix this from the browser side. You cannot bypass ad blockers with client-side JavaScript. This is one of the fundamental reasons server-side tracking exists.

5. Test a Complete Purchase Flow

Use Shopify's Bogus Gateway (Settings > Payments > enable Bogus Gateway for testing) to place a real test order. Go through the entire purchase flow and check whether the Purchase or Conversion event appears in your ad platform. This confirms whether the thank-you page pixel fires correctly. Many tracking problems only manifest on the actual purchase event because of how Shopify handles the checkout.

Root Causes: Why Shopify Conversion Tracking Breaks

Now that you have diagnosed what is happening, let us look at why it happens. Most broken tracking on Shopify traces back to one or more of these root causes.

Shopify's Checkout Domain Restriction

This is the number one cause of missing purchase events on Shopify, and most merchants do not even know it exists. When a customer reaches checkout on a standard Shopify store, they are redirected to checkout.shopify.com, a different domain from your store. This means any tracking scripts you installed in your theme (via theme.liquid or a custom app) do not load on the checkout pages. Your pixel simply does not exist on the checkout or thank-you page.

Shopify Plus merchants can customize their checkout, but even then, there are restrictions. For non-Plus merchants, you are limited to Shopify's "Additional Scripts" field (now deprecated in favor of Shopify Pixels) or Shopify's built-in integrations for tracking on checkout pages.

If you installed your pixel by pasting code into your theme files, it will not fire on checkout. You need to use either Shopify's native integrations, the Shopify Pixels API (which runs in a sandboxed environment with its own limitations), or server-side tracking to capture purchase events reliably.

Shopify Pixels Sandbox Limitations

Shopify introduced its Pixels API as the official way to add tracking to your store, including on checkout pages. However, these pixels run in a sandboxed iframe, which means they cannot access the main page's cookies, localStorage, or DOM. This creates problems for platforms that rely on reading first-party cookies (like Meta's _fbp and _fbc cookies) to match browser events to user profiles.

The result is that even when events fire correctly from the Shopify Pixels sandbox, the ad platform may not be able to match those events to the correct user. You will see events arriving in your Events Manager, but your match quality will be low, and many conversions will not be attributed to the right ad campaign.

Cookie Expiration and Browser Privacy Restrictions

Safari's Intelligent Tracking Prevention (ITP) limits JavaScript-set cookies to 7 days (and in some cases 24 hours). Firefox has Enhanced Tracking Protection. Brave blocks trackers by default. Chrome is rolling out its own privacy restrictions. The practical impact is that if a customer clicks your ad, browses your store, and comes back 8 days later to purchase, the browser pixel cannot connect that purchase to the original ad click. The cookie that linked the two events has expired.

This does not show up as a broken pixel. The pixel fires, the event is sent, but the ad platform cannot attribute the conversion to a campaign. In your ad dashboard, it looks like the conversion never happened.

Ad Blockers and Browser Extensions

Current estimates suggest that 30 to 40 percent of web users have some form of ad blocker or tracking blocker installed. On tech-savvy audiences, this number can be significantly higher. These tools block the pixel script from loading entirely or intercept the network requests that send event data to ad platforms. There is no workaround on the client side. If the browser blocks the request, the event is lost.

Script Loading Race Conditions

Shopify stores often run dozens of apps, each injecting their own scripts. When multiple scripts compete for execution time, tracking pixels may not finish loading before a customer navigates away or completes an action. This is especially common on mobile devices with slower connections. The customer adds to cart and the page navigates before the AddToCart event fires. The event is lost silently.

Duplicate Events from Multiple Installations

This happens more often than you would expect. A merchant installs a tracking app, then also pastes the pixel code directly into their theme, and maybe also adds it via Shopify's native integration. Each installation fires the same events independently, resulting in duplicate or triplicate Purchase events. This corrupts your ad platform's optimization data because it thinks your campaigns are converting at two to three times their actual rate.

To fix this, audit all the places your pixel code exists. Check your theme files (theme.liquid, checkout.liquid if on Plus), your Shopify Pixels settings (Settings > Customer Events), any tracking apps you have installed, and Shopify's built-in sales channel integrations. Remove duplicates so each pixel ID fires from exactly one source.

Platform-Specific Troubleshooting

Meta Pixel and Conversions API (CAPI)

Meta's tracking is the most commonly broken because it is the most widely used and the most affected by privacy restrictions. Here are the most common Meta-specific issues on Shopify:

  • Pixel ID mismatch: Verify that the Pixel ID in your Shopify settings matches the one in your Meta Business Manager. Go to Meta Events Manager, copy your Pixel ID, and compare it to what is configured in Shopify (Settings > Customer Events or your tracking app). A single wrong digit means events go to the wrong pixel.
  • Domain verification missing: Meta requires you to verify your domain in Business Manager. If your domain is not verified, event prioritization under Aggregated Event Measurement (AEM) may drop your conversion events. Go to Business Settings > Brand Safety > Domains and verify your store domain.
  • Event configuration under AEM: After iOS 14.5, Meta limits you to 8 prioritized conversion events per domain. If your Purchase event is not in the top 8, or is not prioritized correctly, conversions from iOS users will be dropped. Go to Events Manager > Aggregated Event Measurement > Configure Web Events and ensure Purchase is your highest-priority event.
  • Low Event Match Quality (EMQ): Check your Event Match Quality score in Events Manager. If it is below 6, Meta cannot reliably match your browser events to user profiles. This means events arrive but are not attributed to ad clicks. Improving this requires sending additional user parameters (email, phone, external ID) with your events, which is exactly what server-side tracking excels at.
  • Conversions API not configured: If you are only sending events via the browser pixel and not via the Conversions API (server-side), you are missing a significant portion of your conversions. Meta strongly recommends running both the pixel and CAPI together, with deduplication, for maximum data coverage.

Google Ads and GA4

Google tracking on Shopify has its own set of common failure points:

  • Conversion action misconfigured: In Google Ads, you need a conversion action set to count "One conversion" per click (for purchases) and with the correct conversion value settings. Go to Tools > Conversions and verify the configuration matches what your pixel is sending.
  • Google Tag (gtag.js) not loading on checkout: The same checkout domain issue applies. If you installed your Google tag only in your theme, it will not fire on the thank-you page. Use Shopify's native Google channel integration or server-side tracking.
  • Consent Mode v2 not implemented: Google now requires Consent Mode v2 for advertisers in the EEA and UK. Without it, conversions from users who do not consent to cookies will not be modeled or reported. If a large portion of your traffic is European and you have not implemented Consent Mode v2, your conversion numbers will be systematically low.
  • GA4 and Google Ads tracking conflict: If you are sending events to both GA4 and Google Ads separately (rather than linking them), you may see discrepancies between the two. Ensure your GA4 property is linked to your Google Ads account and that you are importing conversions from GA4 into Google Ads, or sending directly to both via a unified setup.
  • Enhanced Conversions not enabled: Google's Enhanced Conversions allow you to send hashed first-party customer data (email, phone, address) alongside your conversion tag. This improves match rates significantly. If you are not using Enhanced Conversions, you are leaving attribution accuracy on the table.

TikTok Pixel and Events API

TikTok's tracking ecosystem is newer and has some unique issues:

  • Pixel code version outdated: TikTok has updated its pixel code several times. If you installed the pixel manually a while ago, you may be running an older version that does not support all current event types. Check TikTok's developer documentation for the latest pixel base code.
  • Event names do not match: TikTok uses different event names than Meta. The purchase event is CompletePayment, not Purchase. If your tracking setup sends a Purchase event to TikTok, it will not be recognized as a conversion. Verify that your event names match TikTok's required naming convention.
  • Events API not set up: Like Meta, TikTok offers a server-side Events API alongside the browser pixel. Without it, you are subject to all the same browser-side limitations: ad blockers, cookie expiration, and checkout domain restrictions.
  • Advanced Matching not enabled: TikTok's Advanced Matching lets you send hashed customer data with pixel events to improve attribution. Without it, match rates for TikTok events tend to be lower than other platforms, especially on iOS traffic.

Why Browser-Based Pixels Fundamentally Fail on Shopify

If you have worked through the troubleshooting steps above and fixed specific configuration issues, your tracking will improve, but it will not be reliable in the long term. The reason is structural. Browser-based tracking pixels depend on a chain of conditions that is increasingly unlikely to hold:

  1. The tracking script must load on the page (blocked by ad blockers, script errors, and slow connections).
  2. The script must execute before the user navigates away (fails during fast checkouts and page transitions).
  3. The browser must allow the network request to be sent (blocked by privacy extensions and browser protections).
  4. The browser must have a valid cookie linking the user to their original ad click (expires after 7 days on Safari, blocked entirely by some browsers).
  5. The script must have access to the page's cookies and DOM (broken by Shopify's sandboxed pixel environment).
  6. The script must be present on the checkout and thank-you page (impossible for non-Plus Shopify stores using theme-based installation).

Every single one of these conditions fails for a meaningful percentage of your customers. The cumulative effect is that browser pixels on a typical Shopify store miss 20 to 40 percent of actual conversion events. For stores with high mobile traffic or privacy-conscious audiences, the number can be even higher.

This is not a bug you can fix. It is a fundamental limitation of running JavaScript in a browser that the user controls. No amount of pixel configuration, theme code tweaking, or app installation will change the fact that browsers are increasingly hostile to tracking scripts.

Server-Side Tracking: The Permanent Fix

Server-side tracking (also called server-side event forwarding or S2S tracking) solves these problems by sending conversion data directly from Shopify's backend servers to your ad platforms. The data never passes through the customer's browser, which means:

  • Ad blockers are irrelevant. The event is sent from a server, not from the browser. There is nothing for ad blockers to block.
  • Cookie restrictions do not apply. Server-side events use first-party data that Shopify collects during checkout (email, phone number, shipping address) to match conversions to ad clicks. This data is sent hashed and securely, and it does not depend on browser cookies.
  • Checkout domain restrictions disappear. Because the event originates from Shopify's order webhook, not from a script on the checkout page, it does not matter what domain the checkout runs on. Every completed order triggers a server-side event.
  • Every purchase is captured. Server-side events are triggered by Shopify webhooks that fire when an order is created. If the order exists in Shopify, the event is sent. There is no dependency on scripts loading, pages rendering, or browsers cooperating.
  • Match quality is dramatically higher. Server-side events include hashed customer identifiers (email, phone) that ad platforms use for deterministic matching. This is far more reliable than the probabilistic matching that browser pixels depend on.

The combination of browser pixel plus server-side tracking, with proper deduplication, gives you the most complete and accurate conversion data possible. The browser pixel handles events where cookies are still valid and scripts load correctly. Server-side tracking catches everything else, which in 2026, is a substantial and growing portion of your conversions.

How Converlay Fixes Shopify Conversion Tracking

Converlay is a Shopify app built specifically to solve the conversion tracking problems described in this guide. It works by forwarding conversion events directly from Shopify's backend to every major ad platform, bypassing the browser entirely.

Here is what Converlay does differently:

  • Multi-platform server-side forwarding: Converlay sends events to Meta (Conversions API), Google (Enhanced Conversions and GA4 Measurement Protocol), TikTok (Events API), Pinterest, Snapchat, Reddit, Klaviyo, and Criteo from a single installation. You do not need to configure each platform's server-side API individually.
  • Automatic event deduplication: Converlay handles deduplication between browser pixel events and server-side events so you do not get double-counted conversions. Each event includes a unique event ID that ad platforms use to merge duplicate reports.
  • Full checkout coverage: Because Converlay listens to Shopify's order webhooks, it captures every single completed purchase regardless of checkout domain, browser type, or installed extensions. No purchase is missed.
  • High match quality out of the box: Converlay automatically enriches events with hashed customer data from Shopify's order information (email, phone, name, address). This gives you high Event Match Quality scores on Meta, strong match rates on Google and TikTok, and better attribution across all platforms.
  • No code changes required: You install the app from the Shopify App Store, connect your ad platform accounts, and Converlay handles the rest. There is no pixel code to paste, no theme files to edit, and no developer needed.
  • Works alongside existing pixels: You can keep your existing browser pixels in place. Converlay adds the server-side layer on top, with deduplication, so you get the benefits of both without double-counting.

If you have been fighting with broken conversion tracking, spending hours debugging pixels, and still losing data to ad blockers and browser restrictions, server-side event forwarding is the only permanent solution. It does not patch over the problem; it routes around it entirely.

Install Converlay from the Shopify App Store and start capturing the conversions your browser pixels are missing. Setup takes minutes, not hours, and you will see the impact in your ad platform reporting within 24 hours.