Connect OpenAI Ads (ChatGPT ads) to your Shopify store
By the HonestTag team ยท Published October 16, 2026
HonestTag sends each verified Shopify purchase to OpenAI Ads from its server through OpenAI's Conversions API, so ChatGPT ads can be measured and optimized on real orders. You connect it with two values from OpenAI Ads Manager, a Pixel ID and a Conversions API key, plus an optional Ads API key that lets HonestTag read your spend and set up its four purchase goals. This page lists what you need, the exact steps, what is sent and read, and how to check it works.
What you need
- An OpenAI Ads Manager account at ads.openai.com.
- A Pixel ID and a Conversions API key. OpenAI's Conversions API page says: "You can provision a Pixel ID and Conversions API key from the conversions tab in Ads Manager." HonestTag sends from its server, and OpenAI's conversion tracking guide says "A server-only integration still needs a Pixel ID, but does not require installing the browser Pixel."
- An Ads API key (optional). OpenAI's quickstart says: "Issue an API key in the Settings tab of your Ads Manager account." OpenAI says "Each Ads API key is scoped to one ad account", and it is a different key from the Conversions API key, of which OpenAI says: "Use this key only to send conversion events; do not expose it in browser code." HonestTag needs it to read spend and to create its four goals. Use the ad account that owns the pixel.
- Pixel and Conversions API access turned on for your account. OpenAI's partner setup page says "Brand updates, pixel management, and Conversions API key creation must be enabled for the client account" and points to "your OpenAI partner representative" when they are not.
- A paid HonestTag plan for delivery. The free Mirror does not deliver purchases or create goals. You can save the keys on the Mirror; the save still sends OpenAI the one validation-only test described below, which OpenAI does not store. Delivery starts when you move to a paid plan, and the four goals are created then if an Ads API key is stored. See pricing.
Connect OpenAI Ads, step by step
- Copy the Pixel ID and Conversions API key. In OpenAI Ads Manager, open the conversions tab and copy the Pixel ID and a Conversions API key for your store. OpenAI says: "You can provision a Pixel ID and Conversions API key from the conversions tab in Ads Manager."
- Optionally issue an Ads API key. For spend reads and the four HonestTag goals, issue an API key in the Settings tab of the same Ads Manager account. Each Ads API key belongs to one ad account, so it must be the account that owns the pixel.
- Open the OpenAI Ads card. In your Shopify admin, open the HonestTag app, go to Setup, and on the OpenAI Ads card choose Paste Pixel ID and API keys.
- Paste and save. Paste the Pixel ID and the Conversions API key, paste the Ads API key or leave that field blank, and save. HonestTag sends OpenAI a validation-only test event first and saves nothing if OpenAI refuses the Conversions API key.
- Check the goals line. On a paid plan with an Ads API key, the card lists the four conversion events it created or adopted in your account. Use HonestTag_Purchase as the optimization event of a conversion-optimized campaign.
When you save, HonestTag first sends OpenAI one test purchase with validate_only set, which OpenAI describes as "Validates events without saving them when true." If OpenAI refuses it, nothing is saved. With an Ads API key, HonestTag also confirms the key can open your ad account and read its reporting. A new Ads API key that fails that check is not stored. If an earlier key is stored, spend reads continue with it; if not, the card says purchases are delivering while spend reads stay off. Leaving the Ads API key field blank on a later save removes a key stored earlier and turns spend reads off.
The four purchase goals in OpenAI Ads
With an Ads API key, on a paid plan, HonestTag creates four conversion events on your pixel's data source, or uses ones you already have with exactly the same name and event:
HonestTag_Purchase: every order, counted on OpenAI's standardorder_createdevent.HonestTag_Purchase_NC: new customers, counted on the custom eventhonesttag_purchase_nc.HonestTag_Purchase_RC: returning customers, onhonesttag_purchase_rc.HonestTag_Purchase_FCNC: new customers whose first recorded ad click was on a ChatGPT ad, onhonesttag_purchase_fcnc.
Each is created with a 30-day click attribution window, the value OpenAI's guide gives ("Use 30 for this setup"). A same-named event you already have is used with its own window, unchanged. The custom event names are lowercase because OpenAI's API "converts it to lowercase." If an event with one of these names already counts a different event, HonestTag leaves it alone, does not create a second one, and names it on the card.
Which one to bid on: OpenAI's guide says "Custom events cannot be used for conversion optimization." So HonestTag_Purchase is the only one of the four a conversion-optimized campaign can use. Attach the other three to campaigns to measure new and returning customers. OpenAI also says a conversion-optimized campaign's event "cannot be changed after creation", so pick it before you create the campaign. For how the four goals are counted on other platforms, see the HonestTag conversion actions.
What HonestTag sends to OpenAI
For each eligible order HonestTag sends one request to bzr.openai.com/v1/events for your Pixel ID, carrying integration_source: honesttag, as OpenAI asks of integrations that send "on behalf of advertisers." The request holds:
- One
order_createdevent withaction_sourceweb, the order time, an event ID that is a keyed hash of the order (the same on every retry), the order value in minor units (OpenAI's example: "use4200for $42.00") with its currency code, up to 10 products (product ID, title, quantity and unit price), and asource_url: the order's landing page, else its order status page, else your storefront address. - One custom event for each of the NC, RC and FCNC goals the order qualifies for, as listed above, with the same details and its own event ID. HonestTag_Purchase is the
order_createdevent itself. - Matching data, each only when the order has it: the ChatGPT ad click reference (
oppref) when HonestTag's pixel recorded one on the landing page, passed unchanged as OpenAI asks; SHA-256 hashes of the buyer's email and phone, normalized the way OpenAI specifies (email trimmed and lowercased; phone reduced to its digits with the country code kept, a leading + and leading zeroes removed, and not sent unless 8 to 15 digits remain); a SHA-256 hash of HonestTag's random visitor ID as an external ID; and the IP address and user agent Shopify recorded on the order.
OpenAI's page notes that "Unlike the pixel, the API does not capture oppref for you." HonestTag's own first-party pixel captures it from the landing page URL, so a server-side purchase can still carry the click. An order with no click reference, no email and no phone is not sent. OpenAI requires events to be "within the last 7 days", so HonestTag does not send an older one. A batch is all or nothing: OpenAI says "If one event in the batch fails, the full batch fails."
Consent rules are the same as for every destination and are stated on the server-side delivery page: for EU, EEA, UK and Swiss orders a conversion with no visitor record is not sent, unless you asked HonestTag in writing to turn that gate off because you collect consent somewhere else (it cannot be switched off from the app). A bundle sold through Shopify's bundles feature is sent as one product, and the order value comes from the order total, net of tax.
What HonestTag reads, and what it never touches
- Reads (with an Ads API key): daily spend, clicks and impressions for the ad account and its campaigns, from OpenAI's Insights reporting. Your spend appears in The Gap next to your Shopify orders.
- Does not read: a conversion count from OpenAI. HonestTag compares OpenAI spend with your store's own orders, not with an OpenAI-reported purchase figure.
- Writes: purchase events to your pixel and, on a paid plan with an Ads API key, the four conversion events above.
- Never touches: campaigns, ad groups, ads, budgets, bids, targeting or your brand settings, and never edits or deletes a conversion event you made.
Avoid counting a purchase twice
OpenAI's rule, from its Conversions API page: "For deduplication, OpenAI uses your Pixel ID, event_name, and id. OpenAI uses the first event it receives for a matching key and ignores later duplicates." HonestTag's event ID is a keyed hash of the order that only HonestTag's server can compute, and HonestTag does not give it to any browser tag or other app. So if the OpenAI Measurement Pixel on your store, or another app, also sends order_created to the same Pixel ID, its event ID differs and OpenAI counts two purchases for one order. Keep one purchase source per Pixel ID: turn the other one's purchase event off. HonestTag's three custom events carry their own names, so they cannot collide with another tool's purchase. The duplicate purchase events guide shows how to find every purchase source on a store.
Refunds, edits and which orders are sent
- Refunds: OpenAI's Conversions API lists no refund or retraction event, so HonestTag sends none. The refund is recorded in the order's proof as "refund recorded; HonestTag sends OpenAI Ads no refund or retraction event".
- Order edits and upsells: HonestTag sends OpenAI no correction, so the value sent at purchase time stands.
- Which orders: orders from your online store are sent. Point of sale orders and subscription renewals are not sent to OpenAI Ads; the first order of a subscription is an online store checkout and is sent. Orders from other apps and sales channels are kept out unless you switch them on; the exact rules, including headless storefronts, are in which orders are sent.
How to check it works
- On the card. After you save, the OpenAI Ads card shows the pixel, whether spend reads are on, and the goals line.
- In HonestTag order proof. After the next online order, open it in the HonestTag app. The proof shows OpenAI Ads as the platform, the delivery status, the event ID and which goals were sent, by goal name: for example HonestTag_Purchase "(sent as order_created)" and HonestTag_Purchase_NC "(OpenAI stores it lowercase)". OpenAI does not say what a success response contains, so "ok" means OpenAI accepted the request.
- In OpenAI. OpenAI's recent-events check returns "a sample of recent events from roughly the last 15 minutes", and "server events use
server_to_server". It is an Ads API call (GET /v1/conversions/events), so it needs the Ads API key, and is described in OpenAI's troubleshooting guide. The save-time test does not appear there: "Validation-only requests do not appear in event monitoring."
Error messages and what to do
- "The Conversions API key has a space or line break in it." Copy the key again from Ads Manager and paste it with no spaces.
- "Paste the Pixel ID from the conversions tab in Ads Manager." The Pixel ID field was empty, or was not 4 to 64 letters, digits, underscores or hyphens.
- "OpenAI did not accept the Conversions API key for pixel ... Nothing was saved." The validation test sent with the Conversions API key failed, and nothing was saved. The parentheses hold HonestTag's error, which includes OpenAI's own message when OpenAI sent one.
- An access error (HTTP 403 or 404). OpenAI turns on brand, pixel and Conversions API key access for each advertiser through an OpenAI partner representative. This error means that access is not on yet for your account. It is not a HonestTag review.
- "Ads API key did not authorize GET /ad_account" or "did not authorize GET /ad_account/insights". OpenAI answered HTTP 401 or 403 to the Ads API key, so it is wrong, revoked or lacks access. The new key is not stored. On a paid plan purchases keep delivering. Spend reads continue with an earlier stored key, or stay off until a working key is saved.
- "... timed out ..., so the key was never judged. Try saving again". OpenAI did not answer the Ads API check in time. Nothing is wrong with the key as far as HonestTag knows; save again.
- "the Ads API key's ad account has no conversion source for pixel ..." The Ads API key's ad account has no conversion source for that Pixel ID. The usual cause is a key from an account that does not own the pixel; also check the Pixel ID for typos.
- "... already exists in OpenAI Ads counting a different event". One of your conversion events already uses a HonestTag goal name for a different event. HonestTag left it as it is and did not create a second event with the same name.
- "... could not be created (...)". One of the four goals was not created; the parentheses hold the error from the create call, including OpenAI's message when it sent one. The other goals are kept, and saving the card again retries.
- HTTP 401 on delivery. OpenAI no longer accepts the Conversions API key. HonestTag marks the connection for reconnecting; paste a new key on the card.
Disconnecting
Disconnect from the OpenAI Ads card. Delivery and spend reads stop at once and the stored keys are deleted. Everything already measured stays, per the published retention schedule. The conversion events HonestTag created stay in your OpenAI Ads account.
Frequently asked questions
Can I connect ChatGPT ads to Shopify without a developer?
Yes. You copy a Pixel ID and a Conversions API key from OpenAI Ads Manager and paste them into the OpenAI Ads card in the HonestTag app. There is no code to add to your theme, and OpenAI says a server-only integration does not need its browser Pixel installed.
Do I need both OpenAI keys?
No. On a paid plan, the Conversions API key is enough to deliver purchases. The Ads API key is optional: HonestTag uses it to read your OpenAI spend and to create the four HonestTag conversion events. Without it, purchases are still delivered and The Gap shows OpenAI Ads without a spend column.
Which event can a ChatGPT ads campaign optimize on?
HonestTag_Purchase, which counts the standard order_created event. OpenAI says custom events cannot be used for conversion optimization, so HonestTag_Purchase_NC, HonestTag_Purchase_RC and HonestTag_Purchase_FCNC are for measurement only.
Will OpenAI count a purchase twice if I also run the OpenAI pixel?
It can. OpenAI matches duplicates on the Pixel ID, the event name and the event ID, and HonestTag's event ID is a keyed hash of the order that no browser tag or other app is given. If the OpenAI pixel or another app also sends order_created to the same Pixel ID, turn that purchase event off so each order reaches OpenAI once.
Does HonestTag send refunds to OpenAI Ads?
No. OpenAI's Conversions API lists no refund or retraction event, and a later event with the same ID is ignored rather than treated as a correction. HonestTag records the refund in the order's proof instead.
Does HonestTag change my OpenAI campaigns?
No. HonestTag sends purchase events and, with an Ads API key on a paid plan, creates its four conversion events. It never creates, edits or pauses campaigns, ad groups, ads or budgets, and never changes a conversion event you made.
Related: every HonestTag integration, server-side delivery, first-click attribution, which decides the FCNC goal, and first-party tracking.