1. Overview
Each row of your input table becomes one conversion event. Events travel in batches of up to 1,000, and personal identifiers — email addresses, phone numbers, customer IDs, names — are normalized and hashed with SHA-256 inside Nekt, so the raw values never leave your Lakehouse.2. Important considerations
- Deduplication. If the same conversion also reaches OpenAI through the pixel, send the same value in the pixel’s
event_idand in this destination’sevent_id, with the same Pixel ID. OpenAI keeps the first event it receives and ignores the later duplicate. - Match quality. Every identifier you map raises the chance OpenAI can attribute the conversion. Mapping the email address alone already works; adding phone number, customer ID, name and location improves it.
- Batch behavior. OpenAI rejects an entire batch when a single event in it is invalid. With Continue on error enabled, Nekt splits a rejected batch in half and retries until the invalid rows are isolated, so a single bad row never costs you the 999 good ones travelling with it.
3. Configuring the destination
- In the Destinations tab, click the “Add destination” button at the top right of your screen. Then select the OpenAI Ads - Conversions option from the list of connectors.
- Click Next and you’ll be prompted to add your access.
1
Open Ads Manager
Sign in at ads.openai.com with the ad account the conversions belong to.
2
Go to Conversions
Open the Conversions tab.
3
Copy the Pixel ID and issue a Conversions API key
Take the Pixel ID of the data source you are measuring, then create a Conversions API key and copy its value. Both must belong to the same ad account.
This is not the same credential as the Ads API key used by the OpenAI Ads source and by the Custom Audiences destination. The Conversions API has its own key, issued from the Conversions tab.
- Conversions API key: the key you copied from the Conversions tab.
- Pixel ID: the Pixel ID the conversions are attributed to.
- Default action source: where the conversion happened, used for rows whose table has no column for it. Choose Offline for conversions closed in a CRM, Physical store for in-person sales, Phone call for telesales.
- Default source URL (optional): the URL recorded for web conversions when the table has no column for it. OpenAI requires it whenever the action source is Website.
- Validate only (optional): send the events for validation without storing them, to confirm the column mapping before the first real run.
- Continue on error: keep syncing the remaining rows after OpenAI refuses one, isolating the invalid rows instead of failing the run.
- Dry run: log what would be sent without sending anything.
- Click Next.
4. Select your data to send
-
Select the layer and then the table holding the conversions you want to send.
Tip: The table can be found more easily by typing its name.
- Click Next.
5. Map your data to the destination
Required fields
The supported event types are
order_created, checkout_started, items_added, contents_viewed, page_viewed, lead_created, appointment_scheduled, registration_completed, subscription_created, trial_started and custom. Native app events also support app_installed and app_opened.
Conversion value
Matching the conversion to a person
Every field below is optional, and every one you map raises the chance OpenAI attributes the conversion. The first five are hashed by Nekt before being sent.Other fields
Once the fields are mapped, click Next.
6. Configure your OpenAI Ads Conversions destination
- Describe your destination for easy identification within your organization. You can inform things like what data it brings, to which team it belongs, etc.
- To define your Trigger, remember the 7-day window: a daily trigger keeps every conversion inside it comfortably.
- Click Done.
Check your new destination!
- Once completed, you’ll receive confirmation that your new destination is set up.
- You can view it on the Destinations page and trigger the pipeline manually with the refresh icon. Once it has run, the conversions appear in the reporting of OpenAI Ads Manager, attributed to the campaigns that earned them.
If you encounter any issues, reach out to us via Slack, and we’ll gladly assist you!