technical-guidesUpdated 2025

twclid vs Manual UTM Parameters: Twitter/X Ads Tracking Guide

Complete comparison of Twitter/X's twclid vs manual UTMs. How to track Twitter Ads correctly in GA4 and Twitter Analytics.

7 min readtechnical-guides

Twitter/X Ads automatically append the twclid parameter to track conversions. But unlike Google's gclid, GA4 cannot read twclid for attribution. You need manual UTM parameters for GA4 tracking.

Here's how to track Twitter/X Ads correctly across both platforms.

🚨 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

The Critical Difference: twclid vs gclid

Understanding why Twitter/X Ads require manual UTMs starts with knowing how different platforms handle tracking parameters.

GA4 recognition: ✅ Yes, automatic attribution

How it works:

  • GA4 natively recognizes Google click IDs
  • Automatically classifies as "Paid Search" or "Paid Social"
  • No manual UTMs needed

Example:

Code
yoursite.com/product?gclid=abc123
↓
GA4 reads gclid automatically
↓
Classified as: google / cpc

Twitter/X Ads Parameter (twclid)

GA4 recognition: ❌ No, requires manual UTMs

How it works:

  • twclid provides tracking only for Twitter's native analytics
  • GA4 cannot read twclid for attribution
  • Manual UTMs required for GA4 tracking

Example without UTMs:

Code
yoursite.com/product?twclid=xyz789
↓
GA4 cannot read twclid
↓
Classified as: t.co / referral (incorrect!)

Example with UTMs:

Code
yoursite.com/product?utm_source=twitter&utm_medium=paid-social&twclid=xyz789
↓
GA4 reads UTMs for attribution
Twitter reads twclid for conversion tracking
↓
GA4 classification: twitter / paid-social (correct!)

😰 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

Why You Need Both twclid AND UTMs

Unlike Google Ads where UTMs are redundant, Twitter/X Ads require both tracking methods:

twclid (Automatic - Twitter's Tracking)

What twclid tracks:

  • Twitter Pixel conversion events
  • Post-click conversions in Twitter Analytics
  • Campaign and ad performance in Twitter Ads Manager
  • Audience building for retargeting
  • View-through conversions (users who saw but didn't click)

Setup: Automatic. Twitter appends twclid to all ad clicks.

Manual UTM Parameters (Required - GA4 Tracking)

What UTMs track:

  • Traffic source attribution in GA4
  • Cross-platform campaign analysis
  • Conversion funnel analysis in GA4
  • User behavior and engagement metrics
  • Custom dimensions and segments

Setup: Manual. You add UTMs to destination URLs in Twitter Ads Manager.

Combined Example

Your destination URL in Twitter Ads Manager:

Code
https://yoursite.com/product?utm_source=twitter&utm_medium=paid-social&utm_campaign=summer_promo

What user sees after clicking ad:

Code
https://yoursite.com/product?utm_source=twitter&utm_medium=paid-social&utm_campaign=summer_promo&twclid=o-vkg1hkp03m201f5ld6kp5go8wd6pf5d

Result:

  • Twitter Ads Manager shows conversions (via twclid)
  • GA4 shows traffic attribution (via UTMs)
  • No conflicts, no duplicate sessions

Setup Twitter/X Ads Tracking

Step 1: Install Twitter Pixel

Twitter Pixel tracks conversions for Twitter Ads Manager.

Base code (add to all pages):

Html
<!-- Twitter Pixel Base Code -->
<script>
!function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments);
},s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='https://static.ads-twitter.com/uwt.js',
a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script');
twq('config','YOUR_PIXEL_ID');
</script>

Conversion events (add to confirmation/thank-you pages):

Javascript
// Purchase event
twq('event', 'tw-obqde-ocjxl', {
  value: 99.99,
  currency: 'USD',
  num_items: 1,
  order_id: 'ORDER-12345'
});
 
// Signup event
twq('event', 'tw-obqde-ocjxm', {
  email_address: 'user@example.com'  // Hashed automatically
});
 
// Add to cart
twq('event', 'tw-obqde-ocjxn', {
  value: 49.99,
  currency: 'USD',
  content_name: 'Product Name'
});

Step 2: Add UTM Parameters to Twitter Ads

Recommended UTM structure for Twitter/X Ads:

Code
?utm_source=twitter
&utm_medium=paid-social
&utm_campaign={campaign_name}
&utm_content={ad_group_name}
&utm_term={keyword}  (optional)

Twitter Ads Manager setup:

  1. Open Twitter Ads Manager
  2. Navigate to CampaignEdit
  3. Expand Website URL section
  4. Add UTMs to destination URL:
    Code
    https://yoursite.com/landing?utm_source=twitter&utm_medium=paid-social&utm_campaign=q4_promo
    
  5. Save changes

Twitter automatically appends &twclid=... when user clicks ad.

Step 3: Verify Tracking

Test Twitter Pixel:

  1. Install Twitter Pixel Helper Chrome extension
  2. Visit your website
  3. Check extension shows "Pixel found" with green checkmark
  4. Complete test conversion
  5. Verify conversion event appears in extension
  6. Check Twitter Ads Manager → Events Manager → Event History

Test GA4 attribution:

  1. Create test campaign with small budget ($10/day)
  2. Click ad from Twitter/X app or web
  3. Check landing page URL in browser
  4. Verify both UTMs and twclid present
  5. Check GA4 → Real-time report
  6. Verify traffic shows as "twitter / paid-social"

Comparison: Platform Parameters

ParameterPlatformGA4 RecognitionManual UTMs Needed?
gclidGoogle Ads✅ Yes❌ No (optional)
gbraidGoogle Ads (Safari/iOS)✅ Yes❌ No
wbraidGoogle Ads (iOS apps)✅ Yes❌ No
fbclidFacebook/Meta✅ Yes❌ No
msclkidMicrosoft Ads✅ Yes❌ No
ttclidTikTok Ads❌ No✅ Yes
twclidTwitter/X Ads❌ No✅ Yes
li_fat_idLinkedIn Ads❌ No✅ Yes

Platforms requiring manual UTMs: TikTok, Twitter/X, LinkedIn, Pinterest

Common Issues & Troubleshooting

Issue 1: Twitter Traffic Shows as "t.co / referral"

Problem: Twitter Ads appear as "t.co / referral" in GA4 instead of "twitter / paid-social".

Cause: UTM parameters missing from destination URL.

Fix:

  1. Twitter Ads Manager → Edit campaigns
  2. Add UTM parameters to destination URLs
  3. Verify UTMs present: ?utm_source=twitter&utm_medium=paid-social
  4. Save and wait 24-48h for GA4 data to update

Issue 2: Conversions Not Showing in Twitter Ads Manager

Problem: GA4 shows conversions, but Twitter Ads Manager shows zero.

Cause: Twitter Pixel not installed or conversion events not configured.

Fix:

  1. Install Twitter Pixel base code on all pages
  2. Add conversion event code to confirmation pages
  3. Test with Twitter Pixel Helper
  4. Verify events appear in Twitter Events Manager

Issue 3: twclid Parameter Missing

Problem: Ad clicks don't include twclid in URL.

Cause: URL redirects stripping the parameter.

Fix:

  1. Check for 301/302 redirects on landing page
  2. Ensure redirects preserve query parameters:
    Javascript
    // ❌ Wrong (loses twclid)
    window.location = '/new-page';
     
    // ✅ Correct (preserves twclid)
    window.location = '/new-page' + window.location.search;
  3. Test manually: Add ?test=123 to URL, verify parameter persists after redirect

Issue 4: Duplicate Sessions in GA4

Problem: Each Twitter ad click creates 2 sessions in GA4.

Cause: This is extremely rare with Twitter Ads (unlike Google Ads where gclid + UTMs can create conflicts).

Diagnosis:

  1. GA4 → AcquisitionTraffic acquisition
  2. Search for "twitter"
  3. Look for duplicate entries with same timestamp

Most likely cause: Multiple tracking codes (e.g., GA4 tag firing twice)

Fix:

  1. Google Tag Manager → Check for duplicate GA4 tags
  2. Verify GA4 snippet appears only once in page source
  3. Remove redundant tracking implementations

FAQ

Do UTMs conflict with twclid?

No. Unlike Google's gclid (which can cause conflicts when combined with UTMs), twclid and UTMs serve different purposes and coexist without issues:

  • twclid → Twitter Ads Manager tracking
  • UTMs → GA4 attribution

Why doesn't GA4 recognize twclid automatically?

GA4 only natively recognizes click IDs from Google (gclid, gbraid, wbraid) and Facebook (fbclid). Other platforms require manual UTMs for GA4 attribution.

Can I track Twitter Ads without UTMs?

You can track conversions in Twitter Ads Manager (via Twitter Pixel and twclid), but GA4 won't properly attribute traffic without UTMs. Traffic will show as "t.co / referral" or "direct".

Should I use utm_medium=cpc or paid-social for Twitter Ads?

Either works. Recommended based on GA4's default channel grouping:

  • utm_medium=paid-social → Classified as "Paid Social"
  • utm_medium=cpc → Classified as "Paid Search" (less semantically correct but works)
  • utm_medium=paidsocial → Also works (no hyphen)

Best practice: utm_medium=paid-social for social platforms.

How long does twclid track conversions?

Twitter's default attribution window:

  • Click-through conversions: 30 days
  • View-through conversions: 1 day

Adjustable in Twitter Ads Manager → Conversion settings.

What if I'm already using UTMs without twclid?

That's fine. Twitter automatically appends twclid when users click ads. You don't need to manually add it—only UTMs should be added manually.

Can I use dynamic UTM parameters in Twitter Ads?

Twitter doesn't support dynamic parameters like Google Ads ({campaign}, {keyword}). You must hardcode UTM values for each campaign.

Does twclid work with iOS 14+ restrictions?

Yes. Twitter Pixel uses Privacy Thresholds and aggregated reporting to comply with iOS 14+ App Tracking Transparency. Conversion tracking continues with some limitations (24-48h delay, aggregated data).

How do I track Twitter Ads app installs?

For mobile app campaigns, use Twitter's Mobile App Promotion (MAP) campaigns with:

  • iOS: Twitter App Install tracking via SKAdNetwork
  • Android: Google Play Install Referrer

UTMs are not needed for app install campaigns.

Can I see which specific tweet drove conversions?

Yes, in Twitter Ads Manager:

  1. CampaignsAnalyticsTweets
  2. View performance by individual tweet creative
  3. See impressions, clicks, conversions per tweet

GA4 won't show tweet-level detail (only campaign/medium/source).

Internal Guides

Twitter/X Official Documentation

GA4 Resources

Conclusion

Twitter/X Ads require BOTH twclid (automatic) and manual UTM parameters (manual) for complete tracking.

Setup checklist:

  • ✅ Install Twitter Pixel on all website pages
  • ✅ Add conversion events (purchase, signup, add_to_cart)
  • ✅ Add manual UTM parameters to all Twitter Ads destination URLs
  • ✅ Use utm_source=twitter&utm_medium=paid-social&utm_campaign={name}
  • ✅ Test with Twitter Pixel Helper Chrome extension
  • ✅ Verify GA4 shows traffic as "twitter / paid-social"
  • ✅ Check Twitter Ads Manager shows conversions via twclid

Result:

  • Twitter Ads Manager tracks conversions via twclid and Twitter Pixel
  • GA4 attributes traffic via manual UTM parameters
  • No conflicts, complete attribution across both platforms

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.