A product filter is an ad-group setting in ChatGPT Ads that selects which products from your uploaded product feed are eligible to appear in a given ad group's ads. Product filters shape the catalog side of a campaign, while context hints and geographic settings handle who actually sees the resulting ads.
If you run a feed-based campaign, product filters decide whether you promote your full catalog or carve it into focused ad groups you can budget and bid on separately. Skip them and every eligible product competes inside one group, so your best-margin items get no dedicated spend and your reporting blurs together.
Product filters operate at the ad-group level, where each filter sets a condition that an uploaded feed item must meet to be eligible for that group's ads. You pick a feed when building the ad group, apply filters that reference fields in the feed, and check the live product count Ads Manager shows before launch.
Matching runs against your feed's structured fields and any custom labels you add inside each item's ads_metadata, such as product_line or a bidding_tier value. A filter matching a custom label to a value selects every item carrying that label, so you can split one catalog into separate ad groups. The label only groups products and does not restrict delivery to a region or audience.
Product filters sit beside bid strategy, context hints, and geographic targeting as the levers of a feed campaign, and they are the only one that decides catalog eligibility. AirOps connects to your ChatGPT Ads account so you can see which products and prompts draw paid placements alongside your organic AI search coverage.
Resources: a field guide to ChatGPT ads targeting, creative specs, and policy rules
A product filter does its work during ad-group setup, turning your feed into the set of items a group can serve. The steps run in order inside Ads Manager.
Upload feed: Upload your product catalog as a feed through CSV, a hosted URL, or an SFTP connection, and let Ads Manager validate it.
Label items: Add custom labels inside each product's ads_metadata, such as product_line or bidding_tier, so you have values to filter on later.
Set filter: In the ad group, define one or more filter conditions that reference those fields or labels, and Ads Manager keeps only the items that match.
Check count: Review the live product count to confirm how many items passed the filter before you commit budget to the group.
Serve ads: Your ad template renders eligible products, and ChatGPT matches them to conversations where they fit.
The product count tells you how many items a group can serve, a signal that the filter is neither too broad nor empty. It does not tell you how often each product will appear, since conversation context and your bid decide delivery.
The real decision a product filter forces is how to spend a fixed budget across a catalog that almost never deserves equal investment. Feed campaigns have been among the strongest performers in ChatGPT Ads, and filters are how you point that performance at the products that earn it most. Nothing else in the campaign setup changes which products are in play.
Budget control: Filters let you isolate high-margin or seasonal products into their own ad groups, so you can fund and bid on them without subsidizing items you do not care about.
Cleaner reporting: Grouping products by filter means your clicks, CTR, and spend break down by the segments you actually manage, instead of pooling into one unreadable number that hides which segment is working.
Avoids wasted spend: Skip filtering and your whole catalog competes in one group, so low-value or out-of-stock items can soak up impressions and bury the products that actually convert.
SEO managers use a product filter to split a large catalog into themed ad groups that mirror the prompt clusters they already track organically.
Growth marketers use a product filter to concentrate budget on high-margin or best-selling products and keep low-priority items out of the same ad group.
Demand gen leads use a product filter to run seasonal or promotional product sets as their own ad groups they can turn on and off quickly.
Your product feed is the structured file of catalog items, carrying titles, prices, images, availability, and metadata, that every product filter reads from and depends on being accurate, complete, and current.
Custom labels you place in each item's ads_metadata, such as product_line or bidding_tier, give filters named values to match on when the standard feed fields are not specific enough to describe the product groups you want to run.
Eligibility is the set of products that pass a group's filters and can therefore be served in its ads, surfaced as the live product count that Ads Manager reports for you to confirm before launching the group and after any later filter change.
Direct budget toward your highest-margin products by isolating them in their own ad group.
Keep out-of-stock or low-value items out of ad groups so they do not waste impressions.
Scale a large catalog into ChatGPT Ads without building a separate campaign for every product line.
Read performance by segment, since clicks, CTR, and CPC break down per filtered ad group.
Reuse one feed across many ad groups by applying different filters to the same catalog.
Add custom labels to your feed before you build ad groups, so you have clean values to filter on from the start.
Keep each ad group's filter tied to one clear theme, such as a product line or margin tier, so budget and reporting stay legible.
Check the live product count after every filter change, because a typo in a label silently drops items or empties the group.
Refresh your feed on a schedule, since uploaded items expire and stale products stop being eligible to serve.
Mirror your filter structure to the prompt clusters you track, so paid groups map to the questions your buyers actually ask.
Use availability and price fields in filters alongside custom labels, so out-of-stock or clearance items drop out automatically.
Avoid building one giant ad group filtered to your entire catalog. It looks efficient, but it pools spend and reporting so tightly that you cannot tell which products earn their placements or fix the ones that fall flat.
AirOps: Connects to your ChatGPT Ads account so you can see which filtered products and prompts draw paid placements and manage on-brand ads next to your organic AI search work.
ChatGPT Ads Manager: OpenAI's console where you upload the product feed, build ad groups, and apply the product filters that set each group's eligible catalog.
Google Sheets: A practical way to build, label, and maintain the product feed file, including the ads_metadata custom labels your filters depend on, before you upload it.
Audit your catalog: This week, list the products you most want to promote and the attributes that separate them, such as margin, product line, or season. No budget or platform access is needed to map this.
Prepare the feed: Format your catalog to OpenAI's feed specification and add custom labels in each item's ads_metadata for the segments you identified.
Upload and validate: Load the feed into ChatGPT Ads Manager through CSV, hosted URL, or SFTP, and resolve any items flagged as not approved.
Build filtered ad groups: Create an ad group, select the feed, and apply filters so each group holds one coherent product set, then confirm the live product count.
Launch and read results: Set a bid strategy and budget per group, launch, and compare performance across your filtered groups to see which product sets earn placements.
A product filter is an ad-group rule in ChatGPT Ads that selects which feed products are eligible to serve.
You set filters by matching conditions against feed fields and the custom labels in each item's ads_metadata.
Eligibility is confirmed by the live product count Ads Manager shows before you launch a group.
The main risk is a mislabeled or overly broad filter that empties a group or wastes spend on weak products.
Leverage comes from mapping filtered ad groups to your highest-value products and the prompt clusters they match.
A product filter and context hints solve two different problems in the same campaign. The product filter decides which items from your uploaded feed are eligible to appear in an ad group, working only on your catalog. Context hints are the free-text descriptions you give ChatGPT about the conversations, topics, or situations where your products are relevant, and they influence which chats your ads get matched to. One controls supply, the set of products in play; the other influences demand, the moments those products can surface. You can apply a tight product filter and still write broad context hints, or the reverse, and they will not override each other. A useful way to keep them straight is this: if you are changing what you sell in a group, you are touching the filter, and if you are changing who should see it, you are touching the hints. Most feed campaigns need both set deliberately.
Update it whenever your catalog or priorities change, and review it on a regular cadence even when they do not. Uploaded feed items expire, so a feed left untouched will gradually lose eligible products and your filtered groups will quietly shrink. A practical rhythm is to sync the feed automatically through a hosted URL or SFTP so fresh data flows in, then audit your filters whenever you add a product line, run a promotion, or change which items you want to push. Check the live product count after each change, since that number is the fastest signal that a filter is still catching the items you expect. If you sell seasonal or fast-moving inventory, expect to touch filters more often than a brand with a small, stable catalog. There is no fixed schedule that fits everyone, so tie the frequency to how fast your catalog and margins move.
The product count moves because the pool of eligible items behind your filter is not static. Feed items expire and get re-ingested on their own schedules, so the same filter can match a different number of products from one check to the next. Approval status also shifts: an item that was pending policy review may pass later, or one that was live may be pulled, and each change ripples into your count. The counts Ads Manager reports can describe different populations too, such as ingested versus processed versus ready, so comparing two numbers that measure different things can look like a change when nothing really moved. If the swing is large or sudden, inspect your feed's upload history and approval errors before assuming the filter itself is broken. Treat the product count as a live readout of catalog state, and recheck it after any feed refresh.
Yes, within limits you set entirely on your side of the campaign. You directly control eligibility by writing filter conditions against your feed's fields and the custom labels you place in ads_metadata, so adding or editing those labels changes exactly which products a group can serve. What you do not control is whether an eligible product actually appears in any given conversation, because ChatGPT still matches ads to chat context and your bid and budget govern delivery. So the filter is a hard gate on supply that you own completely, while impressions depend on factors the platform decides. The practical move is to make your labels precise and your filters narrow, then confirm the product count reflects your intent. If a product you expect is missing, the cause is almost always a feed or label issue you can fix on your own side.
A good setup is one where every ad group maps to a product set you can describe in a sentence and fund on its own. For a large catalog, that usually means several focused groups built on clear custom labels, each with a product count that is neither near zero nor your entire inventory. Aim for groups tight enough that spend and reporting tell you something actionable, and broad enough that they are not starved of eligible products. Strong setups lean on structured fields like availability and price so out-of-stock or clearance items fall out automatically, and they mirror the prompt themes the brand tracks organically. There is no universal product count to hit, so judge quality by whether you can read each group's performance and act on it. If you cannot tell why a group is winning or losing, it is too broad.