ChatGPT Ads attribution

See which of your ChatGPT ads produce customers.

OpenAI’s pixel tells ChatGPT a conversion happened. Lead Source tells you who, and which campaign.

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.”
The problem

OpenAI’s pixel tells them the conversion happened. It doesn’t tell you who.

Like Meta’s pixel and Google’s tag, OpenAI’s conversion tracking is built for the ad platform, to optimise their auctions. It tells OpenAI that a conversion fired. It doesn’t tell you the name, the company, or which campaign on which day produced your best lead.

Vague reporting

Your CRM still says “Web”

OpenAI’s Conversions API sends an event to OpenAI. Your CRM gets nothing extra. Without Lead Source, every ChatGPT-sourced lead looks the same as every other web visitor.

Cookie loss

Browser-side tracking is leaky

iOS, ad blockers, and ITP kill 30–50% of pixel-based conversions. The numbers in your OpenAI dashboard don’t match the leads in your CRM.

No lead context

You can’t see the journey

OpenAI knows a click happened. You need to know what the visitor read, how long they stayed, and what they filled in. That’s a lead, not a conversion event.

How Lead Source fits in

One snippet, alongside the OpenAI pixel.

Install both: OpenAI’s pixel for ChatGPT’s ad optimisation, Lead Source for your attribution and lead data. They don’t conflict, they complement.

OpenAI’s pixel sends conversion signals back to OpenAI to improve campaign delivery. Lead Source captures the lead itself, first-party, server-side, with the full UTM trail, page journey, and submitted form data, and writes it into your CRM with the real source attached.

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://cdn.leadsource.co/v1.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.

The name behind every click

OpenAI tells you a conversion fired. Lead Source tells you it was Daniel from Acme, who looked at three pricing pages before submitting the demo form.

Full UTM and campaign breakdown

Every lead carries the exact campaign, ad group, and creative they clicked, pulled straight from the URL at the moment they landed. No URL stripping. No cookie loss.

Page journey before submission

See every page the lead visited in the session leading up to the form submit. Your sales team gets context before the first call.

Server-side, no cookies

Captured at form submission, not at page load. Survives ad blockers, ITP, and the cookie deprecation everyone’s been warning you about for five years.

Works the same as Google or Meta

You don’t need a ChatGPT-specific integration. Lead Source captures attribution for whatever ad platform sent the traffic. See the same approach for Google Ads, or the next new ad surface tomorrow.

Writes into the CRM you already use

HubSpot, Salesforce, Close, Keap, Eloqua, or no CRM at all. Lead Source pushes the named lead with full attribution into the system your sales team already lives in.

Common questions

Common questions, answered.

Does Lead Source replace the OpenAI pixel?

No. They do different jobs. The OpenAI pixel sends conversion signals back to ChatGPT so OpenAI can optimise your campaigns. Lead Source captures the lead itself, with name, company, source, and journey, and writes it into your CRM. Run both. Together they give you optimised delivery AND attribution data.

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?

OpenAI's ads pass standard UTM parameters in the landing-page URL (utm_source=chatgpt, utm_campaign=..., etc.) plus their own oppref identifier. Lead Source captures all of that the moment the visitor lands, holds it server-side for the entire session, and writes it onto the lead record when they submit a form. No client-side cookie. No data loss between landing and submission.

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

Yes. Lead Source works on its own, it doesn't require any ad-platform pixel. If your ChatGPT ads pass UTMs (and they do by default), Lead Source captures the attribution. You can install OpenAI's pixel later for campaign optimisation, and Lead Source will keep doing its job alongside.

What about GDPR and the no-cookies thing?

Lead Source doesn't use cookies or client-side storage. We capture attribution at the moment of form submission, server-side, treating you (the website owner) as the data controller. That keeps Lead Source out of ePrivacy/PECR cookie-banner scope. OpenAI's pixel is a separate question, it does set client-side identifiers, so include it in your existing cookie consent flow if required.

See exactly which ChatGPT ads produce customers.

One snippet on your site. Runs alongside OpenAI&rsquo;s pixel. Free to start.

Start free

Free to start &middot; no card