Skip to main content

Tracking

Server-side tracking for Shopify

Shopify has closed off much of what you used to be able to do in checkout. That is good for security and annoying for measurement, and most stores have not caught up yet.

+45 22 51 31 79
  • Same-day reply
  • Fixed price
  • No lock-in
  • Customer Events
  • Checkout Extensibility
  • Conversions API
  • Duplicates removed

Service

Server-side tracking for Shopify

The classic problem

A typical Shopify store has three or four things measuring the same purchase: Shopify's own pixel, an app, a snippet in the theme, and maybe a Google tag someone added once. The result is purchase numbers that match nothing.

The first job is always to clean that up. It is not unusual that this alone gets the numbers to make sense again.

What I set up

  • Customer Events as the single source of events, so there is one place to look when something does not add up.
  • Server-side GTM on your own subdomain, with Shopify's order data as the basis.
  • Deduplication against Meta and Google, so the same purchase is not counted twice.
  • The order ID carried through as a key, so it can be reconciled against Shopify's own reporting.
  • Refunds and cancelled orders, which otherwise never reach the ad platforms.

On reconciliation

The goal is not identical numbers — they never will be, because the platforms attribute differently. The goal is that they sit close enough to act on, and that you know exactly why they differ.

I hand over with a spreadsheet holding Shopify's orders up against GA4 and the ad platforms for a period. Then there is something to measure against later.

Deliverables

What you get

Concrete deliverables, not a report of recommendations someone else has to find time for.

  • One source of events

    Customer Events as the single place events come from, so there is one place to look when something does not add up.

  • Duplicates removed

    The three or four things measuring the same purchase get cut to one. That alone often makes the numbers make sense again.

  • Refunds included

    Cancelled and refunded orders get forwarded, so the ad platforms do not optimise on revenue that never happened.

  • Reconciliation against Shopify

    Orders held up against GA4 and the ad platforms for a period, with an explanation for each gap.

Process

How it works

Four steps. You know what happens when, and you can stop after any of them.

  1. 01

    Map what measures today

    First we find out what actually fires and what is just sitting there. There are usually three things measuring the same purchase and nobody daring to delete anything.

  2. 02

    Clean up and name things

    What is left gets named after a fixed pattern, so you can tell what a tag does without opening it. It sounds small, and it is the difference between a setup you can maintain and one you are afraid of.

  3. 03

    Move measurement server-side

    A container on your own subdomain so it is first-party all the way. Consent is respected — this is about measuring the people who said yes, not about getting around the rules.

  4. 04

    Reconcile the numbers

    Finally we hold orders up against Analytics and the ad platforms for a period. The numbers will never be identical, but you should know exactly why they differ.

Mikkel Tschentscher
Available for new work

Who does the work

I am the person you will be working with

My name is Mikkel and I have been building for the web since 2010. There is no project manager in between, and you will not get a junior on the job because the senior was busy. What you agree is what gets built, and I am the one building it.

Day to day I am a partner at Bigum&Co, and I have worked on more than 400 projects across ecommerce, pharma, construction and the public sector. Call or write — I usually reply the same day, and I will say straight away if the job is not a fit.

Experience
16 yrs
Projects
400+
Rating
5.0
Reply time
Same day
+45 22 51 31 79

In depth

Server-side tracking for Shopify

Why Shopify tracking got hard

Shopify has closed off most of what you could previously put into checkout. You can no longer simply drop a script on the thank-you page. That is good for security and for load time, and it has left a fair number of stores with measurement that no longer covers the last and most important step.

The result is a recognisable situation: Shopify's own numbers say one thing, GA4 says something lower, Meta says a third thing, and nobody dares allocate budget on any of them. Decisions then get made on gut feel instead, which is more expensive than spending a week fixing the measurement.

Customer Events is Shopify's answer. It is a place where events can be listened to across storefront and checkout without touching the checkout code itself. It is the right route, and it is where I start. But it requires cleaning out the old first, otherwise you now have four sources instead of three.

On reconciling numbers that will never match

The goal is not identical numbers. Shopify counts an order when it is created. GA4 counts a session where a purchase happened. Meta attributes a purchase to an ad someone saw six days ago. The three measure different things and will never agree.

The goal is knowing exactly why they differ, and that the difference is stable. If GA4 sits consistently eight percent below Shopify, you can work with that. If the gap swings between two and forty percent month to month, you cannot.

So I always hand over a spreadsheet with a period set side by side. It gives a baseline to measure against later, and it makes it visible when something breaks after an update.

Reviews

What people say about me

  • Mikkel Tschentscher is my lifeline when something is urgent and nobody else can work it out.
    Torben Wiese(translated from Danish)
  • Mikkel is a man after my own heart. Executes at lightning speed, has an eye for detail and is always there when you need him. It does not get better than that.
    Tini Owild(translated from Danish)
  • He is simply a pro. Highly competent and precise, brings good input, and is a huge support.
    Carsten Johan Thessen(translated from Danish)

Services

Why me

  • 16 years of experience

    I have built for the web since 2010 and seen most of the ways a project can come off the rails. It makes the estimates more honest.

  • 400+ projects

    Across ecommerce, pharma, construction and the public sector. Chances are I have seen something close to your job before.

  • You talk to the person coding

    No project manager in between, and no junior on the job because the senior was busy. What you agree is what gets built.

Brands I have worked with

A selection. Some freelance, some through agencies, some across several years.

  • MT Højgaard Danmark
  • Egmont
  • NNIT
  • Visma
  • Lomax
  • Pascal
  • able.
  • OOONO
  • Novo Nordisk Fonden
  • Energii
  • Maersk Tankers
  • Nordkysten Entreprenørfirmaet

Questions

Frequently asked questions

Does it require Shopify Plus?
No. Customer Events exist on all plans. Plus gives you more scope to change checkout itself, but the basic measurement can be set up on any plan.
What about the tracking apps we already have?
Some can stay, most can go. I go through the list and say what each one contributes. There is usually at least one that has just been sitting there running.
How long does the setup take?
An ordinary store with GA4, Meta and Google Ads typically takes a week and a half to two weeks including testing and reconciliation. More markets or currencies makes it a bit longer.
We already have a tracking app. Is that enough?
Some are genuinely fine for the basics. The problem is usually not the app, it is the two other things measuring the same thing alongside it. I go through the list and say what can stay.
Does it work with Shopify Markets and multiple currencies?
Yes, but the currency has to travel with each event and the platforms have to be set up to understand it. It is one of the things most often misconfigured in multi-market stores.
How long does the setup take?
An ordinary store with GA4, Meta and Google Ads typically takes a week and a half to two weeks including testing and reconciliation. More markets or a customised checkout makes it a bit longer.

Experience

2023 – PresentBigum&CoPartner & CEOUpskilling in AI and digital marketing — 10,000+ satisfied students since 2012.
2024 – PresentKurvemagernePartnerRepair of wicker chairs and design classics — Denmark's largest wicker chair workshop.
2010 – PresentSelvstændigWeb DeveloperEffective digital solutions that convert and are easy to manage.

Past Roles

2021 – 20231260 A/SPartner & CTODigital agency with 20+ employees specializing in performance marketing. Sold to Standout Media.
2014 – 2016Barko A/SCo-founder & CTOFrom dog food on a subscription to a goodiebox with more than 1,000 active subscribers.
2012 – 2016Bigum&CoCo-founder & CTOCo-founded the education company and built the internal technical platform.

Sound like a fit?