Analytics · GA4 · Google Tag Manager

GA4 + GTM for Ad Accounts: The Setup That Saves Your Budget

Half the problems that look like "the ads don't work" are actually measurement problems. Duplicate conversions, lost UTMs, self-referrals and unfiltered internal traffic make the report prettier than reality. Here's the base setup that makes your numbers trustworthy again.

0
Steps to a base setup
0%
ROI — measured Signature case
0%
Lead-to-sale Well Kitchen case
August 29, 2026·~12 min read·GA4 · GTM · Analytics

01 — Problem

Four Reasons Your Data Is Lying to You

These mistakes show up in almost every account that was set up in a hurry or by several people in succession. They share one trait: none of them looks like an error inside the interface.

✕

Conversions counted twice

The tag sits in GTM and in the site code; or the event fires both on the button click and on the thank-you page load. The report shows twice the result, and you scale something that does not actually work.

✕

Internal traffic in reports

Your team, your contractors and your developers browse the site every day. Without an IP exclusion they make up a noticeable share of your "engaged audience" — and skew behaviour metrics exactly where you look at them.

✕

Lost UTMs and self-referrals

Redirects, payment gateways and subdomains wipe out the source. The sale exists, but GA4 credits it to "direct", and the channel that actually delivered it looks unprofitable.

✕

One button, three different events

When event names get invented on the fly, the same action lands in different reports. Six months later nobody on the team can say what each event actually means.

The key point: none of these problems is visible in the interface. They only become visible when someone deliberately goes looking for them.

02 — Setup

Six Steps to a Base Setup

The order matters here: each step rests on the one before it. Jumping straight to step six — importing conversions — on dirty data only moves the errors into your ad account.

01

One container, one configuration

All tags live in GTM and there is not a single duplicate in the site code. One GA4 configuration tag and a clear list of events on top of it. It is boring, and it is where most duplicate problems begin.

02

UTM discipline and auto-tagging

Google Ads needs auto-tagging (gclid) enabled, not manual UTMs — otherwise you break the link back to the ad platform. For every other channel, use one shared naming dictionary: the same source is always spelled the same way.

03

Conversion events: one event, one action

Name them action_object (submit_lead, click_phone, purchase). Every event should be documented somewhere: what it means, where it fires, who added it. A year from now you will thank yourself.

04

Filtering internal traffic and bots

A list of team and contractor IPs, bot filtering switched on, a separate data stream for staging. It takes 20 minutes and cleans up the reports immediately.

05

Consent Mode v2

The consent banner has to govern server-side delivery as well as browser tags. The most common mistake is bolting on a banner and never checking that data really stops flowing after a refusal.

06

Importing conversions into ad platforms

Link GA4 to Google Ads and import exactly the events the algorithm should optimise for — with the right attribution window and, wherever possible, with value passed through. Without this step all the earlier work stays a set of nice reports.

03 — What to measure

What to Measure: Four Levels

Not all events are equal. These four levels run from the most frequent and cheapest signal to the rarest and most valuable — and each plays its own role in training the algorithm.

Level 1

Engagement

Scroll depth and time on key pages. The earliest signal of interest — too weak to optimise on, but enough to see which pages people actually read.

Level 2

Intent

Phone clicks, chat opens, contact page views. These happen many times more often than form fills and give the algorithm a signal long before conversions accumulate.

Level 3

Enquiry

Form submissions, split by type: consultation, quote, callback. Without that split you cannot see which kind of request actually brings in money.

Level 4

Money

A purchase or a qualified lead with value attached. Without the value parameter the algorithm optimises for volume rather than revenue — and will happily deliver a hundred cheap small orders.

04 — Proof

What Becomes Possible When the Data Is Clean

None of these numbers is a result of the analytics setup. All of them are things that only became countable because of it.

SumSum · DTC
+0%
monthly sales growth after the analytics rebuild
Signature · HoReCa
0%
ROI — measured, not estimated
Well Kitchen · e-commerce
0%
lead-to-sale, 228 sales

On the SumSum account analytics was built from scratch: full GA4, Enhanced Ecommerce, form and sale tracking. Only after that did it become visible which campaigns actually made money. At Signature the same discipline made it possible to calculate ROI to two decimals — not because the number looks good, but because otherwise there would have been nothing to calculate it from.

Read the full SumSum case →

05 — Mistakes

Four Mistakes That Cancel Out the Setup

✕ Placing every tag in both GTM and the code

The number one cause of duplicates. The rule is simple: everything through GTM, nothing in the code. A single exception of "it was quicker to paste it directly" is enough to poison reports for months.

✕ Treating every event as a conversion

When a scroll, a click and a purchase are all conversions, the algorithm has nothing to aim at. A conversion is what brings in money; everything else is a regular event for analysis.

✕ Setting it up once and forgetting it

GA4 updates, Consent Mode changes and redesigns break tags quietly, with no notification at all. Verification has to be a monthly routine, not a reaction to a disaster.

✕ Trusting the interface without verifying

"The tag fires" in Preview and "the data is correct in the report" are different things. Check in the report itself, 24 to 48 hours after the change.

06 — Checklist

Setup Checklist — Save It

All tags in GTM, no duplicates in the site code
One GA4 configuration tag across the whole site
gclid auto-tagging enabled for Google Ads
Event names follow one scheme and are documented
Internal traffic and bots excluded
Consent Mode v2 governs browser and server tags alike
Conversions imported into Google Ads with the right window
Key events pass a value parameter
Tag verification is part of a monthly routine

07 — Questions

Frequently Asked Questions

GA4 or GTM — which do you set up first?
GTM. It is the container every tag lives in, GA4 included. If you put GA4 straight into the code first, you will have to redo it later — and that stage is where duplicate conversions most often appear.
Can you skip GTM and install GA4 directly?
Technically yes, but every change will then need a developer and a release. GTM pays for itself by the second tag, and by the third it is the only realistic way to keep track of what is installed on your site.
How many conversion events should there be?
Not many. One to three key events that ads genuinely optimise for, with everything else kept as regular events for analysis. With ten conversions the algorithm has no clear signal to learn from.
What do you do with historical data if the setup was wrong?
Do not rewrite it. Mark the fix date with an annotation and compare periods after it. Trying to "repair" the past only adds confusion — it is more honest to state that data before a certain date was inaccurate.
Does Consent Mode reduce the volume of data?
Yes, some events will not be sent. That is fine: less honest data beats more data with legal risk attached. Conversion modelling partly compensates for the loss when the base setup is correct.
How often should the setup be checked?
A quick pass once a month, and always after a site release, a redesign or a CMS update. The most expensive analytics mistakes are the ones nobody noticed for three months.

Free check

Can You Trust the Numbers in Your Report?

I will review your GA4 and GTM — duplicates, UTMs, conversion events and the Google Ads import — and show you where the report diverges from reality. Free, with no obligations.

Free audit · 1 business day · No pitch, no obligation