Parameters and query strings
A URL parameter is data after the “?”, written as key=value and joined by “&”, for
example https://shop.example.com/deal?cmp=42 (fictional). What a name means is decided
by the platform that reads it.
Click, campaign, source and attribution labels
A click ID identifies one click, a campaign ID a campaign, a source label the origin of the traffic. Every platform picks its own names.
Encoding and nested URLs
Reserved characters inside a value are percent-encoded: : becomes %3A,
/ becomes %2F, ? becomes %3F and
& becomes %26. Skipping encoding, or doing it twice, is a classic bug.
Illustrative example with fictional domains. Not a real configuration.
Redirects: 301, 302 and in-page
301 means moved permanently and 302 means moved temporarily. In-page redirects (JavaScript or meta refresh) happen after a page loads and are harder to inspect. Prefer server-side HTTP redirects with a clear purpose.
Tracking template or final URL?
The final URL is the landing page; the tracking template wraps it. See the rules walkthrough.
Inspecting a redirect chain
Run curl -I -L or open the Network tab in browser developer tools, and note each hop's
status code and Location header.
Illustrative example with fictional domains. Not a real configuration.
Testing without paid traffic
Use staging URLs or a test campaign, and compare the URL you built with the URL that actually loads.
Common formatting mistakes
- Two “?” in one URL.
- A missing “&” between parameters.
- An unencoded nested URL.
- Spaces or unsupported characters.
- Dropping HTTPS along the way.
Questions people ask
Why did my parameter disappear?
A hop may rebuild the URL without it. Inspect each hop in turn.
301 or 302?
It depends on whether the move is permanent. Confirm requirements with your provider.