ChatGPT Ads Reporting: Metrics, Columns, Exports & Dynamic URL Parameters (2026)
How reporting works in ChatGPT Ads Manager Beta: every metric, flexible 7/14/30-day click and 0/1-day view-through attribution windows, what the Conversions total actually contains, Order Created ROAS, conversion-event columns, CSV exports, dynamic URL parameters and macros, the 24-48 hour delay, and why your events show zero.

It is the counterpart to the conversion tracking guide, which covers collecting the data. This one covers reading it.
Reporting is where most ChatGPT Ads programs quietly go wrong. Not because the numbers are unavailable, but because the default view answers a narrower question than advertisers assume it does — one combined conversions figure, a 24-to-48-hour lag, and a Segment menu that does not do the thing its name suggests. The result is a lot of correct campaigns being cancelled on incorrect readings.
The metrics Ads Manager reports
Available at campaign, ad group and ad level, in table view, chart view and CSV export.
| Metric | Definition | What it is good for |
|---|---|---|
| Impressions | Number of times your ads were shown | Delivery and pacing checks |
| Clicks | Number of times users clicked your ads | Demand-side read; the billing unit on CPC and oCPC |
| Spend | Total amount spent delivering your ads | Pacing against the seven-day budget window |
| CTR | Percentage of impressions that resulted in clicks | Creative and context-hint relevance |
| Avg CPC | Average cost per click | Auction pressure; compare against your max bid |
| Avg CPM | Average cost per thousand impressions | Reach-objective efficiency |
| Conversions | Attributed conversion events — click-through plus eligible view-through, per your selected reporting windows | The headline outcome metric. Read it together with the windows that produced it |
| Click-through conversions | Attributed conversions that followed an ad click | The post-click read; the component oCPC and oCPM optimise against |
| View-through conversions | Conversions within one day of an eligible impression where no qualifying click took credit | Impression influence. Included in the Conversions total only when the view-through window is set to 1 Day |
| Order Created Sales | Revenue from attributed order_created events | The closest thing to a revenue column — and it counts only order_created |
| Order Created ROAS | Order Created Sales divided by spend | Platform-reported ROAS, on the same order_created-only basis |
| Carousel card impressions | Times an individual product card in a multi-product carousel became viewable | Which SKUs in a feed campaign are actually being seen — not a billable impression, and never the denominator in CPM or CTR |
| Carousel card clicks | Clicks on an individual product card in a multi-product carousel | Card-level demand within a feed ad; pairs with card impressions for a per-product engagement read |
Two things about that list have changed and both matter. Conversions is no longer a click-only number — when the view-through reporting window is set to 1 Day, eligible view-through conversions are included in the total, and the click-through and view-through components are also available as their own columns. And there are now revenue columns, Order Created Sales and Order Created ROAS, calculated exclusively from attributed order_created events; no other standard or custom event contributes to them, so a lead-gen account will see zeroes there no matter how well it is performing. OpenAI states additional metrics and reporting views will arrive over time; we track shipped changes in the news timeline.
Attribution windows, and what the Conversions total actually contains
This is the single most important thing to get right before anyone in your business reads a ChatGPT Ads number, because the same campaign can report materially different conversion totals depending on two dropdowns.
Ads Manager lets you choose a click-through reporting window of 7, 14 or 30 days, and a view-through reporting window of either 0 Day (disabled) or 1 Day. Any supported combination is allowed. Set the view-through window to 1 Day and eligible view-through conversions are included in the Conversions total. Set it to 0 Day and the total contains click-through conversions only.
| Setting | Options | Effect on the Conversions total |
|---|---|---|
| Click-through reporting window | 7, 14 or 30 days | Widens or narrows how far back a click can claim credit |
| View-through reporting window | 0 Day (disabled) or 1 Day | 1 Day adds eligible view-through conversions to the total; 0 Day excludes them |
| Conversion timestamp basis | Ad event time (default) or Conversions (by conv. time) | Changes which day a conversion lands on, not how many there are |
What a view-through conversion counts
A view-through conversion is counted when someone converts within one day of 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 — the two are never both counted for one conversion, which is why the components can be safely summed and why the total is not double-counting.
You will find the split in three places: in the attribution breakdown when you hover the Conversions column, as the optional standalone Click-through conversions and View-through conversions columns added through Edit columns → Conversion Events, and in CSV exports.
To change the windows, open Campaigns, Ad groups or Ads, choose Edit columns, and under Conversion Events find Attribution windows. Pick your click-through and view-through windows and save. The preference then applies to every conversion column displayed — which is the detail that catches people out, because it silently restates every number on the screen at once.
How to report this without misleading anyone
- State the windows next to the number, every time. "412 conversions" is not a fact; "412 conversions on a 7-day click and 1-day view window" is. Two teams pulling the same campaign on different settings will disagree, and both will be right.
- Pick one setting and freeze it for your standard reporting, then change it only deliberately and re-baseline when you do. A window change mid-quarter creates a step in the trend line that looks like performance.
- Keep the components visible. Add the Click-through conversions and View-through conversions columns alongside the total so the mix is legible. A total that grew because view-through grew is a different story from one that grew on clicks.
- Never compare across channels without aligning windows. A ChatGPT 30-day click total against a Meta 7-day click total is not a comparison, it is an artefact.
- Do not sum the total and its components. Conversions already contains click-through plus eligible view-through. Adding them produces a number that means nothing.
Used properly, the view-through component answers one narrow question well — is this creative influencing people who never click? On a conversational surface that is a more common outcome than on a search results page, which is precisely why it is worth watching. Note also that OpenAI has announced a conversion optimisation model that optimises on view-through as well as click conversions, billed on impressions; when that reaches your account, the view-through number stops being purely supplemental and starts feeding delivery. We cover how we structure all of this for clients on the measurement service page.
"include": ["attributed_events"] to POST /v1/conversions/insights. It does not change the goal or optimisation. Every field, window and limit is in our Insights API non-goal conversions guide.Breaking the combined Conversions total into individual events
This is the highest-value thirty seconds in the whole interface, and it is behind a menu almost nobody opens. By default, Ads Manager displays one combined Conversions total for the selected scope and date range. If you are firing purchase, lead and registration_completed, all three are summed into a single number that means very little.
- Open the three-dot menu.
- Select Edit columns.
- Expand Conversions & events.
- Choose the events you want as columns.
- Select Save changes.
Once selected, those event columns also flow into CSV exports. The headers arrive in a machine-readable form — attributed_event_account_created, attributed_event_registration_completed and so on — which makes them straightforward to join to your own warehouse tables without hand-mapping display names.
The 24 to 48 hour conversion delay
Conversions are not reflected in Ads Manager immediately. OpenAI's documented guidance is to allow 24 to 48 hours for attributed conversions to be included in reporting.
Clicks and spend, meanwhile, appear promptly. The practical consequence is a reporting shape that looks alarming and is entirely normal: day one shows spend and clicks with a conversions column reading zero. We have watched more than one advertiser kill a campaign on that view before the first attributed conversion had any opportunity to land.
Dynamic URL parameters and macros
This is the feature that turns ChatGPT Ads from a black box into something joinable with the rest of your stack, and it is new enough that most accounts we audit are not using it. Ads Manager supports custom landing page query parameters built from your own text or from supported macros, populated automatically at delivery time.
| Macro | Populated with |
|---|---|
{campaign_id} | The delivering campaign's ID |
{ad_group_id} | The delivering ad group's ID |
{ad_id} | The delivering ad's ID |
{ad_account_id} | The ad account ID |
Where to configure them
From the three-dot menu on the Campaigns, Ad Groups or Ads page, choose Edit campaign, Edit ad group or Edit ad. In the edit modal, use Landing page query parameters.
The precedence rule that catches people out
More specific settings take precedence, in this order:
- Ad URL — highest precedence
- Ad
- Ad Group
- Campaign — lowest precedence
If a parameter is already set at the Ad URL level, campaign, ad group and ad-level settings will not overwrite it. When a macro appears to be silently ignored, this is almost always why — someone hardcoded the parameter into the landing page URL months ago and the campaign-level setting has been losing the fight ever since.
Exports: cumulative vs daily
| You want | Do this | You get |
|---|---|---|
| Everything in the current table | Three-dot menu → Export → Export current table view | Cumulative metrics for every row shown |
| Specific rows only | Select rows → Export → Export cumulative values | Cumulative metrics for the selected rows |
| Day-by-day trend data | Export → Export daily values | Daily rows for modelling and warehouse loads |
The first two options use identical cumulative metrics — the only difference is which rows are included. If you are building anything that needs a time series, Export daily values is the one you want, and it is the one to schedule if you are loading ChatGPT Ads data into a warehouse alongside Meta and Google.
Insights charts
- Select the chart icon next to the three-dot menu.
- Click View insights.
- Select the metrics you want — impressions, clicks, spend, or any combination.
- Set the date range.
Note what the chart view offers: impressions, clicks and spend. Conversions are not among the charted metrics, which is another reason the CSV export rather than the interface is the honest home for outcome analysis on this channel today.
Product-feed reporting: what the Products tab is not
For product feed campaigns, the Products tab is an insights-backed reporting view, not a complete feed inventory. Products appear there only after an active campaign delivers and generates reporting data.
This distinction matters for retailers debugging feed problems. An empty or short Products tab does not mean your feed failed to ingest — it may simply mean those SKUs have not served yet. To confirm feed readiness and eligibility, use the product count shown during ad-group setup, which reflects the feed rather than delivery.
Carousel card metrics: the reporting trap in feed campaigns
When a product feed campaign serves in the multi-product carousel ad unit, Ads Manager reporting now includes carousel card impressions and clicks, and the public Insights API exposes product-level fields alongside them. This is genuinely useful — it is the first time you can see which individual SKUs inside a feed ad are being seen and clicked, rather than reading the ad as one undifferentiated unit.
It is also the easiest way to break a reporting deck this quarter, so read the definition slowly.
| Ad impressions | Carousel card impressions | |
|---|---|---|
| Counted when | The ad unit is served and eligible to be seen | An individual product card becomes viewable |
| Billable? | Yes — this is the impression you pay for on CPM | No. Separate from billable ad impressions and not included in billable impression counts |
| Use it for | CPM, CTR, pacing, reach | Per-product engagement inside a carousel; which SKUs earn attention |
| Never use it for | — | Any denominator in a cost or rate calculation |
One more constraint worth planning around: complete carousel data is available from 20 August 2026, on a rolling 30-day basis. That means two things. Anything before that date is not a fair comparison, so do not build a year-over-year or quarter-over-quarter carousel narrative on it. And because the window rolls, card-level history disappears behind you — if you want a longer series, export it on a schedule into your own warehouse rather than assuming Ads Manager will still hold it next quarter.
Troubleshooting: conversion events reading zero
A conversion event can be firing correctly, be accepted by OpenAI, and still report zero in Ads Manager. There is one dominant cause and it is a configuration mismatch, not a tracking failure.
| Check | Standard events | Custom events |
|---|---|---|
| Event type match | The configured event type must match the event you send | Ads Manager must use Event type: Custom |
| Name match | Standard event name, exactly | The custom event name must match exactly — a matching display name is not enough |
| Attachment timing | The conversion must be attached to the campaign before traffic starts | Same |
| Backfill | None — historical events from a mismatched setup do not backfill | None |
Troubleshooting: clicks that do not match analytics
Ads clicks measure ad interactions. Analytics sessions measure something materially different, and the two will never reconcile exactly. OpenAI names the usual suspects: page load behaviour, redirects, consent settings, browser blocking, UTM handling, attribution windows and time zone settings.
Before you spend a day reconciling, check event quality. A gap between platform and analytics numbers is expected; a gap caused by a broken integration is not, and OpenAI now tells you which one you have. Open Tools → Conversions and read the warnings on the data source — a stripped click reference, thin identity data or duplicate callbacks will all widen the discrepancy you are about to investigate by hand. The event quality guide covers all nine warnings and what clears each.
- Align the date range and time zone first. A large fraction of reported discrepancies are a time zone offset and nothing more.
- Pull the CSV export and compare at campaign and ad level rather than account level — the gap is usually concentrated in one or two ads.
- Check the redirect chain. The
opprefclick reference is appended to your landing page URL and needs to survive redirects; a link shortener or a marketing-automation bounce page that strips query parameters will break attribution while leaving clicks intact. - Check consent and blocking. Browser-side collection is structurally degraded, which is the argument for running the Conversions API alongside the pixel.
A stable gap is expected and manageable. A gap that widens over time is a signal, and the redirect chain is where we find the cause most often. The mechanics of oppref, first-party cookie storage and server-side event enrichment are covered in the conversion tracking guide.
Sending conversions from a CDP or attribution platform
You no longer have to write the Conversions API integration yourself. Three vendor paths are now documented.
| Platform | What it does | Setup notes |
|---|---|---|
| WorkMagic | Views ChatGPT Ads performance alongside other channels and returns conversion signal to OpenAI | Connect ChatGPT Ads to WorkMagic, then send conversion signals back through the Conversions API |
| Hightouch | Syncs conversion events to OpenAI from any source model | Connect with a Pixel ID and an API key; event models need a genuinely unique primary key so each event transmits; includes a live debugger and sync alerting |
| Triple Whale | Measures ChatGPT Ads performance alongside other channels | Sonar Optimize is available for ChatGPT Ads, sending conversion signals back to OpenAI |
Both are worth considering if you already run one of them. The caveat is the same as with any managed conversion pipeline: you still own the deduplication contract. If a CDP sends an event that your pixel also fires, they need the same event ID or you will double-count — and a double-counted conversion feeding an oCPC campaign does not just misreport, it actively mis-optimises.
What to include when you contact support
OpenAI publishes the list, and sending it up front is the difference between a same-week answer and a fortnight of round-trips. It also happens to be a decent self-diagnosis checklist — assembling it resolves the issue about a third of the time.
- Ad account ID
- Campaign and ad names
- Date range and time zone
- Ads Manager CSV export
- Analytics comparison
- Pixel ID
- Event names
- Sample conversion timestamps
- Screenshots of the discrepancy
A reporting cadence that works
- Daily — delivery only. Impressions, clicks, spend. Confirm campaigns are serving and pacing. Do not touch bids on a daily conversion read.
- Weekly — the real review. Export daily values, roll into weekly cohorts, compute cost per conversion yourself, and compare against your control campaign. This is the unit at which decisions get made.
- Monthly — reconcile Ads Manager against your own analytics and against revenue. Expect a gap; document its size so a change in the gap is itself a signal.
- On every change — one variable at a time, dated in a change log. Ads Manager records account change logs, and your own annotation of what you changed and why is what makes the weekly numbers interpretable three months later.
Sources and further reading
- OpenAI — Measure Results
- OpenAI — Conversion Measurement
- OpenAI — Conversion-optimized Campaigns
- Hightouch — OpenAI destination documentation
- GPT Ads AI — ChatGPT Ads conversion tracking
- GPT Ads AI — ChatGPT Ads conversion campaigns (oCPC)
Quick answers.
What metrics does ChatGPT Ads Manager report?
Impressions, clicks, spend, CTR, average CPC, average CPM and conversions at campaign, ad group and ad level, plus click-through and view-through conversion columns, Order Created Sales and Order Created ROAS (calculated only from attributed order_created events), and carousel card impressions and clicks for product feed campaigns. All are available in table view, chart view and CSV export. The Segment menu adds Device, Country and Platform breakdowns. Additional metrics and reporting views are stated to be arriving over time.
Why do all my conversions appear as one number in ChatGPT Ads?
The Conversions column is a combined total of all attributed conversion events for the selected scope and date range. To see individual events, open the three-dot menu, select Edit columns, expand Conversions and events, choose the events you want, and save. Those columns then appear in CSV exports too. The Segment menu only controls Device and Country breakdowns — it does not add conversion-event columns, which is where most advertisers go looking first.
How long do ChatGPT Ads conversions take to appear in reporting?
Allow 24 to 48 hours for attributed conversions to be included in Ads Manager reporting. This is the single most common cause of a panicked day-one optimisation decision: the clicks are visible immediately and the conversions are not, so a campaign that is converting normally looks dead for its first day.
Why do my ChatGPT Ads conversion events show 0?
An event can be firing and accepted and still report zero if it does not match the conversion event configured on the campaign. For standard events the configured event type must match the event you send. For custom events, Ads Manager must be set to Event type: Custom and the custom event name must match exactly — a matching display name is not enough. Also confirm the conversion was attached to the campaign before traffic started; historical events from a mismatched setup do not backfill.
What dynamic URL parameters does ChatGPT Ads support?
Ads Manager Beta supports custom landing page query parameters using your own text or supported macros, including {campaign_id}, {ad_group_id}, {ad_id} and {ad_account_id}, populated automatically at delivery time. Configure them from the three-dot menu on the Campaigns, Ad Groups or Ads page via Edit campaign, Edit ad group or Edit ad, under Landing page query parameters.
Which level wins when I set URL parameters in more than one place?
More specific settings take precedence. The hierarchy runs Ad URL, then Ad, then Ad Group, then Campaign. If a parameter is already set at the Ad URL level, campaign, ad group and ad-level settings will not overwrite it — which is the usual explanation for a macro that appears to be ignored.
How do I export ChatGPT Ads reporting data?
From the three-dot menu choose Export. Export current table view gives cumulative reporting for the whole table; selecting specific rows first and choosing Export cumulative values limits it to those rows. Both use the same cumulative metrics. For day-by-day data choose Export daily values. Conversion-event columns you have added through Edit columns appear in the export, with headers in the form attributed_event_account_created.
Why do ChatGPT Ads clicks differ from my Google Analytics sessions?
Ads clicks measure ad interactions; analytics sessions depend on page load, redirects, consent settings, browser blocking, UTM handling, attribution windows and time zone. Compare identical date ranges and time zones first, then use CSV exports to check campaign and ad-level activity. A gap is expected — a gap that widens over time usually means a redirect is dropping the oppref click reference.
Does the Products tab show my whole product feed?
No. For product-feed campaigns the Products tab is an insights-backed reporting view rather than a complete feed inventory — products appear after an active campaign delivers and generates reporting data. Use the product count shown during ad-group setup to confirm feed readiness and eligibility, not the Products tab.
Can I send ChatGPT Ads conversions from a customer data platform?
Yes. Hightouch supports OpenAI as a destination for conversion events, connecting with a Pixel ID and an API key and syncing events from any source model. Triple Whale also integrates ChatGPT Ads for cross-channel performance measurement, with Sonar Optimize available for sending conversion signals back to OpenAI. Both are alternatives to writing your own Conversions API integration.
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, can be included in CSV exports, and is included in the Conversions total when your view-through reporting window is set to 1 Day.
Are view-through conversions included in the ChatGPT Ads Conversions total?
Yes, when your view-through reporting window is set to 1 Day — the Conversions total then includes click-through conversions plus eligible view-through conversions. Set the view-through window to 0 Day and view-through attribution is disabled in reporting, so the total contains click-through conversions only. You can always see the two components separately using the Click-through conversions and View-through conversions columns. Because a single 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 reporting window of either 0 Day (disabled) or 1 Day, in any supported combination. Set them under Edit columns → Conversion Events → Attribution windows. The setting changes reporting only: it does not affect campaign optimisation, bidding or billing, and it applies to every conversion column displayed. The underlying logic is last-touch, not multi-touch.
How do I add view-through conversions to my ChatGPT Ads reports?
Open Campaigns, Ad groups or Ads, select Edit columns, and under Conversion Events choose View-through conversions (and Click-through conversions if you want the split). The same menu holds Attribution windows, where the view-through window must be set to 1 Day for view-through data to appear. You can also read the breakdown by hovering the Conversions column, and include it in CSV exports. No pixel or Conversions API changes are needed — the same submitted events support both click-through and view-through reporting.
What are carousel card impressions in ChatGPT Ads reporting?
When a product feed campaign serves in the multi-product carousel ad unit, a carousel card impression is counted when an individual product card becomes viewable, and carousel card clicks are counted against that same card. Both appear in Ads Manager reporting, with product-level fields in the public Insights API. They are separate from billable ad impressions and are not included in billable impression counts, so they must never be used as the denominator in CPM or CTR. Complete data is available from 20 August 2026 on a rolling 30-day basis, so export it if you need a longer history.
Related guides.
Conversion Tracking
The oaiq pixel snippet, every supported standard event, the image tag fallback, the full Conversions API payload, deduplication, hashing rules, consent and CSP, validation — and an honest account of what this pixel cannot see.
Read guideInsights API & Non-Goal Conversions
Optimise for what the auction needs, report on what the business needs. The Insights API now returns attributed events beyond your campaign goal — every field, window and limit, with working requests.
Read guideEvent Quality Warnings
Nine named warnings, no published score, and a seven-day assessment window. Every warning explained, the exact field that clears it, the pixel-vs-API key map that silently loses match rate, and a weekly routine that catches regressions before they reach your CPA.
Read guideConversion Campaigns (oCPC)
The Conversions objective, oCPC bidding mechanics, how to pick the event you optimise toward, Bid Cap strategy, the July 2026 average daily budget change, the API fields — and the mistakes that quietly kill conversion campaigns.
Read guideWant this run for you?
GPT Ads AI is a done-for-you ChatGPT Ads agency. The services below cover exactly what this guide describes.
Measurement & attribution
Pixel and Conversions API, event quality warnings cleared, attribution windows read correctly, dynamic URL parameters as the analytics join key, and cross-channel integrations that send signal back to OpenAI.
See the serviceChatGPT Ads management
A senior operator runs the whole channel — account, structure, context hints, creative, bidding, measurement, and weekly written reporting — on a fixed retainer.
See the service
Tarun Kapoor
Founder · GPT Ads AI
Performance marketer with 12+ years in paid acquisition. Former senior media buyer at Neil Patel Digital. Alumni of GroupM, WPP, Ogilvy & Mather, and Toptal's Growth Collective. Fractional CMO to Fortune 500 brands and venture-backed startups.
Book a call with Tarun