ChatGPT Ad Platform Capabilities
The latest updates regarding ChatGPT Ads technical updates and capabilities features.
oppref Click ID.Client-Side JavaScript Pixel SDK
Include CSP exceptions for bzrcdn.openai.com and bzr.openai.com.
<script>
(function (w, d, s, u) {
if (w.oaiq) return;
var q = function () { q.q.push(arguments); };
q.q = []; w.oaiq = q;
var js = d.createElement(s); js.async = true; js.src = u;
var f = d.getElementsByTagName(s)[0];
f.parentNode.insertBefore(js, f);
})(window, document, "script", "https://bzrcdn.openai.com/sdk/oaiq.min.js");
oaiq("init", { pixelId: "<YOUR-PIXEL-ID>" });
oaiq("measure", "order_created", { type: "contents", amount: 49.99, currency: "GBP" });
</script>
Server-Side Conversions API (CAPI)
Endpoint at https://bzr.openai.com/v1/events. Pass preserved oppref for click attribution.
curl -X POST "https://bzr.openai.com/v1/events?pid=<PIXEL-ID>" \
-H "Authorization: Bearer <API-KEY>" \
-H "Content-Type: application/json" \
--data '{
"validate_only": false,
"events": [{
"id": "order_12345",
"type": "order_created",
"timestamp_ms": 1773892800000,
"oppref": "<CHATGPT_CLICK_ID>",
"action_source": "web",
"data": { "type": "contents", "amount": 49.99, "currency": "GBP" }
}]
}'
Advanced Matching Options
OpenAI measurement supports Automatic Advanced Matching (enabled by default) to automatically detect hashed form input fields on the web page.
In addition, Manual Advanced Matching is supported via both the JS Pixel SDK and CAPI payload. This allows advertisers to explicitly transmit normalized, SHA-256 hashed customer identifiers—such as email_sha256 or phone numbers—to significantly improve conversion attribution match rates without compromising privacy.
Standard Event Mapping Specification
| OpenAI Event Name | Event Type Classification | Meta / Google Equivalent Mapping |
|---|---|---|
page_viewed | contents | Page View |
contents_viewed | contents | View Content |
items_added | contents | Add To Cart |
checkout_started | contents | Initiate Checkout |
order_created | contents | Purchase |
appointment_scheduled | customer_action | Schedule |
lead_created | customer_action | Lead |
registration_completed | customer_action | Complete Registration |
subscription_created | plan_enrollment | Subscribe |
trial_started | plan_enrollment | Start Trial |
Firing Custom Events
Send non-standard events using standard SDK payload syntax.
oaiq("measure", "custom_booking_step", { type: "customer_action", step_number: 2 });
LIMITATION NOTE: You cannot filter or generate reports on a specific custom event level inside Ads Manager reporting UI at this time. Custom events are ingested for attribution matching only. OpenAI also do not support an app SDK integration currently and instead relies on CAPI to send app install / in-app signals to a proxy web data source.
IMPORTANT: Campaign name, ad group name, and ad name macros are NOT SUPPORTED. Only dynamic numeric ID macros are supported. For MMP integrations, it is heavily recommended to append the Click ID macro in order for attribution to take place.
| Supported Macro | Macro Output Description | Example Usage Parameter |
|---|---|---|
{oppref} | Unique OpenAI ChatGPT Click ID (Critical for CAPI & Pixel) | clickid={oppref} |
{campaign_id} | Unique numeric ID for the parent Campaign | utm_campaign={campaign_id} |
{ad_group_id} | Unique numeric ID for the Ad Group | oai_ag={ad_group_id} |
{ad_id} | Unique numeric ID for the specific Ad unit | utm_content={ad_id} |
{ad_account_id} | Unique numeric ID for the OpenAI Ad Account | account={ad_account_id} |
Recommended Destination URL Format
https://yourdomain.com/?utm_source=chatgpt&utm_medium=cpc&utm_campaign={campaign_id}&clickid={oppref}
| Area | Missing Capability | Future Expectation | Context & Rationale |
|---|---|---|---|
| Reporting | Granular Geo Reporting (< Country) | Very Likely | Unless you target by a specific location, reporting is not currently available on a geo level but expected to come for MMM purposes especially. |
| Reporting | Search / Context Hint Term Logs | Unlikely | Raw search prompts are withheld to protect user privacy. OpenAI is unlikely to budge here but may eventually provide aggregated data to optimise with. |
| Reporting | Impression Share Data | Likely | Standard auction density and impression share metrics would be more available once the platform matures. |
| Reporting | Conversion Parameter Events | Unlikely | Whilst it is quite easy to pass data to OpenAI, outside of Revenue for ROI, unlikely this level of reporting will show up. |
| Reporting | Toggleable Attribution Windows | Likely | Attribution is currently fixed to a 30-day last-click window but expected to change over time. |
| Reporting | Post Impression Attribution | Very Likely | Measurement of ad effectiveness beyond a click, which is no doubt in the works. |
| Targeting | Dedicated Mobile App Install Campaigns | Very Likely | Integrations with AppsFlyer and Adjust lay the groundwork for app install optimisation objectives. |
| Targeting | Deep Linking Support | Likely | Native deep linking may require more technical SDK setup but MMP workarounds would be adopted. |
| Targeting | Pixel / CAPI Audiences | Likely | Ability to build audiences based on the Pixel / CAPI is a standard feature for an ad platform. |
| Targeting | Audience Remarketing & First-Party Lists | Very Likely | Customer lists based on hashed PII already supported, the move to use 1P Pixel / CAPI is the outstanding piece. |
| Testing | A/B Testing & Lift Testing | Likely | Split testing context hints and ad creative variants is expected as self-serve capabilities expand. |