Connect ChatGPT Ads and Compare Ad Spend With Sales
Use this guide when you run paid ads in ChatGPT and want their costs beside recorded sales. You need an eligible OpenAI Ads Manager account with Advertiser API access. The connection uses an Advertiser API key rather than a sign-in callback.
Instructions reviewed
Before You Start
- Be an owner or admin of the Attriboo workspace.
- Install the Attriboo script on your published website and confirm a visit arrives.
- Connect a supported payment provider and check the checkout flow you use.
- Use one ChatGPT ad account per website. Its currency must match the website. The importer supports USD, EUR, GBP, CAD, AUD, NZD, CHF, SEK, NOK, DKK, BRL, MXN and SGD.
1. Create the Advertiser API Key
Open your OpenAI Ads Manager account, then Settings. Create an Advertiser API key for that ad account. Keep the value private. This is different from the API key used to call OpenAI models and different from your ChatGPT password.
If API key creation or advertising access is not available for your account, check OpenAI’s account eligibility and permissions. Attriboo cannot grant access. You can use the daily CSV route described below if you have reporting exports.
2. Connect the Account in Attriboo
Find this setting
- Setup
- Import ad spend
- Connect ChatGPT Ads
- Open Your Website in Attriboo
Choose the website that receives the ad traffic. Open Setup and find Import ad spend.
- Open Connect ChatGPT Ads
Paste your Advertiser API key into the password field. The key is stored encrypted on the server and is not returned in dashboard state.
- Select Connect and Import Costs
Attriboo checks the account and currency, reads its campaign report, then saves the connection. Wait for the import result. An empty report can be valid if there is no delivery in the selected dates.
- Check the Last Successful Sync
The connected account name, currency and last successful sync appear in Setup. Use Sync costs to retry or refresh. An error message means you must resolve the stated issue before relying on the import.
3. Label Paid ChatGPT Ad Links
Use these parameters on the destination URL for each ad. Replace the example campaign value with the actual campaign ID, such as cmpn_123. Keep the same ID on every ad belonging to that campaign. A consistent exact campaign name also works once a tagged visit is recorded, but IDs avoid renamed or shared campaign names.
The paid medium is essential. With source chatgpt and medium cpc, new visits appear as ChatGPT Ads in Paid Ads. Ordinary untagged ChatGPT referrals remain AI referrals. Past visits are not relabeled automatically. Check that redirects keep the parameters on the final landing page.
https://yourwebsite.com/offer?utm_source=chatgpt&utm_medium=cpc&utm_campaign=cmpn_YOUR_CAMPAIGN_ID4. Compare Campaign Costs With Recorded Revenue
Open Dashboard → Where Is My Money Coming From? → Ad ROAS. Keep the website, dates and attribution model consistent. Find the campaign ID or recorded label and compare imported cost with revenue credited to its recorded visits.
The first import requests the previous 90 completed UTC days. The daily job and Sync costs refresh the previous 30 completed UTC days. Current-day spend is excluded. Spend can be revised by OpenAI, so compare the same completed UTC dates in Ads Manager. Clicks, impressions and costs are not purchase records.
Revenue still depends on supported payments and matching to recorded visits. This connection does not import OpenAI-attributed purchases into Attriboo’s payment ledger or claim to measure view-through or cross-device sales.
Use a Daily CSV When You Cannot Connect the API
In Ads Manager, select the campaign reporting table, set the dates, then use the three-dot menu → Export → Export daily values. Use daily rows rather than cumulative totals.
Map the export to Attriboo’s ad-cost template: date, source, campaign, amount, currency. Use source chatgpt, a consistent campaign ID or label, YYYY-MM-DD dates, decimal costs and your website currency. Preview the rows in Setup → Import CSV files, then save only after checking them. A raw Ads Manager CSV needs this mapping.
Do not import the same campaign through both the native connection and CSV or manual costs. Attriboo blocks overlapping labels; remove the overlap or choose a distinct campaign ID before retrying.
date,source,campaign,amount,currency
2026-10-29,chatgpt,cmpn_example,12.50,USDFix a Connection or Stop Importing
- Access denied: check the Advertiser key, ad-account access and API eligibility. Do not paste a model API key.
- Currency mismatch: choose an Attriboo website in the same currency. Costs are not converted.
- Campaign label collision: remove overlapping manual or CSV costs, or use distinct campaign IDs. No costs from the failed report window are replaced.
- Expired or revoked key: use Replace API key in Setup.
- Disconnect stops updates and removes Attriboo’s stored key. Imported daily costs remain dated. Revoke the key in OpenAI Ads Manager to invalidate it there as well.
You are done when
Setup shows a successful sync. A tagged paid ChatGPT visit appears under Paid Ads, and its recorded campaign can be compared with dated imported costs.
Still need a hand?
Send a question without needing to sign in.