Section 2 — The Measurement Stack · Last verified: MAY 2026

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 nameData typeUse for
page_viewedcontentsA user lands on or views an important page.
contents_viewedcontentsA user views a specific product, listing, article, or content unit.
items_addedcontentsA user adds one or more items to cart, bundle, or selection.
checkout_startedcontentsA user starts checkout.
order_createdcontentsA purchase is completed.
lead_createdcustomer_actionA user submits a lead form or requests contact.
registration_completedcustomer_actionA user finishes account or event registration.
appointment_scheduledcustomer_actionA user books a meeting, demo, or consultation.
subscription_createdplan_enrollmentA paid subscription starts.
trial_startedplan_enrollmentA free trial starts.
customcustomAnything 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:

  1. page_viewed
  2. contents_viewed
  3. items_added
  4. checkout_started
  5. order_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.