Supported Conversion Events
Chapter 10 — Supported Conversion Events
OpenAI publishes a fixed taxonomy of standard event names. Anything outside the taxonomy uses the custom event with a custom_event_name.
The taxonomy
| Event name | Data type | Use for |
|---|---|---|
page_viewed | contents | A user lands on or views an important page. |
contents_viewed | contents | A user views a specific product, listing, article, or content unit. |
items_added | contents | A user adds one or more items to cart, bundle, or selection. |
checkout_started | contents | A user starts checkout. |
order_created | contents | A purchase is completed. |
lead_created | customer_action | A user submits a lead form or requests contact. |
registration_completed | customer_action | A user finishes account or event registration. |
appointment_scheduled | customer_action | A user books a meeting, demo, or consultation. |
subscription_created | plan_enrollment | A paid subscription starts. |
trial_started | plan_enrollment | A free trial starts. |
custom | custom | Anything outside the standard taxonomy. |
Use page_viewed vs contents_viewed
Use page_viewed for page loads. Use contents_viewed when a user views a specific product or content item, including interactions that happen after the page has loaded.
A Shopify PDP load = page_viewed. A user clicking a variant swatch and triggering an in-page modal that swaps the displayed product = contents_viewed.
Minimum stack for Shopify
For a Shopify brand running ChatGPT Ads, the mandatory event stack is:
page_viewedcontents_vieweditems_addedcheckout_startedorder_created
Without order_created, attribution is undefendable. Without the upper-funnel events, optimisation is undefendable. The five together form the minimum viable measurement loop.
For brands running subscription or trial-based offers, add subscription_created and trial_started (plan_enrollment shape). For lead-gen offshoots (e.g. quiz funnels), add lead_created.
Custom event naming rules
- Lowercase letters, numbers, underscores, dashes only.
- 1–64 characters.
- Cannot reuse a built-in event name.
Use a custom event when no standard event fits. Don’t use one when a standard event does — standard events benefit from OpenAI’s optimisation logic in ways custom events do not.