Know which orders came from ChatGPT, and whether you paid for them
Convrail matches each order to the ChatGPT channel using three signals in order of reliability: the `oppref` click identifier from ChatGPT Ads, the `utm_source` of the landing page, and the referrer. Orders are split between ads and organic, spend is imported from the OpenAI Advertiser API, and the dashboard shows revenue, top products and ROAS by day.
The attribution rules, in plain sight
Attribution only earns trust when you can read the rule that produced each number. Convrail applies exactly this decision table to every order, and stores the evidence (the parameter or referrer that matched) next to the attribution.
| Signal on the order | Verdict | Medium |
|---|---|---|
Landing URL contains oppref=<id> | ChatGPT | ads (the identifier is only set by ChatGPT Ads clicks) |
utm_source is chatgpt, openai or chatgpt.com, utm_medium is cpc, ppc, paid or ads | ChatGPT | ads |
utm_source is chatgpt, openai or chatgpt.com, any other medium | ChatGPT | organic |
| Referrer is chatgpt.com, chat.openai.com or openai.com (or a subdomain) | ChatGPT | organic |
| None of the above | Other channel | not attributed |
The first matching rule wins, so a paid click is never downgraded to organic because the referrer was stripped. When the visitor lands with oppref, the pixel also keeps the identifier in a first-party cookie for 7 days and attaches it to the conversion events, so the Ads Manager and your dashboard agree.
Spend and campaign metrics from the Advertiser API
Revenue without spend is half a number. With an OpenAI Advertiser API key, Convrail imports your campaigns and their daily insights (impressions, clicks, spend, CTR, CPC, CPM, conversions) once a day and stores them per campaign and per day.
- ROAS is computed as attributed ads revenue divided by imported spend, over the period you select.
- The API key is validated when you save it and encrypted at rest.
- Imports are idempotent: re-running a day never double-counts spend.
- Organic attribution works without the Advertiser API; only ROAS needs it.
What the dashboard shows
| Metric | Definition |
|---|---|
| Attributed revenue | Sum of order totals attributed to ChatGPT, split ads and organic |
| Attributed orders | Count of attributed orders next to the total order count for the period |
| Spend, impressions, clicks | Imported from the Advertiser API for the same period |
| ROAS | Ads revenue divided by spend, empty when no spend was imported |
| Top products | The 10 products with the most attributed revenue, from the line items of attributed orders |
| Daily trend | Revenue, orders and spend per day |
Attributed orders can be exported as CSV with the evidence column, for your own analysis or to reconcile with the Ads Manager. A weekly email report summarizes the same numbers every Monday if you opt in.
What attribution can and cannot prove
These rules attribute last-touch, first-party evidence. They cannot see a shopper who asked ChatGPT for advice and later typed your URL by hand, and they are only as good as the landing URL and referrer your platform records. Convrail reports what it can prove and labels every attributed order with its method so you can decide how much weight to give to each.
Frequently asked questions
How does Convrail tell ChatGPT ads from ChatGPT organic?
Ads traffic carries the `oppref` click identifier, or a paid `utm_medium`. Organic traffic is identified by the chatgpt.com referrer or a non-paid `utm_source=chatgpt`. The rule that matched is stored with each order.
Why do some orders show "source: chatgpt" in my store but not in Convrail?
Store platforms derive that label from the referrer alone, which is sometimes present on the first page view but lost by checkout. Convrail reads the landing URL parameters and the referrer of the order as recorded by your platform, and only attributes what it can evidence.
Do I need the Advertiser API to use attribution?
No. Revenue and order attribution work from your order webhooks alone. The Advertiser API adds spend, clicks and impressions, which are needed for ROAS.
What is the attribution window?
The `oppref` click identifier is kept for 7 days in a first-party cookie, matching OpenAI’s click window. UTM and referrer attribution apply to the session of the order itself.
Can I export the attributed orders?
Yes, as a CSV file including order ID, amount, medium, method and evidence, from the Health screen of the app.
Related guides
Measure the ChatGPT channel this week
Free during early access while we onboard the first stores. Leave your email and we send the install link when your spot opens.