For more than a decade, the Google Shopping feed has been the foundation of eCommerce visibility. It defined how merchants describe products to search engines (titles, prices, attributes, and availability) all optimized for crawling, indexing, and ad targeting.
But now we’re seeing the emergence of a new standard: OpenAI’s Product Feed specification. It’s not an incremental change, it’s an architectural shift. Instead of describing your products to a search engine, you’re describing them to an AI that can reason about them.
That means we’re no longer just optimizing for retrieval, we’re engineering for understanding.
If you’re a CMO, although we’re too early in the adoption curve for the agentic commerce protocol to matter for this BFCM, these changes represent a strategic signal about how brand data will live inside conversational ecosystems. If you’re an SEO, data engineer, or digital merchandiser, it’s the next schema you’ll need to master.
From Search Results to Conversations
Google’s Shopping feed was designed for a world of keywords and clicks. Its job is to make sure your product shows up when someone types a query, gets filtered correctly, and leads to a transaction on your site.
OpenAI’s feed is built for a world of questions and reasoning. It gives ChatGPT structured access to your product catalog so it can:
- Compare products intelligently, understanding what makes one better for a given use case.
- Answer buyer questions conversationally, pulling from your data, descriptions, and reviews.
- Enable purchases directly inside ChatGPT, if you choose to allow it. Specifically, you can make a product searchable, but not purchasable.
That shift, from search indexing to semantic reasoning, mirrors the broader evolution of SEO into Relevance Engineering. It’s not about being found. It’s about being correctly understood in context.
What CMOs Need to Understand
This isn’t a technical upgrade. It’s a strategic one. OpenAI’s Product Feed changes the relationship between your catalog and your customer. However, a key distinction between OpenAI and Google is that OpenAI’s specifications expect that the product feed is the source of truth.
Your Catalog Becomes Content
Every field, from titles to reviews, becomes something a model can use to tell your brand’s story. Your product data effectively becomes your copywriting. If your descriptions lack voice, clarity, or context, you’re training the model to recommend someone else’s product. Since the product feed is the source of truth you can prepare different content from what is on your website.
You Gain Control Over Participation
The OpenAI feed includes two new control flags:
- enable_search — decides whether a product can appear in ChatGPT search or recommendations.
- enable_checkout — controls whether a user can complete the purchase within ChatGPT.
This lets brands experiment with AI visibility without fully ceding conversion control. You can treat ChatGPT like a top-of-funnel discovery engine or a full transaction channel on a per-product basis.
Freshness Becomes Part Of Your Brand
The spec supports feed updates every 15 minutes, making it possible to keep availability, pricing, and stock levels current. This differs from Google Shopping which updates every 24 hours, unless you set a custom frequency. By default, when an AI recommends your product, the data powering that recommendation is always in sync.
Data Structure Becomes Strategy
Where Google splits your product, pricing, inventory, and review data across multiple feeds, OpenAI merges it into a single structure. The result is a unified, semantically rich data model that doubles as both structured content and conversational training data.
The Practitioner’s View: What’s Actually Different
For SEOs and data practitioners, here’s how the two ecosystems compare in practice.
Category | OpenAI Product Feed Attribute | Google Feed Equivalent | Location in Google System | Equivalence Type | Notes / Differences |
Identification | id, title, description, link, brand, gtin, mpn | Same | Core Product Feed | ✅ Same | Baseline identifiers are consistent. |
Media / Assets | image_link, additional_image_link, video_link, model_3d_link | image_link, additional_image_link, (partial video support) | Core Feed / API | ⚙️ Partial | OpenAI adds native support for video and 3D models. |
Availability & Inventory | availability, inventory_quantity | availability, quantity | Core Feed / Inventory Feed | 🔹 Separate feed in Google | OpenAI merges availability and quantity inline. |
Pricing & Offers | price, sale_price, geo_price, currency | price, sale_price, regional_price | Core Feed / Regional Pricing Feed | 🔹 Separate feed in Google | Regional pricing now handled within one record. |
Categorization | product_type, google_product_category, custom_label_0–4 | Same | Core Product Feed | ✅ Same | Category logic carries over directly. |
Relationships | relationship_type, related_product_id | (no equivalent) | — | 🆕 New | Enables reasoning about product bundles and accessories. |
Variants & Options | item_group_id, color, size, material, pattern, plus custom_variant1–3 | Core variant fields only | Core Product Feed | 🆕 Expanded | Adds flexibility for unique product attributes. |
Merchant Control | enable_search, enable_checkout | (no equivalent) | — | 🆕 New | Allows control over AI visibility and commerce participation. |
Regionalization | geo_availability | regional_availability | Regional Inventory Feed | 🔹 Separate feed in Google | Inline in OpenAI feed. |
Reviews & Q&A | raw_review_data, q_and_a | review_text, rating | Separate Product Reviews Feed | 🔹 Separate feed in Google | Consolidates user-generated content in one schema. |
Compliance | adult, age_group, gender, energy_efficiency_class | Same | Core Product Feed | ✅ Same | Maintains parity. |
Metadata | updated_at, created_at, feed_source | (no equivalent) | — | 🆕 New | Adds operational transparency and freshness tracking. |
Legend:
🔹 = Google requires a separate feed (Inventory, Regional Pricing, or Reviews)
🆕 = New attribute unique to OpenAI
⚙️ = Similar, but expanded or implemented differently
What This Means for SEO and Data Operations
OpenAI’s Product Feed effectively collapses four Google feeds into one. That consolidation creates real operational advantages but also raises the bar for data quality.
Content Engineering Replaces Keyword Targeting
Models don’t care about keywords, they care about meaning. A well-structured feed that captures attributes, features, and emotional value gives ChatGPT more surface area to reason from. The richer your descriptions and review data, the better the AI understands your offering.
Freshness Becomes A Ranking Signal
In an environment that updates every 15 minutes, feed latency is the new technical debt. Real-time synchronization of pricing and inventory isn’t just operationally efficient, it determines whether your product is even eligible for AI recommendation.
Integration Replaces Markup
Where traditional SEO relied on schema.org markup to explain pages to search engines, the OpenAI feed makes your catalog directly machine-readable. You’re not helping an algorithm interpret HTML, you’re feeding structured truth into a reasoning system.
Conversational Accuracy Becomes Conversion Rate
In a conversational commerce experience, there is no “position one.” There’s just the most contextually relevant response. If your feed includes full review context, Q&A, and semantic relationships, your products give the AI more material to recommend confidently. The rewards for feed completeness are exponentially greater in the OpenAI environment.
Transforming a Google Feed into an OpenAI Feed
If you already manage a Google Shopping feed, you’re a strong percentage of the way there. Here’s a simple approach to transforming it for OpenAI’s schema.
Step 1: Consolidate your data sources
Merge your core product feed, inventory feed, regional pricing feed, and product reviews feed into a single dataset. Each product record should include:
- Inventory count (inventory_quantity)
- Regional availability or pricing (geo_availability, geo_price)
- Reviews and Q&A data (raw_review_data, q_and_a)
If you don’t have those sources centralized, build a daily export from your data sources.
Step 2: Add OpenAI-specific attributes
For each product:
- Set enable_search to true if it should appear in ChatGPT search or comparison queries.
- Set enable_checkout to true only if you’ve enabled in-ChatGPT checkout.
- Include updated_at timestamps to track freshness and facilitate partial updates.
Step 3: Extend variant and media support
If you sell products with non-standard variations (e.g., scent, wattage, fabric weight), use custom_variant1_category and custom_variant1_option to define them. Add any product videos or 3D models via video_link and model_3d_link.
Step 4: Automate and validate
Transform your existing Google Shopping CSV with a Python or Node script to match OpenAI’s schema. Schedule feed pushes every 15–30 minutes using your CMS or middleware. Validate against OpenAI’s Product Feed specification.
The Future: From Crawling to Comprehension
Google built its product feed for indexing. OpenAI built theirs for reasoning. One tells a search engine what you sell. The other helps an AI explain why it matters.
As generative search and AI-driven shopping experiences mature, the brands that treat their product data as a narrative that is structured, complete, and continuously updated will be the ones that own visibility in this new era of conversational commerce.
The Google Shopping feed made your catalog visible. The OpenAI Product Feed makes your catalog intelligible.
Post Script: A Complete Attribute Equivalence Table between the Google Shopping Product Feed and OpenAI’s
When I started building a tool to automatically convert a Google Shopping feed into OpenAI’s Product Feed format, it became clear that there is no single way to do it. Google’s ecosystem separates product data into multiple feeds such as core product, inventory, regional pricing, and reviews, while OpenAI brings all of that information together in one.
Instead of trying to create a universal solution, I mapped out the attribute equivalencies below. This gives you and your engineering teams a clear view of how each Google field aligns with the OpenAI schema so you can decide how to merge and transform your data based on your own systems and workflows.
| Category | OpenAI Product | Google Feed Equivalent | Location in Google System | Equivalence Type | Notes/ Differences |
| Identification | id | id | Core Product Feed | ✅ Same | Unique product identifier |
| title | title | Core Product Feed | ✅ Same | Product name; similar guidelines | |
| description | description | Core Product Feed | ✅ Same | Rich text allowed, but OpenAI encourages natural phrasing for LLMs | |
| link | link | Core Product Feed | ✅ Same | Product page URL | |
| brand | brand | Core Product Feed | ✅ Same | Manufacturer or brand | |
| gtin, mpn | gtin, mpn | Core Product Feed | ✅ Same | Global identifiers | |
| Media / Assets | image_link | image_link | Core Product Feed | ✅ Same | Main image |
| additional_image_link | additional_image_link | Core Product Feed | ✅ Same | Supplementary images | |
| video_link | video_link | Optional YouTube link via Merchant Center API | ⚙️ Partial | Google supports via rich content schema or YouTube integration; not part of base feed | |
| model_3d_link | (no equivalent) | — | 🆕 New | Enables 3D/AR assets for immersive shopping | |
| Availability & Inventory | availability | availability | Core Product Feed | ⚙️ Similar | Google supports limited enums; OpenAI adds more granularity |
| inventory_quantity | quantity | Separate Inventory Feed / Content API | 🔹 Exists in separate feed | OpenAI merges inventory data directly; Google separates it into a dedicated “Inventory” feed | |
| condition | condition | Core Product Feed | ✅ Same | new, used, refurbished | |
| Pricing & Offers | price | price | Core Product Feed | ✅ Same | Format and currency similar |
| sale_price | sale_price | Core Product Feed | ✅ Same | Same semantics | |
| sale_price_effective _date | sale_price_effective _date | Core Product Feed | ✅ Same | Validity window | |
| geo_price | regional_price | Regional Pricing Feed | 🔹 Exists in separate feed | OpenAI merges region-specific pricing inline | |
| currency | price (embedded) | Core Product Feed | ⚙️ Similar | Explicit in OpenAI feed; embedded in Google’s | |
| Categorization | product_type | product_type | Core Product Feed | ✅ Same | Merchant-defined hierarchy |
| google_product _category | google_product _category | Core Product Feed | ✅ Same | Google taxonomy (optional for OpenAI) | |
| custom_label_0–4 | custom_label_0–4 | Core Product Feed | ✅ Same | Campaign grouping | |
| relationship_type | (no equivalent) | — | 🆕 New | Defines relationships (i.e., accessory_of, compatible _with) | |
| related_product_id | (no equivalent) | — | 🆕 New | Links to related SKUs | |
| Variants & Options | item_group_id | item_group_id | Core Product Feed | ✅ Same | Identifies variant family |
| size, color, material, pattern | size, color, material, pattern | Core Product Feed | ✅ Same | Shared variant attributes | |
| custom_variant1 _category / option | (no equivalent) | — | 🆕 New | Arbitrary variant dimension | |
| custom_variant2_ category / option | (no equivalent) | — | 🆕 New | Arbitrary variant dimension | |
| custom_variant3_ category / option | (no equivalent) | — | 🆕 New | Arbitrary variant dimension | |
| Merchant Control & Visibility | enable_search | (no equivalent) | — | 🆕 New | Controls visibility in ChatGPT search |
| enable_checkout | (no equivalent) | — | 🆕 New | Enables in-ChatGPT checkout | |
| Regionalization / Localization | language | language | Core Product Feed | ✅ Same | ISO code format |
| geo_availability | regional_ availability | Regional Inventory Feed | 🔹 Exists in separate feed | Combines into one record in OpenAI | |
| Reviews & Q&A | raw_review_data | review_text, rating, reviewer_name | Separate Product Reviews Feed | 🔹 Exists in separate feed | Google separates reviews; OpenAI embeds review text inline |
| q_and_a | (no equivalent) | — | 🆕 New | Customer question-answer pairs for AI reasoning | |
| Compliance & Attributes | adult | adult | Core Product Feed | ✅ Same | Marks adult products |
| age_group | age_group | Core Product Feed | ✅ Same | Target audience | |
| gender | gender | Core Product Feed | ✅ Same | Target gender | |
| energy_efficiency_class | energy_efficiency_class | Core Product Feed | ✅ Same | Appliances/ electronics | |
| Metadata & Maintenance | updated_at | (no direct equivalent) | — | 🆕 New | Timestamp for freshness; not present in Google feed |
| created_at | (no equivalent) | — | 🆕 New | First appearance date | |
| feed_source | (no equivalent) | — | 🆕 New | Useful for debugging data provenance |