ChatGPT Ads attribution

See which of your ChatGPT ads produce customers.

OpenAI’s pixel reports the conversion to OpenAI. Lead Source reports it to you, with a name and the ChatGPT campaign that paid for the click.

1
User clicks a ChatGPT ad
OpenAI passes UTM parameters and an oppref identifier to your landing page.
2
User browses, submits a form
Lead Source captures every page they visit and the form data they submit, server-side, no cookies.
3
Real attribution in your CRM
Source, campaign, landing page, journey, and form data, all tied to a named lead. Not “source: Web.”
Salesforce
HubSpot
Pipedrive
Gmail
Twilio
Google Ads
Gravity Forms
Jotform
Webflow
Wix
Calendly
Typeform
The problem

The OpenAI pixel works for OpenAI. Nobody told it about your CRM.

OpenAI’s conversion tracking exists so ChatGPT’s ad auction can learn which clicks convert. It sends OpenAI a signal that something fired. The person’s name, their company and the campaign that brought them stay on your side of the fence, unrecorded.

Vague reporting

ChatGPT traffic files itself under “Web”

The Conversions API talks to OpenAI, not to your CRM. So a lead who found you through a ChatGPT ad arrives in the pipeline looking like any other website visitor.

Cookie loss

Browser-side tracking is leaky

Between iOS, ITP and ad blockers, pixel-based conversions go missing at a rate of 30–50%. So the conversions OpenAI shows and the leads sitting in your CRM rarely agree.

No lead context

A conversion event has no reading history

OpenAI records the click and the conversion. Sales wants the middle: which pages the visitor read, how long they stayed and what they typed into the form.

See what the ad actually produced

A ChatGPT click is the easy half. Lead Source names who it turned into, and which campaign paid for it.

Start free →
How Lead Source fits in

One snippet, alongside the OpenAI pixel.

Keep the OpenAI pixel for what it does, which is helping ChatGPT deliver your ads. Add Lead Source beside it for the lead record. The two scripts ignore each other.

Everything OpenAI’s script collects goes back to OpenAI. What Lead Source collects stays yours: the UTM values and oppref from the landing URL, each page the visitor read and the form fields they submitted, held server-side against a named lead and sent to whatever CRM you run through the Lead Source Zapier app, a signed webhook or a CSV export.

If you’re running the OpenAI Conversions API server-side, even better. Lead Source already captures the moment of form submission. We’re working on firing the OpenAI Conversions API directly from Lead Source so you don’t need a separate server integration. Talk to us if that’s on your roadmap.

landing page · <head>
<!-- OpenAI ads pixel --> <script src="https://r.openai.com/pixel.js" data-pixel-id="YOUR-PIXEL-ID"></script> <!-- Lead Source attribution --> <script src="https://app.leadsource.co/ft.js" data-site="your-site-id"></script> // both run together. // OpenAI gets conversion signals. // You get named leads with full attribution.
What you get

The data OpenAI’s pixel can’t give you.

Who clicked, by name

OpenAI’s report says one conversion. Lead Source says Daniel from Acme came in from a ChatGPT ad, read three pricing pages and then sent the demo form.

Full UTM and campaign breakdown

The campaign, ad group and creative come off the landing URL the second the visitor arrives, and stay attached to them until they submit. Nothing depends on a cookie surviving that long.

Page journey before submission

The lead record lists every page from the ChatGPT landing page to the form, in order. Whoever calls them back knows what they already read.

Server-side, no cookies

The source is written on our server when the form is submitted. There is no browser cookie for an ad blocker or ITP to delete, which makes the long-promised end of third-party cookies someone else’s problem.

Works the same as Google or Meta

ChatGPT needs no special connector. The snippet reads whichever ad platform the URL says sent the visit, which is why Google Ads works the same way, and so will whatever ad surface launches next.

ChatGPT leads, filed in your CRM

The named lead and its ChatGPT campaign go to HubSpot, Salesforce, Close, Keap or Eloqua. No CRM yet? They wait in Lead Source until you have one.

Common questions

Common questions, answered.

Does Lead Source replace the OpenAI pixel?

No, and it should not try. The OpenAI pixel feeds conversion signals to ChatGPT's ad system so your campaigns reach people likely to convert. Lead Source records the lead: name, company, source and page journey, sent to whatever CRM you run through the Lead Source Zapier app, a signed webhook or a CSV export. Keep the pixel for delivery and Lead Source for the record.

What about the OpenAI Conversions API?

The Conversions API is a server-to-server way to send conversion events to OpenAI, more reliable than the browser pixel because it survives ad blockers and ITP. We're building support for firing the Conversions API directly from Lead Source on form submission, so you get one integration that handles both your CRM and your OpenAI Conversions feed. If that's on your roadmap, get in touch.

How does Lead Source see which ChatGPT campaign produced a lead?

Through the landing-page URL. ChatGPT ads carry standard UTM parameters, utm_source=chatgpt and utm_campaign among them, plus OpenAI's own oppref identifier. Lead Source reads those on arrival, keeps them server-side while the visitor browses, and writes them onto the lead record when a form is sent. No cookie is involved at any point.

Will this work if I haven't set up the OpenAI pixel yet?

Yes. Lead Source needs no ad-platform pixel at all. ChatGPT ads pass UTMs by default, and the UTMs are what Lead Source reads. Add OpenAI's pixel whenever you want campaign optimisation, and the two run side by side.

What about GDPR and the no-cookies thing?

Lead Source sets no cookies and stores nothing in the visitor's browser. Attribution is captured on our server when the form is submitted, with you, the website owner, as data controller, which keeps Lead Source outside ePrivacy and PECR cookie-banner scope. The OpenAI pixel is a different matter: it places identifiers in the browser, so it belongs in your consent flow if your rules require one.

See exactly which ChatGPT ads produce customers.

Paste one snippet next to the OpenAI pixel and the next ChatGPT lead arrives with a name. Free to start.

Start free

Free to start · no card