Conversion tracking on ChatGPT ads

Pixel or Conversions API, the three to five events worth tracking, deduping with shared event IDs, and why the platform only accepts static UTMs.

Guilherme Hortinha · 23 July 2026 · 6 min read

ChatGPT Ads guides

Good ChatGPT ads tracking is three decisions: install both the pixel and the Conversions API so you lose nothing, track three to five events that map to real value, and dedupe them with shared event IDs so one action never counts twice. Attribution to the click side runs on static UTMs, because the platform does not support dynamic parameters. Get these right before you spend, because a week of untracked traffic teaches you nothing.

Pixel or Conversions API

Use both, because they cover each other's blind spots. The pixel is a snippet on your site that captures events in the browser, fast to install but vulnerable to ad blockers and lost cookies. The Conversions API sends the same events from your server, which survives all of that but needs a developer. Together they give you a complete, deduplicated picture; either one alone leaves conversions on the table.

The three to five events worth tracking

More events is not better tracking, it is more noise. Pick a short chain that mirrors how people actually buy from you:

  • +A leading signal that happens often, like a lead form start, an add-to-cart, or a key page view.
  • +The primary conversion that represents real value, a purchase or a qualified lead.
  • +One or two steps in between if your funnel is long, so you can see where drop-off happens.

These are also the events the auction learns from once you move to conversion-based bidding, so keep them to genuine value, not vanity clicks.

Deduping with shared event IDs

When both the pixel and the Conversions API report the same purchase, the platform needs to know it is one event, not two. You do that by sending the same unique event ID from both sources for the same action. Skip this and your conversions inflate, your cost-per-result looks better than it is, and you optimise toward a number that is not real. It is a small implementation detail with an outsized effect on whether you can trust your own reporting.

Static UTMs only

The platform does not support dynamic URL parameters, so every tracking value has to be written into the landing URL by hand. That is not a limitation to work around, it is a discipline to adopt: use one consistent naming convention across every ad so the traffic stays joinable in your analytics. The reason this matters more here than on other channels, and how much AI traffic hides even when your tracking is perfect, is covered in the measurement guide. When you would rather it were done for you, we set tracking up as part of the build.

Quick answers

Should I use the pixel or the Conversions API?+

Use both. The pixel is fast to install and captures browser events; the Conversions API sends the same events server-side so you do not lose conversions to ad blockers or lost cookies. Together they are more complete than either alone.

Which events should I track on ChatGPT ads?+

Three to five that map to real value: a lead or add-to-cart as the leading signal, and a purchase or qualified lead as the primary conversion. More events than that adds noise without improving optimization.

Why does ChatGPT ads only allow static UTMs?+

The platform does not support dynamic URL parameters, so every tracking value must be written into the URL by hand. Keep a consistent naming convention so the traffic stays joinable in your analytics.

Guilherme Hortinha

Guilherme Hortinha

Co-founder & Head of AI Innovation, Index Lab

Guilherme co-founded Index Lab, an AEO/GEO agency that makes brands the answer AI gives across ChatGPT, Gemini and Perplexity, taking clients from zero AI visibility to top recommendations.

Eligible and ready? We take it from here.

Start my campaign →