The situation
Their head of customer success and marketing owned analytics but had been out of the hands-on work for years. She had a review with the engineering lead coming up and needed answers, with no agency and no budget to bring one in.
The problem looked like a standoff. Of 2,376 sessions on the patient web app over 28 days, 1,394 (58.67%) landed in GA4's "Unassigned" bucket. The dashboards were useless. Engineering insisted the tags were firing, and they were. That made it look like nobody's fault and nobody's job.
What I did
The instinct in this spot is to assume you tagged something wrong. I went the other way and checked the platform's rules instead of my own setup.
- Used AI to run GA4's default channel-grouping logic against the actual UTM values coming through. The mismatch surfaced fast: the links used utm_medium=web, which isn't on GA4's recognized medium list, so every tagged session fell into "we don't know what this is."
- Built the fix live: a custom Channel Group with a "Client Portal Links" channel that catches that traffic in every default report.
- Audited both GA4 properties plus HubSpot in the same sitting. Set up a saved Exploration, a one-click comparison filter, a HubSpot dashboard pin, and a saved contacts view.
- Extended event retention from the 2-month default to 14 months on both properties, so year-over-year actually works later.
- Flagged for engineering what would have kept corrupting the data: dev and staging traffic firing the production tag, and untagged pages on the provider portal.
The result
0.13%
Unassigned, down from 58.67%
3
Unassigned sessions, down from 1,394
70
Client portals now visible by traffic
1
Afternoon, start to finish
The team could finally see which portals were driving traffic and which weren't. The fix is permanent and reversible, retention is set up for the long view, and engineering got a clean list of the real upstream issues to close.
Why this one travels. When a primary lead source loses visibility, the first move is always the same: get signal back. You can't optimize what you can't see. The interesting part wasn't the fix, it was isolating that this was a reporting-rules problem, not a tagging problem. Those need completely different solutions, and only one of them needs an engineer.