1. Overview
Each row of your input table is one product variant to update. Rows are grouped by parent product before being sent, and a variant that appears twice in the same run is sent once, with the last row winning.2. Important considerations
- Enabled per account. The product feed API is switched on by OpenAI for each ad account. If the destination reports that the feed API is unavailable, ask your OpenAI representative to enable it for the account.
- Acceptance is not delivery. OpenAI acknowledges the update as accepted by feed processing; the change then propagates to serving asynchronously. Marking a product in stock does not by itself make it serve — the product, campaign, ad group and ad still have to meet the normal serving requirements.
- Prices are integers. Every monetary value in OpenAI Ads is an integer in the currency’s minor unit:
8999means R$ 89,99. If your column holds a decimal, add theto_minor_unitstransform to the mapping and Nekt converts 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 - Product Feed 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 feed is linked to.
2
Go to Settings
Open the Settings tab and issue an API key, then copy the value.
3
Find the feed ID
Take the ID of the product feed you want to keep up to date.
This is not the same credential as an OpenAI API key from
platform.openai.com. The Ads API uses its own key, issued from Ads Manager, and each key is tied to a single ad account.- Ads API key: the key you copied from Ads Manager.
- Feed ID: the product feed to update. It must be linked to the same ad account as the key.
- Default currency: the ISO 4217 currency code used for prices when your table has no currency column, such as
BRL. - Continue on error: keep syncing the remaining rows after OpenAI refuses one. When off, the run stops at the first refused row.
- Dry run: log what would be written without writing anything.
- Click Next.
4. Select your data to send
-
Select the layer and then the table holding the products you want to keep up to date.
Tip: The table can be found more easily by typing its name.
- Click Next.
5. Map your data to the destination
Map at least one of
title, price_amount or availability. A row carrying only the identifiers has nothing for OpenAI to change and is skipped.6. Configure your OpenAI Ads Product Feed 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, consider how quickly a price change or a stockout has to reach your ads.
- 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. Use your normal feed and campaign monitoring in Ads Manager to confirm the change reached serving — the acceptance response carries no completion timestamp.
If you encounter any issues, reach out to us via Slack, and we’ll gladly assist you!