# ChatGPT Shopping Optimization > To optimize for ChatGPT shopping, fix the product-data signals it reads over the ACP/Stripe rails (feed completeness, descriptive titles, and crawler access) because there is no enrollment switch to flip. ## How ChatGPT surfaces products ChatGPT does not keep a directory you submit to. It assembles shopping answers from product and checkout data that reach it over a defined rail, and then runs its own selection over what it can read. The Agentic Commerce Protocol (ACP), announced by OpenAI and Stripe on 29 September 2025, is the open standard that powers ChatGPT's Instant Checkout, the rail that standardizes how product feed and checkout data flow into ChatGPT. That rail, plus OpenAI's feed partners, is the pipe your catalog travels through. See [ACP](/glossary/#acp) in the glossary for the two-sentence definition. The rail getting your data to ChatGPT is not the same as ChatGPT choosing you, and the protocol says so plainly. ACP's own FAQ says implementing it does not guarantee automatic product listings: each AI platform "will manage their own process" for how businesses can participate. That sentence is the whole game. Eligibility (being connected and parseable) is table stakes; *winning* the pick is a separate layer, and it is decided by the quality of the signals ChatGPT reads once you are eligible. Everything below is about that second layer. ## There is no "enroll" button Merchants keep looking for the switch. There isn't one. Optimizing for ChatGPT is not an enrollment action but a data-quality action: you cannot flip a setting to make ChatGPT prefer you, because what it prefers is computed from the completeness and legibility of the product signals it already ingests over ACP and from your pages. Practically, that reframes the whole task: you are not applying for placement, you are making yourself the easiest product to score favorably. The three levers below are where that happens, and each has a dedicated playbook so this page stays the map rather than the manual. ## Lever 1: Fix the feed The feed is the structured surface ChatGPT reads first, and gaps in it are the most common reason a product that could have been picked is skipped. Leading titles with category and use-case, filling every attribute agents parse, and keeping availability and price consistent are the moves that matter, but the field-by-field work belongs on its own page. Start with [make your product feed AI-readable](/make-product-feed-ai-readable/), and reconcile any page-versus-feed disagreements with [product schema (JSON-LD) for AI shopping](/product-schema-for-ai-shopping/) so the agent is not left to guess which source to trust. ## Lever 2: Match titles to queries ChatGPT matches a shopper's phrasing against your title text far more literally than a human browsing a shelf would. A brand-first name like "The Luna" gives the query nothing to latch onto; a title that opens with the category, the defining attributes, and the use-case does. The full formula, the evidence behind it, and the honest note that the direct measurement is about descriptions rather than titles all live on [product titles that AI agents match](/product-titles-for-ai-agents/). ## Lever 3: Open crawler access ChatGPT reads more than your feed. It also reads the supplemental page data its crawlers fetch, and if those crawlers are blocked in robots.txt, you delete that signal without realizing it. The commerce allow-list (the OpenAI crawler tokens and what each one does), and what an llms.txt file adds, are covered on [AI crawlers, robots.txt and llms.txt for stores](/ai-crawlers-robots-llms-txt/). Getting this wrong is a silent failure, which is exactly why it belongs in the diagnostic flow too. ## What ACES suggests about the GPT family The most rigorous public read on how GPT-family agents choose comes from the academic **ACES** study, which tested GPT-4.1 alongside Claude and Gemini agents in a controlled storefront simulation. It is the closest evidenced proxy we have for ChatGPT's shopping behavior, with one honest caveat. The exact model and weighting behind ChatGPT's shopping answers are not public and change with each update, so we read ACES's GPT-4.1 results as directional evidence for the GPT family, not as a spec of ChatGPT's live behavior. With that framing, four GPT-4.1 findings are worth acting on. Raising a product's rating by 0.1 stars lifted a baseline 10% selection probability to 20.3% for GPT-4.1, the most rating-sensitive model ACES tested. Price pulls in the expected direction: GPT-4.1's log-price (ln Price) coefficient was −1.612 (negative), meaning cheaper wins all else equal. Two tag effects run counter to intuition: tagging a product "Sponsored" pushed GPT-4.1's baseline 10% selection probability down to 8.0%, while a platform endorsement such as an "Overall Pick" badge lifted that same baseline 10% to 19.9% for GPT-4.1. Hold all four numbers with the study's own limit in mind. ACES is a simulation (vision-language-model agents choosing from a mock storefront in randomized trials), not a record of real purchases in ChatGPT. The reading for a merchant: earn genuine ratings and legitimate endorsement signals, keep price honest, and never manufacture a "Sponsored" look or a fake "pick" badge. The endorsement result is precisely the finding that would tempt a dark pattern. The full cross-model breakdown, including how Claude and Gemini weight these same signals differently, sits on [how AI shopping agents choose products](/how-ai-agents-choose-products/). ## Check eligibility (official, link out) Before optimization has anything to bite on, your store has to be connected and eligible on OpenAI's side. That onboarding and its requirements are OpenAI's own turf, not ours. The canonical eligibility boundary lives on OpenAI's merchant page at [chatgpt.com/merchants](https://chatgpt.com/merchants). We deliberately do not restate its enrollment mechanics here: eligibility requirements are OpenAI's to define and they change on OpenAI's schedule, so read them at the source. Treat the official page as the source of truth for *whether you can appear*; treat this page as the source for *how to be chosen once you can*. That distinction also decides which of our pages you need next. This page is the proactive playbook, the moves that improve your odds. If your products are genuinely missing from ChatGPT and you need to find out *why*, that is a troubleshooting job with a different shape: a diagnostic decision tree, checked in order. Go to [why you're not in ChatGPT shopping](/store-not-in-chatgpt-shopping/) for that. **Optimizing and troubleshooting are different tasks**: use the playbook to get better, the decision tree to get unstuck. The same feed, title, and crawler work reaches [Gemini and Google AI Mode](/gemini-shopping-ranking/) and [Perplexity](/perplexity-shopping-optimization/) too, over their own rails; the protocol differences are compared on [UCP vs ACP](/ucp-vs-acp/). ## Measure your ChatGPT win rate None of the levers above come with a guaranteed conversion number, and we will not invent one. What you can do is measure the outcome directly: run a repeatable set of shopping prompts through ChatGPT and track how often your product is the one recommended: your [agent win rate](/glossary/agent-win-rate/) for that engine. That turns "are we optimized?" from a feeling into a baseline you can move and re-check after each change. The protocol we use (the prompts, the sampling, and the error bars) is published in [how we test agent selection](/research/methodology/); our own measured results stay in a "data collection in progress" state until the experiments produce real numbers.