How tracking works
Where your ad money goes and how anybody knows.
Between somebody clicking your ad and somebody buying something, there is a chain with five links in it. Most of the people who pay for that chain have never seen it drawn.
That is not a gap you should feel bad about. It is the reason a broken link can sit there for a quarter.
No jargon and no prerequisites. If you know what an ad is and what a sale is, you have everything you need. About twenty minutes end to end — the short version is directly below.
The short version
- You pay at the click
- Not at the sale — the moment somebody clicks your ad. Google Ads knows exactly what it spent and nothing at all about what it bought.
- Tags are what tell it
- A tag is a small instruction — when somebody submits the form, tell Analytics a lead came in. They live in a container that can be changed without changing your website.
- Analytics records; it doesn’t report
- It writes down what visitors did. Sending that anywhere else is a separate thing somebody had to set up.
- The conversion has to travel back to Google Ads
- This is the link almost nobody pictures. It isn’t for your reports — it’s what Ads uses to decide who to show your ad to next.
- Your CRM holds the truth, weeks later
- Which lead became a deal, and what it was worth. Joining that back to the original click is the hardest link in the chain, and it’s only worth building on a signal you can already trust.
- When it breaks, nothing turns red
- No error, no alert, no warning. The site works, traffic looks normal, and Ads keeps spending — optimising toward a signal it stopped receiving.
I work on the middle of that chain — the container, the tags, and whether the signal is still real today, checked every day. I don’t run ad campaigns and I don’t touch your CRM. The rest of this page is that chain, drawn one piece at a time.
The only line item that breaks quietly
Nothing here is difficult. It is just invisible.
Every other line on a marketing budget has somebody who can explain it in a sentence. Print has a printer. The agency has an account manager. Even the ad account has a person who can tell you what a keyword cost last month.
The measurement chain is usually the exception. It is the one line where the person approving the spend cannot describe what they are approving — and it is also the one that fails without producing an error, a warning, or a single red thing anywhere.
Those two facts are not independent. Breakage survives for months because the people who would care most cannot see the machine well enough to ask the right question about it.
So here is the machine. One box at a time.
Link one
Google Ads knows exactly what it spent. It has no idea what it bought.
Somebody searches for something. Your ad appears. They click it.
You are charged at that moment. Not when they enquire, not when they buy — for the click. By the time the page has finished loading, the money is already gone.
Now hold on to what Google Ads can actually see, because everything else on this page follows from it. It saw the search. It saw the click. It knows what that click cost.
It cannot see your website. It does not know whether that person filled in your form, bought something, or left in four seconds. The one fact it most needs — did this work? — is the one fact it does not have.
Everything that follows exists to tell it.
Drag the diagram sideways to see all of it
Two boxes. On the left, Google Ads, labelled “what you spend”. To its right and below, Your website, labelled “the page they land on”. One arrow runs from Google Ads to Your website, labelled “the click — you pay here”. There are no other boxes and no other arrows: nothing returns from the website to the ad account.
Link two
A tag is a sentence with two halves.
A tag is a small piece of code with exactly one job: to tell an outside company that something happened. A trigger is the rule that decides when it does that.
Put them together and you get a sentence: when somebody clicks the Send button, tell Google Analytics that a lead came in.
That is a trigger and a tag. That is the whole idea. There is nothing more sophisticated hiding behind it.
Your website has a lot of these sentences, and they all live in one place: a container. Google Tag Manager is the tool you use to edit it. Before it, adding a tracking pixel meant a developer, a code review and a release. With a container, somebody in marketing changes the list and it takes effect in about a minute.
That convenience is not free, and the price is not technical. The list of things running on your website is now editable by people outside engineering, and it stops being anybody’s job to keep tidy. Agencies come and go and each one adds a few. Campaigns end and their tags stay. Every problem on the rest of this page grows out of that one trade.
Drag the diagram sideways to see all of it
The previous diagram with one box added. Directly above Your website sits Tag Manager, labelled “the list of who gets told what”, holding three entries: GA4 — lead, Google Ads — conversion, and LinkedIn. A short two-headed arrow joins the website and the container, labelled “decides what runs”. Still nothing returns to the ad account.
Drag the diagram sideways to see all of it
One panel split in two. The left half reads WHEN, then “a visitor clicks the Send button”, labelled TRIGGER — the rule about when. The right half reads THEN, then “tell Google Analytics a lead came in”, labelled TAG — the thing that does the telling. Beneath both, one shared name: generate_lead, the name the two of them agree on.
Drag the diagram sideways to see all of it
Two lanes with the same start and the same end. The upper lane, “Without a container”, has six widely spaced stops: Request, Ticket, Dev queue, Code change, Release window, Live. The span is marked “weeks”. The lower lane, “With a container”, has two stops: Change the container, then Live. The span is marked “about a minute”. Set apart beneath: and this is why nobody is quite sure what is in there.
Link three
Google Analytics is a ledger, and most of what is in it does not matter.
When a tag fires, most of the time it is telling Google Analytics that something happened. A page was viewed. A video played. A button was clicked. Each of those is an event, and GA4 writes them all down.
The overwhelming majority of that is background noise. A handful of events are the actual business: an enquiry sent, a quote requested, an order placed. In GA4 you mark those as key events — the same event as before, flagged as one that counts.
That flag does more than tidy a report. Key events are what Google Ads imports as conversions. Marking an event is what makes it eligible to travel back — which is the next link, and the one this whole page is really about.
And note what GA4 has not done. It has written it down. It has not told anybody.
Drag the diagram sideways to see all of it
The previous diagram with one box added on the right: Analytics, or GA4, labelled “what visitors did”, listing page_view, scroll and video_play in grey, then generate_lead marked as a key event. An arrow runs from Tag Manager across to Analytics, labelled “the event is recorded”. Google Ads is still on the far left with nothing arriving back at it.
Link four — the one that matters
The conversion has to travel back, or Google Ads is buying blind.
Here is where the picture stops being a line and becomes a loop.
When somebody does the valuable thing, that fact has to be reported back to Google Ads: the click you sold us at 10:42 on Tuesday, for that keyword — it produced an enquiry.
Almost everybody assumes this happens automatically because it all says Google on the side. It does not. It is a connection somebody set up, running through a tag somebody configured, and it can be switched off by accident like anything else.
A Google Ads campaign today decides who to show your ad to next largely on the basis of which clicks turned into conversions before. Every conversion you send back is a training example: more people like that one.
So the return arrow is not a report you read at month end. It is the input to the machine that spends your money. Reporting is what you look at. This is what Ads acts on. Which means the return arrow is worth more than the outbound one, and it is the one that gets no attention at all.
Drag the diagram sideways to see all of it
The previous diagram with one arrow added, and it is the heaviest line in the picture. It leaves Analytics, runs down and then right to left along the whole bottom of the diagram, and arrives back at Google Ads. It is labelled “the conversion is reported back”. Inside the loop this now encloses, an annotation reads: this is what Ads spends your money on. The five boxes now form a circuit rather than a one-way chain.
Drag the diagram sideways to see all of it
Three arrows. The first runs left to right with a luggage tag hanging from it reading gclid=EAIaIQobChMI and so on, marked “out with the click”. The second runs right to left carrying an identical tag, marked “back with the sale — same number”. The third runs right to left with the tag torn off, leaving a frayed stub, marked “conversion counted — keyword unknown”.
Link five
“A form was submitted” is not a business outcome. It is a promise of one.
Everything so far ends at the moment somebody hits Send. Analytics recorded a lead. Ads was told a lead happened. Both of them now think the job is finished.
Your CRM knows better, and it knows later. It knows which of those enquiries was serious, which became a quote, which quote became a deal, what the deal was worth, and that it took until November.
Nobody inside Google can see any of that. As far as the ad account is concerned, every lead is identical. Your best keyword and your worst keyword can produce exactly the same numbers in GA4 and completely different amounts of money — and Ads, which is buying more of whatever converted, cannot tell them apart.
Closing that gap means carrying the click’s reference number all the way into the deal record in your CRM, then sending the outcome back to Google weeks later when it is finally known. It has a name — offline conversion import — and the name is the easy part.
It is the highest-value link in the chain and by a distance the hardest. It needs your CRM, your website and your ad account to agree about who a person is, and it needs somebody to own it after it is built.
Drag the diagram sideways to see all of it
The previous diagram with one box and two arrows added. Below Analytics sits Your CRM, labelled “what it was actually worth”, showing three stages: enquiry, quote, and a forty thousand dollar order dated 11 November. A solid arrow runs from Your website down to the CRM, labelled “the lead lands here”. A second arrow, drawn as a dashed line, leaves the CRM and travels the full width of the diagram right to left, below every other line, back to Google Ads. It is labelled “what it was actually worth — weeks later”, and noted: dashed because almost nobody has built this.
Straight answer
I work on one arc of that ring, and I will tell you which.
I do not build the CRM link. It is not something I sell and it is not something I am about to quietly start implying I do. I also do not run your ad campaigns, I do not buy media, and I have no access to your Google Ads account at all.
What I work on is the arc from your website through the container to Analytics, and the signal that leaves it — whether the right tags exist, whether they fire for the right thing with the right permission, and whether they are still doing it today.
I would rather explain why that is the useful place to stand than pretend it is the whole ring. The chain only pays off in order: the signal has to fire at all; it has to fire for the right thing, with permission, carrying the reference that says which click it was; it has to keep firing — the step with no alarm on it, and the one this whole business exists for; and then it is worth joining to your CRM.
Step four built on an unverified one, two and three is how a company ends up with beautifully engineered plumbing carrying wrong numbers into a board pack. The join does not repair a bad signal. It industrialises it.
So if you already have somebody doing the CRM work — an agency, a data team, a contractor — I am not competing with them. I am the reason their work is worth doing. And if you do not have anybody doing it yet, get the first half honest before you pay for the second. It is cheaper in that order.
Drag the diagram sideways to see all of it
The complete five-box loop. A wide, translucent accent-coloured ribbon traces the chain from Your website through Tag Manager to Analytics and along the arrow returning the conversion to Google Ads; it is labelled “the part I keep honest — checked every day”. The ribbon follows that path only and does not enclose Your CRM. Two quieter labels sit outside it: “not mine — your ad account”, above Google Ads, and “not mine — your CRM”, above the CRM.
The expensive part
A tag that stops firing does not produce an error.
This is the single most important sentence on the page, so here it is again with the consequences attached.
Nothing goes wrong. There is no error page and no 500. Nobody gets an email. The site loads perfectly, the form still works, the customer still gets their confirmation. Traffic looks entirely normal, because traffic is entirely normal.
The only symptom is a number that is lower than it should be, on a chart nobody opens daily.
How it happens is always boring. A form gets redesigned and the Send button’s identifier changes, so the trigger’s condition no longer matches anything. A developer ships a new checkout and the old tag is still watching for a page that no longer exists. Somebody publishes a container change and a trigger three tags shared quietly changes what it means. The consent banner is updated and the tag stops being given permission to run. An agency leaves, somebody tidies up, and a variable another tag depended on goes with it.
Not one person in that list did anything wrong. Every one of those is a normal Tuesday. That is exactly why this keeps happening to competent teams.
And this is the part that costs money rather than just accuracy. Ads does not conclude that something is broken — it has no way to. It reads the missing conversions as these clicks stopped working, and it adjusts. The spending does not stop. The learning goes the wrong way. You pay twice: once for the enquiries you can no longer see, and again for every bidding decision made on the strength of their absence.
There is no alarm, so there is no moment of discovery — only the next occasion somebody stares hard at the numbers. A monthly review. A quarterly board pack. A renewal conversation where a figure will not add up. Never because the system told anybody. Nothing in this diagram is watching this diagram.
Drag the diagram sideways to see all of it
The complete five-box loop — Google Ads, Your website, Tag Manager, Analytics and Your CRM, with the arrow carrying the ad click, the arrow returning the conversion to Google Ads, and the dashed arrow from the CRM — unchanged in every respect except one: the arrow running from Tag Manager to Analytics is severed, leaving a gap with a faint dotted remnant. No element is coloured red and no warning symbol appears; the arrow carrying the ad click, and the Google Ads box itself, look exactly as healthy as before. A single annotation positioned outside the diagram frame points at the gap with a thin leader line and reads “this stopped 28 days ago”. Small text inside the frame reads: nothing here turned red — that is not a drawing choice.
Drag the diagram sideways to see all of it
A column chart of daily conversions over about ninety days, with a regular weekday pattern and lower weekends. Tick marks along the baseline are labelled “monthly review”. A few days after one of those reviews the columns fall to zero and stay at zero — they do not recover on their own. They resume only just after the next monthly review, twenty-eight days later. A marker at the first zero column reads “the day it broke”; a second marker at the following review reads “the next time anyone looked at this chart”. The span between them is shaded and labelled “28 days”. A note reads: a monthly review is the optimistic version — on a quarterly cycle this span is three times as wide.
What the silence costs
“The tag stopped firing” does not survive a budget review, so here is the same event written as a number.
The box below prices a seven-day version of exactly this shape — that being the demonstration series the estimator was run against.
Produced by the impact estimator
purchase was dark for 7 days, 2026-07-27 to 2026-08-02. GA4
recorded 0 against a weekday-adjusted expectation of about 368 — a
shortfall of about 368 conversions, range 327 to 409. At $38.90 per
conversion that is approximately $14,300 in unattributed
revenue, range $12,700 to $15,900.
Printed with it, every time: baseline is the per-weekday median of the 21 healthy days before it; the impaired span is the run of days under half of what that weekday normally ran; the value per conversion is GA4’s own revenue over the 28 complete days before the outage; the range is about a 90% band.
Produced by the impact estimator over a demonstration series — a purchase event with an ordinary weekday shape that stops for a week. The arithmetic and the wording are the tool’s; the traffic is not a client’s. Where no value per conversion can be established, the outage comes back as a count and the report says so, because a number nobody can defend is worse than no number.
Read-only. Name a container, get the scored report back.
The job
Something outside the loop has to be watching the loop.
That is the entire business, and now you can see exactly where it fits.
Every day, your containers get snapshotted and diffed against the last known good, and your key events get checked against what GA4 actually recorded. Every readable container, every day, whether or not anybody asked a question that morning.
When something breaks, you hear from me that day — with the cost estimate and its assumptions attached, in the form above, so it is a budget line rather than an anecdote.
Once a month, a change report in plain English: what changed in your container, who published, what it means. Written for whoever approves the invoice, not for whoever built the tag.
A person reads every run before you do. This is a service, not software. I am Rick; I run the tooling and you get the reports. There is no dashboard, no login, and nothing to open — which is the point, because you are hiring the person who reads the output, not a seat you will stop using in six weeks.
What I am not
I do not run your campaigns, I do not buy media, I have no access to your Google Ads account and I make no claim about your bidding. I do not integrate your CRM. There is no self-serve version and no product to log into. If that is what you are shopping for, I am the wrong vendor and it is cheaper for both of us to know now.
Start by finding out what shape you are actually in
The container audit is free, for one container. You grant read-only access, I run the audit, and a scored report comes back across eight categories — conversion tracking, consent posture, zombie tags, duplicates, performance weight, orphaned entities, version hygiene, naming — with the fixes ranked first and written for the person who approves the work.
Read-only is enforced by Google, not by me, and you revoke it from the same screen you granted it on, whenever you like — including the moment the report lands.
Read-only. Name a container, get the scored report back. No account, no sales call.
What actually touches your container → · See a sample audit →
Glossary
If you only came for one definition.
| Tag | A small piece of code with one job: to tell an outside company that something happened on your site. |
|---|---|
| Trigger | The rule that decides when a tag fires. “When somebody clicks Send.” |
| Container | The list of all the tags and triggers for one website. |
| Google Tag Manager (GTM) | The tool for editing that list, without changing the website itself. |
| Google Analytics (GA4) | The ledger that records what visitors did. It records; it does not tell anyone. |
| Event | One thing a visitor did, as recorded by Analytics. A page view, a click, a form submission. |
| Key event | An event you have marked as one that matters. This is what Google Ads can import. |
| Conversion | The valuable thing — an enquiry, a booking, a purchase. |
| Conversion action | Google Ads’ name for a conversion it has been told to count and optimise towards. |
| Click ID (GCLID) | The reference number Google attaches to an ad click so the resulting sale can be traced back to the keyword that produced it. |
| Consent Mode | The mechanism that decides whether tags are allowed to store anything, based on what the visitor chose. A tag without permission does not fire. |
| Offline conversion import | Sending an outcome that happened later and elsewhere — a deal closing in your CRM — back to Google Ads, joined by the click ID. |
| Publish / version | Changes to a container are staged, then published as a numbered version. Every version can be compared with any other, and reversed. |
This is a description of how these systems work, and of what configurations do. Nothing here is legal advice.