Shopify conversion tracking decides which ads look profitable, so when it is wrong, you spend more on the wrong campaigns. This guide covers how tracking works on Shopify today, when to use the official Google and Meta apps or Google Tag Manager, how to make every order count exactly once, where consent fits in, and how I test it all with real test orders before anyone trusts the numbers.
How tracking works on Shopify now
For years, tracking on Shopify meant pasting code into the theme and into the checkout’s Additional scripts box. Shopify has retired both on the Thank you and Order status pages. Plus stores lost them there in August 2025, and other stores that had not upgraded by August 26, 2026 were upgraded automatically. If your purchase tracking lived in that box, it no longer runs.
Tracking now runs through Customer events, under Settings in your admin. Shopify publishes standard events such as product_viewed, product_added_to_cart, checkout_started and checkout_completed, and pixels subscribe to them. There are two kinds:
- App pixels come with apps such as Google & YouTube or Facebook & Instagram. They run in a strict sandbox, and the app’s developer maintains them.
- Custom pixels are code you or your developer add by hand. They run in a looser sandbox, and Shopify does not support them, so you own every problem they cause.
Pixels run on the storefront and in checkout. The purchase event, checkout_completed, fires once per checkout, usually on the Thank you page, or on the first upsell page if you use post-purchase offers.
One leftover worth checking: if someone once typed a Meta pixel ID into the old Online Store Preferences page, Shopify converted it into a custom pixel in early 2025. If you later installed the Facebook & Instagram app, that converted pixel can send a second set of events.
Official apps or Google Tag Manager?
For Google and Meta, my default is the official apps:
- Google & YouTube, built by Google, sets up the Google tag for GA4 and Google Ads. It maps Shopify’s events to GA4 events, sends a transaction ID with each purchase, lets you switch on enhanced conversions and syncs your products to Merchant Center. In Google Ads, it sets up purchase as the main conversion.
- Facebook & Instagram, built by Meta, installs the Meta Pixel. Its data sharing setting decides how much it sends. Standard uses the pixel only. Enhanced and Maximum add the Conversions API, which sends events such as purchases from server to server, so fewer are lost to browser restrictions.
Know one quirk before you compare numbers: since April 24, 2025, the Google & YouTube app reports purchase value as the subtotal minus discounts, without shipping or tax. GA4 revenue will sit below Shopify’s total sales, and that is by design.
Google Tag Manager can still run on Shopify, but only inside a custom pixel. Shopify has a guide for it, but the limits are real: Tag Assistant cannot see the tags, page URLs can show the sandbox’s address, and you have to push every Shopify event into the data layer yourself. Google calls Tag Manager inside a Shopify custom pixel “not a supported implementation”, and preview mode is one of the features that breaks. I use GTM there only for tags that have no Shopify app or need custom parameters, and never for an event an app already sends.
Shopify conversion tracking without double counting
The rule: each platform receives each purchase from exactly one source. Each also has a safety net, if you feed it correctly:
- GA4 deduplicates purchase events that share a transaction ID on web data streams. Never send an empty ID, because GA4 then treats every purchase with a blank ID as the same one.
- Google Ads ignores a second conversion with the same transaction ID, which protects you when someone reloads the confirmation page. But only primary conversion actions count in the Conversions column and feed bidding. If the app’s purchase conversion and an imported GA4 purchase are both primary, each order counts twice. Keep one primary and set the other to secondary.
- Meta merges a pixel event and a Conversions API event only when they share the same event name and event ID, within 48 hours. A second Meta tool running next to the official app usually cannot match its event IDs, so its purchases count again.
The double counts I look for first:
- An app pixel and a GTM custom pixel both sending purchases to the same GA4 property.
- Old gtag or fbq snippets still hard-coded in theme.liquid.
- A converted Preferences page pixel running beside the Meta app.
- Two primary purchase conversions in Google Ads.
- A second tracking app installed for the same platform.
Missing purchases have their own usual causes: visitors who declined tracking (that is by design), an upsell page that failed to load so checkout_completed never fired, a custom pixel that sends the value as text or leaves out the currency, and old Additional scripts nobody replaced. Point-of-sale sales and subscription renewals never fire pixels either, and that is normal.
Consent comes first
Shopify’s cookie banner lives under Settings > Customer privacy. For stores with active markets in the UK and EEA, Shopify configures it automatically for visitors there, and you can change the regions. Pixels added through Customer events respect the visitor’s choice: where consent is required, a pixel only runs when the visitor has granted the permissions it needs, such as analytics or marketing.
For Google’s Consent Mode, Shopify says to configure your customer privacy settings so consent reaches Google, and to connect any third-party banner to those settings. If you send Google tags through a custom pixel, you have to add the consent mode code yourself. Consent means some purchases will never reach your ad platforms, and that is the trade. Privacy rules vary by country and this is not legal advice, so check what applies in the markets you sell to.
Test with real test orders
- Pick a quiet hour. Shopify’s test payment gateway and Shopify Payments test mode let you place orders without real charges, but customers cannot place live orders while your payments are in test mode. The alternative is a real, low-value order that you cancel and refund, which may cost a processing fee.
- Open the Pixel Helper. The Test button in Customer events opens Shopify’s Pixel Helper, which shows the events a pixel receives while you view a product, add it to the cart, check out and pay.
- Watch each destination. Check GA4’s Realtime report, the Test events tab in Meta Events Manager and the conversion status in Google Ads, which can take a few hours to update.
- Check the details, not just the event. One purchase per platform, with the right value, the right currency and a transaction ID that matches the order.
- Note your test order numbers. Shopify keeps test orders out of its reports, but your analytics and ad platforms may still record them, so you need to know which ones to ignore.
- Compare after a week. Put GA4 purchases, Google Ads conversions and Meta purchases next to Shopify’s order count. Some gap is normal because of consent choices, ad blockers and different attribution rules. More purchases than orders, or a gap that keeps growing, means something is wrong.
This routine is the core of my conversion tracking service. From February 2024 to January 2026, I built and maintained Shopify, WordPress and WooCommerce stores for a UK agency’s clients, GA4 and GTM tracking included, and I do the same work today in my Shopify development projects.
Quick checklist
- No tracking code left in theme.liquid that duplicates an app.
- Official Google and Meta apps connected, with a data sharing level chosen on purpose.
- One primary purchase conversion in Google Ads.
- Cookie banner configured for the regions you sell to.
- Test order checked in the Pixel Helper, GA4, Meta and Google Ads.
- A weekly comparison of platform purchases against Shopify orders.
Related reading: Shopify Product Page Optimization: What Makes People Buy and Shopify Checkout Customization: What You Can Change in 2026.
FAQ
Can I still use Google Tag Manager on Shopify?
Yes, inside a custom pixel, but without preview mode or support from Shopify or Google for that setup. For GA4 and Google Ads, the Google & YouTube app is the safer route.
Do I need the Conversions API if I have the Meta Pixel?
It helps. The pixel depends on the browser, and some events never arrive. The Enhanced or Maximum data sharing level in the Facebook & Instagram app adds server events without extra code.
My purchase tracking was in Additional scripts. Does it still work?
No. Those scripts no longer run on the Thank you and Order status pages. Rebuild that tracking with app pixels or a custom pixel, then check it with a real test order.
Not sure your ad platforms see the same sales as your store? Get a free website review and I will compare your tracking with your real Shopify orders.




