X Ads (Twitter)
Social
Social channel · judged Valid or Invalid

Which X Ads (Twitter) placements send bot traffic?

Judge every X Ads visit Valid or Invalid, tied to its twclid, and split home timeline, profile, search and reply placements with your own URL tags.

Just your email · no card · unsubscribe anytime · privacy policy

Not ready? Estimate your invalid clicks →
validvisit · x-ads cut-list
Exclude the bad placement in X Ads (Twitter)

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

Where: Both live in the Ads Manager campaign-creation flow: in a website traffic campaign the ad group step lists the placements (Home timelines, Profiles, Search Results, Replies), and all but Home timelines can be deselected; for pre-roll views campaigns the Targeting page has an "Excluded X accounts" section for blocking specific @handles
Controls in X Ads (Twitter)’s campaign settings
✕ IP lists✓ OS✓ OS version✕ Browser✕ Browser version✓ Language✓ Device✓ Connection
1
X Ads (Twitter) macro mapped to report columns
2026-10-02
macros checked against X Ads (Twitter)’s own docs
no-hop
one script, nothing added to the click path
Valid / Invalid
a verdict on every visit
01 / SIGNAL

How bot traffic slips in through X Ads (Twitter) placements.

X Ads places promoted posts on X’s own surfaces — the home timeline, profiles, search results and replies. In a website traffic campaign the home timeline cannot be deselected; the other three are optional placements chosen in the ad group. X auto-appends a twclid to your landing URL that ties each visit to its click record, but it passes no per-placement token, so campaign-level numbers blend those surfaces together.

X gives you one handle on a paid visit: the Click ID. X describes it as a unique identifier that is automatically appended in the URL, and its developer documentation reads it from the twclid query parameter once the visitor reaches your site. Nothing in the click says which surface showed the ad, and X documents no campaign, ad group or creative macro either.

That shapes how invalid traffic shows up here. It does not arrive labelled by placement or publisher; it appears as a campaign or ad group whose invalid share sits above the rest of your account. X bills website traffic campaigns by impressions (the default) or by link clicks, and it counts a link click, a click on the link in your ad, separately from a site visit; its own FAQ covers seeing fewer site visits than link clicks. A verdict on every visit that does arrive shows how many of those landings were Valid.

The remedy depends on what the split shows: an optional placement carrying a high invalid share can be switched off in the ad group, while the home timeline cannot, so there the levers are targeting and bids.

What to watch on X Ads (Twitter)

Home timeline vs. optional placements

X stamps no placement token on the click, so make placement legible yourself: run the optional placements — profiles, search results and replies — in their own ad group, with posts whose landing URL carries its own tag, and compare its invalid share with a home-timeline-only ad group. If the optional placements sit well above baseline, deselect them.

twclid on every landing

The twclid ties each judged visit to one X click record. X warns that an intermediate hop in your ad URL strips the twclid off, which also breaks X’s own measurement, so link straight to the landing page and check that paid visits arrive with it attached.

Verdicts by audience / targeting segment

X targets by keyword, follower and follower look-alike, interest, conversation and more, but none of that reaches the URL. Give each targeting approach its own campaign and utm_campaign value. A segment drawing a disproportionate share of Invalid verdicts points to tightening that segment rather than cutting the whole campaign, and separates a targeting problem from a placement problem.

02 / VERDICTS

What X Ads (Twitter) lets you judge by.

X Ads (Twitter) exposes campaign-level tokens; we break invalid traffic down by campaign and per-click id, and surface the offending networks and devices behind the bot clicks.

Per-click id: X Ads (Twitter) passes a unique click id, and ValidVisit stores it with each visit, so a verdict traces back to the click in X Ads (Twitter)’s own reports.

Compare bot & invalid-traffic breakdown across every ad network →

See your own X Ads (Twitter) sub-sources judged this way.

03 / ATTRIBUTION

How ValidVisit attributes X Ads (Twitter) traffic

Each X Ads (Twitter) macro maps to a normalized parameter, so every judged visit is pinned to the right campaign, creative and publisher.

validvisit · tracking url
Tracking URL for X Ads (Twitter), ready for ValidVisit
https://yoursite.com/landing?utm_source=x-ads&utm_medium=social
Click ID (twclid)
X Ads (Twitter) macro
(auto-tagging)
Maps to
click_id
Identifies
click

Macros checked against X Ads (Twitter)’s own documentation on 2026-10-02. X Ads (Twitter) docs

The verdict works the same way on every network. ValidVisit never changes your X Ads (Twitter) account: you make the exclusion there yourself. How the verdict works →

FAQ

X Ads (Twitter) traffic quality, answered.

X has no placement token on the click. How do I segment by placement?

Correct — X auto-appends only twclid. Split delivery yourself: put the optional placements (profiles, search results, replies) and the home timeline in separate ad groups with their own URL tags, and read their invalid shares side by side. The twclid still ties every judged visit back to X’s own click record for cross-referencing.

What can I exclude in X Ads?

Placements and, for pre-roll, publishers. In a website traffic campaign the ad group lets you deselect profiles, search results and replies; the home timeline stays on. In a pre-roll views campaign, the Targeting page lets you opt out of publisher content categories and type @handles under “Excluded X accounts” — up to 50 for standard categories, 5 for Curated Categories. X documents no bulk list upload for either.

Do I have to switch anything on to get twclid?

X’s help centre describes Click ID as automatically appended in the URL, and says the X Pixel passes twclid from the URL or a first-party cookie. ValidVisit reads the same parameter when the visit lands, so there is no macro to type.

Which targeting controls does X Ads offer?

Operating system, OS version, language, device and carrier/connection targeting are documented. IP exclusion and browser or browser-version targeting are not.

Detect fraud on other social networks

Weighing a blocker for social traffic? How ValidVisit compares to ClickGUARD, Lunio and CHEQ.

placement 55171% invalid
placement 20923% invalid
placement 872% invalid

Find the bots in your X Ads (Twitter) spend.

See which publishers and placements send real buyers vs bots — every visit judged Valid or Invalid, worst first.

Just your email · no card · unsubscribe anytime · privacy policy

Join the waitlist with just your email · 7-day trial at launch

One script · no cookies · no device IDs · raw IP never stored