Skip to guide
Docs & Help
Ctrl / ⌘ K
Campaigns and AI traffic

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

  1. Setup
  2. Import ad spend
  3. Connect ChatGPT Ads
  1. Open Your Website in Attriboo

    Choose the website that receives the ad traffic. Open Setup and find Import ad spend.

  2. 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.

  3. 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.

  4. 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.

4. 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.

Attriboo CSV Example
date,source,campaign,amount,currency
2026-10-29,chatgpt,cmpn_example,12.50,USD

Fix 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.

Open support form