A client ran multiple email campaigns, each with unique utm_campaign tags. Everything looked fine — until we checked GA4:
• Some visits landed under (not set)
• Some were credited to old campaigns
• Some UTM tags didn’t appear at all
The client asked, “Did no one click the links?” They did click — and they bought. GA4 just didn’t track it.
Why? Because GA4 doesn’t guarantee your UTM tags survive the full journey:
• Apps (Instagram, Gmail, TikTok) often strip referrer.
• Redirects — especially multi-step ones — drop parameters.
• Fast reloads or long load times can break sessions.
• Browser-only tracking depends entirely on cookies — and luck.
An analyst sees “0” in reports — and assumes failure. But GA4 simply missed the attribution.
Because of this:
• The client missed out on a potential +25% revenue boost
• Drew false conclusions about audience behavior
• Lost growth opportunities because the “data looked fine”
It all came from treating GA4 as a flawless source of truth.
Now I take a different approach:
• Test UTM tags in real sessions via DebugView.
• Use BigQuery to validate traffic_source.source, medium, and campaign.
• Trace where UTMs are lost - redirects, app handoffs, or browser conflicts.
• For key campaigns, log the click server-side - independent of the browser.
• Implement server-side tracking to protect UTMs from being dropped.
GA4 is powerful - but not bulletproof. If you’re judging campaigns by its reports, make sure you’re measuring real people — not holes in the funnel.
Want to get all my top Linkedin content? I regularly upload it to one Notion doc.
Go here to download it for FREE.


