Track OpenAI Ads within UTMSimple and trigger Events Track OpenAI Ads within UTMSimple and trigger Events You can track ChatGPT Ads conversions within UTMSimple without adding OpenAI's pixel snippet yourself. UTMSimple loads the OpenAI Ads Measurement Pixel , initializes it with your Pixel ID, and fires a page_viewed event on load. Usage is straightforward. You only need your Pixel ID from the Conversions tab in OpenAI Ads Manager. Create a global variable named openai_pixel_id and assign your Pixel ID to it before UTMSimple loads: If openai_pixel_id is not defined, OpenAI tracking stays off — same pattern as fb_pixel_id for Facebook. After that, UTMSimple will: Load the OpenAI measurement SDK Initialize the pixel with your Pixel ID Automatically send a page_viewed event Store openai_pixel_id as a HandL cookie (available for form fields and attribution data) Optional: Debug mode While testing your integration, enable console logging from the OpenAI SDK: Open the browser console to inspect pixel activity. Turn this off in production. Trigger conversion events To send conversion events (leads, purchases, checkouts, etc.), use HandL.sendOpenAIEvent() : HandL.sendOpenAIEvent(eventName, eventProps, eventOptions); Argument Required Description eventName Yes A supported standard event name , or custom eventProps No Event data (type, amount, currency, contents, etc.) eventOptions No Delivery options such as event_id for deduplication Example events Lead generation HandL.sendOpenAIEvent('lead_created', { type: 'customer_action', }); HandL.sendOpenAIEvent('registration_completed', { type: 'customer_action', }); Commerce HandL.sendOpenAIEvent('items_added', { type: 'contents', amount: 2599, currency: 'USD', contents: [ { id: 'sku_123', name: 'Starter bundle', content_type: 'product', quantity: 1, amount: 2599, currency: 'USD', }, ], }); HandL.sendOpenAIEvent('checkout_started', { type: 'contents', amount: 2599, currency: 'USD', contents: [ { id: 'sku_123', name: 'Starter bundle', content_type: 'product', quantity: 1, }, ], }); HandL.sendOpenAIEvent('order_created', { type: 'contents', amount: 2599, currency: 'USD', contents: [ { id: 'sku_123', name: 'Starter bundle', content_type: 'product', quantity: 1, }, ], }); Subscriptions and trials HandL.sendOpenAIEvent('subscription_created', { type: 'plan_enrollment', plan_id: 'pro_monthly', amount: 2000, currency: 'USD', }); HandL.sendOpenAIEvent('trial_started', { type: 'plan_enrollment', plan_id: 'pro_trial', }); Custom events For custom events, use custom as the event name and set custom_event_name in the third argument: HandL.sendOpenAIEvent( 'custom', { type: 'custom', amount: 12999, currency: 'USD', plan_id: 'enterprise_annual', }, { custom_event_name: 'quote_requested', event_id: 'quote_req_123', } ); Note: Put custom_event_name and event_id in the third argument ( eventOptions ), not inside eventProps . Deduplicate browser and server events If you also send conversions from a server-side integration, reuse the same event_id in both places: HandL.sendOpenAIEvent( 'order_created', { type: 'contents', amount: 2599, currency: 'USD', }, { event_id: 'order_12345', } ); UTMSimple generates an event ID automatically when you omit one, which is fine for client-only tracking. What UTMSimple handles automatically When the OpenAI pixel is enabled, the SDK handles: Capturing oppref from the landing page URL Storing oppref in a first-party __oppref cookie Adding the current page origin as source_url Timestamping and batching events You do not need to configure these manually. UTMSimple events You can listen for pixel lifecycle events in your own code: document.addEventListener('UTMSimpleOpenAIInitCompleted', function() { console.log('OpenAI pixel initialized'); }); document.addEventListener('UTMSimpleOpenAIEventCompleted', function() { console.log('OpenAI event sent'); }); Tips Use integer values for amount and quantity (e.g. cents, not dollars). Use only the documented fields inside contents[] . Keep handl_openai_debug = true while testing, then remove it in production. For the full list of supported events and payload shapes, see the OpenAI supported events docs . Related docs Track Facebook within UTMSimple and trigger Events OpenAI JavaScript Pixel