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 once click tracking is on, full stop. ValidVisit still attributes and scores each visit 0-100, 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 — it's appended to the destination URL automatically through X's auto-tagging once conversion tracking is switched on in Ads Manager, the same underlying pattern as Google's gclid or Meta's fbclid. X doesn't expose a 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 0-100 quality score.
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 score 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, scores, and reports. If your UTM-tagged breakdown shows a specific campaign or ad group scoring consistently worse, 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 score. No funnel hop.
The buyer types the bad publishers' @usernames into the Excluded Publishers field of the pre-roll ad group (max 50 handles for standard Content Categories, 5 for Curated Categories) or checks off the specific third-party apps to exclude in the X Audience Platform section of campaign setup — there is no bulk list upload
X's ad platform simply doesn't expose 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 — it's appended automatically through X's auto-tagging once conversion tracking is enabled in Ads Manager, the same pattern as Google's gclid or Meta's fbclid. There's no macro to type in for it.
See which X Ads (Twitter) publishers and placements send real buyers vs. bots.
Free trial at launch · just your email
One script · no cookies · no fingerprinting · raw IP never stored