July 6, 2026 · 4 min read

Do UTM Parameters Expire? What GA4 Actually Remembers

UTM parameters never expire, but GA4's memory of them does. Four separate clocks decide how long your campaign attribution actually survives.

utm analytics attribution

Someone asked us this in a support thread last month: do UTM parameters expire? Fair question. The answer sounds like a riddle: the parameters themselves never expire, but almost everything that reads them does.

A UTM parameter is plain text in a URL. utm_source=newsletter doesn't have a timestamp or a shelf life. Click a tagged link from a 2019 blog post today and the parameters arrive exactly as written. Nothing decays.

What people are really asking is different. They ran a campaign in March, a customer converted in June, and the conversion shows up as direct. Where did the attribution go? The honest answer is that four separate clocks were running, and at least one of them ran out.

Clock 1: the session (30 minutes)

GA4 attributes a session to the campaign that started it. Leave the tab open, come back 31 minutes later, and you're in a new session. If the visitor returns tomorrow by typing your URL, that new session has no campaign of its own, so GA4 reaches back to the last known source.

Which brings us to the clock that actually matters.

Clock 2: the attribution lookback window (90 days, usually)

GA4's default model is paid-and-organic last click. For most key events it looks back 90 days to find the most recent non-direct source. For acquisition events like first_visit, the default window is 30 days.

So a UTM tag "lasts" up to 90 days in the sense most marketers mean. Visitor clicks your tagged link in April, buys in June, and GA4 still credits the campaign. Buys in August? The window closed. The sale lands in direct or whatever touched them more recently.

You can shrink these windows in Admin under Attribution settings, but you can't extend them past 90 days. For a SaaS with a six-month sales cycle, GA4 structurally can't connect the first tagged click to the deal. That's not a setup problem. That's the product.

Clock 3: Safari's 7-day cap

Here's the one that quietly breaks everything upstream. Those lookback windows assume GA4 can still recognize the visitor when they return, and recognition depends on a first-party cookie. Safari's Intelligent Tracking Prevention caps script-set cookies at 7 days.

Return on day 8 from an iPhone and you're a brand new user as far as GA4 can tell. The 90-day window is meaningless if the cookie holding the visitor's identity died on day 7. Roughly half of US mobile traffic is Safari, so this isn't an edge case. We wrote up the full mechanics in our cookieless measurement guide, but the short version: on Apple devices, your practical attribution window is a week.

Clock 4: GA4's retention setting (the silent default)

This one catches almost everyone. GA4 keeps event-level data for 2 months by default. Not 14. Two. Standard reports survive because they're pre-aggregated, but open an Exploration to analyze last quarter's campaign and the user-level data is just gone.

The fix takes 30 seconds: Admin, Data settings, Data retention, switch to 14 months. Do it today. It only applies to data collected after you flip it, which is exactly why you flip it before you need it. (We've watched a team try to rebuild a Q4 campaign analysis in February with a 2-month setting. There's nothing to rebuild from.)

The UTM data that never expires

One layer of the stack has no clock at all: the click log on a link you control.

When someone clicks a short link, the redirect gets logged server-side at that moment, with the full UTM context attached. No cookie has to survive. No lookback window has to stay open. The click from 14 months ago is a row in a log, and it reads the same today as the day it happened. That's how Attri links store campaign data, and it's the only layer of our own reporting we treat as permanent.

Same logic applies at the conversion end. UTMs captured into your CRM at form submission are ordinary field values. Salesforce doesn't expire them. The URL carried the data, the form saved it, done.

So what do you change?

Three things, in order of effort.

Set retention to 14 months. Free, instant, no downside.

Stop trusting cookie-based attribution for anything longer than a week on mobile. If your sales cycle is longer than that (whose isn't?), capture UTMs at the point of conversion instead of hoping GA4 remembers.

And keep your click logs somewhere with no expiry date. The tag in the URL was never the fragile part. Everything that reads it is.

← All posts