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

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.

Tarun Kapoor 17 min readPublished August 7, 2026
ChatGPT Ads Reporting: Metrics, Columns, Exports & Dynamic URL Parameters (2026)
What this guide covers. The reporting surface of ChatGPT Ads Manager Beta — the seven metrics it reports, how to break a combined conversions total into individual events, exports, insights charts, dynamic URL parameters, and the troubleshooting tree for the two failures we see most: conversions that read zero, and clicks that do not match analytics.

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.

MetricDefinitionWhat it is good for
ImpressionsNumber of times your ads were shownDelivery and pacing checks
ClicksNumber of times users clicked your adsDemand-side read; the billing unit on CPC and oCPC
SpendTotal amount spent delivering your adsPacing against the seven-day budget window
CTRPercentage of impressions that resulted in clicksCreative and context-hint relevance
Avg CPCAverage cost per clickAuction pressure; compare against your max bid
Avg CPMAverage cost per thousand impressionsReach-objective efficiency
ConversionsAttributed conversion events — click-through plus eligible view-through, per your selected reporting windowsThe headline outcome metric. Read it together with the windows that produced it
Click-through conversionsAttributed conversions that followed an ad clickThe post-click read; the component oCPC and oCPM optimise against
View-through conversionsConversions within one day of an eligible impression where no qualifying click took creditImpression influence. Included in the Conversions total only when the view-through window is set to 1 Day
Order Created SalesRevenue from attributed order_created eventsThe closest thing to a revenue column — and it counts only order_created
Order Created ROASOrder Created Sales divided by spendPlatform-reported ROAS, on the same order_created-only basis
Carousel card impressionsTimes an individual product card in a multi-product carousel became viewableWhich SKUs in a feed campaign are actually being seen — not a billable impression, and never the denominator in CPM or CTR
Carousel card clicksClicks on an individual product card in a multi-product carouselCard-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.

SettingOptionsEffect on the Conversions total
Click-through reporting window7, 14 or 30 daysWidens or narrows how far back a click can claim credit
View-through reporting window0 Day (disabled) or 1 Day1 Day adds eligible view-through conversions to the total; 0 Day excludes them
Conversion timestamp basisAd event time (default) or Conversions (by conv. time)Changes which day a conversion lands on, not how many there are
Changing a reporting window changes reporting only. It does not change campaign optimisation, bidding, or billing. The feature uses OpenAI's existing last-touch attribution logic and is not multi-touch attribution. So widening the click window to 30 days will make a historical report look better without making a single campaign perform better — which is exactly why the window belongs in the footnote of every deck you build from this data.

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.

Reporting beyond the goal. The Conversions column only counts a campaign's goal event. Since late September 2026 the Insights API can also return attributed events that are not the goal — purchases on a campaign that optimises for leads, for example — by adding "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.

  1. Open the three-dot menu.
  2. Select Edit columns.
  3. Expand Conversions & events.
  4. Choose the events you want as columns.
  5. Select Save changes.
The Segment menu is not the answer. The Segment control adds Device, Country and Platform breakdowns. It does not add conversion-event columns, and it is where most advertisers look first. Event columns live only under Edit columns → Conversions & events. Availability may vary by account and reporting period.

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.

Read weekly cohorts, never single days. Two independent mechanics push in the same direction here. Conversions lag reporting by up to 48 hours, and daily budgets now pace across a rolling seven-day average rather than capping each day. A single-day view of a ChatGPT Ads campaign is therefore comparing a settled spend number against an unsettled conversion number. Weekly cohorts are the smallest honest unit.

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.

MacroPopulated 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:

  1. Ad URL — highest precedence
  2. Ad
  3. Ad Group
  4. 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.

Use macros as a join key, not a replacement for UTMs. Keep your UTM taxonomy for analytics continuity, and add the ID macros alongside it. The UTMs tell your analytics tool what the traffic is; the IDs let you join a session back to the exact ad object in an Ads Manager CSV export without string-matching campaign names. That join is what makes a warehouse-side cost-per-outcome model possible on this channel.

Exports: cumulative vs daily

You wantDo thisYou get
Everything in the current tableThree-dot menu → Export → Export current table viewCumulative metrics for every row shown
Specific rows onlySelect rows → Export → Export cumulative valuesCumulative metrics for the selected rows
Day-by-day trend dataExport → Export daily valuesDaily 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

  1. Select the chart icon next to the three-dot menu.
  2. Click View insights.
  3. Select the metrics you want — impressions, clicks, spend, or any combination.
  4. 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.

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 impressionsCarousel card impressions
Counted whenThe ad unit is served and eligible to be seenAn individual product card becomes viewable
Billable?Yes — this is the impression you pay for on CPMNo. Separate from billable ad impressions and not included in billable impression counts
Use it forCPM, CTR, pacing, reachPer-product engagement inside a carousel; which SKUs earn attention
Never use it for—Any denominator in a cost or rate calculation
The failure mode, concretely. One feed ad serving in the carousel can produce several card impressions from a single billable impression. If a dashboard sums an "impressions" column that has quietly picked up card impressions, your CPM collapses and your CTR inflates — and both move in the direction that looks like a win, which is why nobody questions it until the invoice does not reconcile. Name the columns explicitly in every export and query, decide which one your CPM means, and write it down before the first carousel-heavy week.

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.

CheckStandard eventsCustom events
Event type matchThe configured event type must match the event you sendAds Manager must use Event type: Custom
Name matchStandard event name, exactlyThe custom event name must match exactly — a matching display name is not enough
Attachment timingThe conversion must be attached to the campaign before traffic startsSame
BackfillNone — historical events from a mismatched setup do not backfillNone
The expensive part is the backfill rule. If you correct a mismatched configuration, you must test again with new eligible traffic — events that arrived under the broken setup are gone for reporting purposes. This is why the 30-day launch plan spends its entire first week on instrumentation before a single campaign goes live. A week of verification is cheaper than a month of unrecoverable data.

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.

  1. Align the date range and time zone first. A large fraction of reported discrepancies are a time zone offset and nothing more.
  2. 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.
  3. Check the redirect chain. The oppref click 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.
  4. 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.

PlatformWhat it doesSetup notes
WorkMagicViews ChatGPT Ads performance alongside other channels and returns conversion signal to OpenAIConnect ChatGPT Ads to WorkMagic, then send conversion signals back through the Conversions API
HightouchSyncs conversion events to OpenAI from any source modelConnect 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 WhaleMeasures ChatGPT Ads performance alongside other channelsSonar 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

  1. Daily — delivery only. Impressions, clicks, spend. Confirm campaigns are serving and pacing. Do not touch bids on a daily conversion read.
  2. 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.
  3. 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.
  4. 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.
Want this run for you? GPT Ads AI installs the tracking, owns the weekly reconciliation, and sends written analysis rather than a dashboard link — on a fixed retainer with no percentage of ad spend. If you are weighing whether to run this in-house or hand it over, the agency buyer's guide lays out the decision honestly, and you can book a discovery call →

Sources and further reading

People Also Ask

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.

Tarun Kapoor
About the author

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

Want this run
for you?

Book a discovery call