Free UTM Builder for X (Twitter)

X (formerly Twitter) traffic routes to "Organic Social" for organic tweets and "Paid Social" for promoted tweets. X is highly conversational, so utm_content often reflects tweet format (thread, reply, quote-tweet). Case sensitivity is critical—always use lowercase to avoid creating duplicate rows in GA4.

Organic X (Twitter)

Source: x
Medium: social
GA4 Channel: Organic Social

Paid X (Twitter)

Source: x
Medium: paid_social
GA4 Channel: Paid Social

Worked Examples

Build Your X (Twitter) UTM Link

Common utm_content Values for X (Twitter)

postthreadprofile-linkcommunity-postreplyquote-tweetspace

Common Pitfalls

Case sensitivity causes duplicate rows

GA4 treats "X", "x", "Twitter", "twitter" as separate sources. Pick one format ("x" is recommended) and stick with it. Uppercase or mixed case will fragment your data.

Using spaces in parameters

Spaces break UTM tracking. Always replace spaces with hyphens: "product launch" becomes "product-launch". This prevents URLs from breaking when shared.

Not differentiating tweet types

Threads, single tweets, and quote-tweets perform differently. Use utm_content to track: "thread", "single-tweet", "quote-tweet" to understand what resonates.

X (Twitter) UTM FAQs

Should I use "x" or "twitter" for utm_source?

Use "x" for new campaigns to match the platform's current branding. If you have historical data with "twitter", keep using it for those campaigns to maintain continuity—but don't mix both.

How do I track X threads vs single tweets?

Use utm_content to differentiate: utm_content=thread for multi-tweet threads and utm_content=post for single tweets. Threads often have higher engagement and this helps you measure that.

Can I use UTMs in X bio links?

Absolutely. Bio links are a great use case. Use utm_content=profile-link to track clicks from your bio separately from tweet links.

Related X (Twitter) Resources