Feed formats
JSON (preferred for UCP and ACP)
Use JSON for any programmatic UCP or ACP catalog endpoint:XML (Google Merchant Center)
For Google Merchant Center submission:JSON-LD (on-page structured data)
AddProduct schema to every product page for AEO and GEO coverage:
Required vs optional fields
| Field | UCP | ACP | Google MC | Notes |
|---|---|---|---|---|
id | Required | Required | Required | Stable, unique per product |
title / name | Required | Required | Required | Clear, descriptive — no keyword stuffing |
description | Required | Required | Required | Use at least 150 characters for AI comprehension |
link | — | — | Required | Canonical product URL |
image_link | Required | Required | Required | Absolute HTTPS URL |
price | Required | Required | Required | See price formatting rules below |
availability | Required | Required | Required | See availability values below |
brand | Recommended | Recommended | Required (most categories) | — |
gtin | — | — | Recommended | Improves match quality |
variants | Required (if applicable) | Required (if applicable) | Required | See variant handling below |
Variant handling in feeds
Each variant must be its own item in the feed with its ownid. Use the item_group_id field to group variants of the same base product:
ACP agents select a specific variant when a user specifies size, color, or other options. If variants are collapsed into a single product entry, the agent cannot resolve the user’s selection to a purchasable SKU.
Price and availability rules
Price formatting
| Platform | Format | Example |
|---|---|---|
| UCP / ACP endpoints | Decimal string, no currency code | "129.99" with a separate "currency": "USD" field |
| Google Merchant Center | Decimal string + currency code | "129.99 USD" |
Availability values
| UCP / ACP | Google Merchant Center | Meaning |
|---|---|---|
in_stock | in stock | Available to purchase now |
out_of_stock | out of stock | Not available |
preorder | preorder | Not yet released — include availability_date |
backorder | backorder | Available for backorder |
Submission paths
UCP (Google path)
- Submit your feed via Google Merchant Center (Content API or scheduled fetch)
- Ensure the feed URL is in a supported format (RSS/XML or Content API JSON)
- Publish your
/.well-known/ucpmanifest pointing to your catalog endpoint - Validate with the Readiness Score
UCP (Shopify)
Shopify exposes your product catalog automatically when UCP is enabled. Ensure your product data in Shopify is complete — descriptions, images, and availability — before enabling the feature. See the Shopify UCP Guide.UCP (Custom / Headless)
Host a feed JSON endpoint and reference it in your manifest:ACP
ACP agents consume your catalog through thesearch_products tool endpoint. That endpoint must return well-structured product objects with all required fields including variant data. See ACP Getting Started.
Formatting best practices
Use stable product IDs
Use stable product IDs
Never use session-based, timestamp-based, or auto-incremented IDs that change on reimport. Stable IDs let agents re-reference products across sessions. If an agent caches
prod_123 and you reimport with a new ID, the agent’s product reference becomes a dead link.Prices in the correct format per platform
Prices in the correct format per platform
UCP/ACP: decimal string in major currency units (
"129.99") with a separate currency field. Google Merchant Center: decimal string plus currency code ("129.99 USD"). Mixing these is the most common feed formatting error.Absolute image URLs
Absolute image URLs
Images must be absolute HTTPS URLs. Relative paths (
/images/shoe.jpg) do not work in feeds. Images should be at least 400×400 pixels, ideally 1000×1000 pixels.Keep availability in sync
Keep availability in sync
Update availability within 5 minutes of inventory changes. Stale availability is the leading cause of AI-to-purchase conversion failures.
Descriptions of at least 150 characters
Descriptions of at least 150 characters
AI systems use product descriptions to match user queries. Short descriptions (“Running shoes. Size 7-13.”) give the model almost no signal. Write full, natural-language descriptions that describe use cases, materials, and fit.
Feed validation
Run the Asva audit API to check your catalog, feed format, and schema in one call:Pre-submission checklist
- Feed URL is publicly reachable (no authentication required)
- All required fields are present and non-empty
- Prices are in the correct format for the target platform
- Images are absolute HTTPS URLs and accessible
-
/.well-known/ucpmanifest references the feed endpoint - ACP endpoints validated with the ACP Validator
- JSON-LD
Productschema is present on all product pages