Someone asks it in a quarterly review: “So how many touches does it take to close a deal?”
Everyone nods. Somebody says “seven” — the number has been floating around marketing decks for decades and nobody remembers where it came from. Then the meeting moves on, because the honest answer is that nobody in the room can produce the number for this business.
You can produce it. Most of the work is three decisions that have nothing to do with analytics tools.
The problem is the definition, not the tooling
Ask five people on a marketing team what a touchpoint is and you get five answers. An ad impression. An email open. A site visit. A demo. A LinkedIn comment.
Teams that skip this step end up counting channels, not touchpoints — five channels active, therefore five touchpoints — and get a number that looks like data and drives nothing. The count changes when you launch a channel, not when buyer behaviour changes.
A touchpoint worth counting has three properties:
- It’s an action, not an exposure. The person did something: clicked, opened, visited, replied, booked. An impression they scrolled past is not a touch.
- It’s attributable to a person. If you can’t tie it to an identity that persists, it can’t be counted per lead.
- It’s the same thing every time you count it. If “email touch” means opens in January and clicks in March, your trend line is measuring your own definition changing.
Write the definition down before you open any tool. One page, listing every event that counts as a touch and every event that doesn’t. If two people on the team would produce different lists, you don’t have a definition yet.
Three things you need before you can count anything
1. An identity that survives the journey
This is where most attempts die. A person reads a blog post on their phone, downloads something on a laptop three weeks later, and replies to an email from a work address that matches neither.
In GA4 that’s three users unless you’re setting user_id. In your CRM it may be three records. Counting touches per lead across three identities gives you a number that is wrong in a specific direction: too low, and lowest for exactly the long, multi-device journeys you most wanted to understand.
Fix this first. Set user_id on every event you can — after login, after form submit, wherever you learn who someone is — and decide how your CRM merges duplicates before you trust any count. Getting that wiring right is most of what a GA4 and Tag Manager build actually consists of.
2. An event taxonomy you actually enforce
Every touch needs a stable event name and stable parameters. Not form_submit on one page and formSubmit on another and lead_form on a third.
If you’re on GA4, this is the same taxonomy work a proper implementation requires anyway — the GA4 implementation checklist covers the mechanics.
3. A decided attribution window
Here’s what catches people. A touch from 100 days ago either counts or it doesn’t, and something has to decide.
GA4 has a configurable lookback window for conversion events, and it is not infinite — check the current setting in your own property, since Google has changed both the options and the defaults over time. Whatever it is, that window silently truncates your touch count. A 90-day window on a six-month sales cycle discards the entire top of the funnel.
Your CRM has its own window, usually a different one, sometimes none at all.
Pick one number, write it next to the definition, and use the same one everywhere.
Counting it in GA4
GA4’s data model is event-based, which makes the raw count easy and the useful count harder.
The straightforward path is BigQuery. GA4 offers a free raw event export, and once it’s on you can count distinct qualifying events per user_id in SQL directly. One caveat that costs people months: the export is not retroactive. It captures data from the day you enable it forward and nothing before. If you think you might ever want this, turn it on today, even if nobody looks at it for a quarter.
Without BigQuery you’re working in the interface, where you can see path and conversion-path reports but can’t easily produce a clean per-lead distribution. Getting a property into the state where either approach is trustworthy is ordinary web analytics work, and it is worth doing before you start counting anything.
Either way, GA4 gives you anonymous behaviour. It does not know that user_id 4471 is the VP of Ops at an account your sales team has been working since March.
Counting it in your CRM
The CRM knows who people are and what happened in sales conversations. It usually knows almost nothing about what they read before they became a record.
So the CRM count is the mirror image of the GA4 count: accurate on identity, blind to the top of the funnel. It typically counts from first form fill onward and treats the eleven blog visits before that as though they never happened.
The two numbers will disagree, and that’s the useful part
Run both and you will get different answers. This is not a bug to reconcile away.
| GA4 | Your CRM | |
|---|---|---|
| Knows who the person is | No — an ID, not a name | Yes |
| Sees activity before the form | Yes | No |
| Counts from | First tracked visit | First form fill |
| Blind spot | Identity and sales context | Everything pre-form |
| Typical answer | 14 touches | 4 touches |
The gap between them is the anonymous portion of your funnel — the reading and comparing people do before they’re willing to give you a name. If GA4 says fourteen touches and the CRM says four, ten of those touches happened before the person identified themselves.
That gap is a number worth tracking on its own. When it widens, buyers are doing more homework before contacting you. When it narrows, either your content is doing less pre-sales work or your form is catching people earlier than it used to.
What the number tells you, and the part it doesn’t
Once you have a stable count, three things become answerable:
Whether your sequence length matches reality. If leads take eleven touches on average and your nurture stops at five, you stop talking to people halfway through their decision.
Which segments are expensive. Enterprise deals taking twenty-two touches and mid-market taking six is a resourcing fact, not a curiosity.
When something changed. A stable count that jumps in one quarter means buyer behaviour moved, and you now find out in weeks rather than at renewal.
Now the limit, stated plainly, because it’s the thing most touchpoint analysis quietly pretends isn’t true:
The count does not tell you which touch caused the deal. It’s a volume measure, not a causal one. Eleven touches before a close does not mean eleven touches were needed, and it certainly doesn’t mean touch number six did the work. Anyone converting a touch count into “channel X drove Y% of revenue” is applying an attribution model on top, and the model is doing all the reasoning, not the data.
Use the count to size your programme. Use experiments to decide what actually works.
One more limit before you start. If the thing buying from you is a committee rather than a person, per-lead counting is measuring the wrong object no matter how clean the data is — account touchpoint analysis is the version of this that survives B2B.
The failure worth naming
The most common way this goes wrong is measuring touchpoints before deciding what a conversion is.
It happens in a predictable order. Someone wants the touch count. The taxonomy gets built to support it. Six weeks later the definition of a qualified lead changes, and every historical count is now measuring against a finish line that has moved. The dashboard still renders. The numbers are still wrong.
Decide what you’re counting toward first. The touch count is the distance to a line, and it means nothing until the line stops moving.
Short version
- Write the definition of a touch before opening any tool. Two people on the team should produce the same list.
- Set
user_id, or you’ll count one person as three and undercount the longest journeys worst. - Pick one attribution window and use it in both systems.
- Turn on the GA4 BigQuery export today — it captures nothing retroactively.
- Run the GA4 count and the CRM count. The gap between them is your anonymous funnel, and it’s worth tracking on its own.
- Use the count to size your programme. It does not tell you which touch caused the deal, and no amount of tooling will make it.
- Fix the definition of a conversion before you measure distance to it.
If mapping this across a real buying committee is the actual problem — several people, one decision, none of them identifying themselves — that’s ICP and customer journey mapping, and it’s a different piece of work from counting.