Skip to content

Guide

ChatGPT Ads Pixel vs Conversions API

The ChatGPT Ads Measurement Pixel is JavaScript that runs in the shopper's browser. The Conversions API is an endpoint your server calls. The Pixel sees what a shopper does on the page; the Conversions API reports what your own systems know happened. They are not alternatives so much as two halves: for a store, the usual setup is the Pixel for the browsing journey and the purchase sent through both, tied together by a shared event ID.

Updated

On this page

Short answer: use the Pixel for events only the browser can see, such as product views and add to cart. Send the purchase from the browser and the server with the same event ID, so a blocked script or a closed tab does not lose the sale, and OpenAI counts it once.

At a glance

Browser versus server, in four questions

The Pixel sees the journey. The Conversions API confirms the sale. Used together with one event ID, they count each purchase once.

Browser

Measurement Pixel

Best at
Measuring the buying journey on the page.
What it can see
Product views, add to cart, checkout starts and the purchase — whatever happens in the shopper's browser.
What it may miss
Events whose script is blocked, or whose page never finishes loading.
What this plugin sends
All four events: contents_viewed, items_added, checkout_started, order_created.

Server

Conversions API

Best at
Confirming conversions your own systems recorded.
What it can see
What the store knows: the paid order, its value and its time.
What it may miss
Browsing — it cannot know a product was viewed unless the browser reported it.
What this plugin sends
The purchase only: order_created, when WooCommerce marks the order paid.

When both paths send the same purchase, they carry the same event ID. OpenAI keeps the first one it receives and ignores the duplicate, so the order is counted once.

The browser purchase and the server purchase for the same order carry the same event ID. OpenAI keeps the first one it receives and ignores the duplicate, so the order counts as one conversion.

Browser · Pixel

Purchase

Shared event ID derived from the WooCommerce order

Server · Conversions API

Purchase

Shared event ID derived from the WooCommerce order

One conversion

Same Pixel ID, event name and ID: OpenAI keeps the first and ignores the duplicate.

What the Pixel is for

The Pixel is the only way to measure what happens between arriving from an ad and paying: which products were viewed, what went into the cart, who reached checkout. OpenAI's guidance is to always use the pixel on the browser. It also handles consent on the page: when consent is set to false, it does not send measurement pings.

Its weakness is the same as any browser script: if the script is blocked or the page never finishes loading, the event is not sent, and nothing records that it was missed.

What the Conversions API is for

The Conversions API reports events your server already knows about. For a store, that is the purchase: the order is in the database whether or not a browser reported it. The server can send it the moment the payment is confirmed, retry if the request fails, and keep a record of the outcome.

Its weakness is that the server does not see browsing. It cannot know that a shopper looked at a product unless something in the browser reported it. It also has to keep an API key secret: OpenAI says to send Conversions API events from your server only.

Pixel only, API only, or both

Outcomes of the three measurement setups for a store
SetupWhat you getWhat you miss
Pixel onlyThe full browsing journey and most purchasesPurchases whose browser event never fired
Conversions API onlyPurchases, independent of the browserProduct views, carts and checkout starts
Both, with shared IDsThe journey from the browser, and the purchase from both pathsBrowser-only events are still browser-dependent

Which events go where on a store

Recommended path for each ecommerce event
EventPixelConversions APIWhy
contents_viewedYes—Only the browser sees a product view
items_addedYes—Cart activity happens on the page
checkout_startedYes—Reaching checkout is a page event
order_createdYesYesThe sale is recorded by the store itself

The purchase is the event worth sending twice: it is the one campaigns are judged on, and the one the store can confirm independently.

Reference

Pixel and Conversions API side by side

The full comparison, row by row.

ChatGPT Ads Measurement Pixel compared with the OpenAI Conversions API
Measurement PixelConversions API
Runs inThe shopper's browserYour server
CredentialPixel ID (public)Pixel ID plus a secret API key
Sees browsing behaviourYes — views, carts, checkoutOnly what your server records
Affected by blocked scripts or closed tabsYesNo — it starts from your own data
Can confirm a delayed paymentOnly if the shopper is still on the pageYes, when the payment is confirmed
ConsentSends nothing when consent is falseYour implementation must apply it
SetupScript on every page, plus event codeServer code, a trigger, retries

Sources: OpenAI's Measurement Pixel and Conversions API documentation.

Using both without double counting

Sending the same purchase twice only works if OpenAI can tell it is the same purchase. The Pixel documentation says to generate the event_id yourself and reuse it on the same pixel and server-sent event. OpenAI then uses the first event it receives for a matching key — Pixel ID, event name and ID — and ignores later duplicates.

What breaks deduplication

  • A random ID generated in the browser that the server never learns.
  • A new ID on every page load, so a reloaded thank-you page looks like a new purchase.
  • A second copy of the Pixel, pasted in a theme or tag manager, firing with its own IDs.
  • Different Pixel IDs on the browser and the server.

Myths

Common misconceptions

Four things people often assume about server-side tracking, and what is actually true.

  • Assumption

    “Server-side means every event is server-side.”

    In practice

    Not necessarily. Pixel for ChatGPT Ads, for example, sends only the purchase from the server.

  • Assumption

    “Sending from both doubles my conversions.”

    In practice

    Not with a shared event ID. Without one, it can.

  • Assumption

    “The Conversions API gets around consent.”

    In practice

    It should not. A server event should follow the consent recorded for that order.

  • Assumption

    “Server-side guarantees attribution.”

    In practice

    It makes delivery of the purchase more reliable. Attribution is still decided by OpenAI.

Pixel and Conversions API on WooCommerce

Pixel for ChatGPT Ads is a WooCommerce plugin for ChatGPT Ads conversion tracking. It loads the Pixel for contents_viewed, items_added, checkout_started and order_created, and sends order_created through the Conversions API when WooCommerce marks the order paid. Both purchases carry an event ID derived from the order.

The Conversions API guide for WooCommerce covers the server side in depth — triggers, the 7-day rule and retries.

Questions

Is the ChatGPT pixel the same as the OpenAI Measurement Pixel?

Yes. “ChatGPT pixel” and “OpenAI Ads pixel” are common names for the OpenAI Measurement Pixel used by ChatGPT Ads.

Can I use the Conversions API without the Pixel?

Yes, but you lose the browsing events — product views, add to cart and checkout starts — which only the browser can see.

Which one should I install first?

The Pixel, since it covers the whole journey. Add the server-side purchase with the same event ID so the sale does not depend on the browser.

Both paths, set up for WooCommerce

Pixel for ChatGPT Ads runs the Pixel for the buying journey and sends the purchase server-side with a shared event ID.