troubleshootingUpdated 2025

Add Required UTM Parameters to Twitter/X Ads

X Ads showing as referral? Add UTM parameters so GA4 can properly track your Twitter campaigns.

7 min readtroubleshooting

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.

🚨 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:

Code
https://yoursite.com/offer

After user clicks (Twitter adds twclid automatically):

Code
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

Get Your Free Audit Report

The 3-Minute Fix

Step 1: Add UTM Parameters (2 minutes)

  1. X Ads ManagerCampaigns
  2. Select campaign → Ad group
  3. Edit destination URLs
  4. Add UTM parameters to your destination URL

Recommended UTM structure:

Code
utm_source=twitter
utm_medium=paid-social
utm_campaign={campaign_name}
utm_content={ad_group_name}

Example before fix:

Code
https://yoursite.com/offer

Example after fix:

Code
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:

Code
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:

  1. X Ads Manager → Campaigns → Select multiple campaigns
  2. EditBulk edit
  3. Update destination URLs with UTMs
  4. Save changes

Step 3: Verify Tracking (1 minute)

Test GA4 attribution:

  1. Create test campaign with $5 budget
  2. Click ad from Twitter/X
  3. Verify both UTMs and twclid present in URL
  4. Check GA4 → Real-time report
  5. 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):

Code
?utm_source=twitter
&utm_medium=paid-social
&utm_campaign=spring_sale

Option 2: Ad Group-Level Tracking

Detailed structure (recommended for A/B testing):

Code
?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):

Code
?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:

  1. Check for landing page redirects (301/302)
  2. Ensure redirects preserve query parameters:
    Javascript
    // ❌ Wrong (loses UTMs)
    window.location = '/new-page';
     
    // ✅ Correct (preserves UTMs)
    window.location = '/new-page' + window.location.search;
  3. 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:

  1. Google Tag Manager → Check for duplicate GA4 configuration tags
  2. View page source → Verify GA4 snippet appears only once
  3. 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:

  1. Verify Twitter Pixel installed on all pages
  2. Add conversion events to thank-you pages:
    Javascript
    twq('event', 'tw-obqde-ocjxl', {
      value: 99.99,
      currency: 'USD'
    });
  3. 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:

Code
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:

  1. CampaignsAnalyticsTweets
  2. View performance by individual tweet
  3. 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.

Internal Guides

Twitter/X Official Documentation

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

Run Complete UTM Audit (Free Forever)

Join 2,847 marketers fixing their tracking daily

UTM

Get Your Free Audit in 60 Seconds

Connect GA4, run the scan, and see exactly where tracking is leaking budget. No credit card required.

Trusted by growth teams and agencies to keep attribution clean.