Skip to content

UTM Tracking Without Cookies: How It Works and What You Lose

UTM parameters work without cookies. Here's what you can and can't track with UTMs in a cookie-free analytics setup — and how to get the most from campaign data you already have.

t ≈ 4 min

Colorful sticky notes on a glass board
Photo by Brands&People on Unsplash

UTM parameters are the simplest, most reliable form of campaign tracking — and they work completely without cookies. If you're moving to cookie-free analytics, your UTM data is safe. But there are real limits to what you can do with it without persistent user identification.

What UTMs are and how they work

UTM parameters are query string values appended to URLs:

https://example.com/landing?utm_source=newsletter&utm_medium=email&utm_campaign=march-launch

When a user arrives at your site from a link with these parameters, the analytics script reads them from window.location.search and associates them with the current session. No cookies needed — the data is in the URL.

The five standard UTM parameters:

  • utm_source: the traffic source (google, newsletter, twitter)
  • utm_medium: the marketing channel (cpc, email, social)
  • utm_campaign: the campaign name
  • utm_content: which ad or link variation (A/B testing)
  • utm_term: paid search keyword

What works perfectly without cookies

Session-level attribution: you know which campaign source this particular session came from. If someone clicks your ad, lands on your site, and converts in the same session — you can attribute that conversion to the campaign. This covers:

  • Email clicks
  • Paid ads (Google Ads, Meta Ads) with UTMs
  • Social media posts
  • Newsletter campaigns
  • Referral links with tracking parameters

Campaign performance by session: you can see which campaigns bring visitors, how long they stay, which pages they view, and whether they complete a goal — all within the same session.

A/B testing campaigns: utm_content works perfectly to compare two email subject lines or two ad creatives, as long as you only need same-session comparison.

What you lose without cookies

Multi-session attribution: this is the biggest gap. If someone clicks your ad, visits your blog post, and comes back three days later to sign up — a cookie-based tool connects those visits and attributes the conversion to the ad campaign. Cookie-free tools can't make that connection. The conversion appears as direct traffic.

Cross-device attribution: someone who sees your ad on mobile and converts on desktop is two separate sessions, two separate visitors.

View-through attribution: a user who sees an ad (impression) but doesn't click, then visits directly later — this is not attributable without cookies.

Lifetime value by channel: you can see which channels bring converting visitors in their first session, but can't build "channel X users have higher 90-day LTV" because you don't track the same person across sessions.

Tag everything you control. With cookie-free attribution, a session that arrives without a UTM is much harder to attribute. If you're sending an email, publishing a social post, or placing an ad — add UTMs. Don't rely on referrer detection to catch campaigns that you know about in advance.

Use consistent naming conventions. Cookie-free analytics compares strings exactly. email, Email, and e-mail will show as three separate sources. Establish and enforce a naming convention across your team.

Track conversions as early as possible. The longer the funnel, the more likely it spans multiple sessions (and thus, multiple visits you can't connect). Where possible, drive traffic directly to conversion-optimized pages rather than blog posts that need multiple touches.

Use first-session conversion as your primary metric. For cookie-free setups, first-session conversion rate by UTM source is the most reliable metric for campaign performance. It's a lower number than last-touch attribution in GA4, but it's consistent.

How click IDs (gclid, fbclid) behave

Google Ads appends gclid, Meta appends fbclid, and other platforms have their own click IDs. These are meant to be stored in cookies for cross-session attribution (Google calls this "auto-tagging").

In a cookie-free setup:

  • You can read the click ID's presence (and know the session came from a paid click)
  • You cannot use it for server-side conversion matching without additional first-party infrastructure
  • Don't store click ID values in your own database without user consent — they are personal data under GDPR (they identify a specific user's ad interaction in the ad platform's system)

Gauss records that a paid click occurred (ad_click: true) without storing the click ID value itself. You see which session came from paid traffic; you don't get platform-level impression or reach data.

Referrer vs UTM: which wins?

When both are present, UTM parameters take precedence in most tools. When there's a UTM source, the referrer is used to confirm the channel but the UTM attribution wins.

When there's no UTM but there is a referrer, the tool tries to classify the referrer: search engine, social network, known email client, or generic referral.

For your own campaigns: always add UTMs. Don't let a campaign's attribution depend on the tool guessing correctly from the referrer.

What good campaign reporting looks like without cookies

Expect this structure in cookie-free analytics:

  • By session: which UTM sources brought sessions, bounce rate, pages per session, goal completions.
  • Not available: returning visitor rates by campaign, multi-touch attribution, LTV by acquisition channel.

For the missing parts: supplement with cohort analysis in your product database (if you have user accounts), post-purchase surveys ("How did you hear about us?"), or your email platform's own click tracking for email-specific attribution.

UTM tracking is a pragmatic starting point for understanding campaign performance without cookies — it covers the majority of practical reporting needs for most businesses.

← All articles

Apply for the beta

The beta is closed and limited to 20–30 sites. We review every application and reply by email with the price and terms.

Without https:// or a path.