X (Twitter) Ads clicks,each stored with its twclid

ClickFlare's X template reads twclid, the click ID X appends to every ad click, and stores it as the visit's External ID. X has no postback URL or URL macros, so conversions reach X through the X Pixel or X's Conversion API, called from your own server.

X
X (Twitter) Ads
Promoted posts, video and website cards
At a glance
How it connects
twclid read from the click URL
What syncs
X click ID, plus country, device and browser
Sync schedule
Real time, per click
Key parameters
twclid
Works with
Promoted posts, video ads, website cards
Good to know
No postback, no URL macros and no cost passed in the URL.
Social ad platform
twclid capture
Pixel or Conversion API

Keep the one ID that links ClickFlare to X

The click ID X matches on

twclid is the value X's Conversion API matches on. ClickFlare stores it per visit, so you can export it with your conversions and send them to X.

Ad group splits without macros

Add campaign and adgroup parameters with fixed names in each ad group's URL, and group ClickFlare reports by X's own structure.

Pixel attribution that holds

With Direct tracking, X sends visitors straight to your lander with twclid in the URL, so the X Pixel there still sees it.
How it works

From ad click to profit per campaignattributed revenueattributed salesa matched conversion

01
Your ad
Visitor clicks
Ad on X (Twitter) Ads
02
ClickFlare
Click recorded
A unique cf_click_id is created
03
Your offer
Conversion
Lead, sale or custom event
04
ClickFlare
Sent back to X (Twitter) Ads
Through the Conversion API or postback
05
Cost API
Spend pulled in
X (Twitter) Ads cost matched to each campaign
01
Your ad
X (Twitter) Ads click
Macros fill the tracking URL
02
ClickFlare
Click recorded
Zone, site and device data stored
03
Offer or lander
Visitor converts
On your page or the offer
04
ClickFlare
Conversion logged
With payout and event type
05
Postback
Reported to X (Twitter) Ads
So its optimization sees the result
01
Your ad
Visitor clicks
Any traffic source
02
ClickFlare
Click recorded
A unique cf_click_id is created
03
Your article
Keyword block
Click ID passed to the feed
04
Results page
Paid click
Conversion fired to ClickFlare
05
X (Twitter) Ads API
Revenue matched
Pulled on a schedule and reconciled
01
Your ad
Visitor clicks
Any traffic source
02
ClickFlare
Click recorded
cf_click_id passed to the offer
03
X (Twitter) Ads
Offer or call
The network tracks the action
04
X (Twitter) Ads
Conversion
Lead, sale, call or rebill
05
Postback
Payout in ClickFlare
Matched to the original click
01
Your ad
Visitor clicks
Any traffic source
02
ClickFlare
Click recorded
A unique cf_click_id is created
03
X (Twitter) Ads
Store or funnel
Click ID kept through checkout
04
Events
View, cart, checkout
Each step tracked
05
ClickFlare
Purchase recorded
Order value matched to the ad
Social ad platform

How a twclid moves from X to your reports

A visitor clicks your ad and X appends twclid to your campaign URL. ClickFlare saves it as the External ID and sends the visitor on. The conversion reaches X through the X Pixel on your page or through your server's Conversion API call.
  • X appends twclid itself, so the token stays empty
  • ClickFlare can't post conversions to X
  • Use Direct tracking if you rely on the X Pixel
Today, one campaign
example
Spend pulled from X (Twitter) Ads
cost
$412.30
Conversions recorded
today
38
Sent back to X (Twitter) Ads
per event
38/38
Profit
campaign
$227.70
Example numbers. Cost and conversions sit in the same report row.
Captured on every X (Twitter) Ads click
key macros
twclid
captured
From the X (Twitter) Ads template in ClickFlare. Use them as report columns and rules.
Revenue for one click
example
Paid click
day 0
$0.00
First revenue pull
+1h
$0.41
Scheduled updates
next days
$0.58
Final pull
last sync
$0.62
Example amounts. Sync timing for X (Twitter) Ads is in the facts above.
Events for one click
example
Lead
day 0
$0.00
Sale
day 0
+$40.00
Upsell
day 1
+$15.00
Refund
day 9
−$15.00
Example events. Each one arrives by postback and is matched to the click.
One visitor's path
example
Product view
step 1
—
Add to cart
step 2
—
Checkout
step 3
—
Purchase
step 4
$68.00
Example order. Each event is tied to the ad that brought the visitor.
2.3B
Events tracked
Setup

Connected in four steps

You need an X Ads account, your own tracking domain, an offer in ClickFlare and access to your conversion page or server.
  1. Add the X traffic source In the campaign editor, click + New Traffic Source and pick the X template. Leave the external_id row as it is: twclid as the parameter and an empty token.
  2. Add campaign names if you need them X has no URL macros. Add campaign and adgroup parameters with placeholders, then replace them with real names in each ad group's copy of the URL.
  3. Set up conversions on the X side Install the X Pixel base code on your site and the event code on the conversion page, or send conversions with the twclid to X's Conversion API from your server.
  4. Paste the URL and test Set a CPC cost model, copy the campaign URL and paste it as the ad's website URL. Group the report by External ID to check that X click IDs arrive.
app.clickflare.com/integrations
X
X (Twitter) Ads
Social ad platform
Connected
X (Twitter) Ads account connected
Signed in from ClickFlare
Cost syncing
Spend matched to campaigns
Conversions sent back
Your chosen events
X (Twitter) Ads template selected
Macros pre-filled
Tracking URL in X (Twitter) Ads
Click ID captured
Conversions reported
Payout included where supported
X (Twitter) Ads connected
Credentials saved in ClickFlare
Conversion event set
Click ID passed to the feed
Revenue syncing
On the feed's schedule
X (Twitter) Ads added
Offer URL carries the click ID
Postback set in X (Twitter) Ads
Payout and event included
Conversions arriving
Matched to the click
X (Twitter) Ads connected
Click ID kept to checkout
Events mapped
View, cart, checkout, purchase
Purchases tracked
Order value in reports
Ready to track
With Redirect tracking, twclid stops at your ClickFlare domain and never reaches the lander. If you rely on the X Pixel, use Direct tracking.
X Ads postback setup guide
Open the guide
In your reports

What you see once it's connected

  • Visits by External ID (twclid)
  • Conversions by campaign name
  • ROI by ad group
  • Country breakdown
  • Device and browser
  • Lander and offer comparison
Use cases

How media buyers run it

X → product page

X to your own store

Use Direct tracking so the X Pixel on your site sees twclid, and ClickFlare still records each click.
X → lander → offer

X to affiliate offers

You can't place the pixel on the offer, so send conversions to X's Conversion API with the twclid ClickFlare stored.

Ad group testing

One URL per ad group with campaign and adgroup values filled in. Compare ad groups by conversions and ROI in ClickFlare.
Frequently asked questions

Questions about X (Twitter) Ads

No items found.
Setup guides
X Ads postback setup guide
{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "Does ClickFlare integrate with X (Twitter) Ads?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, for click tracking. The X template captures twclid as the External ID. Conversions reach X through the X Pixel or X's Conversion API, not through ClickFlare."}}, {"@type": "Question", "name": "Can ClickFlare send conversions to X?", "acceptedAnswer": {"@type": "Answer", "text": "No. X doesn't accept S2S postback URLs and ClickFlare has no X Conversion API integration. Use the X Pixel or call the Conversion API from your own server."}}, {"@type": "Question", "name": "Why is the X template almost empty?", "acceptedAnswer": {"@type": "Answer", "text": "X has no URL macros and no postback URL. The only thing the template can do is read X's click ID, twclid, which it does."}}, {"@type": "Question", "name": "Should I use Redirect or Direct tracking with X?", "acceptedAnswer": {"@type": "Answer", "text": "Direct if you use the X Pixel, so twclid reaches your lander. Redirect works for click tracking and for the Conversion API route."}}, {"@type": "Question", "name": "How do I track cost from X?", "acceptedAnswer": {"@type": "Answer", "text": "X doesn't pass cost in the URL. Set the cost model to CPC with your average cost per link click, and correct it with a manual cost upload from X's reports."}}, {"@type": "Question", "name": "Why do my campaign columns show CAMPAIGN_NAME?", "acceptedAnswer": {"@type": "Answer", "text": "The placeholders weren't replaced in the URL pasted into X, and X won't replace them. Edit the ad's URL with the real names."}}]}