Clarvivo

Free tool by Clarvivo · no login

Find where your UTM parameters disappear

Paste a campaign URL. We follow every redirect and one internal click, then show you the exact step where source, medium and campaign stop surviving — and whether your analytics ever recorded them.

Campaign URL

Paste a real campaign URL, UTMs and all. We follow every redirect and report the exact hop where parameters stop surviving.

This tool answers: Where do my UTM parameters disappear?

Enable JavaScript to run the check — the diagnosis itself is free and needs no account.

Why this happens

Campaign links usually break quietly. The ad is approved, the click goes through, the page loads, and nothing looks wrong — but the conversion at the end of that journey is filed under Direct, and the campaign that paid for it gets no credit.

It happens because a UTM only survives as long as the query string does. A redirect that rebuilds the destination, a consent wall that reloads the page, a router that cleans up the address bar, or simply a visitor clicking through to another page can all drop it. None of those leave an error anywhere.

The confusing part is that some channels keep working. Google's auto-tagging stores its click ID in a cookie, so paid search still attributes correctly while your email and social campaigns quietly collapse into Direct — which makes it look like a channel performance problem rather than a tracking one.

Next checks

These answer the questions this one tends to raise.

How this check works

So you can trust the result — and your developer can verify it.

  1. We follow the real journey, not just the first response

    The scan opens your URL in a real Chromium browser and records every hop: HTTP redirects, meta-refreshes, JavaScript redirects and single-page-app route changes. Each hop is recorded with the parameters that survived it, so the loss point is a step you can name rather than a guess.

  2. We click one internal link

    Most attribution dies on the second pageview, not the first, so after the landing page settles we follow one same-origin link and check again. We skip anything that looks destructive — checkout, delete, unsubscribe, logout — and never submit forms or make purchases.

  3. We check what your analytics actually recorded

    This is the part DevTools makes hard. We watch the outgoing tracking requests — GA4, Google Ads, Meta, TikTok, Reddit, LinkedIn and Microsoft — and read the campaign values inside them. A UTM sitting in the address bar that never reached a /g/collect request is not attribution; it is decoration.

  4. We look for persistence

    Finally we check whether anything wrote the campaign into a first-party cookie or web storage. Without that, attribution survives exactly as long as the query string, which is why so many sites track the landing page correctly and lose the form submission.

Common causes and fixes

A redirect that does not forward the query string
The most common cause by far. http→https, www→apex, trailing-slash normalisation, geo routing and link shorteners are all frequently configured to redirect to a fixed path, discarding everything after the question mark. Fix it in the redirect rule: append the original query string rather than rebuilding the URL.
A tag that fires before the redirect settles
If your analytics tag runs on the pre-redirect URL, it records that URL — so the report shows a page and a campaign that do not match what the visitor actually saw. Make sure the tag reads the address after the final navigation completes.
A consent tool that delays the tag too long
Consent Mode and CMPs often hold tags until a choice is made. If the visitor navigates in the meantime, the tag finally fires on a page that no longer carries the campaign. This looks identical to a consent-driven data drop but is a sequencing bug.
A single-page-app router cleaning the URL
Frameworks frequently call history.replaceState to tidy the address bar on mount. If that runs before your tag reads location.search, the campaign is gone from the tag's point of view even though the network request carried it.
No first-party persistence
Even a perfectly configured landing page loses attribution on the next click if nothing stored it. Write source, medium and campaign into a first-party cookie on landing, and read from there at the point of conversion.

Frequently asked questions

Why do my UTMs work on the landing page but disappear on the next click?
Because nothing persisted them. UTMs live in the query string, and internal links almost never carry it forward. Unless your site copies the campaign into a cookie or storage on the landing page, the second pageview has no campaign data at all — and any conversion after that point is attributed to Direct.
Why does my GCLID survive when my UTMs do not?
They persist by different mechanisms. Google's auto-tagging writes gclid into the _gcl_aw cookie, so it outlives the query string. Manual UTMs have no equivalent fallback. That asymmetry is why paid search keeps attributing correctly while manually tagged email, social and newsletter traffic collapses into Direct.
Do I need to give you a real campaign URL?
Yes — use the exact URL your ad, email or post links to, UTMs and all. A clean URL with no parameters gives us nothing to trace. We do not need a live campaign; a copy of the link is enough.
Will this submit forms or buy anything on my site?
No. The scan follows redirects and clicks at most one ordinary internal link. It never submits forms, never completes a checkout and skips links that look like checkout, delete, cancel, unsubscribe or logout.
What if my site is behind Cloudflare or a bot check?
We will tell you. We do not attempt to bypass CAPTCHAs or bot protection — the result comes back marked partial, with a note about which step blocked it, so you know the findings only cover what we could actually reach.
Does this replace GA4 DebugView or Tag Assistant?
It answers a different question faster. Those tools show you what fires on the page you are looking at. This traces one campaign URL across a whole journey and tells you where in that journey the campaign data stops surviving — which is the part that is tedious to reconstruct by hand.

This test checks one journey. Clarvivo checks every one of them.

A scan tells you whether this campaign URL is losing attribution today. Clarvivo connects acquisition to payment data continuously, so you see which channels actually drive revenue instead of re-running this check after every deploy.

Track acquisition to revenue with Clarvivo

What this tool reads, and what it keeps