Tracking
Google Tag Manager and GA4
Most GTM containers I open have between forty and a hundred tags, half of which have not fired in a year. Nobody dares delete anything because nothing is labelled.
- Same-day reply
- Fixed price
- No lock-in
- Container cleanup
- Naming that holds
- One data layer
- Documented
Service
Google Tag Manager and GA4
Cleanup first
I start by finding out what actually fires and what is just sitting there. Anything inactive for six months gets paused rather than deleted immediately, so there is a way back.
Then I name what is left after a fixed pattern, so you can tell what a tag does without opening it. It sounds small, but it is the difference between a container you can maintain and one you are afraid of.
The data layer
The most important thing about a GTM setup is that events come from one place with fixed names and fixed fields. When half the events come from auto-triggers guessing at clicks on CSS classes, it breaks the next time someone changes the design.
I define a data layer together with the developers — or write it myself if I am the one in the code — and let GTM read from there instead of guessing.
GA4
- Conversions defined on what actually matters to the business, not on every button click.
- Ecommerce tracking with the right fields, so the product reports are usable.
- Internal visits and test traffic filtered out, which is surprisingly often missing.
- Data retention set to the longest allowed period. The default is shorter than most people think.
Deliverables
What you get
Concrete deliverables, not a report of recommendations someone else has to find time for.
- A cleaned container
Anything that has not fired in six months gets paused rather than deleted, so there is a way back if something turns out to be in use.
- Naming that holds
A fixed pattern, so you can tell what a tag does without opening it. That is the difference between a container you can maintain and one you are afraid of.
- A defined data layer
Fixed event names and fixed fields, agreed with the developers, so measurement does not break the next time the design changes.
- GA4 set up properly
Conversions defined on what matters, internal traffic filtered out, and data retention set to the longest allowed period.
Process
How it works
Four steps. You know what happens when, and you can stop after any of them.
- 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.
- 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.
- 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.
- 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.

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
In depth
Google Tag Manager and GA4
Why GTM containers end up a mess
There is nothing mysterious about it. A tag goes in for a campaign. The campaign ends, but whoever added it has moved on, and nobody knows if it is still used. So it stays. Repeat for five years across changing agencies and you have seventy tags, forty of which have not fired since 2023.
The problem is not primarily speed, though it costs there too. The problem is that nobody dares touch anything. When you cannot see what a tag does, you cannot decide whether it is safe to delete, and the pile just keeps growing.
The fix starts with finding out what actually fires. GTM's own version history and GA4's event report together give a fairly precise picture. Anything inactive for six months I pause rather than delete — that leaves a way back if someone remembers something.
After that it is naming. It sounds like pedantry, and it is the single thing that most determines whether the container is still workable in two years.
The data layer is where it is decided
The most important decision in a GTM setup is where the events come from. If they come from a defined data layer the developers write to with fixed names, the setup is robust. If they come from auto-triggers guessing at clicks on CSS classes, it breaks the next time someone changes the design — and nobody notices for weeks.
That takes cooperation between marketing and development that in many places does not exist. Marketing wants to measure something new and does not want to wait for a deploy. Development does not want marketing injecting arbitrary code into the page. Both are right.
The compromise is a data layer covering what can reasonably be foreseen: page views, forms, cart, purchase, filters, search. Then marketing can work freely on top of it without having to ask, and development knows exactly what they promised to deliver.
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.
Questions
Frequently asked questions
- We already have GA4. Is there anything to gain?
- Usually yes. Most setups were done in a hurry when Universal Analytics shut down, and few have been revisited since.
- Can you build Looker Studio reports too?
- Yes, but I would rather get the data right first. A polished report on top of wrong numbers just means more people make decisions from them.
- Do you work with anything other than Google?
- Yes. I have set up Matomo, Plausible and Piwik for clients where keeping data in the EU mattered more than having Google's reports.
- Can you do it without breaking anything?
- I work in a workspace and test in preview before anything is published. And everything gets paused rather than deleted at first, so a mistake can be rolled back in a minute.
- How long does a cleanup take?
- An ordinary container takes two to four days including documentation. With several sites or countries in the same container it takes longer.
- Can you teach our team to maintain it?
- Yes, and it is usually the cheapest option. I am happy to run a half day going through the container together, so the naming and the data layer make sense to the people who will use it.
