What ttclid actually is
ttclid is the TikTok Click Identifier, appended automatically when someone clicks a TikTok ad. Like Meta's fbclid and Google's gclid, it is generated per click and exists so conversions on the destination site can be matched back to the ad that produced them, including through TikTok's server-side events.
Not the same thing as TikTok's macros
TikTok advertisers also work with dynamic macros, which look nothing like ttclid and serve a different purpose. Macros such as __CAMPAIGN_NAME__, __AID__ and __CID__ are placeholders you type into your URL, and TikTok swaps in real values at click time so they can populate your UTM parameters.
They are worth naming carefully because the two most useful ones are misleadingly named: __AID__ is the ad group ID, not the ad ID, and __CID__ is the creative ID, not the campaign ID. Wire them into the wrong slots and every report downstream is confidently wrong. The tables in our UTM builder spell out what each one resolves to, so you can copy the pairing instead of guessing it.
How long a click stays valid for attribution
TikTok's Attribution Manager lets an advertiser choose a click-through attribution window anywhere from 1 to 28 days, and new Pixel and Events API setups default to a 7-day click window plus a separate 1-day view-through window for impressions that were seen but not clicked. ttclid itself carries no expiry date. Whether a specific click can still convert depends entirely on whichever window that account has configured, which is also why TikTok's own developer guidance recommends storing a captured ttclid for at least 28 days, long enough to cover the widest window any account could be running, even though most use the shorter default.
A worked example, decoded
Paste https://example.com/offer?ttclid=E.C.P.abc123def456 into the decoder above and it splits into the destination, https://example.com/offer, and one parameter, ttclid=E.C.P.abc123def456. The value is opaque outside TikTok's own systems: there is no campaign name or ad ID readable from the string itself, only a token TikTok's servers can look up.
Common mistakes
- Assuming ttclid is valid for a fixed period everywhere. There is no single answer. It lasts as long as whatever click-through attribution window that specific ad account has configured, one to 28 days, not a duration baked into the parameter itself.
- Mixing up ttclid with TikTok's dynamic macros. Macros like __CAMPAIGN_NAME__ are placeholders you type into a URL yourself; ttclid is generated and appended by TikTok automatically on the click. Confusing the two means wiring the wrong value into a UTM field.
- Discarding a stored ttclid too early. If you capture ttclid server-side for later matching, TikTok's own guidance is to keep it for at least 28 days, since that covers the longest window any account might be running.
Is it safe to remove?
For a visitor, yes. For the advertiser it is the link between spend and result, so it should survive every hop between the ad and the landing page. If it does not, a redirect in the middle is probably discarding query parameters.