Guides

How to Track ROI on ChatGPT Ads

6 min read

Short answer

ROI tracking on ChatGPT Ads runs through the OpenAI Pixel on your site and the Conversions API on the server side, connected during onboarding, so every campaign ties back to actual conversions, leads, purchases, or bookings, rather than just clicks or impressions.

What to measure

Clicks and impressions describe reach, not results. The conversion that actually matters depends on the business:

  • Leads. A form submission, call booking, or discovery-call request.
  • Purchases. A completed transaction, for ecommerce and direct-sale businesses.
  • Bookings. A reservation or appointment, for service-based businesses.

Defining which of these counts as a conversion before launch is what makes every other tracking decision downstream make sense.

How conversion tracking actually works

Two pieces work together. The OpenAI Pixel runs client-side, in the browser, and captures events like a completed form or purchase as they happen. The Conversions API sends that same event server-side, which keeps tracking accurate even when browser-based tracking alone gets blocked or dropped. Running both together, matched to the same event, is what gives a complete, reliable picture of what a campaign actually drove, rather than an undercount from relying on the browser alone.

Which events to send

OpenAI's documentation names lead_created for a lead submission and order_created for a purchase, and supports custom events for other actions such as a quote request. Amounts are sent in minor currency units, so 89.00 in a two-decimal currency is sent as 8900. A campaign that optimizes for conversions needs exactly one active standard event, and custom events cannot be the optimization goal (Conversion Tracking,Bidding & Budgets).

Using the Pixel and the Conversions API together

The Pixel needs the Pixel ID from your data source and no API key in the browser. The Conversions API sends events from your server with its own key. To keep one action from being counted twice, both must use the same Pixel ID, the same event name and the same event ID, and a retry of the same event should reuse the same ID. Ad-click values such as the click reference are not captured automatically by the Conversions API, so pass them along if you want them matched. Where measurement requires consent, configure the Pixel consent controls before it initializes.

Checking that tracking works

Test before you spend. OpenAI's events endpoint returns a sample of recent events from about the last 15 minutes, so you can confirm that a test lead appears as a browser event and, if you use it, as a server event. The Conversions API also has a validate-only mode that checks a request without saving it. Event settings can carry an attribution window, with 30 days of click attribution shown in OpenAI's example.

Turning tracking data into decisions

Tracking only matters if it changes what happens next. A monthly performance report should tie campaign activity directly to conversions, and that data is what should drive the following month's adjustments, refining context hints toward what's actually converting, and shifting budget away from what isn't.

See exactly what gets tracked and reported every month.

Book a Free Discovery Call

How AdsGrid AI handles ROI tracking

Conversion tracking through the OpenAI Pixel and Conversions API is set up during onboarding for every account, included in the monthly retainer, not sold as an add-on. Every account receives a monthly report covering campaign activity and conversions, which is what guides the following month's optimization rather than leaving performance data unused.

Frequently asked questions

How do I track conversions on ChatGPT Ads?

Create a data source in OpenAI Ads to get a Pixel ID, install the Measurement Pixel on your site, and send events such as lead_created or order_created. You can add the Conversions API to send the same events from your server.

Should I use the Pixel, the Conversions API, or both?

OpenAI supports using both. When you do, the events need the same Pixel ID, the same event name and the same event ID (the Pixel event_id and the Conversions API id) so they are deduplicated instead of counted twice.

How can I check that events are arriving?

OpenAI provides an events endpoint that returns a sample of recent events from roughly the last 15 minutes, marking browser events and server events differently. The Conversions API also supports a validate-only mode that checks a request without saving it.

Do I need consent before the Pixel runs?

OpenAI says that where measurement requires consent, you should configure the Pixel consent controls before it initializes. Whether consent is required for your visitors is a legal question for your business.

Sources (OpenAI official pages)

Get conversion tracking set up correctly from launch.

Book a Free Discovery Call