X Ads is the most minimal network in this entire directory: it has exactly one token, an auto-appended click identifier called twclid, and nothing else. Where Google, Meta, and most other platforms give you a stack of campaign, ad group, and creative macros to type in, X provides none of that — twclid attaches itself automatically, full stop. ValidVisit still attributes and judges each visit Valid or Invalid, but the campaign- and ad-level breakdown has to come from your own UTM parameters rather than anything X supplies.
Cross-check any macro against the network’s official documentation. X Ads (Twitter) official docs →
There's genuinely nothing else to configure here. twclid is required, and it isn't a macro you place in a tracking template the way {campaign_id} or {{AD_ID}} work on other networks — X appends it to the destination URL automatically, the same underlying pattern as Google's gclid or Meta's fbclid. X documents no campaign ID, ad group ID, ad ID, or creative ID macro at all, so if you want that level of detail in your own reporting you have to build it yourself, typically by appending your own UTM parameters (utm_campaign, utm_content, and so on) alongside twclid on the same destination URL. ValidVisit reads whatever's present — twclid for the click-level identity, your own UTM values for the sub-source breakdown — and combines them into the attribution and the verdict.
Because X itself doesn't hand you a campaign or ad identifier, the sub-source picture only exists if you build it into your own UTM structure before launch — skip that step and every visit collapses into one undifferentiated X number no matter how many campaigns are actually running. ValidVisit will judge whatever granularity you give it, but it has no reach into X's own ad platform and can't pause a campaign or reallocate spend on its own; it only ever detects, judges, and reports. If your UTM-tagged breakdown shows a specific campaign or ad group with a consistently higher invalid share, the fix is manual: pause that campaign, tighten its targeting, or shift budget toward the ones whose traffic holds up, all from inside X Ads Manager itself.
| Token | X Ads (Twitter) macro | ValidVisit param | Example |
|---|---|---|---|
| Click ID (twclid) *click | (auto-tagging) | twclid | abc123xyz |
(auto-tagging)twclid* required for X Ads (Twitter) attribution.
https://yoursite.com/landing?utm_source=x-ads&utm_medium=socialAppend these params to your landing-page URL — X Ads (Twitter) fills the macros at click time, so every visit arrives attributed and ready to judge. No funnel hop.
Campaign level only: X Ads (Twitter) passes no publisher, zone or placement token, so invalid traffic is attributed to the campaign and, where a click id exists, to the click.
Carries a per-click id, stored with each visit so a verdict traces back to the click.
Tokens last verified against X Ads (Twitter)’s docs on 2026-10-02.
The buyer deselects the optional placements (profiles, search results, replies) in the ad group, or, in a pre-roll views campaign, types the bad publishers’ @handles under Excluded X accounts on the Targeting page (max 50 handles for standard categories, 5 for Curated Categories) — X documents no bulk list upload
X's ad platform simply doesn't document campaign, ad group, or creative macros the way most networks do. twclid, the auto-appended click ID, is the only one it provides — everything else has to come from your own tagging.
Append your own UTM parameters (utm_campaign, utm_content, etc.) to the same destination URL alongside twclid. ValidVisit reads both together, using twclid for click identity and your UTM values for the sub-source breakdown.
No — X appends it automatically, the same pattern as Google's gclid or Meta's fbclid; its help centre describes Click ID as automatically appended in the URL. There's no macro to type in for it. Point the ad straight at your landing page, because X warns that an intermediate hop strips twclid off the URL.
See which X Ads (Twitter) publishers and placements send real buyers vs. bots.
Join the waitlist with just your email · 7-day trial at launch
One script · no cookies · no device IDs · raw IP never stored