Try Measure.co — take control of your AI Search Visibility. Visit Measure.co

Count itonce. Countit right.

ChatGPT Ads has moved from land-grab to accountability. Conversion tracking, a Conversions API, view-through reporting, and cross-channel integrations all exist now — which means the advertisers who instrumented properly are about to separate from the ones who did not. We build the measurement layer and prove it works.

Event quality warnings
9
Named checks we clear before scaling
Reporting delay
24–48h
For attributed conversions to land
Reporting levels
3
Campaign, ad group, and ad
Signal paths
2
Browser pixel and Conversions API
What Ads Manager reports

Every metricon the board.

These are available in table view, chart view, and CSV export, at campaign, ad group, and ad level. Knowing which number is authoritative — and which is supplemental — is most of the job. For the full column reference see our ChatGPT Ads reporting guide, and for how the pixel and Conversions API get there in the first place, see conversion tracking setup.

MetricWhat it countsAvailability
ImpressionsTimes your ads were shownAll levels
ClicksTimes users clicked your adsAll levels
SpendTotal delivered spendAll levels
CTRImpressions that became clicksAll levels
Avg CPCAverage cost per clickAll levels
Avg CPMAverage cost per 1,000 impressionsAll levels
ConversionsAttributed conversions — click-through plus eligible view-through, per your selected reporting windowsAll levels
Click-through conversionsThe post-click component of the total, as its own columnAll levels
View-through conversionsConversions within one day of an eligible impression where no click qualifiedView-through window set to 1 Day
Order Created Sales / ROASRevenue and ROAS from attributed order_created events onlyAll levels
Per OpenAI's Ads Manager reporting documentation. The Segment menu controls Device, Country and Platform breakdowns; conversion-event columns, attribution windows and the Conversions (by conv. time) basis are all set through Edit columns → Conversion Events.
Specialist engagements

Measurement is partof the bigger job.

Clean tracking only pays off once the rest of the account is built to use it. Each of these is part of full management and also available on its own.

The new one

Event qualitywarnings,cleared.

OpenAI now grades every pixel and data source on event quality — a score plus a list of named warnings, refreshed daily across seven complete calendar days. There are nine warnings, and each one points at a specific, fixable defect: a stripped oppref parameter, thin identity data, server events arriving more than an hour late, duplicate callbacks, a conversion goal receiving nothing.

We read it weekly on every account we run and work the warnings in the order that actually moves matching. Every warning, what it means, and the exact field that clears it is in our ChatGPT Ads event quality guide.

What it is not. Event quality is a diagnostic, not a bid signal. OpenAI states plainly that the score and its warnings do not predict campaign performance and do not guarantee that a conversion will match to an ad. Chasing the number by inventing events, identifiers or timestamps is both against the rules and self-defeating — it corrupts the data you are trying to measure.
Why it still matters. Every warning is a description of conversions the auction cannot see. Under oCPC and oCPM, a model optimising on a partial view of your conversions buys the wrong traffic with real money. Clearing the warnings before you scale is the cheapest performance work available on this channel.
What we do

The measurementbuild.

  1. 1

    Install and validate the pixel

    Placement on the right pages, correct pixel ID, initialisation order preserved through your tag manager, and debug mode used to confirm events fire before anyone trusts a number. If a tag manager reorders or blocks initialisation, we install direct instead.

  2. 2

    Match event names exactly

    The single most common reason conversions read zero is a configured event that does not match the event you send. Custom events need Event type: Custom and a byte-identical name — a matching display name is not enough, and historical events never backfill after a fix.

  3. 3

    Add the Conversions API for server-side events

    Browser pixel for browser events, Conversions API for server-side ones. Click reference values such as oppref have to survive the round trip or the event arrives unattributable — that is where most Shopify and headless builds quietly lose credit.

  4. 4

    Wire dynamic URL parameters as the join key

    Campaign, ad group, ad, and ad account macros populate at delivery and become the key between Ads Manager and your own analytics. We set them at the level that survives the precedence order rather than scattering them per ad.

  5. 5

    Fix the attribution windows, then freeze them

    The Conversions total means nothing without the windows that produced it. We pick a click-through window of 7, 14 or 30 days and a view-through window of 0 or 1 day, keep the click-through and view-through columns visible beside the total, and then hold the setting steady so a dropdown change never shows up in a deck as performance.

  6. 6

    Report the revenue, whatever the campaign optimises for

    A campaign optimising for leads can still report the purchases it drove. The Insights API now returns attributed events beyond the campaign goal, so we pull purchases and order value for every campaign at the same windows as Ads Manager and report cost per customer beside cost per lead — without touching the goal or resetting learning.

  7. 7

    Clear every event quality warning before we scale

    OpenAI grades each data source daily and names what is wrong. We work the warnings in order of what actually moves matching — oppref survival first, then identity coverage, then timing and deduplication — and we do it before budget goes up, not after the CPA looks strange.

  8. 8

    Connect the cross-channel layer

    WorkMagic, Hightouch, or Triple Whale, depending on what you already run — so ChatGPT Ads sits next to Meta and Google in one view and conversion signal flows back to OpenAI through the Conversions API instead of dying in a dashboard.

Cross-channel

ChatGPT next toeverything elseyou run.

ChatGPT Ads now connects to third-party measurement platforms, so performance can sit alongside your other channels and conversion signal can flow back to OpenAI through the Conversions API. Which one is right depends on what your stack already looks like.

WorkMagic

Connect ChatGPT Ads to view performance alongside other channels and send conversion signals back to OpenAI through the Conversions API.

Hightouch

Send conversion events from any warehouse model. Pixel ID plus API key, with a live debugger and sync alerting.

Triple Whale

Measure ChatGPT Ads next to your other channels; Sonar Optimize returns stronger conversion signal to OpenAI.

Sending signal back matters more than the dashboard. An integration that only reads data leaves the optimisation model exactly as blind as it was.

Also worth knowing

Advancedmatching.

Automatic advanced matching helps match website conversions to your ads using supported customer information entered into website forms. The pixel hashes that information in the browser before including it with conversion events. It is enabled from Tools → Conversions → Data Source and requires no change to your pixel implementation.

September 2026 widened the field set on both paths. The Measurement Pixel now accepts hashed phone, first name, last name, region and postal code. The Conversions API accepts list forms of the matching fields — so one event can carry two email addresses or an old and a new phone number — plus Android GAID for mobile app conversions. More match keys against the same conversions is the cheapest attribution win on the platform, and it needs no extra budget.

Treat it as a privacy decision, not a settings toggle. It sends hashed form data to an advertising platform. That belongs in front of whoever owns privacy review at your company before it is switched on — not after someone notices it in a data-flow audit. It is reversible either way.
Questions

Answered
straight.

What is event quality in ChatGPT Ads?

Event quality is OpenAI's daily assessment of whether the conversion information arriving from a pixel or data source is useful for measurement. Each data source gets its own score and its own list of named warnings, refreshed daily across seven complete calendar days. It is a diagnostic: it does not predict campaign performance and does not guarantee that any conversion will match to an ad. We read it weekly on every account we run and clear the warnings in impact order.

Can I report conversions that are not my campaign's goal?

Yes, through the Insights API. Adding "include": ["attributed_events"] to a POST /v1/conversions/insights request returns attributed events beyond the campaign's goal — for example purchases on a campaign optimising for leads — without changing the goal or optimisation settings. Use ad-event time, because conversion-time reporting has limited coverage of non-goal events.

What is a view-through conversion in ChatGPT Ads?

A conversion counted when someone converts within one day of seeing an eligible ad impression, and no qualifying ad click receives credit for the same conversion. If both an impression and a click qualify, the click gets credit. It appears as the View-through conversions column at campaign, ad group and ad level.

Are view-through conversions included in my Conversions total?

Yes, when your view-through reporting window is set to 1 Day. The Conversions total then contains click-through conversions plus eligible view-through conversions, and both components are also available as their own columns. Set the view-through window to 0 Day and the total is click-through only. Because one conversion can never be credited to both an impression and a click, the total is not double-counting.

Can I change the attribution windows in ChatGPT Ads?

Yes. Ads Manager supports a click-through reporting window of 7, 14 or 30 days and a view-through window of 0 Day or 1 Day, in any supported combination, set under Edit columns → Conversion Events → Attribution windows. The change affects reporting only — never optimisation, bidding or billing — and it restates every conversion column on screen at once. The underlying logic is last-touch, not multi-touch.

Do I need to change my pixel setup for view-through reporting?

No. The same submitted conversion events support both click-through and view-through reporting, and no pixel or Conversions API changes are required. What you control is the reporting window, not the collection.

Why do my conversion events show zero in Ads Manager?

Almost always a mismatch. The event you send has to match the event configured on the campaign — for custom events, Ads Manager must use Event type: Custom and the name must match exactly. Also confirm the conversion was attached to the campaign before traffic started. Correcting the configuration only affects new traffic; historical events do not backfill.

Why don't ChatGPT Ads clicks match my Google Analytics sessions?

They measure different things. Clicks count ad interactions; sessions depend on page load, redirects, consent settings, browser blocking, UTM handling, attribution windows, and time zone. Compare identical date ranges in identical time zones, then reconcile against a CSV export at campaign and ad level rather than eyeballing two dashboards.

How long until conversions appear in reporting?

Allow 24 to 48 hours for attributed conversions to be reflected in Ads Manager. Judging a campaign on same-day conversion data will consistently make performance look worse than it is.

Find out whatyour trackingis missing.

Book a discovery call