How to Set Up Tracking on BigCommerce

BigCommerce handles checkout differently to Shopify. Here is how to get accurate purchase data out of it and into your ad platforms.

BigCommerce sits in an awkward spot. It is enterprise enough that people assume tracking is handled, and open enough that it usually is not.

The good news is that BigCommerce gives you more access than Shopify does in some places, including the checkout, if you are on the right plan. The bad news is that the default setup will report inflated revenue and miss a chunk of conversions at the same time.

Here is a setup that reports accurate numbers.

Start with what BigCommerce gives you

Three places code can live, and knowing which is which saves a lot of confusion.

  • Script Manager. Storefront, then Script Manager. This is where sitewide scripts go, with control over placement and which pages they run on. GTM goes here.

  • Data Solutions. The built in connectors for Google Analytics, Meta and others. Convenient, and the cause of most double counting. More on this shortly.

  • Checkout and order confirmation. Script Manager can target the order confirmation page specifically, and on plans with checkout customisation you get more.

Turn off the built in connectors first

This is step one and it is not optional.

If you enable the native Google Analytics connector and also install GA4 through GTM, you get two GA4 tags on every page. Sometimes with different measurement IDs, which is worse, because now your data is split and neither property is right.

Same story with the Meta connector. Native pixel plus GTM pixel equals every Purchase counted twice, and Meta happily reports a ROAS you will believe for about a month.

Pick one. I would pick GTM every time, because the native connectors give you no control over consent, deduplication or what gets sent.

Go to Advanced Settings, then Data Solutions, and disconnect anything you are about to rebuild.

Install GTM through Script Manager

Create a script, set the location to Head, set the pages to All Pages, and paste the GTM head snippet. Then a second script in the Footer for the noscript tag if you want it.

One thing to watch: Script Manager has a category setting used for consent. If you set GTM to a category that is blocked by default under your consent banner, your entire container will not load for most visitors and you will spend a day wondering why.

Set GTM itself to load, and handle consent inside GTM with Consent Mode. That is the correct division of labour. Details here: Google Consent Mode v2 setup in GTM.

Getting ecommerce data onto the page

BigCommerce uses Stencil themes with Handlebars templates, which means you can print real order and product data into the page.

The pattern is to push a data layer object from the template, so the values come from BigCommerce rather than from scraped page text.

  • On product pages, push item ID, SKU, name, category, price and currency.

  • On the cart page, push the full cart contents and total.

  • On the order confirmation page, push the order ID, order total, tax, shipping, currency and line items.

Never scrape the displayed price. Displayed prices include currency symbols, thousand separators and sometimes a discount strikethrough. Your conversion value ends up as zero or as a number with a comma in it, and Google Ads treats that as nothing.

The order confirmation double fire

The BigCommerce order confirmation page can be reloaded and revisited. Customers do this constantly, especially on mobile.

Guard the purchase event. When it fires, store the order ID in local storage. On every subsequent load, check whether that order ID has already been recorded and block the tag if it has.

Do this in GTM as a blocking trigger exception, so it applies to every purchase tag at once rather than being reimplemented three times.

The wider version of this problem: why your GA4 purchase event fires twice.

Refunds, taxes and shipping

Decide once what a conversion value means, then apply it everywhere.

My default for ecommerce is order value excluding tax and shipping, because that is closer to what the business actually earns and it stops shipping cost differences from distorting bidding.

Whatever you choose, use the same definition in GA4, Google Ads and Meta. Half the reporting mismatches I get asked about come down to one platform including tax and another not.

Refunds matter too. If you have a high return rate, unrefunded conversion data will tell Smart Bidding to buy more of the customers who send things back. More on that here: refunds and returns inflating your ROAS.

Enhanced Conversions and server side

BigCommerce checkout collects an email address. Use it.

Enhanced Conversions for Google Ads recovers conversions the browser tag loses, and it works with a hashed email passed at purchase. On most stores this recovers a meaningful double digit percentage of conversions that would otherwise be missing.

Beyond that, BigCommerce has webhooks for order creation, which makes a proper server side setup straightforward. The server sends the purchase directly, with the order data it already has, and the browser tag becomes a backup rather than the only source.

If you are spending enough for that to be worth the effort, this covers the decision: is server side tracking worth it.

Verification, the boring part that matters

  1. Place a test order. Confirm one purchase in GA4, one in Google Ads, one in Meta.

  2. Reload the confirmation page five times. Confirm nothing moves.

  3. Compare a week of GA4 purchases to BigCommerce orders. Within a few percent is healthy.

  4. Compare GA4 revenue to BigCommerce revenue using your chosen definition. If they differ by exactly the tax total, you found your bug.

  5. Check that no native connector quietly reconnected itself after an app update. This happens more often than you would think.

Need this built properly?

BigCommerce tracking is mostly about turning off what is already there before adding what should be. I set up and repair tracking for ecommerce stores and lead generation businesses, so the numbers in your ad accounts match the money in your bank account.

Have a look at what I do, or book a call and we can go through your setup together.

Need accurate tracking?

Its Free

500+ Happy Clients ⭐️

Keep Reading

See exactly where you’re wasting ad spend and how better tracking can double your sales.

See exactly where you’re wasting ad spend and how better tracking can double your sales.

Tracking in 3 Hours

Tracking in 3 Hours

I Manage Everything

I Manage Everything

24/7 Expert Support

24/7 Expert Support

TESTIMONIALS

Trusted by 500+ satisfied clients

Discover how we’ve driven growth and innovation.

500+ Tracking

500+ Tracking

Adélaïde De Vos

3,922 followers

I had the pleasure to work with Abdul and I can say that he exceeded my expectations. He was professional, patient, and clear in his explanations and committed to client satisfaction. If you're looking for someone who is not only highly skilled but also reliable and committed to client satisfaction, I highly recommend Kayium!

Dean Watson

1,030 followers

Kayium setup our tracking for Google Ads and Meta Ads, which helped us get 20%+ more conversions on the same ad spend. He didn’t just handle the technical setup,he also took the time to explain why it works and how it improves results. If you’re looking for someone skilled, reliable, and committed to delivering real results, I highly recommend him!

David Friend

CEO: Profitable Sites

Kayium set up accurate tracking that helped us scale ads fast and boost conversions by over 25%. He gave us clear insight into which ads drive revenue.

Lalita Sundari

7,924 followers

I've worked with Kayium; his strategic mindset and expertise in GTM, GA4, Pixel & Server Side Tracking, are invaluable! I highly recommend Kayium!