10+ years · 3x UK Search Awards

ChatGPT Ads Conversion Tracking: Why the Numbers Don't Match (2026)

By · Senior Google Ads Consultant, 10+ years

Updated · 6 min · What changed

ChatGPT Ads Manager and your analytics count conversions by different rules, so the totals rarely match: check the data source, deduplication and attribution windows first.

A gap between the two numbers is normal. OpenAI says Ads Manager, your analytics and other ad platforms may report different totals, and a difference does not necessarily mean an error (OpenAI Help Center). Your job is to find out whether the gap comes from counting rules or from a broken setup. I ask a team to run four checks, in order.

Why ChatGPT Ads and your analytics show different numbers

The two tools count the same purchase by different rules. Ads Manager gives credit to an ad click or to an ad view. Your analytics tool uses its own attribution model and its own data.

Why ChatGPT Ads Manager and analytics count differently Purchases after a ChatGPT ad come from an ad click or from an ad view with no click within one day. Ads Manager counts both when the view window is 1 day. Your analytics sees only the visit from a click. With a 0-day view window, Ads Manager counts clicks only. Purchases after a ChatGPT ad After an ad click After an ad view, no click (1 day) Ads Manager total clicks + views Your analytics sees the visit only 0 days = clicks only same sale, two rulebooks Why ChatGPT Ads Manager and analytics count differently Purchases after a ChatGPT ad come from an ad click or from an ad view with no click within one day. Ads Manager counts both when the view window is 1 day. Your analytics sees only the visit from a click. With a 0-day view window, Ads Manager counts clicks only. Purchases after a ChatGPT ad After an ad click After an ad view, no click (1 day) Ads Manager total clicks + views Your analytics sees the visit only same sale, two rulebooks

One purchase can count in Ads Manager and not in your analytics. The view-through window changes the Ads Manager total.

OpenAI lists these causes for a gap (OpenAI Help Center):

  • Different attribution methods or attribution windows.
  • Different event times, reporting time zones or date boundaries.
  • Browser, consent and storage conditions that limit what each tool can measure.
  • Different deduplication rules.

By default, Ads Manager puts a conversion on the date of the ad click or view, not the date of the purchase (OpenAI Help Center). If your analytics report dates conversions by purchase date, weekly totals can differ for that reason alone.

The first check: counting rules or a broken setup?

If all four answers below are yes, the gap comes from counting rules. If one answer is no, fix that part before you compare numbers.

First check for a ChatGPT Ads tracking gap Four questions in order: do events reach your data source, does the campaign track the event you send, do browser and server copies share one event ID, and do you compare the same dates, time zone and windows. Any no: fix that part first. Four yes answers: the gap comes from counting rules, so read the trend. Yes Yes Yes Yes No No No No Do events reach your data source? Does the campaign trackthe event you send? Do browser and server copiesshare one event ID? Same dates, time zone and windows? All four yes:the gap is counting rules Fix the pixelor CAPI install Match the event.Old events don't backfill Fix deduplication Compare like for like four yes? stop hunting bugs First check for a ChatGPT Ads tracking gap Four questions in order: do events reach your data source, does the campaign track the event you send, do browser and server copies share one event ID, and do you compare the same dates, time zone and windows. Any no: fix that part first. Four yes answers: the gap comes from counting rules, so read the trend. Yes Yes Yes Yes No No No No Do events reachyour data source? Does the campaign trackthe event you send? Do browser and servercopies share one event ID? Same dates, time zoneand windows? All four yes:counting rules Fix the pixelor CAPI Match eventOld eventsdon't backfill Fixdeduplication Compare likefor like four yes? stop hunting bugs
All four yes: the gap is counting rules. Tap an answer to see its path.
Question 1

Events reach the data source

No events means no conversions in Ads Manager. Ask your team: which data source do we send to, and did it receive events this week?

Source: OpenAI Help Center

Question 2

The campaign tracks the event you send

An event can fire and still show 0 if the campaign uses a different conversion event. Old events do not backfill. Ask: which event does each campaign use?

Source: OpenAI Help Center

Question 3

Browser and server copies share one event ID

Without the same Pixel ID, event name and event ID, one sale can count twice. Ask: do our pixel and server events use the same ID?

Source: OpenAI Help Center

Question 4

You compare the same dates and windows

Different windows or time zones change totals without any fault. Ask: which click and view windows does our report use?

Source: OpenAI Help Center

Audit

Already running ChatGPT Ads, but not sure about the results?

Need an audit? I review your data source, events, deduplication and reporting windows, then send a written plan with what to fix first.

Request an audit

What the pixel sends and what the Conversions API sends

The pixel sends events from the visitor's browser. The Conversions API (CAPI) sends events from your server, for example when your backend confirms a purchase (OpenAI Ads docs). You can use one or both for the same data source (OpenAI Help Center).

Pixel and Conversions API on one data source One data source with one Pixel ID gets events from two places: the pixel in the browser, which captures the oppref click reference, and the Conversions API from your server, which must send oppref itself. Both send event name order_created with the same event ID, so OpenAI counts the sale once and keeps the first copy. Data source one Pixel ID Pixel from the browser Conversions API from your server captures oppref event_name: order_created event_id: A1 send oppref yourself event_name: order_created event_id: A1 same ID, one sale Same Pixel ID, event name and event ID: counted once. The first copy wins. Pixel and Conversions API on one data source One data source with one Pixel ID gets events from two places: the pixel in the browser, which captures the oppref click reference, and the Conversions API from your server, which must send oppref itself. Both send event name order_created with the same event ID, so OpenAI counts the sale once and keeps the first copy. Data source one Pixel ID Pixel, from the browser captures oppref event_name: order_created event_id: A1 Conversions API, from your server send oppref yourself event_name: order_created event_id: A1 same ID, one sale Same Pixel ID, event name and event ID: counted once. The first copy wins.
Two copies of one sale, one event ID, one conversion.
Pixel

Catches the click reference

It stores the ad click reference (oppref) from the landing page URL in a first-party cookie. For you, this links visits to ads. Ask: is the pixel on every page an ad sends people to, and on checkout?

Source: OpenAI Help Center

Conversions API

Reports what your backend confirms

It does not capture the click reference by itself. Your server must store it and send it. Ask: do our server events include oppref?

Source: OpenAI Ads docs

Deduplication

The first copy wins

OpenAI keeps the first event with the same Pixel ID, event name and event ID, and ignores later copies. For you: one sale, one conversion. Ask: who owns the event ID?

Source: OpenAI Ads docs

What Event Quality Score measures, and what it does not

Event Quality Score (EQS) rates the conversion data that one data source sends (OpenAI Ads blog). It does not predict campaign performance and does not guarantee that a conversion matches an ad (OpenAI Help Center).

What Event Quality Score checks Event Quality Score looks at one data source. It checks matching information, server event delay within 1 hour and repeated event firing. It does not tell you how many conversions were credited to ads, how campaigns perform, or whether tracking works. It refreshes daily using 7 complete calendar days. One data source EQS checks these Matching information Server event delay (1 hour) Repeated event firing EQS does not tell you Conversions credited to ads Campaign performance Whether tracking works Refreshes daily, using 7 complete days. a data check, not a result What Event Quality Score checks Event Quality Score looks at one data source. It checks matching information, server event delay within 1 hour and repeated event firing. It does not tell you how many conversions were credited to ads, how campaigns perform, or whether tracking works. It refreshes daily using 7 complete calendar days. One data source EQS checks these Matching information Server event delay (1 hour) Repeated event firing EQS does not tell you Conversions credited to ads Campaign performance Whether tracking works Refreshes daily, using 7 complete days. a data check, not a result
EQS checks the data you send. You check ad credit and results in reports.
Refresh

Daily, over 7 full days

The score uses 7 complete calendar days. For you, a fix shows in full only after about a week, not the next morning. Ask: when did we change the setup?

Source: OpenAI Help Center

Server timing

Server events within 1 hour

One check looks for server events that arrive within 1 hour of the action. Ask: does our backend send events right away or in a nightly batch?

Source: OpenAI Help Center

Low score

Not proof of broken tracking

A low or missing score alone cannot show whether tracking works. Ask: do conversions appear in Ads Manager reports at all?

Source: OpenAI Help Center

Click-through vs view-through: what to compare, and when

A click-through conversion follows an ad click. A view-through conversion follows an ad view with no click, within one day (OpenAI Help Center). Ask your team to show both columns, not only the total.

Click-throughView-through
Counts whenSomeone converts after an ad clickSomeone converts after an ad view, with no click
Window in Ads Manager7, 14 or 30 days0 days (off) or 1 day
If both qualifyThe click gets the creditNo credit
Your analyticsCan see the visit from the adThere is no ad click to see

Source for the first three rows: OpenAI Help Center. The last row is my reading.

OpenAI's help pages say the Conversions total includes eligible view-through conversions when the view window is 1 day, and counts click-through only at 0 days (OpenAI Help Center). Its API docs list view-through as a separate metric (OpenAI Ads docs). Check which one your report shows.

In an early analysis of global campaigns optimized for deeper-funnel outcomes, OpenAI found that 52.7% of eligible one-day view-through conversions happened within an hour of the ad impression (OpenAI Ads blog). When I judge spend, I read click-through first, then the total.

Reporting windows change what you see, not how campaigns optimize (OpenAI Ads blog).

Four tracking mistakes to rule out first

Mistake 1

One event ID for different orders

OpenAI keeps the first event per ID, so real sales can drop as copies. Ask: does each order get its own event ID?

Source: OpenAI Help Center

Mistake 2

Accepted is not credited

The Conversions API can accept an event that never gets ad credit. Ask: do we check reports, not only API responses?

Source: OpenAI Help Center

Mistake 3

Server events without oppref

Without the click reference, server events are harder to match to clicks. Ask: do we store and send oppref?

Source: OpenAI Ads docs

Mistake 4

Revenue from the wrong event

Order Created Sales and ROAS count only order_created events. Ask: do we send order_created for every purchase?

Source: OpenAI Help Center

Custom events cannot be optimization goals (OpenAI Ads docs), so pick a standard event before launch. For what changed in ChatGPT Ads this fall, read my ChatGPT Ads expansion post.

ChatGPT Ads conversion tracking FAQ

Do I need both the pixel and the Conversions API?

No. OpenAI accepts the pixel, the Conversions API or both. If you send both, use the same Pixel ID, event name and event ID, so one sale counts once. I prefer both when your backend confirms purchases, because the server copy does not depend on the browser.

Source: OpenAI Help Center

Why does Ads Manager show more conversions than GA4?

Often because the Conversions total can include view-through conversions, and your analytics cannot see an ad view. Different time zones, consent and date rules widen the gap. Check the click-through numbers alone first.

Source: OpenAI Help Center

What is a good Event Quality Score?

OpenAI does not publish a threshold in the help pages I checked. The score rates the data one source sends and refreshes daily over 7 complete days. It does not predict performance. Read the warnings and fix what you can verify in your setup.

Source: OpenAI Help Center

How long do ChatGPT Ads conversions take to show up?

OpenAI says attributed conversions can take about 24-48 hours to appear, and recent totals can change during processing. I wait at least 2 days before I compare Ads Manager with analytics.

Source: OpenAI Help Center

Does the attribution window change how my campaign optimizes?

No. OpenAI says these settings control attribution in reports, not how campaigns optimize. They do change reported conversions, sales, CPA and ROAS.

Sources: OpenAI Ads blog; OpenAI Ads docs

Can I turn off view-through conversions?

In reports, yes. Ads Manager lets you set the view-through window to 0 days, so the Conversions total counts click-through conversions only. You can also view click-through and view-through conversions separately.

Source: OpenAI Help Center

What changed in this guide

I update this guide when OpenAI changes how ChatGPT Ads measures conversions.

  • 4 Nov 2026: First version.
Audit

Already running ChatGPT Ads, but not sure about the results?

Need an audit? I review your data source, events, deduplication and reporting windows, then send a written plan with what to fix first.

Request an audit