Someone asks ChatGPT how to track their expenses. The answer includes a sponsored placement for your app. They tap it, browse for a minute, close the tab, and install four hours later from a search in the App Store.
Who gets credit for that install, and who decides?
What is ChatGPT Ads attribution?
ChatGPT Ads attribution is the process of connecting an install or in-app conversion back to the specific sponsored placement that produced the click. It is click-based: a click identifier is appended to your destination URL at serve time, and the match is made on that identifier alone. Attribution windows and event mappings are configured in your measurement platform, not in Ads Manager.
That definition contains most of what marketers get wrong about this channel, so the rest of this guide unpacks it in order. Everything here is current as of September 2026. This is a channel that has changed roughly monthly since it launched in the US in February, went live in India on 29 August, and opened self-serve on 4 September, so treat any undated guidance on the subject with suspicion, including guidance published two months ago.
The three measurement routes, and which one applies to you
ChatGPT Ads exposes three ways to measure conversions. Most published content on the channel covers the first two and stops, because most published content was written for web advertisers.
The JavaScript pixel. A tag on your website that fires on page load and on defined conversion actions. This is the route almost every agency setup guide describes. It measures web conversions and it cannot measure app installs, because app_installed and app_opened are documented as available through the Conversions API only.
The Conversions API. A server-side path for sending conversion events directly from your backend to OpenAI, with no browser involved. More durable than the pixel, harder to set up, and again oriented at web conversions unless you build the app plumbing yourself.
The measurement partner route. Your MMP generates an attribution link, you use it as the campaign's destination, the SDK matches the install on first open, and mapped events flow back to Ads Manager. This is the only route that measures app installs without you building attribution infrastructure yourself.
For a mobile app, the third route is the answer. The first two are worth knowing about only because you will run both in parallel if you also advertise a website, and running them in parallel is where double-counting begins.
How the click actually becomes an install
The mechanism is simpler than the surrounding confusion suggests.
A user taps your sponsored placement. ChatGPT Ads appends a click identifier to your destination URL and sends the user there. Your destination is not the App Store; it is a tracking link, which logs the click along with the campaign parameters and the click identifier, then redirects the user to the correct store for their device.
The user installs. On first open, your SDK reports the install and the platform matches it back to the logged click. That match is what creates the attributed install, and from that point every event the user generates can be tied back to the ad.
Click identifier: The unique reference appended to your destination URL at serve time, inserted using a macro in your tracking link. If it does not survive the journey to your app, no attribution is possible.
The fragile link in that chain is the redirect. If your ad points at your own marketing site and that site strips unrecognised query parameters, the identifier is gone before the user ever reaches the store. This fails silently: Ads Manager still reports clicks, your app still gets installs, and the two are simply never joined. The step-by-step version of getting this right is in the complete ChatGPT Ads install tracking setup guide.
Why it is click-based, and what that costs you
Click-based attribution is a deliberate design choice rather than an oversight, and it has two consequences worth planning around.
The benefit is durability. Because the match rides on a parameter rather than a device graph, it does not degrade with ATT opt-out rates the way probabilistic methods do. An iOS user who declined tracking is attributed the same way as an Android user who never saw the prompt. On a channel launched in 2026 this is a sensible default, and it is why the setup works identically across both platforms.
The cost is that you only see people who clicked. There is a view-through path, added on 19 August 2026 with a fixed one-day window, but it is excluded from bidding, billing and CPA calculations. In practice this means you can see a view-through number and you cannot act on it, which is an unusual position to be in and one worth explaining to anyone who reads your dashboard.
Put those together and this channel gives you a clean last-click picture and nothing else. Whether that is a problem depends on your budget and your channel mix. For teams running an incremental test alongside an established Meta and Google mix, it usually is not, for the reasons set out in the case for last-click attribution in growing apps. For teams already running a multi-touch model, ChatGPT Ads will sit awkwardly inside it, because it can only ever contribute last-click evidence. The trade-offs are set out properly in multi-touch versus single-touch attribution.
Where each setting actually lives
This is the section to bookmark, because the split is counterintuitive and it explains most support tickets on this channel.
Configured in Ads Manager: the pixel and Conversions API credentials, which conversions are attached to which campaigns, platform targeting across iOS, Android and web, and budget.
Configured in your measurement platform: the attribution link itself, the click attribution window, the view-through handling, which events map to which ChatGPT Ads standard events, and the platform split you actually report on.
Most marketers arrive expecting to find a lookback window setting in Ads Manager. It is not there, and its absence is usually read as a missing feature rather than a design decision. The window is yours to set, which means the default your MMP shipped with is the one you are running whether you chose it or not.
Seven days is the common default. On a channel where the user is mid-task in a conversation when they encounter your ad, seven days is generous. Someone who taps a sponsored answer while researching a problem and installs six days later was probably converted by something else in the interval. Running one-day and seven-day cuts side by side for the first month tells you where your own installs cluster, and that is a better basis for the decision than any benchmark.
The reporting lag, and how to read around it
Attributed events appear in the Conversions metric in Ads Manager after 24 to 48 hours.
This lag is the reason a correctly configured campaign looks broken on day one. Ads Manager shows spend and clicks immediately, and shows conversions two days later, so the first look at a new campaign is always a column of zeros next to a real spend number.
Three practical consequences follow. Do not judge a campaign before 48 hours have passed. Do not compare same-day numbers between Ads Manager and your MMP, because your MMP has the install and Ads Manager does not yet. And do not build a daily optimisation routine on this channel that assumes yesterday's data is complete, because it is not.
If you already run a Monday review across channels, ChatGPT Ads slots into it awkwardly for exactly this reason. The sequencing in the Monday morning performance marketing routine still works, provided the ChatGPT Ads column is read as a two-day-lagged view rather than a live one.
What the channel still cannot measure, as of September 2026
Publishing the gaps matters more than publishing the capabilities, because every other article on this channel covers only the capabilities.
Cost data does not flow into your MMP. There is no cost API integration. Spend cannot be pulled automatically, which means ROAS for this channel has to be assembled by importing spend by hand and dividing attributed revenue by it. Every measurement article that assumes ChatGPT Ads ROAS is available in your dashboard is describing something that does not currently exist.
Reporting is less granular than targeting. You can target iOS, Android and web separately. Insights returns two device buckets, with mobile web folded into Mobile. In an Android-first market that gap is expensive, and the only reliable workaround is to split platform on your measurement side and run separate campaigns per platform.
View-through is visible but inert. One-day window, fixed, excluded from bidding and CPA. You can see it. You cannot bid on it.
Deferred deep linking is your problem, not the platform's. If a user taps a sponsored placement for a specific product or offer, gets sent to the store, installs, and lands on your generic home screen, the context of that click is lost. That is a solvable problem, but it is solved on your side rather than by ChatGPT Ads, and the mechanism is the same one described in how deferred deep links preserve context through install.
How ChatGPT Ads attribution compares to what you already run
Against Meta and Google, the honest summary is that ChatGPT Ads gives you less measurement surface and a cleaner signal.
Less surface, because there is no cost integration, no SKAN participation to configure, no view-through you can act on, and two device buckets instead of a full platform breakdown. If you are used to the depth of a mature ad platform integration, this will feel thin, and it is thin.
Cleaner signal, because click-based matching on a fresh platform means fewer competing claims and less modelled attribution to unpick. When an install attributes to ChatGPT Ads, it attributes for a straightforward reason you can trace to a specific click.
The place this gets interesting is deduplication. If you run ChatGPT Ads alongside Meta and Google, more than one network will occasionally claim the same install, and the network that shouts loudest is not necessarily the one that earned it. This is the same problem that produces the familiar gap described in why your Meta ROAS and MMP ROAS do not match, and it is the reason a single source of truth across networks matters more, not less, when you add a new channel.
Tech explainer: why running the pixel and an MMP together inflates your numbers
If you advertise both a website and an app, you will end up running more than one measurement route at once. That is normal and it introduces a specific counting problem worth understanding before it shows up in a report.
The pixel fires from the browser. The Conversions API fires from your server. Your MMP reports app-side events. When the same user action is visible to more than one of those paths, the platform receives more than one event describing a single thing, and unless it can tell they are the same event, it counts them separately.
The mechanism that prevents this is a shared event identifier. Both the browser-side and server-side reports carry the same unique value for a given conversion, and the platform deduplicates on it. Omit the identifier and nothing errors. Your conversion count simply runs high, your cost per conversion runs correspondingly low, and every downstream decision is made against inflated performance.
This matters most in the first month, when you are deciding whether the channel works. A campaign that looks 40% more efficient than it is will survive a review it should not have survived. If you run parallel routes, agree the event identifier convention with whoever implements the pixel before either route goes live, not after the numbers disagree.
Frequently asked questions
Does ChatGPT Ads support SKAdNetwork?
Not as a documented part of the measurement partner integration as of September 2026. Attribution on this channel is click-based, which sidesteps much of what SKAN exists to solve on iOS but also means the channel sits outside the SKAN reporting you already run for Meta and Google. If you are configuring conversion values across your other iOS channels, the approaches in SKAN 4.0 configuration strategies by app type apply to those channels rather than to this one.
Which attribution window should I use for ChatGPT Ads?
Whichever one your own data supports, because the platform does not impose one. Seven days is the common MMP default and is generous for a channel where the user encounters your ad mid-conversation. Run one-day and seven-day cuts in parallel for the first month and look at where your attributed installs actually cluster before settling.
Can I see ChatGPT Ads ROAS in my MMP?
Not automatically, as of September 2026. There is no cost API integration, so spend does not flow into your measurement platform the way it does from Meta or Google. Attributed revenue is available; the spend side has to be imported manually for ROAS to be computed at all.
How does ChatGPT Ads attribution handle existing users who click an ad?
The install match only applies to new installs. An existing user who taps a sponsored placement will be routed to the store or to your app, and preserving the context of that click into the right in-app screen is handled by your deep linking setup rather than by the ad platform.
Is ChatGPT Ads attribution accurate enough to move budget on?
For last-click decisions within the channel, yes. For cross-channel budget decisions, treat the first month as directional. The install counts are reliable; the ROAS figure is only as good as the spend you imported by hand, and the sample at floor budget is small enough that day-to-day swings are noise rather than signal.
Where Linkrunner fits
None of the above depends on a particular vendor. The routes, the windows and the limits are properties of the channel.
What a measurement platform decides is how much assembly you do. Linkrunner is the first MMP in India to go live with ChatGPT Ads, and attributes those installs alongside Meta, Google and TikTok in a single dashboard, without an enterprise contract or a minimum volume commitment, which is the relevant condition for a channel most teams are testing at ₹725 a day. Deduplication across networks happens in the same place, so the install that three networks claim is credited once.
OpenAI's mobile measurement partner setup article and its supported events reference are the primary sources for platform behaviour and are worth reading directly. Linkrunner's deferred deep linking documentation covers the context-preservation gap described above.
Key takeaways
- ChatGPT Ads attribution is click-based, and the click identifier surviving to your app is the entire mechanism.
- Three measurement routes exist; only the MMP route measures app installs.
- Ads Manager holds credentials, conversions and targeting. Your MMP holds windows, event mapping and the platform split.
- Attributed events lag 24 to 48 hours, so day-one campaigns always look broken.
- No cost API means ROAS has to be assembled manually as of September 2026.
- View-through exists at a fixed one-day window and is excluded from bidding and CPA.
Where to go next
If you have not set up tracking yet, start with the setup guide linked above and come back to this page once your first campaign is attributing.
If your campaign is running and your organic installs jumped on launch day, that is a stripped click identifier and the fix is mechanical rather than strategic.
And if you are still deciding whether to run the channel at all, the measurement limits on this page are the honest input to that decision. A channel you cannot compute ROAS for is a channel you should test at the floor budget rather than commit to, at least until the cost integration arrives.
To see ChatGPT Ads attribution running next to the channels you already measure, request a demo from Linkrunner.
