Why Redirects Break Campaign Attribution (and How to Test Them)
Diagnose lost UTM and ad click parameters through redirects, short links, different domains and form confirmation pages.
The click arrived, so where did the parameters go?
An ad can send a visitor to a URL containing campaign tags and an ad click identifier. A short-link service, canonical redirect, localization router, consent layer or landing-page script may then replace the URL. If that hop discards the query string, the final form no longer sees the original parameters.
The campaign may still be running normally. It is the measurement chain that has broken. Before changing an advertising campaign, reproduce the complete redirect sequence with a test URL containing obvious non-sensitive markers.
Follow the entire redirect chain
Start with the exact ad destination, not only the URL visible after the page loads. Inspect each HTTP Location header and any client-side navigation. Verify that required parameters either survive the transition or are captured through a permitted first-party mechanism.
An absolute redirect URL with a hard-coded query string can silently drop parameters from the incoming request. A relative redirect may preserve or replace them depending on how the URL is constructed. Do not blindly copy arbitrary query parameters into sensitive destinations: allowlist those you actually require.
| Hop | What can go wrong | Test |
|---|---|---|
| Short link | Query string is overwritten | Resolve full destination |
| HTTP 301/302 | Location omits parameters | Inspect response headers |
| Client-side router | Navigation rebuilds clean URL | Watch browser history |
| Cross-domain hop | Stored context does not carry over | Verify consent and transfer design |
| Form post | Attribution never enters payload | Inspect submitted request |
A reproducible smoke test
A HEAD request is only an initial check: some sites implement GET and HEAD differently. Complete the test in a real browser and confirm what your final form submits. Use a test token instead of a real GCLID or customer record.
# Inspect redirects without sending a real customer identifier.
curl -IL --max-redirs 8 \
"https://example.com/landing?utm_source=qa&utm_campaign=check"
# Then inspect the actual form submission in browser DevTools.Keep reporting boundaries clear
- Use the original landing request to identify whether tags arrived at all.
- Preserve only allowed campaign parameters across necessary hops.
- Test final submissions as well as thank-you pages.
- Document attribution expiry and consent requirements.
- Do not assume that keeping a click ID guarantees the ad platform will attribute a later conversion.
