← Back to glossary

Data Source

A data source is any external data connection an advertiser links to ChatGPT Ads Manager to power how ads are created, targeted, and measured, most often a product feed carrying your catalog's titles, prices, images, and availability. A data source is the input that feeds the system, separate from the ad unit itself, which ChatGPT assembles automatically from that data.

If you run commerce campaigns in ChatGPT, the quality of your data source decides which products can serve and what the generated ad actually says. Connect an incomplete or stale feed and eligible products silently drop out of answers, so you pay nothing but also appear nowhere.

What is a data source?

In ChatGPT Ads, a data source is the connected catalog or analytics feed that Ads Manager ingests, indexes, and turns into eligible product ads and conversion signals. The most common data source is a product feed: a structured file listing each item's ID, title, description, price, availability, image, and URL. A second kind is a measurement connection, such as linking Google Analytics 4 so OpenAI can optimize delivery and compare attribution.

Every data source has to carry the fields OpenAI's spec requires and mark which rows are eligible to advertise. Products without a complete description or an explicit eligibility flag get rejected, so a feed can connect cleanly and still serve nothing. OpenAI reads the file over a hosted URL or an SFTP connection, then refreshes it on a schedule you control.

A data source sits upstream of the product filter and the bid strategy: it defines what exists before any rule decides what runs. It is the same catalog many retailers already send to Google Merchant Center, remapped to OpenAI's field names. AirOps connects and enriches that feed so your data source stays complete and current.

Resources: See how AirOps runs and optimizes paid campaigns inside ChatGPT Ads.

How a data source works

A data source moves from raw catalog to serving ad through a fixed ingestion path, and each stage can silently drop products that are not ready.

  1. Connect: In the Feeds section of Ads Manager, you create a feed and choose how to send it: a manual file, a hosted URL, or an SFTP connection.

  2. Ingest: OpenAI fetches and reads the file, mapping your columns to its required fields and rejecting rows that miss anything mandatory.

  3. Flag eligibility: Each row's eligibility flag tells the system which products may advertise; the default is off, so unmarked items never serve.

  4. Index and match: Ads Manager indexes the eligible catalog and matches items to conversations that signal commercial intent.

  5. Refresh: On your schedule, OpenAI re-reads the source so prices, stock, and new products stay current; manual uploads expire and need re-sending.

The feed status tells you how many products are live and eligible to serve. It will not tell you if those products are the ones worth advertising; that judgment belongs to the product filter.

The importance of Data Source for marketers

Whether ChatGPT can recommend your products at all is a function of your data source, which makes feed quality a direct lever on pipeline from this channel. Treat the feed as ongoing campaign infrastructure that every answer reaches back into, so investment in its quality compounds.

  • It gates eligibility. A product missing a required field or an eligibility flag cannot serve, so a weak feed caps your reach before a single bid is placed, and you never see the impressions you lost.

  • It writes your ad copy. ChatGPT pulls the ad title and description straight from the feed, so sloppy SKU-style titles become the ad a shopper sees, with no separate copywriting step to fix it.

  • Stale data burns spend. If prices or stock drift out of date, you pay to send shoppers toward products that are mispriced or sold out, and the mismatch erodes trust in your brand.

Marketer use cases

  1. SEO managers use a data source to reuse their existing Google Shopping catalog as the feed that makes products eligible for sponsored answers in ChatGPT.

  2. Growth marketers use a data source to expand a whole catalog into ads at once, instead of hand-building a creative for every SKU.

  3. Demand gen leads use a data source to connect Google Analytics 4 so OpenAI can optimize delivery and compare attribution across channels.

Key concepts

Feed schema

The schema is the exact set of field names and formats OpenAI requires, and a row only ingests when every mandatory field is present and correctly typed; the feed can connect while individual rows silently fail.

Eligibility flag

The is_ads_eligible value on each row controls whether a product can advertise, and because it defaults to off, a connected feed can hold thousands of products that none of your ads can use until you set it.

Refresh cadence

How often OpenAI re-reads your source determines how fast price, stock, and new-product changes reach live ads, and a hosted URL or SFTP keeps that current where a manual upload goes stale and must be re-sent.

Benefits

  • Scale a full catalog into ChatGPT ads from one feed, without building creatives item by item.

  • Reuse the Google Shopping catalog you already maintain as the base for your ChatGPT feed.

  • Keep ads accurate by refreshing prices, stock, and new products straight from the source.

  • Control which products advertise through per-row eligibility flags.

  • Feed conversion data from Google Analytics 4 so OpenAI can optimize delivery.

Data Source best practices

  • Include your whole live catalog in the feed so eligibility is decided by rules, and the system never misses a product you meant to run.

  • Set is_ads_eligible explicitly on every row, because the default is off and unflagged products quietly fail to serve.

  • Connect by hosted URL or SFTP for standing campaigns, since manually uploaded items expire and have to be re-sent.

  • Write real product titles and descriptions, because ChatGPT turns them directly into the ad copy a shopper reads.

  • Map your fields to OpenAI's exact spec using its field names, so rows ingest cleanly instead of getting silently rejected.

  • Refresh on a daily snapshot so prices and stock in ads match your store.

Avoid treating your Google Merchant Center export as drop-in ready; OpenAI rejects Merchant Center XML and uses its own field names and eligibility flag, so a copy-paste feed can connect and still serve zero products.

Tools and technologies

AirOps: connects and enriches your product catalog into a ChatGPT-ready data source and manages the campaigns that run on it.

ChatGPT Ads Manager: holds the Feeds section where you create a data source, generate SFTP credentials, and see how many products are eligible.

Google Merchant Center: stores the structured product catalog most retailers reuse as the base feed, remapped to OpenAI's spec.

Getting started with Data Source

  1. Audit your catalog: This week, open your existing Google Shopping feed and check that every product has a complete title, description, price, image, and availability, with no placeholder or draft rows.

  2. Map to OpenAI's spec: Rename your columns to OpenAI's field names and convert values like price and availability to the formats its spec requires.

  3. Set eligibility: Add the is_ads_eligible flag to every row and turn it on for the products you actually want to advertise.

  4. Connect the source: In Ads Manager's Feeds section, create a feed and connect it by hosted URL or SFTP so it updates automatically.

  5. Verify and refresh: Confirm how many products ingested and are eligible, fix any rejected rows, and set a daily refresh so ads stay current as inventory changes.

Key takeaways

  • A data source is the catalog or analytics connection ChatGPT Ads ingests to generate product ads and measure campaign results.

  • A product feed is the most common data source, carrying each item's title, price, image, availability, and eligibility flag.

  • A product serves only when its row is complete and explicitly marked eligible, which defaults to off for every row.

  • Stale or malformed feeds silently drop products and push spend toward sold-out or mispriced items.

  • Connecting by hosted URL or SFTP and refreshing daily keeps live ads matched to real-time inventory.

Frequently asked questions about data sources

How is a data source different from a product filter in ChatGPT Ads?

A data source and a product filter do different jobs at different stages. The data source is the catalog or analytics feed you connect to Ads Manager; it defines the full universe of products and the fields that describe them. The product filter sits on top of that universe inside an ad group and narrows it to the subset of items allowed to serve, using rules against feed fields and custom labels. In plain terms, the data source says what exists and the filter says what runs. You can have a complete, healthy data source and still show almost nothing if the filter is too tight, and you can have a generous filter that still serves little if the underlying source is thin or full of ineligible rows. Think about them in order: get the source complete and eligible first, then use filters to shape which of those products each campaign promotes.

How often should I update my ChatGPT Ads data source?

Refresh it as often as your inventory and prices change, and for most retailers that means a daily snapshot. ChatGPT serves ads built from whatever was in the last successful read, so any gap between your real catalog and the connected source shows up directly in live ads. If you connect by a manual file upload, the stakes are higher because those items expire and simply stop serving until you re-send them. A hosted URL or an SFTP connection avoids that by letting OpenAI pull on a schedule you set, so a daily push keeps stock levels, prices, and new arrivals current without manual effort. Fast-moving catalogs with frequent price or stock swings benefit from more frequent updates; a small, stable catalog can tolerate less. The practical rule is to match your refresh cadence to the pace at which being wrong would cost you a sale or mislead a shopper.

Why does my data source show fewer eligible products than I uploaded?

Usually because connecting a feed and being eligible to advertise are two separate bars, and products clear the first without clearing the second. The most common cause is the eligibility flag: it defaults to off, so any row you did not explicitly mark as ad-eligible ingests fine yet never serves. The next cause is missing or malformed required fields, since a row without a complete description, a valid price format, or an allowed availability value gets rejected during ingestion. Out-of-stock items and products still under review also drop out of the eligible count even when the file itself is perfect. That is why the live product number in Ads Manager often sits well below your total catalog size. Work backward from the gap: check the eligibility flag first because it is the single biggest culprit, then validate field formats, then confirm stock and review status on the items you most want running.

Can I control which products in my data source actually get advertised?

Yes, and you control it at two levels. At the data-source level, the is_ads_eligible flag on each row is the master switch: set it to true only for the products you want available to ads, and leave it off for everything else. Because the default is off, you have to make this choice actively on every row; it does not happen on its own. At the campaign level, a product filter then narrows that eligible pool further, letting a given ad group promote only a slice of it, such as one product line or a seasonal range. So eligibility decides what can ever run, and filters decide what runs in each campaign. What you cannot do is hand-write a bespoke headline for a single product; ChatGPT builds the ad text from your feed fields, so the lever you actually have is the quality and accuracy of the titles and descriptions you supply.

What does a good data source look like for ChatGPT Ads?

A good data source is complete, correctly formatted, eligible, and fresh. Complete means every product carries all the required fields with real titles and descriptions instead of placeholders, because those fields become the ad a shopper reads. Correctly formatted means the file uses OpenAI's field names and value formats and a delivery method it accepts, so rows ingest without silent rejections. Eligible means the products you want running are explicitly flagged, so the live eligible count matches your intent instead of a fraction of it. Fresh means a hosted URL or SFTP keeps prices, stock, and new items current on a regular schedule. A useful benchmark is the ratio of eligible, serving products to your total catalog: if it sits far below what you intended, your feed is the bottleneck before your bids or budget are. Aim for that gap to reflect deliberate filtering, and investigate whenever it looks like accidental loss.