Add Required UTM Parameters to Twitter/X Ads
X Ads showing as referral? Add UTM parameters so GA4 can properly track your Twitter campaigns.
Your Twitter/X Ads are showing as referral traffic in GA4. You can't measure campaign performance or calculate ROI.
You can fix this in 3 minutes by adding UTM parameters.
Table of contents
- What You're Fixing
- Current State (Broken Attribution)
- The 3-Minute Fix
- Step 1: Add UTM Parameters (2 minutes)
- Step 2: Apply to All Campaigns
- Step 3: Verify Tracking (1 minute)
- What Changes After You Fix It
- Before (no UTMs):
- After (with UTMs):
- Advanced UTM Strategies for Twitter Ads
- Option 1: Campaign-Level Tracking
- Option 2: Ad Group-Level Tracking
- Option 3: Creative-Level Tracking
- Troubleshooting Common Issues
- Issue 1: UTMs Not Appearing in GA4
- Issue 2: Duplicate Sessions in GA4
- Issue 3: Twitter Conversion Tracking Stopped Working
- FAQ
- Will this break Twitter conversion tracking?
- Should I use "twitter" or "x" as utmsource?
- What utmmedium should I use for Twitter Ads?
- Can I use dynamic parameters like Google Ads?
- Do I need UTMs for organic tweets?
- Will adding UTMs make my URLs too long?
- Can I track which specific tweet drove conversions?
- What if I'm already using UTMs for email campaigns?
- How long does it take for UTMs to appear in GA4?
- Do I need to add UTMs to every single ad?
- Related Resources
- Internal Guides
- Twitter/X Official Documentation
- Conclusion
🚨 Not sure what's breaking your tracking?
Run a free 60-second audit to check all 40+ ways UTM tracking can fail.
Scan Your Campaigns Free✓ No credit card ✓ See results instantly
What You're Fixing
Twitter/X automatically adds twclid (Twitter Click ID) to track clicks, but GA4 doesn't recognize twclid for traffic classification.
Without UTM parameters, GA4 sees Twitter Ads as referral traffic from t.co (Twitter's link shortener).
Current State (Broken Attribution)
Your ad URL:
https://yoursite.com/offer
After user clicks (Twitter adds twclid automatically):
https://yoursite.com/offer?twclid=o-vkg1hkp03m201f5ld6kp5go8wd6pf5d
Result in GA4:
- Source/Medium:
t.co / referral - Channel: Referral (not Paid Social)
- Campaign: (not set)
- No attribution data
Why this happens: GA4 only recognizes click IDs from Google (gclid, gbraid, wbraid) and Facebook (fbclid). Twitter's twclid requires manual UTMs.
😰 Is this your only tracking issue?
This is just 1 of 40+ ways UTM tracking breaks. Most marketing teams have 8-12 critical issues they don't know about.
• 94% of sites have UTM errors
• Average: $8,400/month in wasted ad spend
• Fix time: 15 minutes with our report
✓ Connects directly to GA4 (read-only, secure)
✓ Scans 90 days of data in 2 minutes
✓ Prioritizes issues by revenue impact
✓ Shows exact sessions affected
The 3-Minute Fix
Step 1: Add UTM Parameters (2 minutes)
- X Ads Manager → Campaigns
- Select campaign → Ad group
- Edit destination URLs
- Add UTM parameters to your destination URL
Recommended UTM structure:
utm_source=twitter
utm_medium=paid-social
utm_campaign={campaign_name}
utm_content={ad_group_name}
Example before fix:
https://yoursite.com/offer
Example after fix:
https://yoursite.com/offer?utm_source=twitter&utm_medium=paid-social&utm_campaign=spring_promo&utm_content=headline_a
Twitter will append twclid when clicked:
https://yoursite.com/offer?utm_source=twitter&utm_medium=paid-social&utm_campaign=spring_promo&twclid=xyz789
Important: Both twclid and UTMs work together without conflicts. GA4 reads the UTMs for classification and ignores the twclid. Twitter Pixel uses twclid for conversion tracking.
Step 2: Apply to All Campaigns
Update UTMs for:
- All active campaigns
- All ad groups
- All ads
Bulk update option:
- X Ads Manager → Campaigns → Select multiple campaigns
- Edit → Bulk edit
- Update destination URLs with UTMs
- Save changes
Step 3: Verify Tracking (1 minute)
Test GA4 attribution:
- Create test campaign with $5 budget
- Click ad from Twitter/X
- Verify both UTMs and twclid present in URL
- Check GA4 → Real-time report
- Confirm traffic shows as "twitter / paid-social"
What Changes After You Fix It
Before (no UTMs):
- Source/Medium:
t.co / referral - Channel: Referral
- Campaign: (not set)
- Content: (not set)
- Unable to track campaign performance
After (with UTMs):
- Source/Medium:
twitter / paid-social - Channel: Paid Social
- Campaign:
spring_promo - Content:
headline_a - Full attribution and ROI tracking
Advanced UTM Strategies for Twitter Ads
Option 1: Campaign-Level Tracking
Basic structure (good for most campaigns):
?utm_source=twitter
&utm_medium=paid-social
&utm_campaign=spring_sale
Option 2: Ad Group-Level Tracking
Detailed structure (recommended for A/B testing):
?utm_source=twitter
&utm_medium=paid-social
&utm_campaign=spring_sale
&utm_content=audience_tech_professionals
Option 3: Creative-Level Tracking
Granular structure (for creative testing):
?utm_source=twitter
&utm_medium=paid-social
&utm_campaign=spring_sale
&utm_content=video_ad_v2
&utm_term=cta_learn_more
Troubleshooting Common Issues
Issue 1: UTMs Not Appearing in GA4
Problem: Added UTMs to Twitter Ads but GA4 still shows "t.co / referral".
Cause: URL redirect stripping UTM parameters.
Fix:
- Check for landing page redirects (301/302)
- Ensure redirects preserve query parameters:
Javascript
// ❌ Wrong (loses UTMs) window.location = '/new-page'; // ✅ Correct (preserves UTMs) window.location = '/new-page' + window.location.search; - Test manually: Click ad and verify UTMs present in browser address bar
Issue 2: Duplicate Sessions in GA4
Problem: Each Twitter ad click creates 2 sessions.
Cause: Rare with Twitter Ads. Most likely cause is duplicate GA4 tracking tags.
Fix:
- Google Tag Manager → Check for duplicate GA4 configuration tags
- View page source → Verify GA4 snippet appears only once
- Remove redundant tracking implementations
Issue 3: Twitter Conversion Tracking Stopped Working
Problem: After adding UTMs, Twitter conversions show zero.
Cause: Twitter Pixel not installed or misconfigured.
Fix:
- Verify Twitter Pixel installed on all pages
- Add conversion events to thank-you pages:
Javascript
twq('event', 'tw-obqde-ocjxl', { value: 99.99, currency: 'USD' }); - Test with Twitter Pixel Helper
FAQ
Will this break Twitter conversion tracking?
No. Twitter's pixel operates independently and uses twclid for attribution. UTMs are only for GA4 tracking. Both systems work simultaneously without conflicts.
Should I use "twitter" or "x" as utm_source?
Use twitter for consistency with historical data. GA4 doesn't distinguish between the two, but using "twitter" maintains continuity with older campaigns and is more widely recognized.
What utm_medium should I use for Twitter Ads?
Recommended options:
paid-social(best - GA4 classifies as "Paid Social")cpc(also works - classified as "Paid Search")paidsocial(no hyphen - also works)
Best practice: utm_medium=paid-social for all social ad platforms.
Can I use dynamic parameters like Google Ads?
No. Twitter/X Ads doesn't support dynamic parameters like {campaign} or {keyword}. You must hardcode UTM values for each campaign.
Do I need UTMs for organic tweets?
Optional. UTMs are useful if you want to differentiate organic Twitter traffic from other referral traffic:
utm_source=twitter&utm_medium=social&utm_campaign=organic_posts
Will adding UTMs make my URLs too long?
Twitter's character count excludes URLs, so UTM parameters don't affect your tweet character limit. The link appears shortened (t.co) in tweets.
Can I track which specific tweet drove conversions?
Yes, in Twitter Ads Manager:
- Campaigns → Analytics → Tweets
- View performance by individual tweet
- See clicks, conversions, ROI per tweet
GA4 won't show tweet-level detail (only campaign/medium/source from UTMs).
What if I'm already using UTMs for email campaigns?
Use different campaign names:
- Email:
utm_campaign=newsletter_march - Twitter Ads:
utm_campaign=twitter_march_promo
This prevents attribution confusion across channels.
How long does it take for UTMs to appear in GA4?
Real-time. Click your ad with UTMs and check GA4 Real-time report within seconds.
Do I need to add UTMs to every single ad?
Yes, add UTMs at the campaign or ad group level. All ads within that campaign will inherit the UTMs from the destination URL.
Related Resources
Internal Guides
- twclid vs Manual UTM Parameters - Complete comparison
- Twitter Ads Double Sessions Fix - Troubleshooting duplicate data
- Platform Click ID Conflicts - Auto-tagging across all platforms
Twitter/X Official Documentation
- Twitter Ads Best Practices - Official tracking guide
- Twitter Pixel Setup - Conversion tracking
Conclusion
Twitter/X Ads require manual UTM parameters for GA4 attribution. Unlike Google Ads (which has automatic gclid), Twitter's twclid is not recognized by GA4.
Quick fix checklist:
- ✅ Add
utm_source=twitter&utm_medium=paid-social&utm_campaign={name}to all Twitter Ads destination URLs - ✅ Twitter automatically appends twclid when ads are clicked
- ✅ GA4 reads UTMs for attribution (classifies as "Paid Social")
- ✅ Twitter Pixel uses twclid for conversion tracking
- ✅ Both systems work together without conflicts
Result: Proper Twitter Ads attribution in GA4 + conversion tracking in Twitter Ads Manager.
Related Documentation:
✅ Fixed this issue? Great! Now check the other 39...
You just fixed one tracking issue. But are your Google Ads doubling sessions? Is Facebook attribution broken? Are internal links overwriting campaigns?
• Connects to GA4 (read-only, OAuth secured)
• Scans 90 days of traffic in 2 minutes
• Prioritizes by revenue impact
• Free forever for monthly audits
Join 2,847 marketers fixing their tracking daily