ChatGPT Ads for Ecommerce: The Complete Guide for US Online Stores (2026)
How online stores run ChatGPT Ads: product feed campaigns, context hints for shoppers, break-even CPC and ROAS maths, US category rules, Pixel and Conversions API purchase tracking, vertical playbooks and AEO for ecommerce.

Short answer: ChatGPT Ads for ecommerce means running OpenAI's auction-priced ad units, product feed campaigns and conversion tracking to sell physical or digital products to shoppers who are describing what they want to buy inside ChatGPT. For a US online store the working stack has four parts: a Product feed campaign built from your catalog (ad titles and descriptions come straight from the feed), standard ads steered by context hints for categories and hero products, the oaiq Pixel plus the Conversions API reporting order_created with the order ID as the deduplication key, and conversion-optimised bidding once purchase volume can support it. OpenAI publishes a $25 USD minimum daily budget, a $3–5 recommended starting CPC bid for the Clicks objective, and no rate card. OpenAI also says feed-based ads have been "among the strongest-performing ads in our program to date."
This is the ecommerce hub of our operator's library. It takes the channel-wide guides (product feeds, context hints, cost, conversion tracking, conversion campaigns and reporting) and rebuilds them around one question: how does an online store make money from ChatGPT ads? Each section gives the ecommerce answer, then links to the deeper guide when you need the mechanics. If you have never seen a ChatGPT ad, read What Are ChatGPT Ads? first. If you only need the catalog work, the product feed guide is the narrower page.
We wrote this page after studying how ChatGPT itself answers the question. When we asked it "chatgpt ads for ecommerce store in usa" and exported the conversation, the answer ran six fan-out searches and drew on nine domains and nine links. Answer engines break an ecommerce question into many smaller ones before they reply. The section on answer-engine optimisation shows what that export contains, what it leaves out, and how it shaped this page's structure. That way you can apply the same method to your own product pages.
What "ChatGPT Ads for ecommerce" actually means
The phrase covers three different things, and most pages on the topic mix them up. Separating them is the first useful step for a store owner, because each one has its own budget line, its own team and its own definition of success.
| Layer | What it is | Paid or organic | Who in an ecommerce team owns it |
|---|---|---|---|
| Paid ads in ChatGPT | Clearly labelled ad units shown below relevant conversations, bought in OpenAI's Ads Manager through a relevance-weighted, second-price auction | Paid | Performance marketing / paid media |
| Product feed ad campaigns | Paid ads generated automatically from your catalog file; the feed supplies the title, description, price and image | Paid | Paid media plus whoever owns the product feed (often ecommerce ops) |
| Shopping in ChatGPT search and shopping research | Organic product carousels, merchant links, buyer's guides and sometimes Instant Checkout, chosen independently of advertising | Organic | SEO / content / merchandising, plus engineering for feeds and crawler access |
The paid layers are what this page mostly covers. We include the organic layer for one practical reason. The same catalog work feeds both sides, and a store that does the feed properly once gets the benefit on both. OpenAI is clear that the two do not mix. Organic shopping results are, in OpenAI's words, "selected independently by ChatGPT and are not ads, nor influenced by any OpenAI partnerships." During the ads beta, products in your ads feed are eligible only for ads. They will not appear in organic conversations just because you advertise. Paying for ads does not buy organic placement, and organic placement does not stand in for ads.
Why the conversation format suits online retail
A search engine gets a few words. A shopping conversation in ChatGPT often contains the whole brief: "I need a carry-on that fits under a budget airline seat, under $150, ideally with a laptop sleeve, and I travel about twice a month for work." That one message carries a product category, a hard size limit, a price ceiling, a feature requirement and a usage pattern. A keyword can only stand in for that brief. A conversation spells it out.
The matching system is built to use that richness. OpenAI's documentation describes ads being matched against the conversation using your context hints, landing page, ad title and ad copy as relevance inputs. These are intent signals, not exact-match keywords. For a retailer, this means the ad can match the need instead of the string. Our context hints guide shows it in a table: a keyword names a query, while a context hint names a buyer in a moment. Ecommerce has more moments like that than almost any other category.
There is also a structural reason. Shoppers are already asking ChatGPT for product advice in large numbers. That is why OpenAI built shopping carousels, shopping research and a product feed specification before it opened self-serve advertising. Ads arrived in a place where buying conversations already happen. They did not have to create the behaviour.
What it is not
Several claims about this channel circulate online and are wrong. Each one leads to a bad plan, so we correct them up front.
- There is no "sponsored answer" woven into ChatGPT's response. Per OpenAI, ads appear below the conversation, are clearly labelled and are separate from the organic answer. You cannot buy a mention inside the answer text.
- There is no rate card. Pages quoting "ChatGPT ads cost $60 CPM" are reading a default max bid as a price. See the cost guide.
- Advertising does not improve organic shopping visibility. OpenAI says organic product results are not influenced by partnerships or ads, and that ads-feed products do not enter organic conversations during the beta.
- It does not need a six-figure commitment. OpenAI publishes a $25/day minimum for USD accounts. That is not the same as a sensible test budget, which we cover in the budget section.
- It is not just Google Shopping in a new place. The feed fields are close to Google Merchant Center's, but matching is conversational, the ad template uses your feed text as-is, and measurement has its own identifiers and event names.
Where ChatGPT ads appear, and who sees them
Before planning, a store owner needs a clear picture of the inventory. Per OpenAI's documentation, ChatGPT ads:
- appear below relevant conversations, never inside the assistant's answer;
- are clearly labelled as sponsored;
- have a fixed set of six components in the standard unit: advertiser name, favicon, title, copy, landing-page URL and an image;
- are shown to Free and Go users, and never to Plus, Pro or any Business plan user, or to users OpenAI predicts to be under 18;
- in the US launch market, serve to adult Free and Go users. The US was the first and largest market, and it is where policy is most permissive for health-adjacent retail categories (see the category section).
Product feed campaigns use the same format as the current ad units. The title and description come from the feed. The multi-product carousel has been in testing since August 2026 and shows several products from one advertiser in a single unit. Since September 2026 it has had its own reporting (card impressions and card clicks). A format only gets its own reporting once it is serving, so retailers should plan for their products to appear side by side.
The ecommerce opportunity in numbers you can actually defend
Most pages about this channel lead with a big audience number. We do not, because user counts tell you nothing about whether your store will make money. The numbers that matter to an ecommerce operator are the ones that decide unit economics, and we label every one.
| Number | Value | Source label | Why a store owner cares |
|---|---|---|---|
| Minimum daily budget (USD account) | $25/day (about $760/month) | OpenAI | The entry ticket. A floor, not a recommendation |
| Recommended starting max bid, Clicks objective | $3–5 per click | OpenAI | Your opening CPC ceiling for traffic campaigns |
| Default max bid, Reach objective | $60 CPM | OpenAI | A ceiling for awareness buying, not a price |
| Product feed size limit | Up to 2 million products | OpenAI | Large catalogs fit in one feed |
| Feed item expiry | Two weeks without refresh | OpenAI | One manual upload quietly ages out |
| Feed title / description limits | 150 / 5,000 characters | OpenAI | Your ad copy is these fields |
| Observed CPC range across verticals | Roughly $1.50–$9 | GPT Ads AI observation | Planning range, not a forecast |
| Recommended test budget | $10,000/month media | GPT Ads AI guidance | Enough volume to reach a decision in weeks, not months |
| Conversions API event window | Events within the last 7 days | OpenAI | Returns and late-confirmed orders need a fast pipeline |
From these you can work out the first number that decides whether the channel works for you: break-even cost per click. If your landing pages convert ChatGPT visitors at c, your average order value is AOV and your contribution margin is m, the most you can pay per click before losing money on the first order is AOV × m × c. A store with a $90 AOV, a 40% contribution margin and a 3% conversion rate breaks even at about $1.08 per click on first-order economics alone. That figure is below OpenAI's recommended $3–5 starting bid. Much of this guide explains how to close that gap: relevance that lowers your effective CPC, landing pages that raise c, product selection that raises AOV × m, and lifetime value that changes the denominator. Full worked examples are in the unit economics section.
Is your store eligible? The US account and entity rules
ChatGPT Ads Manager self-service is now available in 63 countries (see the countries guide). The rule that decides eligibility is not where your customers are. OpenAI's wording: "the legal entity that will advertise and be billed must be based in a country listed as available." For a US store that is simple. A US-registered business with a US billing address and payment method is eligible.
Three things trip up ecommerce businesses in particular.
- The billed entity has to match the account. OpenAI's billing guidance says your billing information and payment method should match the business entity and country used when the account was created. A US storefront run by a company registered in a country that is not yet available cannot use self-service until that country opens. A US subsidiary or a separate US entity is the usual answer.
- Country, currency and time zone are permanent. OpenAI states that these three settings "cannot be changed after account creation." For a US store, set USD and the time zone your ecommerce platform reports in, so that a "day" in Ads Manager and a "day" in your order data cover the same hours. If they don't, every daily reconciliation you run will be off.
- One login, several ad accounts. A group running several storefronts can keep each brand in its own ad account under one OpenAI login (there is a creation limit; see account, brand and legal names). Our rule of thumb: one ad account per billing entity and currency, and one per brand if the brands have different P&L owners.
The setup itself (verification, billing, the three name fields and approval) is covered step by step in the account setup guide. Approval time is usually the longest part of a launch. Start it before the feed work, not after.
Is your product category allowed?
Availability tells you whether you can open an account. It does not tell you whether your products can be advertised. OpenAI's policy eligibility table has two columns, US and All other countries, and for health-adjacent retail the US column is far more permissive. That is good news for US stores and a trap for any US brand that plans to expand abroad later.
| Retail category | US | All other countries | What it means for a US store |
|---|---|---|---|
| Dietary supplements | Allowed | Not allowed | Can run in the US; cannot take the same program abroad |
| Consumer medical devices, wearables and health apps | Allowed | Not allowed | US-only growth channel for these products |
| Menstrual, pregnancy, delivery and postpartum products | Allowed | Not allowed | Allowed in the US; plan international separately |
| Minimally invasive cosmetic procedures | Allowed | Not allowed | Mostly services, but affects beauty brands selling treatments |
| Prescription medicines, online pharmacies, telehealth | Not allowed | Not allowed | Not available on this channel anywhere |
| Buy now, pay later and payments | Restricted to select approved advertisers | Not allowed | A store offering BNPL is different from a BNPL provider advertising itself, but keep claims about financing conservative |
| General merchandise (apparel, home, beauty, electronics, pet, outdoor, toys) | Allowed under the general Ads Policies | Allowed under the general Ads Policies | The core of ecommerce, subject to standard ad policies |
The table summarises OpenAI's published policy eligibility table as it applies to retail. The full table and the error message you see when a category does not fit a target country ("My ads cannot serve in the countries I selected") are in the countries guide. Two operating points:
- Supplement and wellness brands: the US is open to you, and it is the only market that is. Build your ChatGPT program as a US program. Don't model international scaling into the business case, because no other market permits the category today.
- Product-level rejections exist even in allowed categories. A feed product can pass processing and still fail product review. The Products tab now shows review status and the rejection reason. If you believe a rejection is wrong, the fastest fix is an appeal in Ads Manager. Contact support only if no appeal option exists or an appeal has been pending for more than seven days.
Three ways an online store can buy ChatGPT ads
Ads Manager gives an ecommerce advertiser three campaign building blocks. They are not alternatives; mature accounts run all three. They differ in who writes the creative, how products are chosen and what the campaign can optimise towards.
| Standard campaigns (hand-built ads) | Product feed campaigns | Conversions objective (oCPC) | |
|---|---|---|---|
| Creative comes from | You: title, copy, image, landing URL | Your feed: title and description pulled automatically; template lets you choose the image field | Either. It is a bidding mode, not a creative type |
| Targeting input | Context hints at ad-group level | Product filters and ads_metadata on the feed; product data drives relevance | Same as the campaign it applies to |
| Best for | Category pages, collections, bundles, brand story, promotions, hero SKUs | Scaling across a catalog; long-tail SKUs; keeping price and stock in sync | Optimising towards purchases once tracking and volume support it |
| Billing | CPC (Clicks) or CPM (Reach) | CPC or CPM; conversion optimisation in beta on click-billed feed campaigns | Per valid click; the conversion bid is an optimisation input |
| Locked at creation | Objective | Product-feed mode cannot be changed after creation | Objective and conversion event cannot be changed |
| Geo targeting | Country plus finer location targeting where offered | Country level only for new feed campaigns | Same as the campaign |
How we sequence them for a new store
The order matters because each step produces what the next one needs. This is GPT Ads AI operating guidance, not an OpenAI requirement.
- Tracking first, before a dollar of spend. Install the Pixel and Conversions API with
order_createddeduplicated on the order ID. A Clicks campaign without tracking only tells you about clicks. Conversion campaigns can't be created without a supported standard event. - A hero-product standard campaign on Clicks. Five to fifteen best-sellers with strong reviews and margins, landing on product or collection pages, with tight context hints. This tells you within a couple of weeks what a qualified ChatGPT visitor does on your site.
- A product feed campaign for the hero tier, then the catalog. Once the feed is clean and
ads_metadatais designed, launch the hero set from the feed and compare it with the hand-built campaign. Then open the rest of the catalog in its own campaign with more efficient bids. - Conversion optimisation where volume allows. Move the highest-volume campaign to conversion bidding once it can generate enough
order_createdevents to learn from. Keep the rest on Clicks as a control. - Reach for launches and seasonal peaks only. CPM buying makes sense when the goal is awareness at a moment you can name, like a product drop or the run-up to Black Friday. It shouldn't be the default for a store that needs every dollar to pay back.
Unit economics: break-even CPC, ROAS and what good looks like
Ecommerce is the most measurable kind of advertising there is. It is also the easiest to fool yourself with, because a ROAS figure can look fine while the business loses money. Before you set a single bid, write down the four numbers that decide whether ChatGPT ads can work for your store. Everything that follows in this guide is a way of moving one of them.
| Input | Symbol | Where to get it | Typical trap |
|---|---|---|---|
| Average order value | AOV | Your ecommerce platform, last 90 days, net of discounts | Using gross AOV before discounts and returns |
| Contribution margin | m | Revenue minus COGS, shipping, payment fees, pick-and-pack and expected returns | Using gross margin, which ignores fulfilment and returns |
| Landing-page conversion rate for this traffic | c | Your analytics, filtered to ChatGPT Ads UTMs once traffic exists | Using sitewide conversion rate, which includes returning customers |
| Repeat purchase value | LTV multiplier | Cohort analysis: revenue per first-time customer over 6–12 months divided by first-order revenue | Applying a lifetime multiplier to products people buy once |
First-order break-even CPC = AOV × m × c. It is the most you can pay per click and still not lose money on the first order. LTV-adjusted break-even CPC = AOV × m × c × LTV multiplier. It is the most you can pay if you are willing to recover acquisition cost over the customer's life. The gap between the two is your strategic choice. A consumable brand with strong repeat purchase can bid above first-order break-even on purpose. A furniture store selling a one-off sofa cannot.
Worked break-even table (illustrative)
These rows are illustrative store profiles, not client data. They show how differently the same channel behaves for different businesses. Recalculate with your own numbers.
| Store profile | AOV | Contribution margin | Conversion rate (c) | First-order break-even CPC | LTV multiplier | LTV-adjusted break-even CPC |
|---|---|---|---|---|---|---|
| Skincare DTC, consumable | $65 | 55% | 3.0% | $1.07 | 2.8× | $3.00 |
| Premium cookware | $180 | 38% | 2.2% | $1.50 | 1.4× | $2.11 |
| Pet food subscription | $55 | 35% | 4.0% | $0.77 | 5.0× | $3.85 |
| Mattresses and sleep | $1,100 | 30% | 0.9% | $2.97 | 1.1× | $3.27 |
| Consumer electronics accessories | $45 | 30% | 2.5% | $0.34 | 1.3× | $0.44 |
| Outdoor gear, technical | $240 | 35% | 1.6% | $1.34 | 1.6× | $2.15 |
Put that table next to OpenAI's recommended $3–5 starting CPC and the conclusion is obvious, though few people say it out loud: at today's prices, low-AOV, low-margin, single-purchase products struggle on paid ChatGPT traffic. The electronics-accessories profile would need its clicks to clear at well under a dollar. The skincare, pet subscription and mattress profiles have room. That doesn't mean low-AOV stores should stay away. It means they should lead with bundles, multi-packs, subscriptions and high-AOV collections, which change the AOV × m term. It also means relevance matters more for them than for anyone, because relevance lowers the price you actually pay.
Why your actual CPC is lower than your bid
Two properties of the auction work in a retailer's favour, and both are documented by OpenAI. The auction is relevance-weighted: your bid is multiplied by how relevant your ad is to the conversation, so a better-matched ad ranks higher for the same money. It is second-price: the winner pays just enough to beat the next-highest effective bid, not its own maximum. Together, a tightly matched product ad with a $4 ceiling can win against a generic ad bidding $7 and pay well under $4. In the managed accounts we run, observed CPCs across DTC ecommerce, B2B SaaS and professional services have mostly sat between $1.50 and $9, and retail tends towards the lower half of that range when the creative and landing pages are well matched. That is a GPT Ads AI observation, not an OpenAI figure.
For a store, the levers that move relevance are concrete. They are your feed titles and descriptions (which are the ad), your context hints, the landing page the click arrives on, and the image. The ad examples guide shows what earns the click in a conversation. The cost guide has the full auction worked example.
ROAS targets that won't mislead you
Platform ROAS is revenue reported by Ads Manager divided by spend. It is useful and it is not profit. To turn a profitability requirement into a ROAS target, use the inverse of contribution margin. Break-even ROAS = 1 ÷ m. A store with a 40% contribution margin breaks even on first-order revenue at a 2.5× ROAS. Below that it loses money on the first order. Above it, it makes some.
| Contribution margin | First-order break-even ROAS | Target if you need 20% of revenue as profit after ads |
|---|---|---|
| 25% | 4.0× | 20.0× |
| 30% | 3.3× | 10.0× |
| 40% | 2.5× | 5.0× |
| 50% | 2.0× | 3.3× |
| 60% | 1.7× | 2.5× |
| 70% | 1.4× | 2.0× |
The right-hand column comes from ROAS = 1 ÷ (m − target profit share). It shows why thin-margin stores find paid acquisition hard on any channel, and why the conversation about ChatGPT ads for a 25%-margin reseller should start with product mix, not bids.
Budget planning for a US online store
The platform minimum and a sensible budget are two very different numbers. Confusing them is the most common reason ecommerce tests on this channel end without a conclusion.
| Budget level | Monthly media (approx.) | What it buys at a $2.50 average CPC (illustrative) | What you can learn |
|---|---|---|---|
| OpenAI minimum | $25/day, about $760/month | About 300 clicks | Whether ads serve and the tracking works. Not enough to judge conversion rate |
| Small test | $3,000/month | About 1,200 clicks | A rough conversion rate for one hero campaign |
| Decision-grade test (our recommendation) | $10,000/month | About 4,000 clicks | Conversion rate by campaign, early product-level signal, enough orders to try conversion bidding on the strongest campaign |
| Scale | $25,000+/month | 10,000+ clicks | Catalog-wide feed campaigns, seasonal flighting, holdout tests |
The click counts are simple division at an illustrative $2.50 CPC. Your CPC will differ. The point is the order of magnitude. At a 2.5% conversion rate, 1,200 clicks produces about 30 orders, which is enough to see a direction. At 4,000 clicks you get about 100 orders, enough to make a budget decision with some confidence. The recommendation of $10,000/month media for a decision-grade test is GPT Ads AI guidance based on the volume the auction needs before it stops being noise. It is not an OpenAI requirement.
Daily versus total budgets, and the September 2026 pacing change
Ads Manager supports a daily budget or a campaign-total budget. For ecommerce, the difference matters most around promotions.
- Daily budget is a delivery target. Spend on any single day can run above or below it.
- Total budget is a spending limit with pacing, since September 2026. Total-budget campaigns used to front-load spend and could burn a two-week budget in a few days. They now spread spend more evenly over the flight. OpenAI's wording is careful: actual spend may still vary day to day based on available delivery opportunities. So if shopping conversations in your category spike on the weekend, the weekend will still be your biggest spend day.
- For promotions, total budgets are now usable. A Black Friday to Cyber Monday flight can be entered as a total with dates and will roughly behave as intended. Before September you had to reverse-engineer it into a daily figure.
Minimums are set in your ad account's billing currency, not the currency of the market you target. A USD account's floor is $25/day. If you plan in another currency and convert, check that the converted daily figure still clears $25.
Allocating budget across the three campaign types
A starting split for a new store at a decision-grade budget. This is GPT Ads AI operating guidance, to be changed as data comes in.
| Campaign | Share of media, weeks 1–4 | Share of media, weeks 5–12 | Why |
|---|---|---|---|
| Hero-product standard campaign (Clicks) | 60% | 25% | Fastest read on visitor quality; full control over creative |
| Hero-tier product feed campaign | 30% | 30% | Tests feed-as-creative against your hand-built ads |
| Catalog product feed campaign | 10% | 25% | Long-tail coverage once the feed is proven |
| Conversion-optimised campaign (best performer, rebuilt) | 0% | 20% | Needs tracking history and order volume first |
Bidding: Clicks, Reach, Conversions and Maximize results
There are four bidding decisions an ecommerce advertiser actually faces. OpenAI documents the mechanics of each. The ecommerce judgement calls are ours.
| Choice | How it bills | OpenAI starting point | When a store should use it |
|---|---|---|---|
| Clicks objective, manual max bid | Per valid click | $3–5 recommended starting max bid | The default for a new store. You know your ceiling and can compare it with break-even CPC |
| Clicks objective, Maximize results | Per valid click | Platform sets and adjusts bids | When volume matters more than a hard CPC ceiling. Default for eligible new ad groups since August 2026 |
| Reach objective | Per thousand impressions | $60 default max CPM | Launches, drops, seasonal awareness. Rarely the default for a store that needs payback |
| Conversions objective (oCPC) | Per valid click | No recommended bid published ("There is no recommended bid amount at this time") | Once purchases fire reliably and volume can support learning |
Maximize results versus a manual max bid
Since August 2026, Maximize results has been the default bid strategy for eligible new ad groups. It sets and adjusts bids to get as many results as possible from your budget. For a store, it is a trade-off you should make deliberately. Maximize results prioritises volume and does not guarantee delivery against a CPA, CPC or ROAS target. If your break-even CPC is $1.50, Maximize results has no idea about that number. If your economics depend on not paying above a certain amount per click, choose Manual: Max bid in the ad group's bid strategy section and set the ceiling from your break-even calculation.
Our default for ecommerce: manual max bid at or slightly above LTV-adjusted break-even CPC for the first four weeks, then try Maximize results on one ad group whose economics have room to spare. Compare cost per order, not CPC.
Conversion-optimised bidding for stores
Conversion-optimised campaigns use the Conversions objective, which puts the campaign on oCPC: delivery is biased towards clicks more likely to lead to the one standard event you choose, and billing stays per click. For ecommerce the mechanics have three consequences.
- The objective and the event are permanent. You can't switch an existing Clicks campaign to Conversions, and you can't change the event later. Name the campaign after its event (for example
Store – Hero – order_created – US) so the frozen choice stays visible. - There is no target CPA in the product. oCPC optimises towards the event. It does not defend a cost-per-order threshold. The levers you own are the per-ad-group Bid Cap and the budget. Cost per order is something you calculate: spend ÷ conversions.
- Product feed campaigns now support conversion optimisation, in beta. It works on click-billed feed campaigns, with fixed or manual bidding in the first release, and needs a positive conversion bid cap. Through the API:
mode: "product_feed"plus aproduct_feed_id, alongside the conversion-bidding fields.
Which event to optimise towards is the biggest decision, and for stores the answer is usually not order_created on day one. The measurement section has the ecommerce event ladder.
Setting a Bid Cap from store economics
OpenAI publishes no recommended oCPC bid. Here is a method to derive one (GPT Ads AI method):
- Take your target cost per order: AOV × m for break-even, or lower if you need first-order profit.
- Multiply by your observed click-to-order rate from the Clicks campaign you ran first. That gives a break-even cost per click for this specific traffic.
- Set the Bid Cap at that figure. oCPC will often clear below the cap because the auction is second-price.
- Review weekly, comparing cost per order with target. Raise the cap only if cost per order is comfortably under target and volume is limited by losing auctions, not by budget.
This is the reason we run Clicks first. Without a measured click-to-order rate for ChatGPT traffic on your site, any oCPC Bid Cap is a guess. A guess on a click-billed auction with no CPA control can be an expensive one.
When ChatGPT Ads are not right for a store (yet)
A guide that only lists reasons to advertise isn't much use for making a decision. Based on the economics and platform facts above, these are the situations where we'd tell a store to wait, or to fix something else first (GPT Ads AI judgement).
| Situation | Why it's a problem now | What to do instead |
|---|---|---|
| Low AOV, low margin, single-purchase catalog with no bundles | First-order break-even CPC sits well below OpenAI's $3–5 recommended starting bid | Build bundles or multi-packs first, or focus on organic ChatGPT Shopping |
| No ability to measure purchases server-side | Pixel-only tracking undercounts and conversion bidding becomes a guess | Build the Conversions API path, or adopt a managed pipeline, before spending |
| Catalog data is poor (SKU titles, missing images, stale stock) | In feed campaigns the data is the ad; poor data is a poor ad | Fix the feed. It also improves Google Shopping and organic ChatGPT visibility |
| Category not allowed, or restricted, for your target market | Ads won't serve; reviews will reject products | Check the policy table; for US-only categories, plan a US-only program |
| Media budget well under about $3,000/month | Too few orders to learn anything within a quarter | Run organic AEO and feed work now; test paid when budget allows |
| Launching new paid channels in the middle of peak season | Approval, processing and learning can't be rushed | Launch in a quieter month and arrive at the peak with data |
| Business entity not in an available country | Self-service isn't open to you | Use an eligible entity, or wait for your country to open |
None of these is permanent. Each row is a prerequisite rather than a verdict. Fixing most of them (feed quality, server-side measurement, bundles, crawler access) improves performance on every channel you run, not just ChatGPT. That's the practical case for starting the groundwork now, even if paid spend waits a quarter.
The product feed: your catalog is now your creative
For most stores, the product feed campaign will become the biggest single line in the account. OpenAI's own judgement on it is unusually direct: "Ads created from product feeds have been among the strongest-performing ads in our program to date." The reason is structural. Product ads served during purchase-focused conversations reach people who are already describing what they want to buy, in their own words, to an assistant they trust. That behaves more like bottom-of-funnel search than interruption media.
The operating change for a store is larger than it looks. In a product feed campaign, the ad title and description are pulled directly from your feed, and the ad template currently only lets you pick the image field. There is no headline-writing step. If your product titles read like warehouse SKU strings, those strings are what shoppers will see in the ad. The feed is no longer an IT export. It is the copy.
The fields that matter, and how to write them for a conversation
OpenAI publishes the feed specification on its developer site. Below are the required core fields, with OpenAI's constraints, and our view on how to write each one for conversational matching rather than for a search results grid.
| Field | OpenAI constraint | How to write it for ChatGPT shoppers (GPT Ads AI guidance) |
|---|---|---|
item_id | Unique per variant | Keep it stable. Changing IDs resets product-level history |
title | Max 150 characters | Lead with what the product is, then the attribute that decides the purchase: "Women's Waterproof Trail Running Shoe, Wide Fit, Recycled Upper". Not "TR-2231-W-WD" |
description | Max 5,000 characters | Answer the questions a shopper asks in chat: who it's for, what problem it solves, sizing, materials, care, what's in the box. Plain sentences, not keyword lists |
url | Must resolve successfully | The exact variant page, not a collection or the homepage. No redirect chains that strip query strings |
brand | Max 70 characters | Your brand name exactly as shoppers type it |
price | With ISO 4217 currency code | Must match the landing page at the moment of the click |
availability | in_stock, out_of_stock, pre_order, backorder or unknown | Must be current. An out-of-stock product stops serving, which is what you want if the feed updates quickly enough |
image_url | JPEG or PNG, publicly reachable | Clean primary image on a plain background; the image opens directly, not behind a preview page or login |
seller_name / seller_url | Name max 70 characters | The legal-facing store name and homepage |
target_countries / store_country | ISO country codes | US for a US-only store; list every country you actually ship to |
Recommended optional fields are worth filling in, because a conversational system can use far more attribute detail than a results page can show: gtin (universal product identifier), group_id and variant_dict for variant grouping, sale_price (which must not exceed the regular price), q_and_a and reviews. The stores that win these surfaces will be the ones whose feeds read like good product pages, not minimal compliance files. That is a GPT Ads AI observation, and it is the cheapest competitive edge available on this channel.
The eligibility switches that route products
| Field | What it controls | Ecommerce note |
|---|---|---|
is_ads_eligible | Whether a product can be processed for ChatGPT ads | Set it to true for every product Ads should handle. The legacy alias is_eligible_ads works. is_ads_enabled does not exist, and OpenAI warns about it explicitly |
is_eligible_search | Whether a product can surface in organic ChatGPT search results | The organic side, separate from ads |
is_eligible_checkout | Direct purchase flows | Requires search eligibility plus seller policy fields: privacy policy, terms and return policy |
ads_metadata | Free-form string key–value pairs you define | Your segmentation layer inside Ads Manager. Design it before the first upload |
Exclude by setting is_ads_eligible to false: gift cards, discontinued lines, products with no images, items whose margin can't support paid acquisition, and anything in a category you don't want to advertise.
Three ways to get products in
OpenAI supports three import methods. Which one fits depends mainly on how your store platform exposes the catalog.
| Method | OpenAI's recommended use | Ecommerce fit |
|---|---|---|
| Upload a CSV or TXT file | Getting started, occasional manual updates | Fine for a first test with a small catalog. Dangerous after that, because items expire after two weeks |
| Hosted URL | Catalog available at a stable HTTPS address | The best fit for most Shopify, BigCommerce and WooCommerce stores that already publish a feed URL for other channels |
| SFTP connection | Technical teams automating server-to-server uploads (password or SSH key) | Large catalogs, custom platforms and feed-management tools that already push to other networks |
Processing takes a few minutes to a few hours, depending on feed size. Check Upload History for errors. Through the API, GET /v1/feeds/uploads returns each upload's status (for example completed_with_errors), rows_accepted, rows_rejected, rows_ads_eligible and per-field diagnostics. Don't schedule a launch for the same hour as your first large upload.
Reusing your Google Shopping feed
Most US stores already maintain a Google Merchant Center feed. The field mapping is close enough that a transform, not a rebuild, gets you to OpenAI's spec. Validate against OpenAI's spec, which is the source of truth.
| Google Merchant Center | OpenAI feed spec | Note |
|---|---|---|
id | item_id | Unique per variant in both |
title / description | title / description | OpenAI allows up to 150 / 5,000 characters |
link | url | Must resolve successfully |
image_link / additional_image_link | image_url / additional_image_urls | JPEG or PNG over HTTPS |
price / sale_price | price / sale_price | ISO 4217 currency; sale price no higher than regular |
availability | availability | Map to OpenAI's five values |
gtin / brand / item_group_id | gtin / brand / group_id | Keep GTINs; identity resolution matters here too |
| (none) | is_ads_eligible, ads_metadata, seller_name, seller_url, target_countries, store_country | OpenAI-specific: this is the net-new work |
If your Google feed is healthy, budget the OpenAI adaptation in days, not weeks. Most of a launch timeline goes on account approval and feed processing, not engineering.
Designing ads_metadata for a store
Ad-group product filters are finite. ads_metadata is how you encode the structure you actually want to bid and report on. OpenAI's documented examples are bidding_tier and product_line. Treat it like labels in Google Ads and design it before your first upload. Re-uploading half a million rows with metadata you should have planned on day one costs hours of processing each cycle.
| Key (example) | Example values | Why it earns its place |
|---|---|---|
tier | hero, core, longtail | Isolate the 10–20% of SKUs that drive most revenue in their own ad group with their own budget |
margin | high, mid, low | Bid aggressively where margin allows, defensively elsewhere |
aov_band | 0-50, 50-100, 100-250, 250+ | Shoppers often state a budget ("under $100"), and break-even CPC rises with AOV |
line | retinol, cleansers, spf | Budget and reporting follow product lines, so merchandising decisions use media data |
season | q4-gifting, summer, back-to-school | Seasonal ad groups can be paused and resumed without touching the feed |
promo | bfcm-2026, none | Promotional SKUs grouped for a fixed-date flight with a total budget |
stock_depth | deep, thin | Don't push spend at SKUs that will sell out in a day |
Four or five keys are enough for most stores. More than that and the ad-group structure becomes harder to manage than the problem it solves.
Bulk-building the account from a spreadsheet
Since late September 2026, you can create multiple product feed campaigns and ad groups from a spreadsheet, and the ad templates are generated automatically. For a store this turns ads_metadata into account structure. In Ads Manager go to Campaigns → Bulk uploads, choose Bulk sheet, and download the Product feed template (a separate template from the standard campaign sheet). Fill in one row per campaign and ad group with the product filters each should use, upload it, then review the generated templates and product counts before anything goes live.
The rules that most often break bulk uploads: keep the tab names and column headers exactly as shipped; names must be unique and match exactly across tabs; country is JSON and dates are YYYY-MM-DD; rows with an existing ID update that object, while new rows leave the ID blank; always start edits from Export for edit, never from an old file; and an upload can contain no more than 5,000 campaigns, 5,000 ad groups and 5,000 ads.
Launching a product feed campaign, step by step
OpenAI documents a seven-step flow. Here it is with ecommerce notes added.
- Create the feed. In Ads Manager go to Tools → Feeds → Create Feed. The feed row gets a three-dot menu for import options.
- Import products. Choose a CSV/TXT upload, a hosted URL or SFTP. For anything that runs longer than two weeks, use the hosted URL or automated SFTP, because uploaded items expire.
- Upload and validate. Wait for processing and read Upload History. Fix rejected rows before you build campaigns, because a rejected row is a product that will never serve.
- Create the campaign. In Campaigns, select Product feed as the campaign type and set budget, schedule and bids. Product-feed mode is set at creation and cannot be changed. Geographic targeting and exclusions are country level only, so a regional promotion within the US has to be expressed through the catalog (for example a
promometadata value), not through campaign targeting. - Build the ad group and choose products. Select the feed, apply product filters and check the product count to confirm how many products pass. This count, not the Products tab, is how you confirm feed readiness.
- Create the ad template. One per ad group. It currently only supports choosing the image field. Review the sample preview: it is your only pre-launch look at feed-as-creative.
- Review and launch. OpenAI's checklist: correct feed selected; product count matches the intended set; titles, descriptions, images and landing pages appear as expected; template previews correctly; campaign, ad group, budget, bid and targeting settings are complete.
Why products don't serve, and where to look
A product can pass feed processing and still never appear. There are four checks, and they sit in different places.
| Check | What it catches | Where to look |
|---|---|---|
| Feed processing | Malformed rows, invalid values, missing required fields | Upload History; GET /v1/feeds/uploads diagnostics |
| Filter match | Products outside the ad group's filters | Product count in ad group setup |
| Product review | Products that failed review, with the reason | Products tab: review status |
| Ad serving | Ads, ad groups or campaigns blocked from delivery | Status tooltips; include[]=serving_issues on the API |
OpenAI doesn't publish a list of product-level rejection reasons. From its ad policies and bulk-upload guidance, these are the usual suspects for a store (our list): the landing page or image can't be reached by OpenAI's crawlers; the product is in a restricted category for the target country; the feed and landing page disagree on price, availability or title; or the item isn't ads-eligible or expired after two weeks without a refresh.
The multi-product carousel and card-level reporting
The multi-product carousel shows several products from one advertiser in a single unit. It entered testing in August 2026, and in September 2026 it gained carousel card impressions and clicks in Ads Manager, with product-level fields in the Insights API. For a store, it changes what good feed hygiene means. A single-product unit hides an inconsistent catalog, because only one item is on screen. A carousel doesn't. If one of three cards has a placeholder image, a truncated title or a stale price, it's visible side by side with the others in the same impression.
Keep card impressions out of your CPM. A carousel card impression is counted when an individual product card becomes viewable. OpenAI says card impressions are separate from billable ad impressions and not included in billable impression counts. One billable impression can produce several card impressions. Any report that adds both into a single "impressions" figure will show a falling CPM and a rising CTR for reasons that have nothing to do with performance. Name the columns explicitly in every export.
Used properly, card-level data answers a merchandising question no feed has answered before: which SKUs earn attention when they appear next to each other? It shows which products to promote, which images lose side-by-side comparisons and which titles truncate badly at carousel width. Complete carousel data begins 20 August 2026 and is held on a rolling 30-day basis, so export it on a schedule if you want a longer history.
The organic side: ChatGPT Shopping and shopping research
Paid ads are half of the ChatGPT opportunity for a store. The other half is organic, and the same catalog drives it. These surfaces are separate from advertising, with separate opt-ins.
| Surface | How products get in | What decides visibility (per OpenAI) | Store action |
|---|---|---|---|
| Shopping results in ChatGPT search | Shopify merchants are integrated automatically through Shopify Catalog; other merchants can apply for direct feeds access | The user's query and context (including Memory and custom instructions), structured metadata from first- and third-party providers, and OpenAI's safety and product policies | Check the Shopify Catalog integration is live, or apply for direct feeds access |
| Merchant ranking on a product | Shown when a user clicks a product | Availability, price, quality, and whether the merchant is the maker or primary seller; the lowest price ChatGPT knows about is highlighted | Keep price and availability current; be the primary seller of your own products |
| Shopping research (buyer's guides) | Merchant data through the Agentic Commerce Protocol, public product pages and other retail sources; an allowlisting process exists | Multi-step research run after clarifying questions | Complete the allowlisting flow; make sure crawlers can read your product pages |
| Instant Checkout | Products flagged checkout-eligible | Requires search eligibility plus policy fields | Publish privacy, terms and return policy fields in the feed |
Three behaviours worth knowing before you judge your organic presence. ChatGPT may rewrite your listing: it can generate simplified titles and descriptions from third-party data, so your title is an input, not guaranteed display copy. It applies its own labels: tags like "Budget-friendly" or "Most popular" are generated by the model, and review summaries are drawn from public websites and not verified by OpenAI. Blocking bots now costs you visibly: OpenAI states that when retailers block automated access, shopping research skips those sources or relies on other sites with similar products. A blanket bot block in robots.txt, a CDN rule or a WAF can mean your products are missing from the buyer's guide for your own category.
For a high-consideration purchase, the shopping research buyer's guide is effectively the shelf, and if you're not on it you're not in the decision. That's why we treat crawler access, allowlisting and feed quality as one project alongside the paid campaigns, not a separate SEO task for later.
Platform notes: Shopify, BigCommerce, WooCommerce and custom stores
Your ecommerce platform decides how much of this work is configuration and how much is engineering. OpenAI documents only one platform-specific path, that Shopify merchants are integrated into ChatGPT Shopping automatically through Shopify Catalog. Everything else here is GPT Ads AI operating guidance about where the work sits on each type of stack, not a claim about any specific app. Check what your platform and its app ecosystem currently offer before you choose a route.
| Task | Shopify | BigCommerce / other hosted SaaS | WooCommerce / self-hosted | Custom / headless |
|---|---|---|---|---|
| Organic ChatGPT Shopping | Shopify Catalog integration (documented by OpenAI); confirm it's live | Apply for direct feeds access | Apply for direct feeds access | Apply for direct feeds access |
| Ads product feed | Transform an existing channel feed to OpenAI's spec; serve as hosted URL | Same: most platforms already export a channel feed | Feed plugin output, transformed; hosted URL | Generate from the product database; SFTP or hosted URL |
| Pixel install | Theme <head> or a platform integration; verify minor units and event_id | Script manager or theme; keep the loader near the top of <head> | Theme header; avoid loading it late through a plugin chain | Server-rendered <head> |
order_created source of truth | Order creation webhook to your server, then Conversions API | Order webhook | Order hook in the checkout flow | Order service |
| Conversions API | Managed pipeline or a small server function | Managed pipeline or server function | Server-side hook with a queue | In-house worker with a durable queue |
| Main risk | Assuming the Shopify Catalog connection covers the ads feed. It doesn't: ads use a separate feed in Ads Manager | Feed refresh too infrequent to keep availability current | Caching plugins serving stale prices to crawlers | Route normalisation dropping oppref on mount |
Shopify specifics worth checking
Shopify stores have the easiest organic path and the most common paid-side misunderstanding. The Shopify Catalog integration feeds organic ChatGPT Shopping. It isn't an Ads Manager product feed and doesn't create ads. For paid feed campaigns you still create a feed in Ads Manager under Tools → Feeds and import products into it. On measurement, Shopify's checkout structure means the confirmation event is often best sent from an order webhook through the Conversions API, with the order ID as id, and paired with a Pixel event that uses the same order ID as event_id. Any integration that fires the purchase event for you must let you control or read that identifier. Otherwise you can't deduplicate.
Headless and custom storefront specifics
Headless storefronts give you the most control and the most ways to break attribution. Single-page routing means the Pixel loader runs once and route changes don't reload the page, so emit page_viewed from the router's navigation hook and nowhere else. Frameworks that normalise URLs on mount can strip oppref before the SDK captures it. Test the live ad destination URL in a fresh session and confirm that the __oppref cookie is written. If your Content Security Policy is strict, add entries for OpenAI's SDK and event endpoints. A CSP block produces zero conversions and no obvious error.
Writing feed copy that answers shopping questions
In a product feed campaign the title and description are the ad. ChatGPT's organic shopping surfaces also read your structured data. That gives feed copy two jobs: earning the click below a conversation, and providing the attributes an assistant needs to recommend the product. The before-and-after examples below are illustrative rewrites showing the pattern we use.
| Product | Before (typical channel-feed title) | After (written for conversation) | What changed |
|---|---|---|---|
| Running shoe | "TRX-200 W 8.5 BLK" | "Women's Trail Running Shoe, Wide Fit, Waterproof, Black" | Product type first, then the attributes shoppers ask about |
| Skillet | "Pro Pan 12in CS" | "12-Inch Carbon Steel Skillet, Pre-Seasoned, Induction Compatible" | Material, size and compatibility spelled out |
| Dog food | "Senior Formula 24lb" | "Senior Large-Breed Dog Food, Gentle Digestion Recipe, 24 lb Bag" | Life stage and need named |
| Carry-on | "Voyager 20 Spinner Navy" | "Underseat Carry-On for Budget Airlines, 20 Litre, Laptop Sleeve, Navy" | Use case and constraint in the title |
| Serum | "RN-03 30ml" | "0.3% Retinol Night Serum for Sensitive Skin, 30 ml" | Strength, use and skin type |
| Sofa | "Harlow 3S Oat" | "Apartment Sofa, 72 Inches, Fits 30-Inch Doorways, Oat Linen" | The space constraint that decides the purchase |
A description template for conversational matching
Descriptions can run to 5,000 characters, and most stores use a fraction of that. Plain sentences in this order work well (GPT Ads AI guidance):
- What it is and who it's for, in one sentence.
- The problem it solves in the shopper's terms: "keeps you cool if you sleep hot", "fits under the seat on budget airlines".
- Deciding attributes: size, dimensions, materials, compatibility, capacity, strength.
- Comparison context, factual only: "firmer than our Classic model", "lighter than cast iron of the same size".
- What's in the box, care and maintenance.
- Practical guarantees: returns window, warranty, trial period. Keep these exactly in line with the policy page.
Avoid keyword stuffing, superlatives you can't prove, claims about competitors, and anything health-related that describes treatment. Remember that ChatGPT may generate simplified titles and descriptions for organic display, so your copy is the source material. Accurate, specific source material produces accurate, specific summaries.
Feed hygiene checklist before every major upload
- Every
urlresolves to the exact variant, with no redirect that drops query strings. - Every
image_urlis public, opens directly to the image, and is JPEG or PNG. priceandsale_pricematch the landing page, and sale price doesn't exceed regular price.availabilityreflects stock as of this upload, not last week's.is_ads_eligibleisfalsefor gift cards, discontinued lines and products you don't want advertised.ads_metadatavalues are spelled consistently, because a filter onherowon't matchHero.- Titles read sensibly as ad headlines when you read the top 50 aloud.
- The refresh schedule is shorter than the two-week expiry, with daily refreshes for fast-moving stock.
Context hints for ecommerce: targeting the shopping moment
Product feed campaigns let the catalog do the matching. Standard campaigns rely on context hints: short, plain-language descriptions of the conversations, topics and keywords where your offer is relevant. You write them at the ad-group level. OpenAI's matching system reads them as intent signals, not exact-match keywords, and per OpenAI they do not guarantee delivery in any specific conversation. The system weighs your hints together with the landing page, ad title and ad copy, then decides relevance.
For a store, the difference from Google Shopping or search keywords is the most important idea on this page after the feed. A keyword names a query. A hint names a shopper at a particular moment. "Running shoes" is a category. "New runners choosing between stability and neutral running shoes for flat feet" is a person partway through a decision, and that person is far more likely to buy from the ad they see next.
The anatomy of an ecommerce hint
Every strong hint has three layers. Miss one and the matcher has to guess.
| Layer | What it describes | Ecommerce version | Weak | Strong |
|---|---|---|---|---|
| Audience | Who the shopper is | Life stage, use case, experience level, the person they're buying for | "People" | "First-time parents", "Hot sleepers with back pain" |
| Intent | What they're doing now | Exploring, comparing, choosing between two options, replacing, gifting, buying under a deadline | "Interested in" | "Comparing", "Replacing a worn-out", "Choosing a gift for" |
| Topic | What it's about, plus the one constraint that decides it | Category plus the deciding attribute: budget, size, material, compatibility, dietary need | "Mattresses" | "Memory foam vs hybrid mattresses under $1,200" |
The template: [Audience] who are [Intent] [Topic] because [constraint or trigger].
Strong: "Pet owners comparing fresh versus kibble dog food for a senior golden retriever with a sensitive stomach."
Weak: "Dog food." It names a category, not a shopper, so it matches conversations you don't want: training questions, breed trivia, homemade recipes.
Context hints by ecommerce vertical
These examples follow the Audience–Intent–Topic structure. They're GPT Ads AI methodology, not OpenAI-published examples, and they are written to be adapted, not pasted in as-is. The exclusion column matters as much as the hint. It keeps your ad out of conversations that look like buying intent but aren't.
| Vertical | Strong context hint | Exclusions to state |
|---|---|---|
| Apparel and footwear | "New runners choosing between stability and neutral running shoes for flat feet, budget under $150" | Not sneaker resale, not shoe-cleaning tips, not sizing for other brands |
| Beauty and skincare | "Adults in their 30s building a first retinol routine for fine lines who have sensitive skin" | Not prescription tretinoin, not dermatology diagnosis, not DIY masks |
| Home and furniture | "Renters furnishing a small apartment, comparing compact sofas that fit through narrow doorways" | Not interior design careers, not furniture restoration |
| Sleep | "Hot sleepers with lower back pain comparing memory foam and hybrid mattresses under $1,200" | Not sleep disorders or medical advice, not crib mattresses |
| Kitchen and cookware | "Home cooks choosing their first carbon-steel or cast-iron skillet and worried about seasoning" | Not restaurant equipment, not recipe requests alone |
| Pet supplies | "Dog owners comparing fresh versus kibble food for a senior large-breed dog with a sensitive stomach" | Not veterinary emergencies, not pet adoption |
| Consumer electronics | "Remote workers choosing noise-cancelling headphones for open-plan offices and frequent flights" | Not repair or troubleshooting, not audio engineering |
| Outdoor and sporting goods | "Beginner backpackers choosing a lightweight two-person tent for three-season trips under $300" | Not campsite booking, not survival training |
| Baby and kids | "First-time parents comparing convertible car seats that fit a compact car" | Not pediatric medical questions, not childcare jobs |
| Jewellery and gifts | "Partners shopping for a minimalist gold anniversary necklace under $250 with fast US delivery" | Not jewellery appraisal, not wholesale gold |
| Food and beverage | "Coffee drinkers switching from pods to whole-bean and choosing a first burr grinder" | Not café jobs, not coffee farming |
| Supplements (US only) | "Adults comparing third-party-tested magnesium supplements for evening routines" | No disease claims; not treatment of conditions; not outside the US |
The supplements row has the strictest exclusions for a reason. Dietary supplements are allowed in the US and not allowed in any other country under OpenAI's policy table. Health claims are where an ad that is allowed in principle can still fail review. Write hints and copy around routines and product attributes, never around treating or curing anything.
Five hint patterns, applied to retail
Most high-performing hints take one of five shapes. Here they are in ecommerce form.
- Persona + Intent: "First-time homeowners comparing robot vacuums for pet hair on hardwood floors."
- Question: "What is the best carry-on that fits under a budget-airline seat?"
- Topic + Disqualifier: "Trail running shoes for wide feet. Not road racing flats, not resale."
- Outcome: "Parents who want school lunches that stay cold until noon without ice packs."
- Stack comparison: "Shoppers comparing a Vitamix and a Ninja blender for daily smoothies."
The stack-comparison pattern is powerful for ecommerce and also has a policy dimension. Matching conversations where shoppers compare named products is what hints are for. But your ad copy should make claims about your own product, not unsupported claims about a competitor's. Keep comparative claims factual and checkable.
Hints by funnel stage
Conversations in ChatGPT move through stages, often within a single thread. Group ad groups by stage so bids and landing pages can match.
| Stage | Shopper language | Hint focus | Landing page | Bid posture |
|---|---|---|---|---|
| Exploration | "What should I look for in…", "Is it worth getting…" | Problem and use case | Buying guide or collection page with education | Lower; this is cheap reach for considered purchases |
| Comparison | "X vs Y", "Which is better for…" | The two options and the deciding constraint | Comparison page or collection filtered to the attribute | Middle |
| Selection | "Best [product] under $[price] for [use]" | Budget, size, compatibility | Product page or tightly filtered collection | Higher; this is where orders come from |
| Purchase-ready | "Where can I buy…", "Is [product] in stock…", "Fastest delivery…" | Availability, delivery speed, offer | Product page with stock and delivery promise above the fold | Highest your economics allow |
| Gifting | "Gift for my dad who…", "Under $50 gift for…" | Recipient, occasion, budget | Gift guide or curated collection | Seasonal; raise ahead of known dates |
Mistakes that waste ecommerce budget
- Pasting a Google Shopping or search keyword list in as hints. Hints are descriptions, not strings. A 300-keyword paste reads to the matcher as noise.
- One ad group for the whole store. Mixing running shoes, socks and GPS watches in one ad group blurs relevance for all three. Keep one product category or use case per ad group.
- Naming the product but not the shopper. "Organic cotton sheets" versus "Hot sleepers choosing breathable organic cotton sheets for summer."
- No disqualifiers. Without exclusions, a mattress hint will match conversations about insomnia treatment.
- Treating exploration like purchase intent. Bidding selection-stage prices on "what should I look for" conversations buys curiosity at buying prices.
- Setting hints once. Read delivery and conversion data by ad group every week and rewrite the hints that buy traffic that doesn't convert.
Our free Context Hint Generator turns a brand, buyer and differentiator into a structured first draft. The contexthints.com framework shows how to refine that draft.
Ad creative for stores: titles, copy, images
For standard campaigns you write the creative. The unit has six fixed components (advertiser name, favicon, title, copy, landing-page URL and image), and three of them are where ecommerce performance is decided.
Titles that earn the click in a conversation
An ad in ChatGPT sits below an answer the shopper has just read. It's a continuation of a conversation, not an interruption of browsing. Titles that work there are specific, not clever.
| Pattern | Example | Why it works |
|---|---|---|
| Product + deciding attribute | "Breathable Hybrid Mattress for Hot Sleepers" | Echoes the constraint the shopper just stated |
| Outcome + proof | "Cast Iron That Ships Pre-Seasoned, 40,000+ Reviews" | Removes the worry raised in the conversation |
| Offer + constraint | "Carry-Ons Under $150 That Fit Budget Airlines" | Matches a budget and a size limit in one line |
| Comparison resolver | "Stability or Neutral? Find Your Fit in 60 Seconds" | Continues the comparison the shopper is having |
| Gift framing | "Anniversary Necklaces Under $250, Delivered by Friday" | Recipient, budget and deadline together |
Copy that respects the context
The shopper has just read a balanced answer from an assistant. Hard-sell copy reads badly straight after that. What tends to work in the accounts we run (GPT Ads AI observation): one concrete differentiator, one piece of proof, one practical detail such as free returns, delivery speed or a size guide, and no superlatives you can't back up. A shopper in a conversation can ask the assistant a follow-up question about your claim, so make sure the claim survives it.
Images
Product on a clean background beats a lifestyle shot for selection-stage ad groups in our accounts. Lifestyle images earn their place in exploration-stage ad groups where the shopper is still imagining the use. Whichever you pick, the image must be publicly reachable, and in a feed campaign the template's image field is the only creative choice you control, so pick the field that holds your best primary image.
Ad and policy hygiene specific to retail
- Price and availability in the ad must match the landing page. Mismatches are a common reason products fail review.
- Discount claims ("50% off") need a real, current reference price on the landing page.
- Shipping and delivery promises ("by Friday") need to be true for the shopper's location at the time the ad serves, or left out.
- Review counts and ratings must be your own and current.
- Health-adjacent products: describe attributes and routines, never treatment outcomes.
Landing pages: where ChatGPT traffic converts or leaks
Relevance is an auction input, and OpenAI names the landing page as one of the signals the matching system uses. The landing page is also where your conversion rate is decided, so it moves both your price and your payback. Ecommerce landing pages for ChatGPT traffic need a few adjustments compared with search traffic.
| Element | Why it matters for ChatGPT traffic | What to do |
|---|---|---|
| Continuity with the conversation | The visitor arrives mid-decision with a specific constraint in mind | Land on the variant or filtered collection that matches the hint, not the homepage |
| Answer the follow-up question | Shoppers who were just comparing want the comparison resolved | Put the deciding attribute (size, material, compatibility, budget) above the fold |
| Price and stock certainty | Product data must match the ad | Show live price and stock; never land on an out-of-stock variant |
| Delivery and returns | The last objection in most retail conversations | Delivery estimate and returns policy visible without scrolling |
| Query-string preservation | oppref arrives in the URL and is the attribution link | No redirects, link shorteners or locale bounces that drop query parameters |
| Speed | Mobile traffic, impatient visitors | Fast first paint; defer heavy scripts, but keep the pixel loader near the top of <head> |
| Consent flow | Consent interstitials can drop parameters | Make sure the CMP keeps the URL intact and doesn't navigate before the SDK runs |
www or locale redirects and frameworks that normalise routes on mount can all discard oppref, the attribution identifier OpenAI appends to your landing URL. The click is still billed and the conversion still happens, but the link between them is lost. Test the live destination URL from an actual ad preview, not the URL you typed into the form.Anatomy of a shopping conversation, and where your ad fits
Abstract advice about "intent" is easier to apply once you've followed a single conversation through. This is an illustrative shopping thread (a composite, not a logged conversation), annotated with what each turn tells a store about targeting, creative and landing pages.
| Turn | Shopper says | What it reveals | Store implication |
|---|---|---|---|
| 1 | "I sleep really hot and my back hurts in the morning. What kind of mattress should I look at?" | Exploration stage; two constraints (temperature, back pain) | An exploration-stage hint naming both constraints; landing on an educational comparison page |
| 2 | "What's the difference between memory foam and hybrid for that?" | Comparison stage; the category has narrowed to two types | A comparison hint; a title that resolves the comparison ("Hybrid Cooling Mattress for Hot Sleepers") |
| 3 | "Okay, hybrid. Anything good under $1,200 in a queen?" | Selection stage; budget and size stated | An aov_band ad group and size-filtered landing page; price visible above the fold |
| 4 | "Do any of those have a long trial and free returns?" | Purchase-ready; the last objection is risk | Copy that states the trial period and returns policy exactly; the policy visible on the landing page |
| 5 | "Can I get it before the 20th?" | Delivery deadline | Only promise delivery dates that are true for the shopper's location |
Three lessons for stores. First, the same shopper moves through several stages in one thread, so ad groups organised by stage, each with its own hint and landing page, match the journey better than one ad group per product. Second, the constraints accumulate. By turn three the shopper has stated temperature, back pain, type, budget and size. The more of those your title, feed attributes and landing page answer, the more relevant you are. Third, the last objection is usually practical (returns, trial, delivery). That's why policy details belong in copy and descriptions, not only in the footer.
Ad group structure templates for stores
Three structures that cover most stores. Pick the one that matches how your customers describe what they need. These are GPT Ads AI templates.
Template A: by concern or use case (beauty, wellness, sleep)
| Campaign | Ad groups | Hint focus |
|---|---|---|
| Concern – Standard – Clicks | Fine lines; Hydration; Breakouts; Sun protection | The concern, skin type and routine stage |
| Feed – Hero | tier = hero | Product data does the matching |
| Feed – Catalog | One per line | Product data does the matching |
Template B: by product line and funnel stage (outdoor, cookware, electronics)
| Campaign | Ad groups | Hint focus |
|---|---|---|
| Line X – Standard – Clicks | Exploration; Comparison; Selection | The same line, with hints and landing pages written for each stage |
| Line Y – Standard – Clicks | Exploration; Comparison; Selection | Same pattern |
Feed – by aov_band | 0–50 (accessories bundled only); 50–100; 100–250; 250+ | Bids per band from break-even CPC |
Template C: by recipient and occasion (gifts, jewellery, seasonal)
| Campaign | Ad groups | Hint focus |
|---|---|---|
| Gifts – Standard – total budget with dates | For partners; for parents; for kids; under $50; under $100 | Recipient, occasion, budget, delivery deadline |
| Feed – Seasonal | season = q4-gifting | Paused outside the season without touching the feed |
Whichever template you use, apply three rules. Keep one product category or use case per ad group. Name campaigns after their objective and, for oCPC, their event. And keep the hero set separate from the long tail, so the products that drive revenue get their own budget.
Measurement for ecommerce: Pixel, Conversions API and the purchase event
Conversion tracking on this channel runs through three paths that all report to one Pixel ID: the oaiq JavaScript Pixel in the browser, a no-JavaScript image tag, and the server-side Conversions API. OpenAI deduplicates across them using the Pixel ID, the event name and a shared event identifier. For a store this isn't optional. Under conversion-optimised bidding, broken tracking affects ad delivery, not just your dashboard. The full technical reference is in our conversion tracking guide. This section covers what's specific to ecommerce.
The ecommerce event map
OpenAI's standard events map almost exactly onto a store funnel. Instrument all of them, even if you only optimise towards one. Later event-selection decisions depend on having the full ladder in place.
| Store funnel step | OpenAI standard event | Data type | Fire it from |
|---|---|---|---|
| Any page view | page_viewed | contents | Pixel (router hook on single-page storefronts) |
| Product detail page view | contents_viewed | contents | Pixel, with the product in contents |
| Add to cart | items_added | contents | Pixel, with product, quantity and amount |
| Checkout started | checkout_started | contents | Pixel |
| Order placed | order_created | contents | Both Pixel and Conversions API, deduplicated on the order ID |
| Account created | registration_completed | customer_action | Pixel or API |
| Subscribe-and-save / subscription | subscription_created | plan_enrollment | API from your subscription platform's webhook |
| Newsletter or waitlist sign-up | lead_created | customer_action | Pixel |
Items in a contents array support id, name, content_type, quantity and amount. Fill them in on ecommerce events even though they're optional. They're the only product-level context the system receives, and a store with a product feed already has the values. Use the same product ID in contents as item_id in your feed, so feed and conversion data line up.
Four ecommerce tracking rules
- Amounts are integers in ISO 4217 minor units.
amount: 2599means $25.99, not $2,599. This is the most common data-quality bug in new installs. The conversion count looks right and the revenue is out by a factor of a hundred. If ROAS looks implausible in the first week, check this first. - The order ID is the deduplication key. Generate the identifier once, when the order is created, in a place both paths can read. The order ID already exists, is already unique and is available on the confirmation page and on the server. Use it as
event_idon the Pixel andidon the Conversions API. Without it, every order sent through both paths counts twice, which halves your apparent cost per order and invites you to scale a mediocre campaign. - Keep the purchase event out of the tag manager. The purchase event decides budgets. Emit it from the same code path that creates the order, so the conversion and the revenue record come from one source of truth. Everything upstream of purchase can live in a container.
- Platform apps: verify two things before trusting them. On hosted ecommerce, an app or theme integration that injects the Pixel and maps standard events removes most of the work. Before you rely on one, confirm that it sends
amountin minor units and that it exposes theevent_id, so you can deduplicate against a server-side integration later. An integration that hides the event identifier can't be paired with the Conversions API, and you'll only find out when you try.
The Conversions API for stores
The server-side path is where serious ecommerce measurement lives. It survives ad blockers, it can send events your browser never sees (subscription renewals, phone orders, store pickups) and it is the only path for app events. Its endpoint takes up to 1,000 events per request, and if any event in a batch fails, the whole batch fails. Write conversion events to a durable queue when the order is created, then drain the queue with a worker that batches, retries with backoff and splits a failing batch rather than dropping it. Never put a synchronous OpenAI call inside your checkout request: a latency spike on their side would become a checkout latency spike on yours.
Two constraints matter especially for stores:
- The seven-day window.
timestamp_msmust fall within the last seven days and no more than ten minutes ahead. Orders that are confirmed late, such as pre-orders, backorders or manual payment methods, need a pipeline that runs at least daily. Anything older than seven days can't be sent. - Action sources.
action_sourceacceptsweb,mobile_app,offline,physical_store,phone_call,emailandother. A store with retail locations or phone sales can report those orders too, as long as the attribution identifiers are carried through.
Matching data, consent and automatic advanced matching
Match quality decides how many orders connect back to a click. Stores hold more matching data than almost any other advertiser, because checkout collects an email, a phone number, a name and an address. The rules:
- Hash email, phone, external customer ID, first name and last name with SHA-256 (lowercase hex), after normalising. Email: trim and lowercase. Phone: digits only, with no leading
+or zeroes, 8 to 15 digits. External ID: trim only. - Send raw: country (ISO 3166-1 alpha-2), region, city and postal code; on the server, the originating client's
ip_addressanduser_agent. - Key names differ by path. The Pixel takes singular keys (
email_sha256,postal_code). The Conversions API takes plural list keys (emails_sha256,postal_codes) and uses the first three valid, unique values in each list. Send the wrong form and the field is silently ignored. - Phone and name matching on the Pixel were added in September 2026 (
phone_number_sha256,first_name_sha256,last_name_sha256). Older guides that say phone isn't supported are out of date. - Automatic advanced matching (AAM) is the default for new Web pixels, and OpenAI enabled it for existing Web pixels on 17 August 2026. When on, the Pixel detects supported customer information entered into website forms (checkout forms included) and hashes it with SHA-256 in the browser before sending. You can opt out or change it under Tools → Conversions → Data Source.
- Consent defaults to
true. A pixel installed without consent wiring will track. Where prior consent is required, deny first, initialise, then release on your CMP's consent event.
Whether AAM should stay on is a privacy-review question, not a technical one. Does the consent you collect at checkout cover sending hashed contact information to an advertising platform? For most US stores with a standard consent framework, leaving AAM on gives a better match rate. Make that decision on purpose and record it.
Event quality and diagnostics
Ads Manager has two health panels, under Tools → Conversions. They answer different questions, and both belong in a weekly review. Pixel validation diagnostics explain why events were dropped: which field failed, the error type and a recommended fix. Event quality is a daily assessment per data source with nine named warnings that grade whether the events that did arrive are useful. A store integration can pass diagnostics cleanly and still carry several event-quality warnings, because nothing was malformed, just thin. The event quality guide covers each warning and the field that clears it. The ones stores see most are limited email or customer ID information, ad click information missing or unconnectable (usually a query-string redirect), and Conversions API events delayed (usually a batch job that runs too infrequently).
Choosing the optimisation event for a store
OpenAI's guidance has two pulls: choose the event that best represents your goal, and choose an event with enough signal. For a store the goal is a purchase. Whether order_created has enough signal depends on volume. Here is the ecommerce version of the event ladder (GPT Ads AI guidance):
| Your situation | Optimise towards | Why |
|---|---|---|
| No orders tracked yet from ChatGPT traffic | Don't run oCPC yet; run Clicks | You need a measured click-to-order rate first |
| Fewer than about 30 ChatGPT-attributed orders a month, checkout starts 3–5× that | checkout_started | Dense enough to learn, close enough to purchase to matter |
| Long checkout, low order volume, healthy add-to-cart volume | items_added | The only dense signal; replace it as soon as volume allows |
| Steady order volume from this channel | order_created | The event that matches the business goal |
| Subscription-first brand with real weekly sign-up volume | subscription_created | Optimises towards the customer with the highest LTV |
| Never | page_viewed | A traffic metric, not a conversion |
Remember two constraints. Custom events can't be used as oCPC targets, so a store that tracks purchases only through a custom event can't run conversion campaigns until a standard event fires as well. And each oCPC campaign has one event, fixed at creation. Moving from checkout_started to order_created later means a new campaign, so plan the migration from the start.
The attribution gap, and how to report ChatGPT revenue honestly
Every conversion system undercounts. This one undercounts for reasons that are specific to conversational shopping, and being honest about them is the difference between a business case that survives finance and one that falls apart the first time two dashboards disagree.
| Gap | What happens in ecommerce | What to do |
|---|---|---|
| Browser collection is degraded | Ad blockers and privacy tools stop the Pixel on a share of sessions | Run the Conversions API alongside the Pixel, deduplicated |
| Conversational journeys aren't linear | A shopper sees your ad, keeps comparing over several turns, and buys three days later through branded search or by typing your URL | Record a branded-search and direct-traffic baseline before you scale |
| The seven-day event window | Late-confirmed orders can't be reported through the API | Run the server pipeline daily |
| Modelled conversions | Reported totals may include modelled estimates | Call the number "platform-reported conversions", not "orders" |
| No mature measurement ecosystem yet | No established mix-model or third-party consensus on how to weigh ChatGPT conversions | Use geo or time holdouts once spend can afford them |
How to talk about it internally: present ChatGPT Ads conversions as a floor. "This channel produced at least N orders at a measured cost of $X, and the structure of the medium means the true figure is higher by an amount we're working to bound." That sentence holds up under questioning. "ChatGPT delivered N orders" doesn't.
Attribution windows and view-through
Reporting supports click-through windows of 7, 14 or 30 days and view-through windows of 0 Day or 1 Day. With view-through set to 1 Day, those conversions are included in the Conversions total. A store comparing ChatGPT with Meta or Google must line up windows before comparing ROAS, otherwise the comparison measures window settings, not channels. View-through needs no extra tracking work. The same events you already send support both.
Managed conversion pipelines popular with stores
If you don't want to build the Conversions API integration yourself, three vendor paths are documented. Triple Whale measures ChatGPT Ads alongside other channels and offers Sonar Optimize for ChatGPT Ads. WorkMagic reports ChatGPT Ads with your other channels and sends conversion signal back to OpenAI. Hightouch syncs conversion events to OpenAI from a warehouse model using a Pixel ID and API key. None of them removes your responsibility for deduplication: if a warehouse sync and the Pixel both report the same order, they need the same event_id.
The weekly ecommerce reporting view
| Metric | Source | Read it as |
|---|---|---|
| Spend, clicks, average CPC | Ads Manager | Cost of traffic. Compare average CPC with your break-even CPC |
| CTR | Ads Manager | Relevance of creative to context. Exclude carousel card impressions |
Conversions (order_created) and conversion value | Ads Manager | Platform-reported orders and revenue, which may include modelled conversions |
| Cost per order (spend ÷ conversions) | You calculate it | Compare with AOV × contribution margin |
| Platform ROAS | Ads Manager | Compare with 1 ÷ contribution margin |
| Orders and revenue from ChatGPT UTMs | Your analytics / store platform | Independent check on the platform number |
| Platform-to-store ratio | You calculate it | Record it early, while the account is small enough to diagnose |
| New-customer share | Store platform | ChatGPT traffic that mostly reorders from existing customers is a retention channel, not acquisition |
| Branded search and direct traffic trend | Search Console, analytics | The visible trace of influence the click chain misses |
| Product-level clicks and orders | Products tab, Insights API | Merchandising signal: what to promote, prune or re-photograph |
Build tagged destination URLs before launch with our UTM builder, so every click can be attributed in your own analytics from the first day. The reporting guide covers refresh timing, columns and exports.
Diagnosing a store's ChatGPT Ads account: symptoms and causes
When an ecommerce account underperforms, the symptom usually points to one layer: auction, creative, feed, landing page or measurement. This diagnostic table is drawn from the failure modes we see most often in managed accounts (GPT Ads AI observation). Start with the symptom, check the likely causes in order, and fix the cheapest one first.
| Symptom | Likely causes, in order | First check |
|---|---|---|
| Few or no impressions | Ads or products not approved; hints too narrow; bid below what relevant auctions clear at; budget at the floor | Status tooltips and product review status; then widen hints before raising bids |
| Impressions but very low CTR | Titles don't continue the conversation; image weak; hint matching exploration-stage conversations with a purchase-stage ad | Read titles aloud as headlines; check which funnel stage the hint describes |
| Good CTR, high CPC | Contested category; relevance below competitors; Maximize results pushing for volume | Compare average CPC with your max bid; tighten hints and landing-page match before bidding |
| Good CTR, poor conversion rate | Landing page doesn't resolve the conversation's question; price or stock mismatch; slow mobile page | Land on the filtered collection or variant; check price and stock parity |
| Conversions in store analytics but not in Ads Manager | oppref stripped by a redirect; consent interstitial; CSP blocking the SDK | Test the live ad URL in a fresh session; check the __oppref cookie |
| Ads Manager conversions about double store orders | Pixel and API without a shared identifier | Order ID as event_id and id |
| Revenue implausibly high | Amounts in dollars, not cents | Minor units: 2599 = $25.99 |
| Feed products not serving | Expired after two weeks; is_ads_eligible false; rejected in review; out of stock | Upload History, product count in ad-group setup, Products tab review status |
| Spend concentrated on a few cheap SKUs | No margin or tier segmentation | Design ads_metadata and split ad groups by margin or tier |
| Conversion campaign spending without improving | Event too sparse; Bid Cap set from a guess | Move to a denser event; derive the Bid Cap from measured click-to-order rate |
| Event quality warnings | Thin matching data; delayed API events; missing click information | Work through the warnings in the event quality guide |
A weekly 30-minute account review
- Delivery: any disapproved ads, rejected products or serving issues?
- Feed: last successful upload time, rows rejected, ads-eligible count. Is the refresh running?
- Economics: cost per order by campaign against target (AOV × margin), from store data with the platform number alongside.
- Hints: the three ad groups with the worst cost per order. Rewrite one hint per week; don't rewrite everything at once.
- Measurement health: diagnostics panel, event quality warnings, platform-to-store ratio against last week.
- Products: top and bottom SKUs by clicks and orders, carousel card performance kept separate.
- Decisions: one change per campaign, written down with the reason, so next week's review can judge it.
Promotions, pricing and discounts on ChatGPT
Price comes up constantly in shopping conversations. Budgets get stated ("under $100"), comparisons hinge on value, and the organic merchant ranking highlights the lowest price ChatGPT knows about for a product. That makes pricing strategy part of ChatGPT strategy in a way it isn't on interruption channels.
- Price parity matters more than headline discounts. On organic surfaces, ChatGPT ranks merchants on factors including price and availability and highlights the lowest price it's aware of. If a marketplace lists your product cheaper than your own store, the assistant may send the buyer there. Check where your products are sold and at what price before you spend on ads that create demand someone else captures.
- Promotions belong in the feed and the landing page, not just the ad. In a feed campaign,
sale_price(never above regular price) is how a promotion reaches the ad. Remove it when the promotion ends. A stale sale price is a mismatch that can fail review and frustrates shoppers. - Price-band ad groups match how shoppers talk. An
aov_bandmetadata key lets you build ad groups that line up with stated budgets and bid each band according to its own break-even CPC. A $250+ band can afford higher bids than a $0–50 band. - Bundles change the economics. Raising AOV is the most direct way to raise break-even CPC. Bundles, sets and multi-packs are often the products that make the channel work for low-AOV stores.
- Free shipping thresholds are a conversion lever. A shopper who arrives with "under $100" in mind and finds free shipping starting at $75 has a reason to add a second item. Show the threshold on the landing page.
- Don't promise discount dates you can't keep. Countdown claims and "today only" language in ad copy must be true when the ad is shown.
Privacy and compliance checklist for US stores
Measurement on this channel uses customer data, and US privacy law is a patchwork of state laws. This checklist is operational, not legal advice. Have your counsel confirm it against the states you sell into.
| Item | Why | Where it's handled |
|---|---|---|
| Disclose advertising and measurement partners in your privacy policy | OpenAI's guidance is to share conversion data only where permitted, after clear disclosure and with the necessary consents | Privacy policy |
| Decide on automatic advanced matching deliberately | AAM hashes form contact data in the browser and sends it with conversion events; it's on by default | Tools → Conversions → Data Source |
| Wire Pixel consent to your CMP where prior consent is required | Pixel consent defaults to true | Pixel consent command |
| Honour opt-outs on server events | opt_out opts an event out of personalisation; wire it to the user's preference | Conversions API |
| Hash before sending; never send raw PII in hashed fields | OpenAI's spec requires SHA-256 for contact fields | Shared normalisation function |
| Keep personal data out of the image tag | URLs leak into logs and referrers | Use the Pixel or API for anything with user data |
| Send originating client IP and user agent, not your server's | Required for accurate matching; also a data-minimisation question | Server middleware |
| Review AAM against sensitive forms | Health-adjacent stores may have forms you don't want detected | Form audit before leaving AAM on |
Scaling beyond the first campaigns
Once the hero campaigns pay back, scaling a store on ChatGPT is mostly about widening relevance without diluting it.
- Widen by product line, not by loosening hints. Add ad groups for the next product lines with their own hints and filters. Broadening an existing hint until it matches everything raises CPC across the board.
- Move proven campaigns to conversion bidding one at a time. Each move is a new campaign. Keep a Clicks control and compare cost per order from store data.
- Use the bulk sheet for structural changes. Export for edit, change, re-upload. Rebuilding thirty ad groups by hand is how structure falls behind the catalog.
- Add Reach for moments, not as a baseline. Launches and seasonal peaks justify CPM buying when you've measured how ChatGPT exposure moves branded demand.
- Consider international only after checking category policy. If your categories are allowed outside the US and you have the right legal entity and currency set up, the countries guide covers what changes. Supplements, consumer medical devices and several health-adjacent categories don't travel.
- Keep the organic track moving. Every improvement to feed quality, crawler access and content helps both paid relevance and organic shopping visibility.
Vertical playbooks for US online stores
The mechanics are the same in every category. The economics, conversation patterns and policy risks are not. These playbooks are GPT Ads AI operating guidance drawn from how shopping conversations work in each vertical. They are starting positions, not guarantees.
| Vertical | Conversation pattern | Lead campaign | Feed priority | Main risk |
|---|---|---|---|---|
| Apparel and footwear | Fit, sizing, use case, "will this work for…" | Feed campaign by line, hero ad groups for best-sellers | Size and fit in descriptions; variant grouping | Returns eat contribution margin. Use net-of-returns margin in break-even maths |
| Beauty and skincare | Routines, ingredients, skin type, sensitivity | Standard campaigns by concern, then feed by line | Ingredient lists and skin-type suitability in descriptions | Claims drifting into treatment language |
| Home and furniture | Space constraints, style, delivery logistics | Standard campaigns by room/use case; high-AOV collections | Dimensions in titles where they decide the purchase | Long consideration cycles exceed the 7-day API window |
| Sleep | Pain points, temperature, firmness, trial periods | Comparison-stage standard ads; trial and returns policy in copy | Firmness and material attributes | Health adjacency: describe comfort, not treatment |
| Kitchen and cookware | First serious purchase, material comparisons, care | Feed campaign plus comparison standard ads | Material, compatibility (induction), care in descriptions | Low-AOV accessories dragging average economics |
| Pet supplies | Life stage, sensitivities, breed size, switching food | Subscription-led standard ads; feed for consumables | Life-stage and size attributes; subscription option | Veterinary-advice conversations. Exclude them |
| Consumer electronics | Compatibility, comparisons, use environment | Feed with tight aov_band filters; exclude low-margin accessories | GTINs; model compatibility in descriptions | Thin margins and heavy price competition |
| Outdoor and sporting goods | Experience level, trip type, weight, weather | Seasonal feed ad groups by season | Technical specs (weight, rating) in descriptions | Seasonality: budgets need flighting |
| Baby and kids | Safety, fit for vehicle or home, first-time uncertainty | Comparison-stage standard ads | Safety standards, dimensions, age ranges | Medical questions, which must be excluded |
| Jewellery and gifts | Recipient, occasion, budget, delivery deadline | Gift-framed standard ads around dates | Price bands; delivery promise | Delivery promises that aren't true for every location |
| Supplements (US only) | Routines, testing, ingredients | Standard ads with conservative copy | Third-party testing and ingredient detail | Any disease or treatment claim; no international expansion |
Apparel and footwear in more depth
Apparel shoppers bring fit questions to ChatGPT: wide feet, petite sizing, how a brand runs compared with another. That's good news for a store with solid fit content and bad news for one without it. Put fit guidance into the feed description (it can hold 5,000 characters) and on the landing page, because a shopper who reached you through a fit question will look for the answer straight away. Do the break-even maths on margin net of returns. A 30% return rate on a 50% gross margin product is a very different business from the gross figure, and paid acquisition magnifies the difference.
Beauty and skincare in more depth
Skincare conversations are routine-led: "what order do I apply…", "can I use retinol with…", "what's gentle enough for sensitive skin…". Organise ad groups by concern (fine lines, hydration, breakouts, sun protection) rather than by product type. That's how the conversations are organised. Copy should describe ingredients, textures and suitability. As soon as copy says a product treats a condition, you've moved from an allowed retail category towards health claims, and review risk rises. Feed descriptions with full ingredient lists help both the paid matching and the organic shopping surfaces, where ChatGPT can answer an ingredient question with your product.
Home, furniture and sleep in more depth
These are high-AOV, long-consideration categories, so they benefit most from ChatGPT's conversational depth and suffer most from the seven-day API window. A shopper may research a sofa over three weeks. Structure measurement around the assisted path: a branded-search baseline, view-through windows read separately, and checkout_started or a lead-like event (design consultation, fabric sample request via lead_created) as the optimisation event, since orders are too sparse. Put dimensions in titles where they decide the purchase ("Apartment Sofa, 72 Inches, Fits 30-Inch Doorways"). In this vertical, a size constraint is often the whole conversation.
Pet supplies in more depth
Pet food and consumables combine moderate AOV with very high repeat purchase. That's the profile where LTV-adjusted bidding makes the channel work. Lead with subscription offers, track subscription_created through the Conversions API from your subscription platform's webhook, and optimise towards it once weekly sign-ups can support learning. Exclude veterinary conversations explicitly. "My dog is vomiting" is not a shopping moment, and your brand appearing beside it isn't one you want.
Consumer electronics in more depth
Electronics shoppers ask compatibility questions ("does this work with…") that a rich feed can answer and a thin feed can't. Keep GTINs in the feed. Exclude low-margin accessories from ads with is_ads_eligible: false or a margin filter, unless they're bundled. Our break-even table shows why: a $45 accessory at 30% margin needs clicks to clear at well under a dollar. Lead with bundles and higher-AOV primary products, and let accessories ride as attachments on the landing page.
Seasonal planning: the US retail calendar on ChatGPT
Retail runs on a calendar, and ChatGPT shopping conversations follow it. Gift questions rise before holidays, back-to-school questions in late summer, outdoor questions in spring. Two platform features make seasonal flighting workable: paced total budgets (since September 2026) and ads_metadata values like season and promo, which let you build seasonal ad groups without touching the feed.
| Window | What shoppers ask ChatGPT | Setup (GPT Ads AI guidance) | Lead time |
|---|---|---|---|
| Valentine's Day | Gifts by recipient and budget | Gift-framed standard ads; season: valentines ad groups | Build 3–4 weeks ahead |
| Mother's Day / Father's Day | "Gift for my mom who…", experience gifts | Recipient-specific hints; gift-guide landing pages | 3–4 weeks |
| Spring outdoor / garden | Gear for trips and projects | Outdoor and garden feed ad groups by season | 4 weeks |
| Prime Day–style summer sales | Deal comparisons | Promo ad groups; price-band hints | 2–3 weeks |
| Back-to-school | Dorm lists, kids' gear, laptops | Back-to-school collections; budget-led hints | 4–6 weeks |
| Black Friday to Cyber Monday | Deals, comparisons, gift lists | Total-budget flight with dates; promo: bfcm feed ad groups; Reach for launch-day awareness if economics allow | 6–8 weeks (account approval and feed processing can't be rushed in November) |
| December gifting | Gifts by recipient, last-minute delivery | Delivery-deadline copy; stop promising dates once they can't be met | Running from BFCM |
| January resolutions | Fitness, organisation, health routines | Routine and goal-led hints; supplement copy kept conservative | 2–3 weeks |
Worked examples: three US stores
Three composite examples, illustrative and not client data, showing how the pieces in this guide fit together for different businesses. Each states its assumptions so you can rerun the maths with your own.
Example 1: DTC skincare brand, 180 SKUs, Shopify
Assumptions (illustrative): AOV $65, contribution margin 55%, ChatGPT landing-page conversion rate 3%, 12-month LTV multiplier 2.8×. First-order break-even CPC: $1.07; LTV-adjusted: $3.00.
- Account and tracking: US entity, USD, store time zone. Pixel through the platform integration after confirming minor-unit amounts and an exposed
event_id; Conversions API through a managed pipeline with the order ID as the shared identifier. AAM left on after the privacy review confirmed checkout consent covers it. - Feed: Google feed transformed to OpenAI's spec through a hosted URL, refreshed daily. Titles rewritten for the transform ("Retinol Night Serum for Sensitive Skin, 0.3%, 30 ml").
ads_metadata:line,tier,margin. - Campaigns: a hero standard campaign by concern (fine lines, hydration, sun protection) with context hints written to the Audience–Intent–Topic template, at a $3 manual max bid; a hero-tier feed campaign at $2.50; catalog feed by
lineat $1.50. - Optimisation: after five weeks, the hero standard campaign rebuilt as a Conversions campaign on
checkout_started(orders were still under about 30 a month from this channel), Bid Cap derived from the measured click-to-checkout rate. Planned migration toorder_createdonce monthly orders are consistently higher. - Organic in parallel: Shopify Catalog integration confirmed, shopping-research allowlisting completed, robots.txt and CDN rules checked for blocks on OpenAI's crawlers.
Example 2: Premium cookware, 60 SKUs, custom storefront
Assumptions (illustrative): AOV $180, contribution margin 38%, conversion rate 2.2%, LTV multiplier 1.4×. First-order break-even CPC $1.50; LTV-adjusted $2.11.
- Constraint: OpenAI's recommended $3–5 starting CPC is above break-even. The plan therefore depends on relevance and AOV, not on bidding up.
- AOV lever: lead with sets and bundles (AOV around $320) rather than single pans. At the same margin and conversion rate, break-even CPC rises to about $2.68.
- Relevance lever: comparison-stage hints ("home cooks choosing between carbon steel and cast iron for their first serious skillet") landing on a comparison page that resolves the question and links to the bundle.
- Measurement: Conversions API built in-house with a durable queue; purchase event emitted from order creation, not the tag manager.
- Result to watch: cost per order against $68 (AOV × margin, single-item) and against $122 (bundle). Kill single-item ad groups that can't clear the lower figure.
Example 3: Pet food subscription, 40 SKUs, subscription platform
Assumptions (illustrative): first-order AOV $55, contribution margin 35%, conversion rate 4%, LTV multiplier 5×. First-order break-even CPC $0.77; LTV-adjusted $3.85.
- Strategy: a deliberate LTV bid. The store accepts losing money on the first order to acquire subscribers, which only makes sense if it measures retention by acquisition channel.
- Events:
subscription_createdsent through the Conversions API from the subscription platform's webhook;order_createdfor one-off orders. - Hints: life-stage and switching conversations ("owners switching a senior large-breed dog to a gentler food"), with veterinary exclusions.
- Check that keeps it honest: a 90-day retention cohort for ChatGPT-acquired subscribers compared with other channels. If ChatGPT subscribers churn faster, the LTV multiplier for this channel is lower and the bid must come down.
ChatGPT Ads vs Google Shopping vs Meta for ecommerce
Most stores evaluating ChatGPT Ads already run Google Shopping and Meta. The useful question isn't which one is "best". It's what job each does in your mix. This comparison is GPT Ads AI's analysis of how the channels differ structurally. ChatGPT Ads facts come from OpenAI's documentation; the characterisation of Google and Meta is general industry knowledge.
| Dimension | ChatGPT Ads | Google Shopping / search | Meta (Facebook, Instagram) |
|---|---|---|---|
| What triggers the ad | A conversation in which a shopper describes a need, matched by context hints, feed data, landing page and ad content | A typed search query matched to keywords or product data | Audience targeting and algorithmic prediction in a feed the user is scrolling |
| Intent signal | Rich and explicit: constraints, budget, use case in the shopper's own words | Explicit but compressed into a few words | Inferred, not stated |
| Creative | Six-component unit; feed campaigns use your feed text | Product listing from the feed; text ads | Image and video, heavily creative-driven |
| Auction | Relevance-weighted, second-price | Quality-weighted auction | Auction with estimated action rates |
| Measurement maturity | New: Pixel since spring 2026, conversion bidding since June 2026; no established mix-model consensus yet | Mature | Mature |
| Competition | Low to moderate; many categories still under-contested (GPT Ads AI observation) | High in most retail categories | High |
| Best job in a store's mix | Capturing considered, constraint-rich purchase decisions; comparison-stage shoppers | Capturing demand from people who know what to search | Creating demand; prospecting and retargeting |
How the channels work together
The pattern we see in managed accounts (GPT Ads AI observation): ChatGPT conversations often sit in the middle of the purchase journey. A shopper sees something on Meta, researches and compares in ChatGPT, then completes the purchase through a branded Google search or a direct visit. Each platform's attribution claims the part it can see. That's why the attribution section recommends measuring ChatGPT against your own order data and a branded-demand baseline, rather than against other platforms' self-reported numbers. If you also run Google Ads, our guide to connecting ad platforms covers keeping the data sets readable side by side.
Where budget for ChatGPT usually comes from
Industry reporting suggests spend on this channel is often moved from existing budgets rather than added as new money. Digiday quoted one agency executive describing spend shifting from the top of the funnel to fund what's being positioned as a new direct-response channel. If your ChatGPT test is funded by cutting Meta prospecting or Google non-brand, judge it against what that money was buying before, not against a standalone ROAS target it was never scoped to hit.
Testing framework: how to run experiments on ChatGPT Ads
A new channel with immature measurement rewards disciplined testing more than clever tactics. This is the framework we use (GPT Ads AI method).
| Test | Hypothesis format | Split | Minimum read | Success metric |
|---|---|---|---|---|
| Context hint rewrite | "Naming the deciding constraint raises conversion rate" | Two ad groups, same products and bid, different hints | Two full weeks | Cost per order, not CTR |
| Feed title rewrite | "Conversation-style titles beat channel-feed titles" | Two product sets from the same line, or before/after with a seasonal check | Two to three weeks | CTR and cost per order |
| Landing page | "Landing on a filtered collection beats a single product" | Two ad groups pointing to different pages | Two weeks or 50 orders | Conversion rate |
| Bid strategy | "Maximize results finds cheaper orders than a manual max bid" | Clone the ad group, run both | Three weeks | Cost per order and volume |
| Optimisation event | "checkout_started oCPC beats Clicks on cost per order" | New Conversions campaign versus the existing Clicks campaign | Four weeks after learning settles | Cost per order from store data |
| Incrementality | "ChatGPT Ads drive orders that would not have happened" | Time-based on/off periods, or geo holdout once markets allow | Four to eight weeks | Total store orders and branded demand versus baseline |
Rules that keep tests honest
- One change per test. A new hint plus a new landing page plus a new bid gives you a result you can't interpret.
- Judge on cost per order from your own data, with the platform number alongside it, never platform CTR alone.
- Use full weeks. Shopping conversations follow weekly patterns, and partial weeks mislead.
- Write the hypothesis down first, including what result would make you stop.
- Don't test during a promotion unless the promotion is what you're testing. Black Friday data tells you about Black Friday.
- Keep a control. When moving campaigns to conversion bidding, leave a comparable campaign on Clicks.
Glossary of ChatGPT Ads ecommerce terms
| Term | Meaning |
|---|---|
| Ads Manager | OpenAI's self-service interface for creating and managing ChatGPT ad campaigns |
| Context hint | Plain-language description of the conversations where an ad is relevant, set at ad-group level; an intent signal, not an exact-match keyword |
| Product feed | Structured catalog file (IDs, titles, descriptions, prices, availability, images, URLs) imported into Ads Manager |
| Product feed campaign | Campaign type that generates ads from the feed; mode fixed at creation |
is_ads_eligible | Feed field that controls whether a product can be processed for ads |
ads_metadata | Free-form key–value pairs in the feed, used to segment products into ad groups |
| Ad template | Defines how feed values appear in a feed ad; currently only the image field is selectable |
| Multi-product carousel | Unit showing several products from one advertiser; card impressions are reported separately from billable impressions |
| Relevance-weighted, second-price auction | Bids are weighted by relevance; the winner pays just enough to beat the next effective bid |
| Maximize results | Bid strategy where the platform sets bids to maximise results; no CPA/CPC/ROAS guarantee |
| oCPC | Optimised cost per click: the Conversions objective; billed per click, delivery biased towards your chosen event |
| Bid Cap | The maximum you'll pay per click in an oCPC ad group |
Pixel (oaiq) | OpenAI's browser JavaScript measurement SDK |
| Conversions API | Server-side endpoint for sending conversion events, up to 1,000 per request, within the last 7 days |
oppref | OpenAI's privacy-preserving attribution identifier, appended to landing URLs on ad clicks |
__oppref cookie | Where the SDK stores oppref so it survives navigation |
obref | The unmodified __oppref cookie value, sent server-side on Conversions API events |
order_created | OpenAI's standard event for a completed order |
| Deduplication | Matching the same event across Pixel and API by Pixel ID, event name and shared identifier |
| Minor units | Currency in its smallest unit: cents for USD, so 2599 = $25.99 |
| Automatic advanced matching (AAM) | Pixel feature that detects form contact details and hashes them in the browser before sending |
| Event quality | Daily assessment of conversion data usefulness per data source, with nine named warnings |
| Modelled conversions | Estimated attribution for otherwise unattributed events; may be included in reported totals |
| ChatGPT Shopping | Organic product results in ChatGPT search, not ads |
| Shopping research | Organic multi-step buyer's guide built from merchant data, public pages and other sources |
| Agentic Commerce Protocol (ACP) | The protocol through which merchants provide product data to ChatGPT's shopping research |
| Break-even CPC | AOV × contribution margin × conversion rate: the most you can pay per click without losing money on the first order |
| AEO | Answer-engine optimisation: structuring content and data so AI assistants can find, extract and cite it |
How this page was built: AEO lessons from a real ChatGPT conversation export
Answer-engine optimisation (AEO) is the practice of structuring content so assistants like ChatGPT, Google's AI Overviews, Perplexity and Gemini can find it, extract it and cite it when they answer a question. For an ecommerce brand it matters twice. It decides whether your content gets cited when shoppers ask about your category, and the same principles decide whether your products surface in organic ChatGPT Shopping. Rather than writing about AEO in the abstract, we built this page from evidence: an export of our own ChatGPT conversations, including the one that started it.
What the conversation export contains
The export lists each conversation with its title, prompt, timestamp, and the retrieval metrics ChatGPT recorded: whether product carousels appeared, the number of fan-out searches (the sub-queries the assistant ran before answering), and the number of distinct domains, links and named entities it drew on. Here are the rows relevant to this guide, as recorded on 13–16 October 2026.
| Prompt (as typed) | Conversation title ChatGPT assigned | Carousels | Fan-outs | Domains | Links | Entities |
|---|---|---|---|---|---|---|
| "chatgpt ads for ecommerce store in usa" | ChatGPT Ads Ecommerce Strategy | No | 6 | 9 | 9 | 0 |
| "How ChatGPT's ad-targeting system works." | Ads in ChatGPT: The Basics, OpenAI Help Center | No | 2 | 5 | 13 | 0 |
| "context hints chatgpt ads" | Untitled Conversation | No | 0 | 0 | 0 | 0 |
| "research the fanout querry 'buy solar leads' in USA market" | Buy Solar Leads: Providers, Types and Cost [2026], UpLead | No | 9 | 21 | 15 | 4 |
| "Best ai search visibility tracke" | Compare AI search trackers | No | 5 | 20 | 12 | 4 |
The export records counts, not the fan-out query text or the domains themselves. We report what it contains and don't invent the rest. These are single conversations, not a statistical sample. Retrieval behaviour varies between runs, accounts and dates. Read the patterns below as directional evidence, which is what they are.
What the numbers say
| Observation from the export | What it suggests | How this page responds |
|---|---|---|
| The ecommerce prompt triggered 6 fan-out searches before ChatGPT answered | The assistant broke "ChatGPT ads for an ecommerce store in the USA" into several sub-questions (likely cost, setup, feeds, targeting, eligibility, measurement) and searched each one | One self-contained section per sub-question, each opening with a direct answer that can be lifted on its own |
| 9 domains and 9 links: one link per domain | The answer drew on breadth: many sources, one page each. Being the single best page for a sub-question beats being one of several pages on the same site | Each section answers its sub-question completely, so this one URL can win several fan-outs |
| 0 entities on the ecommerce query, versus 4 on the commercial comparison queries | The ecommerce answer wasn't built around named vendors. The comparison-style queries ("best tracker", "buy solar leads") were | Tables name concrete fields, events and settings (order_created, is_ads_eligible, ads_metadata) so the page provides the specific nouns an answer needs |
| The ad-targeting prompt drew 13 links from 5 domains and was titled after an OpenAI Help Center page | For factual "how does it work" questions, the assistant leans heavily on the primary source and reads several of its pages | Every platform fact is attributed to OpenAI's documentation, and the page links to our guides that cite it, instead of paraphrasing loosely |
| The commercial "buy solar leads" prompt produced the most fan-outs (9) and domains (21) | Commercial-investigation queries fan out widest, because they need comparisons, prices and providers | Cost, comparison and budget tables are here, because commercial ecommerce questions pull the widest set of sources |
| No carousels on any of these prompts | Informational and B2B questions about advertising don't trigger shopping carousels. Product-intent questions do | We separate content AEO (this page) from product AEO (your feed and Shopify Catalog), because they're won in different places |
| The "context hints" prompt recorded 0 fan-outs | Some short, niche queries are answered from the model's own knowledge without searching. When that happens, only sources already known to the model are in play | We keep terminology consistent with contexthints.com and our context hints guide, so the concept is attributed consistently wherever it's learned |
The sub-questions an ecommerce answer has to cover
Since the export records the number of fan-outs but not their text, here is how we mapped the six-fan-out ecommerce prompt onto content. These are our inferred sub-questions, used as the page's architecture. They are not the logged queries.
| Inferred sub-question | Section that answers it | Answer format |
|---|---|---|
| What are ChatGPT ads and do they work for online stores? | What "ChatGPT Ads for ecommerce" actually means | Definition plus a three-layer table |
| How much do ChatGPT ads cost for a store? | Unit economics and Budget planning | Formulas plus labelled tables |
| Can a US store advertise, and which products are allowed? | Eligibility and Categories | Policy table |
| How do product feed / shopping ads work? | The product feed | Field table plus steps |
| How do you target shoppers? | Context hints for ecommerce | Template plus vertical table |
| How do you track sales and ROAS? | Measurement for ecommerce | Event map plus rules |
AEO best practices for ecommerce content and products
These practices come from the export patterns above, OpenAI's published guidance on shopping surfaces and crawler access, and what has worked across our own site (where structured, definition-led guides earned AI-search visibility within weeks of publishing). The "evidence" column says which is which.
| Practice | What to do | Applies to | Evidence |
|---|---|---|---|
| Lead with a liftable answer | Open every page and major section with a 2–3 sentence direct answer that makes sense out of context | Content | Fan-out behaviour: each sub-query wants a self-contained answer |
| One section per sub-question | Structure pages around the questions an assistant will split the topic into, each with its own H2 phrased the way people ask | Content | 6 fan-outs on the ecommerce prompt |
| Tables for anything comparative | Put prices, specs, policies, comparisons and steps in real HTML tables, not images or prose | Content and product pages | Answers to commercial queries drew on the widest set of sources, and tables are the most extractable format |
| Name things precisely | Use exact field names, event names, product names and model numbers, with consistent terminology across pages and sites | Content and feeds | Entity counts were higher on comparison queries |
| Cite primary sources | Attribute platform facts to the platform's own documentation and link to it | Content | The targeting prompt drew 13 links from the primary source's domain |
| Label your own data | Distinguish official figures, your observations and illustrative assumptions | Content | Assistants and readers can then cite you accurately |
| Keep it fresh and dated | Show "updated" dates and actually update the facts; this channel changes weekly | Content | Stale claims get contradicted by newer sources in the same answer |
| Don't block AI crawlers by accident | Audit robots.txt, CDN bot rules and WAF settings for OpenAI's crawlers | Content and product pages | OpenAI: shopping research skips sources that block automated access |
| Get into the product data layer | Shopify Catalog integration, or apply for direct feeds access; complete shopping-research allowlisting | Products | OpenAI's documented paths into ChatGPT Shopping and shopping research |
| Rich feed attributes | Fill in descriptions, GTINs, variants, Q&A and reviews fields | Products | Organic selection uses structured metadata from first- and third-party providers |
| Price and availability accuracy | Keep feed and page in sync, refresh frequently | Products | Merchant ranking weighs availability and price; the lowest known price is highlighted |
| Be the primary seller | Make your own site the clearest seller of your own products | Products | Merchant ranking considers whether the merchant is the maker or primary seller |
| Machine-readable twins | Publish clean Markdown or llms.txt versions of key content | Content | Lowers parsing cost for assistants; this page has a Markdown twin |
| Structured data that matches the page | Product, FAQ and Article schema that reflects visible content | Content and products | Supported schema helps extraction; mismatched schema erodes trust |
The content inventory an ecommerce brand needs for AEO
Ads buy you the space below the answer. Content and product data earn you a place inside it. This is the page set we'd build for a US store that wants both, ordered by how often shopping conversations need it (GPT Ads AI guidance).
| Page type | Example | Questions it answers | Format that gets cited |
|---|---|---|---|
| Category buying guide | "How to choose a carry-on for budget airlines" | What to look for, which constraints matter | Definition lead, criteria table, picks by use case |
| Head-to-head comparison | "Carbon steel vs cast iron skillets" | Which is better for whom | Comparison table, verdict by use case |
| Fit and sizing guide | "How our trail shoes fit wide feet" | Will it fit, how does it run | Size table, fit notes by foot type |
| Product detail page | Each SKU | Price, stock, specs, delivery, returns | Spec table, Q&A, Product schema matching the feed |
| Gift guide | "Anniversary gifts under $250" | What to buy for whom | Lists by recipient and budget |
| Care and use guide | "How to season and care for cast iron" | Post-purchase questions that bring shoppers back | Numbered steps |
| Policy pages | Shipping, returns, warranty | The last objection before purchase | Short tables; also required for checkout-eligible feeds |
| Ingredient / material glossary | "What retinol percentage should beginners use" | Attribute questions | Definition lists |
Your 90-day launch plan
A realistic sequence for a US store starting from nothing. Every step is in this guide. This section puts them in order.
Days 1–14: foundations
- Apply for the advertiser account: US entity, USD, the time zone your store reports in. Approval time sets the pace for everything else (account setup guide).
- Check every product category you plan to advertise against OpenAI's policy table.
- Work out break-even CPC and break-even ROAS for your top collections, net of returns.
- Install the Pixel near the top of
<head>, wire consent, and instrument the full event ladder frompage_viewedtoorder_created. - Build the Conversions API path (in-house or managed) with the order ID as the shared identifier. Test deduplication by firing one test order through both paths and confirming it appears once.
- Audit robots.txt, CDN and WAF for rules that block OpenAI's crawlers.
- Record baselines for branded search and direct traffic.
Days 15–30: first campaigns
- Launch a hero-product standard campaign on Clicks with a manual max bid set from LTV-adjusted break-even, one ad group per concern or use case, and context hints written to the Audience–Intent–Topic template.
- Transform your Google feed to OpenAI's spec, design
ads_metadata(four or five keys), connect by hosted URL or SFTP, and validate rejected rows. - Check event quality and diagnostics weekly. Reconcile one full day of platform orders against your store's order table and record the ratio.
Days 31–60: feed and structure
- Launch the hero-tier product feed campaign, then the catalog campaign with more efficient bids. Use the bulk sheet if your structure is large.
- Rewrite context hints that buy traffic without orders. Prune ad groups whose cost per order can't reach target.
- Start the organic track: Shopify Catalog check or direct-feeds application, plus shopping-research allowlisting.
Days 61–90: optimise and scale
- Rebuild the strongest campaign as a Conversions campaign on the deepest event with enough volume (
checkout_startedororder_created), with the Bid Cap derived from its measured click-to-order rate. - Try conversion optimisation on the hero feed campaign (beta) with the long tail kept on Clicks as a control.
- Plan the next seasonal flight with a paced total budget and
season/promometadata. - Present results as a floor, alongside your store-side numbers and the branded-demand trend.
Common mistakes ecommerce brands make on ChatGPT Ads
| Mistake | Why it costs money | Fix |
|---|---|---|
| Feed titles left as SKU strings | They become your ad headlines | Rewrite titles in the OpenAI transform |
| One CSV upload, never refreshed | Feed items expire after two weeks | Hosted URL or automated SFTP |
Using is_ads_enabled | The field doesn't exist | Use is_ads_eligible |
| Amounts sent in dollars, not cents | Revenue out by 100× | ISO 4217 minor units |
| Pixel and API without a shared ID | Orders double-counted; scaling a phantom | Order ID as event_id / id |
| oCPC launched as the first campaign | Bid Cap is a guess with no CPA control | Run Clicks first and measure click-to-order |
Optimising to page_viewed | Optimises for page loads, not buyers | Use the deepest event with enough volume |
| Bidding above break-even on single-purchase, low-AOV SKUs | Every order loses money | Lead with bundles and high-AOV collections |
Redirects that strip oppref | Attribution lost on every affected click | Preserve query strings through every hop |
| Blocking AI crawlers sitewide | Missing from shopping research | Allow OpenAI's crawlers |
| Supplement program planned for international expansion | Category not allowed outside the US | Model it as US-only |
| Counting carousel card impressions as impressions | Fake CPM and CTR improvements | Keep the columns separate |
| Judging ROAS without matching attribution windows | You compare settings, not channels | Align click and view windows across platforms |
Should you run it in-house or with an agency?
Most of this guide can be done in-house by a store with an engineer, a performance marketer and a feed owner. The work that benefits most from specialist help is the work that compounds: feed transformation and ads_metadata design, server-side measurement with correct deduplication, and the context-hint and creative iteration that lowers your effective CPC.
If you hire help, the pricing model matters more than usual on a new channel. A percentage-of-spend fee (commonly 15–25%) rises automatically as you scale, even though managing a well-built account doesn't get proportionally harder. We run ChatGPT Ads management on a fixed monthly retainer, with a recommended minimum media budget of $10,000 a month. Our guide to choosing a ChatGPT Ads agency covers the questions to ask any agency, including us.
Sources and further reading
Platform facts on this page come from OpenAI's help centre and developer documentation as summarised and linked in our channel guides. Each guide below cites the specific OpenAI articles. Observations, worked examples and operating guidance are GPT Ads AI's own and are labelled as such in the text. The conversation-export data is from our own ChatGPT account, exported in October 2026.
- ChatGPT Ads product feed: feed spec, import methods, bulk creation, product review, carousel reporting, organic shopping surfaces
- Context hints for ChatGPT Ads and Context Hints: The Definitive Guide (contexthints.com): the targeting framework
- ChatGPT Ads cost: auction mechanics, bids, minimum daily budgets, pacing
- ChatGPT Ads conversion tracking: Pixel, image tag, Conversions API, matching, deduplication
- ChatGPT Ads conversion campaigns: oCPC, event selection, Bid Cap
- ChatGPT Ads event quality: the nine warnings
- ChatGPT Ads reporting: metrics, windows, refresh timing
- ChatGPT Ads countries: availability and the policy eligibility table
- OpenAI developer documentation: product feeds, measurement pixel, Conversions API, supported events
Quick answers.
Do ChatGPT ads work for ecommerce?
Yes, for stores whose unit economics fit. OpenAI says ads created from product feeds have been among the strongest-performing ads in its program to date, because they reach shoppers who are describing what they want to buy. Whether they pay back for your store depends on your break-even cost per click (AOV × contribution margin × conversion rate) compared with what you actually pay in the auction. OpenAI's recommended starting max bid for clicks is $3–5.
How much do ChatGPT ads cost for an online store?
There is no rate card. Cost is set in a relevance-weighted, second-price auction. OpenAI publishes a $25/day minimum for USD accounts, a $3–5 recommended starting max bid for the Clicks objective, and a $60 default max CPM bid for Reach. In GPT Ads AI managed accounts, observed CPCs have mostly fallen between $1.50 and $9. We recommend about $10,000/month in media for a test that reaches a decision.
Can a US ecommerce store advertise on ChatGPT?
Yes. To use self-service Ads Manager, the legal entity that will advertise and be billed must be based in an available country, and the US is one. Your billing details must match that entity, and country, currency and time zone cannot be changed after the account is created.
What are product feed campaigns in ChatGPT Ads?
A campaign type in Ads Manager that generates ads from your product catalog. You import a spec-compliant feed (CSV/TXT upload, hosted URL or SFTP), filter which products each ad group can use, and the ad title and description are pulled directly from the feed. Feeds hold up to 2 million products and items expire after two weeks unless refreshed.
Can I reuse my Google Shopping feed for ChatGPT ads?
Mostly. Fields such as id, title, description, link, image_link, price, availability, gtin and brand map closely to OpenAI's spec. The net-new work is OpenAI-specific fields: is_ads_eligible, ads_metadata, seller_name, seller_url, target_countries and store_country. Validate against OpenAI's spec and check that Google-style titles read well as ad headlines.
Does advertising on ChatGPT improve my organic ChatGPT Shopping visibility?
No. OpenAI states that organic shopping results are selected independently and are not ads or influenced by partnerships. During the beta, products in your ads feed are only eligible for ads. Organic visibility comes through Shopify Catalog integration or a direct-feeds application, plus shopping-research allowlisting and crawler access.
Which conversion event should an online store optimise for?
The deepest standard event with enough volume to learn from. Use order_created when ChatGPT-attributed orders are steady. Use checkout_started when orders are sparse but checkouts are three to five times higher. Use items_added only as a bootstrap. Never use page_viewed. Custom events cannot be oCPC targets, and the event cannot be changed after the campaign is created.
How do I stop orders being double-counted between the Pixel and the Conversions API?
Use the same identifier on both paths: event_id on the Pixel and id on the Conversions API, both reporting to the same Pixel ID. Your order ID is the right value, because it is unique and available to both the browser and the server. OpenAI deduplicates using the Pixel ID, event name and that identifier.
Why is my ChatGPT Ads revenue 100 times too high?
Almost always because amounts were sent in dollars instead of minor units. OpenAI expects integers in ISO 4217 minor units, so amount 2599 means $25.99. Check your platform app or custom code before trusting any ROAS figure.
Can supplement brands run ChatGPT ads?
In the US, yes: dietary supplements are allowed under OpenAI's policy table for the US. They are not allowed in any other country. Keep copy to product attributes and routines, never disease or treatment claims, and plan the program as US-only.
Who sees ChatGPT ads?
Per OpenAI, ads are shown to Free and Go users and not to Plus, Pro or Business plan users, or users predicted to be under 18. Ads appear below relevant conversations, are clearly labelled and are separate from the assistant's answer.
Can I target a single US state or city with a product feed campaign?
No. New product feed campaigns support geographic targeting and exclusions only at country level. Express regional promotions through the catalog instead, for example an ads_metadata promo value used as an ad-group filter.
Why is the Products tab empty when my feed uploaded successfully?
For feed campaigns, the Products tab is an insights-backed reporting view, not a feed inventory. Products appear only after an active campaign delivers. Allow up to seven hours after delivery begins. Use the product count in ad-group setup to confirm feed readiness.
What are context hints for ecommerce?
Plain-language descriptions of the shopping conversations where your products are relevant, written at ad-group level. They work as intent signals, not exact-match keywords, and don't guarantee delivery. Strong ecommerce hints name the shopper, their intent and the deciding constraint, for example 'hot sleepers with back pain comparing hybrid mattresses under $1,200'. Contexthints.com has the full framework.
Should a store use Maximize results bidding?
Only where volume matters more than a hard cost ceiling. Maximize results is the default for eligible new ad groups and adjusts bids to get the most results, but it does not guarantee delivery against a CPA, CPC or ROAS target. If your economics depend on a maximum cost per click, choose a manual max bid set from your break-even CPC.
Does conversion optimisation work with product feed campaigns?
Yes, in beta. It is available on click-billed product feed campaigns with fixed or manual bidding in the first release and requires a positive conversion bid cap. It needs conversion volume to learn, so start with your highest-volume category and keep the long tail as a control.
What is the multi-product carousel?
An ad format showing several products from one advertiser in a single unit, in testing since August 2026, with card-level impressions and clicks reported since September 2026. Card impressions are separate from billable impressions. Keep them out of CPM and CTR calculations.
How should I report ChatGPT Ads revenue to finance?
As a floor. Reported conversions may include modelled conversions, browser collection is degraded, conversational journeys convert later through branded search and direct traffic, and the Conversions API only accepts events from the last seven days. Reconcile platform orders with your store data, record the ratio, and track branded-demand baselines.
What is AEO for an ecommerce brand?
Answer-engine optimisation: structuring content and product data so assistants can find, extract and cite it. For stores that means definition-led pages with tables, one section per question shoppers ask, accurate structured data, crawler access for AI agents, and product data in ChatGPT Shopping through Shopify Catalog or direct feeds.
How long does it take to launch ChatGPT ads for a store?
Plan for several weeks. Account approval usually takes the longest, feed processing takes minutes to hours per upload, and conversion bidding needs order history. For Q4, have the account and tracking live by early autumn with at least a month of real data before the peak.
Related guides.
Product Feed Campaigns
The feed spec and required fields, SFTP upload, the seven-step campaign setup, ads_metadata segmentation, Google Shopping feed reuse — and how one catalog powers ads, ChatGPT Shopping, and shopping research.
Read guideContext Hints Explained
What context hints are, how they differ from keywords, the Audience–Intent–Topic anatomy, the five hint patterns, and 12 worked examples across B2B and e-commerce.
Read guideConversion Tracking
The oaiq pixel snippet, every supported standard event, the image tag fallback, the full Conversions API payload, deduplication, hashing rules, consent and CSP, validation — and an honest account of what this pixel cannot see.
Read guideChatGPT Ads Cost & Pricing
No rate card, no guesswork. How ChatGPT Ads price through a relevance-weighted second-price auction — CPM vs CPC, the $3-5 starting bid, what drives your cost, and worked cost examples by vertical.
Read guideWant this run for you?
GPT Ads AI is a done-for-you ChatGPT Ads agency. The services below cover exactly what this guide describes.
Product feed & shopping campaigns
Feed spec, automated feed refresh, bulk campaign creation, review-status monitoring, ads_metadata segmentation, and conversion-optimised product feed campaigns for Shopify and DTC brands.
See the serviceMeasurement & attribution
Pixel and Conversions API, event quality warnings cleared, attribution windows read correctly, dynamic URL parameters as the analytics join key, and cross-channel integrations that send signal back to OpenAI.
See the serviceChatGPT Ads management
A senior operator runs the whole channel — account, structure, context hints, creative, bidding, measurement, and weekly written reporting — on a fixed retainer.
See the service
Tarun Kapoor
Founder · GPT Ads AI
Performance marketer with 12+ years in paid acquisition. Former senior media buyer at Neil Patel Digital. Alumni of GroupM, WPP, Ogilvy & Mather, and Toptal's Growth Collective. Fractional CMO to Fortune 500 brands and venture-backed startups.
Book a call with Tarun