Skip to content

BlogHow To Guides

X Lead Generation Ads: Native Forms or Your Own Site (2026)

X Lead Gen Ads collect contact details in a native form on X again, and X's own documentation describes them. That gives an X lead two ways in: the native form, or a form on your own site counted by the X Pixel. What X has and has not documented, how each route reaches your CRM, and how to make X optimise on leads your sales team would call back.

X lead generation ads: from the X ad to a native form or a form on your site, the CRM and the qualified lead
Contents
  1. Quick summary
  2. Native forms
  3. Confirmed and open
  4. Two routes
  5. The website route
  6. The form setup
  7. Keep the click ID
  8. Pixel plus CAPI
  9. Into the CRM
  10. Optimise on quality
  11. How LeadJourney does it
  12. Further Reading
Summarise this article with AI

Opens the page with a ready prompt in:

Nothing is sent until you pick a service.

For years the honest answer to "can I run lead gen ads on X" was: only by sending people to your own website. X Ads (formerly Twitter Ads) has changed that. X's Ads API documentation now describes Lead Gen Ads that collect contact information in a native form on X, pre-filled for people who have submitted one before.

So an X lead can arrive two ways, and they behave very differently. A native form is quick for the person filling it in and leaves you a file to import. A form on your own site is more work and puts the lead, the ad that produced it and your CRM on one record. Here is what X has actually documented, how to set up each route, and how to get X to look for leads that turn into deals rather than leads that are easy to collect.

Quick Summary: X Lead Generation Ads in 2026

In short

X Lead Gen Ads collect contact information in a native form on X, and X's Ads API documentation describes how they work: forms attached to cards, leads exported as JSON, CSV or XLSX, exports limited to account administrators. The lead never touches your website, so there is no X Pixel event and no twclid, and the lead only reaches your CRM through an export or something you build on top of it. The other route is a form on your own site behind a Sales or Website traffic campaign, where the X Pixel fires a Lead event on a successful submission, twclid travels with the visitor, and your form writes the lead to the CRM directly. Whichever you pick, judge X on qualified leads in the CRM, not on X's own conversion count, which by default includes engagements up to 30 days earlier.

The rest of this guide is the detail: what X has and has not documented about the native form, how the two routes compare, the website form with the Pixel and the click ID, the route into the CRM for each, and how to make X optimise on the stage your sales team cares about.

How X's Native Lead Forms Work

X's description is short: "Lead Gen Ads collect contact information in a native form on X." The person taps the ad, a form opens without leaving X, and after their first submission later forms can be pre-filled. What sits behind that, according to the Ads API documentation:

  • Forms attach to cardsA lead form is a destination of its own, LEAD_FORM, attached to a card in the ad, in place of a link to your website.
  • Fields from a fixed listEmail, phone, full name or first and last name, company, job title, work email, work phone, address fields, date of birth, gender and the person's X handle, among others.
  • Leads come out as exportsLeads are exported as JSON, CSV or XLSX through export jobs that run in the background, and only account administrators can run them.
  • Pre-filled after the first formLess typing for the person, which is the reason native forms exist. It also means less friction between a passing interest and a submitted lead.

The return was reported by Social Media Today on 26 August 2026. Twitter once had lead generation cards; what X documents now is part of the current Ads API. Press coverage also describes ad formats, an objective and a leads center that we could not confirm on an X page, so they are left out here until X documents them.

What X Has Documented About Lead Gen Ads, and What It Has Not

New ad products attract confident guides written before the documentation exists. Here is the line between what X's own pages say and what they do not, as of 7 October 2026. Plan on the documented column and ask your X contact about the rest.

X Lead Gen Ads: documented and undocumented

Export before you need it

Because X documents no retention period and no CRM sync, treat the export as the only copy until the lead is in your CRM. Run it on a schedule from the first day, not when sales asks where last month's leads went.

Native Form or a Form on Your Own Site

The choice decides what you can measure later, so it is worth making on purpose rather than by default.

The two ways to collect a lead from an X ad

A sensible default for a B2B offer: start with the form on your site, because it gives you the source on every record from day one, and test the native form in a separate campaign once you can compare both on qualified leads in the CRM. A native form that produces twice the leads at half the qualification rate has not won anything.

Running Lead Generation to Your Own Site

For a form on your site, X offers two campaign objectives that can optimise on what happens there.

  • Sales

    Formerly website conversions. Needs the X Pixel or the Conversions API and at least one conversion event. X recommends Autobid and paying by impressions.

  • Website traffic

    Formerly website clicks. Paid by impression or click, optimising for link clicks or site visits, with a website tag picked as the key conversion.

  • The Lead event

    One of the event types X offers when you create an event in Events Manager, next to Page view, Add to cart, Added payment info, Purchase and Custom.

The order matters: create the Lead event and see it arrive in Events Manager before you build the campaign, because a Sales campaign can only optimise on an event X is already receiving. X also says that in almost all cases one conversion type should be used once on a site, so define one Lead event for the form rather than one per page.

Setting Up the Form So X Counts the Lead

The form is yours, and so is every way it can fail to be counted. Six steps, in the order that avoids rework.

  1. Install the X Pixel base code on every page, before the closing head tag, including the landing page and the confirmation page. Do not put it in an iframe or inside another tag: X warns it may then fire from another domain and lose its first-party cookies. The X Pixel setup guide covers the base code, Google Tag Manager and Shopify.
  2. Fire the Lead event on a successful submission, not on the button click. A click on a form that then fails validation is not a lead.
  3. Fire it once. X deduplicates Page View within 30 minutes, but says plainly that other event types, Lead and Purchase among them, are not deduplicated. Two firings are two leads.
  4. Give it a value and a currency you can defend, for example your average first deal times the share of leads that close. A made-up figure teaches the bidding a made-up figure.
  5. Add a conversion_id if you will also send the lead server-side, unique per lead: the lead's id from your form backend or CRM is ideal.
  6. Pass the email and phone the form just collected. The Pixel hashes email_address and phone_number with SHA-256 itself, phone numbers in the +11234567890 format.
X Pixel: a Lead event after a successful form submission
// After the X Pixel base code has run on the page.
// Fire once, when the form submission has succeeded.
twq('event', 'tw-<PIXEL_ID>-<EVENT_ID>', {
  value: 150.00,                     // the expected value you assign to a lead
  currency: 'USD',
  conversion_id: '<LEAD_ID>',        // unique per lead, reused by the server copy
  email_address: '<EMAIL_FROM_THE_FORM>',
  phone_number: '<PHONE_E164>'       // for example +11234567890
});

Check it before you spend

The X Pixel Helper, a free Chrome extension, shows each pixel that sends data, the parameter values, and warns when a pixel fires more than once. Events Manager marks an event Active once it has seen activity in the last 24 hours, and its Recent Activity Log shows sample hits with their parameters.

Keeping twclid Through the Form

When somebody clicks an X ad, X appends its click ID, twclid, to your landing page URL automatically. The X Pixel passes it with its events, from the URL or a first-party cookie. Everything outside the Pixel is your job: X's Conversions API guide recommends always including the click ID, and tells you to parse it from the query string and store it with the form data. Your CRM will never see it unless the form hands it over.

  • RedirectsX says it directly: do not use redirects in your URLs, as they strip twclid. A vanity URL, a link shortener or a language redirect that drops the query string takes the click ID with it.
  • The form on another pageThe visitor lands on an article and converts on the pricing page. The form page's URL no longer carries twclid, so a field filled from the URL stays empty.
  • Embedded formsA form embedded from another domain reads its own address, not your page's, and starts without your storage.

The pattern that works is storage on landing and a hidden field on submit. X does not publish a snippet for this, so here is a minimal one of our own:

Keep twclid from the landing page to the form
<form action="/submit" method="post">
  <input type="hidden" name="twclid" id="twclid_field" value="">
  <!-- other form fields -->
  <button type="submit">Submit</button>
</form>
<script>
  // On every page: save twclid when the URL carries it.
  const fromUrl = new URLSearchParams(location.search).get('twclid');
  try { if (fromUrl) sessionStorage.setItem('twclid', fromUrl); } catch (e) {}
  // On the form page: fill the hidden field from storage.
  let stored = null;
  try { stored = sessionStorage.getItem('twclid'); } catch (e) {}
  const field = document.getElementById('twclid_field');
  if (field && (fromUrl || stored)) field.value = fromUrl || stored;
</script>

Map the field to a property of its own on the CRM lead. sessionStorage ends with the tab, so a visitor who comes back tomorrow arrives without it; a first-party cookie lasts longer, and X's server-side Google Tag Manager tag, for example, writes a _twclid cookie for about 390 days. Keep whichever you use inside what your consent banner covers.

Pixel Plus Conversions API for the Same Lead

The browser loses events to blockers and closed tabs. The X Conversions API sends the same lead from your server, and X deduplicates the pair when both copies carry the same Event ID from Events Manager and the same conversion_id. The X Conversions API guide has the payload and the authentication.

  • The browser copyThe Pixel's Lead event from the snippet above, with conversion_id, value, currency, email and phone.
  • The server copyThe same Event ID and conversion_id, the twclid from the hidden field, the email and phone hashed with SHA-256, and the visitor's IP address and user agent.
  • The CRM stagesStages only your CRM knows, sent server-side only. X's own page describes the Conversions API for conversions that "start online, but finish offline".

One difference from Meta and Reddit, which both reject events older than seven days: we found no X page that states how old a conversion_time may be. That does not mean anything goes. A stage that arrives long after the click still has to fall inside the event's attribution window to be credited.

Getting X Leads Into the CRM With Their Source

The two routes need two different pipes, and neither is built for you by X or by most CRMs.

Native form leads

The export is the pipe. Run it on a schedule, import the file into the CRM, and set the source on import: X as the channel, plus the campaign and ad if your export carries them. Deduplicate on email, since a person who fills a native form and later your website form is one lead. HubSpot's ads tool, for example, connects Meta, Google, LinkedIn, Microsoft and TikTok ad accounts, and X is not on that list, so nothing inside HubSpot will set the source for you.

Website form leads

  • twclid, from the hidden field. It is what a server event to X matches on, weeks after the form.
  • The UTM parameters from the landing URL. X documents no URL macros, so the values are typed per ad; see X Ads UTM parameters.
  • The landing page and the form page, so you can tell the article from the pricing page.
  • The conversion_id you sent to X, so a later stage can reference the same lead.

X also notes that its link clicks and your analytics sessions differ by design: a click is logged when it happens, and the page may never load. A lead record with the click ID and UTMs on it does not depend on either count.

Optimising on Qualified Leads Inside X's Windows

A form fill is the event X sees first and the one that says least about revenue. Sending a later CRM stage back is how you get X to look for people who become customers, and the windows decide what counts.

  • Post-engagement window

    1, 2, 3, 5, 7, 14 or 30 days, 30 by default. An engagement is a like, repost, follow, reply or link click, not only a click to your site.

  • Post-view window

    Off, or 1 to 30 days, 1 by default. A conversion after seeing the ad without engaging.

  • Set per event

    Chosen when you create the event in Events Manager, and a change rewrites the reported conversions retroactively.

Two consequences for lead generation. X's Lead count includes people who liked a post and filled your form weeks later after a search, which is generous to X. And a stage that happens inside the window can be credited, while a deal that closes in month three cannot, however you send it. X documents its event types, not a CRM stage ladder, so the table below is our recommendation built from them.

Two event ladders for an X lead generation account

Setup B only works if the qualification is fast and honest. If "qualified" means somebody picked up the phone, you have taught X to find people who pick up phones. Change the key conversion in a new campaign rather than redefining Lead under a running one, or the reports before and after measure different things under the same name.

Optimising on qualified leads and revenue instead of form fills.40 seconds

How LeadJourney Follows an X Lead to the Deal

The hard part of the website route is not the event call. It is keeping the click ID from an anonymous landing until the CRM stage changes, on every form and through every redirect, then sending the right stage back. That is LeadJourney's normal job, and the X Ads integration is the newest ad platform on it.

One script on your site or in your GTM container, live in about 21 minutes, tracks server-side and first-party at 95%+ accuracy. On the first visit it issues the LeadJourney Click ID, its own visitor identifier kept for months in first-party storage, and every session is stored under it. The platforms' click IDs are properties of those sessions: gclid, gbraid and wbraid, fbclid, li_fat_id, msclkid, rdt_cid and now twclid, captured server-side on your own domain on every X click. When the visitor fills a form, on another page or a week later in the same browser, the lead is joined to that history.

LeadJourney signs in to the X Ads account with OAuth, no developer needed, imports campaigns, ad groups, ads and daily spend with their history, and follows the lead through HubSpot, Salesforce, Microsoft Dynamics 365, Zoho CRM, Pipedrive, Attio, Close, GoHighLevel, ActiveCampaign or Odoo natively, other CRMs by webhook, Zapier or the API. The stages you map, a qualified lead or a won deal, go back through the X Conversions API as the stage changes, with value, currency, twclid, hashed email and phone, and a conversion_id that deduplicates against a running X Pixel.

The limits, plainly: a lead from X's native form never visited your site, so there is no visit for us to record and its source comes from your import. On the reporting side there is no attribution window, so a deal in month four still carries the X click that started it, under five attribution models switched without re-tracking. Tracking respects consent. Every plan starts with a 14-day free trial. Read verified reviews on Trustpilot, G2 and leadjourney.io/testimonials.

Further Reading

FAQ

Frequently Asked Questions

What advertisers ask about lead generation on X Ads.

Does X have lead generation ads?

Yes. X's Ads API documentation describes Lead Gen Ads that collect contact information in a native form on X, pre-filled after a person's first submission. Leads are exported as JSON, CSV or XLSX by account administrators. You can also run a Sales or Website traffic campaign to a form on your own site, counted by the X Pixel's Lead event.

Are X lead forms better than a form on my website?

They are easier to fill in, which usually means more leads. They also leave you without a website visit, without twclid and with a file to import. Compare the two in separate campaigns on qualified leads in your CRM, not on the number of submissions.

How do I get X lead form leads into HubSpot or Salesforce?

X's documentation describes exports, not a CRM connection, and HubSpot's ads tool lists Meta, Google, LinkedIn, Microsoft and TikTok but not X. Run the export on a schedule, import it with X set as the source, and deduplicate on email. A tool built on X's export jobs can automate that.

Which event should I use for X lead generation?

Lead, one of the event types X offers in Events Manager, fired once on a successful submission with a value, a currency and a conversion_id. If you later want X to optimise on qualified leads, send the form fill as a Custom event and reserve Lead for the qualified stage sent from your CRM.

What is twclid?

X's click ID. X appends it to your landing page URL automatically on an ad click, and the X Pixel passes it with its events. For the Conversions API and your CRM you keep it yourself, from the URL through storage and a hidden form field. Redirects strip it, so link to the landing page directly.

Why does X show more leads than my CRM?

X counts a conversion after any engagement with the ad inside the window, a like, repost, follow or reply as well as a click, 30 days by default, plus 1 day after a view. Your CRM counts records. Add blocked pixels and leads that arrive through another channel later, and the two will rarely agree.

Can I send qualified leads back to X?

Yes, for website leads: send the stage through the X Conversions API with the twclid you kept, the hashed email and phone, and a value. X's documentation describes the Conversions API for conversions that start online and finish offline. For native form leads X does not describe a way to match a later stage to the form.

X lead tracking

Ready to see which X ads produce qualified leads?

LeadJourney captures twclid server-side on every X click, follows each lead through your CRM and sends the stages you map back through X's Conversions API with the value attached. Live in about 21 minutes, 14-day free trial.

LeadJourney dashboard showing lead sources, campaign performance and attributed revenue side by side