Google Merchant Center is Google's hub for merchant product data. You upload or connect a product feed once, and Merchant Center distributes that data across Google's shopping surfaces — the Shopping tab, Google Search and Images, Google Maps, YouTube, and Performance Max campaigns — instead of you managing separate listings on each surface. Google uses the attributes you submit (title, price, availability, images, identifiers, and more) to match your products to relevant shopper queries, so the accuracy and completeness of your feed data directly determines whether — and how — your products get shown.
A Merchant Center account is the entry point to both of Google's product-discovery channels: free listings, which can appear on the Shopping tab, Search, Images, and Lens at no cost, and paid Shopping ads, which run through Shopping campaigns or Performance Max. Both channels pull from the same product feed, so a single, well-structured feed lets you appear in unpaid shopping results while also feeding paid campaigns that use machine learning to match your catalog to purchase-intent queries. Because eligibility for both channels depends on feed data quality — accurate pricing, live stock status, complete required attributes — keeping the feed synced with your actual catalog is what keeps products approved and visible rather than disapproved or suppressed.
Free listings and Shopping ads both surface products from the same Merchant Center feed, but they work differently. Free listings cost nothing to appear — Google can show them on the Shopping tab, Google Maps, Search, Images, and Lens without you bidding on placement. Shopping ads, by contrast, are paid placements run through Shopping campaigns or Performance Max, and they also compete for space on general Search results pages. Most merchants run both from the same account: free listings build baseline visibility, while Shopping ads let you bid for placement and get standardized product traffic reporting. Because both depend on the same underlying feed, fixing a data quality issue makes products eligible for both channels at once rather than requiring separate cleanup work for each.
Merchant Center accepts product data in a few documented formats and submission methods, so you can choose whichever fits your existing systems:
File-based feeds (text or XML) can be delivered by direct upload or by scheduled fetch from a URL you host, and can be compressed as .zip, .gz, or .bz2.
Google's product data specification documents required, conditionally-required, and optional attributes. The table below lists the core set every feed should account for, verified against Google's individual attribute pages.
| फील्ड | आवश्यक | स्वरूप | उदाहरण | टिपा |
|---|---|---|---|---|
id | होय | Unicode text, 1–50 characters (ASCII recommended) | SKU12345 | Must be unique per product and stable — don't change it once assigned |
title | होय | Text, 1–150 characters | Men's Waterproof Hiking Jacket, Blue, Size L | Should match the title shown on the landing page |
description | होय | Text, up to 5,000 characters | Lightweight waterproof hiking jacket with taped seams… | Google recommends 500–1,000 characters with the most important details up front |
link | होय | URL, RFC 3986 compliant, starts with http/https | https://www.example.com/products/hiking-jacket-blue | Must be a live, crawlable page that works on desktop and mobile |
image_link | होय | URL, ASCII, 1–2,000 characters | https://www.example.com/images/jacket-blue.jpg | Minimum 500x500px; Google recommends 1500x1500px or larger; no placeholders |
availability | होय | Enum: in_stock, out_of_stock, preorder, backorder | स्टॉकमध्ये | Must match the landing page in real time |
price | होय | Number + ISO 4217 currency, max 2 decimal digits | 49.99 डॉलर | Must match the price shown on the landing page |
gtin | Strongly recommended / required in some categories | Numeric: 8, 12, 13, or 14 digits | 0194252099470 | If none was assigned, submit identifier_exists = false with brand and a full title instead of guessing |
brand | Required when a brand/manufacturer is clearly associated | मजकूर | पॅटागोनिया | Optional only for products with no clearly associated brand |
condition | होय | Enum: new, refurbished, used | नवीन | Must reflect the condition described on the landing page |
mpn | Required when no manufacturer-assigned GTIN exists | अक्षरांक | डब्ल्यूएम 1278 - 001 | Only submit if you're certain it's correct — never guess |
google_product_category | पर्यायी | Google taxonomy numeric ID or full category path | पोशाख आणि अॅक्सेसरीज > कपडे > बाह्य कपडे > कोट आणि जॅकेट | Google auto-assigns a category if omitted; manual assignment improves matching |
product_type | पर्यायी | Text, up to 750 characters, levels separated by > | Home > Men > Outerwear > Jackets | Your own taxonomy; useful for organizing Shopping campaigns |
shipping | Conditionally required | Structured value: country:region:service:price | US:6.49 USD | Only needed per product if account-level shipping settings don't already cover the target country |
id, title, description, price, availability, image_link, gtin, brand, and so on — and flags any required attribute your catalog doesn't currently populate, such as a missing GTIN or an unmapped google_product_category, so you can fill the gap before the feed goes live.shipping attribute isn't required for every item.Merchant Center's scheduled fetch lets you set how often it re-reads a hosted text or XML feed. Documented cadences are hourly, daily, weekly, or monthly, each requiring the relevant time fields (for example, an hour for a daily fetch, or a weekday and hour for a weekly one). For catalogs where price or stock changes constantly, a fixed schedule can leave a gap between what's live on your site and what Google is showing; the Content API (now part of the Merchant API) exists specifically to close that gap by letting connected systems push updates as they happen rather than waiting for the next fetch. Whichever cadence you use, Google is explicit that feed data must stay consistent with your live landing pages — price or availability mismatches get flagged as disapprovals regardless of how frequently the feed itself refreshes.
| त्रुटी | संभाव्य कारण | निराकरण |
|---|---|---|
| Missing or invalid GTIN | The product has a manufacturer-assigned GTIN that wasn't submitted, or a GTIN was guessed or entered incorrectly | Submit the manufacturer's real GTIN, or if none genuinely exists, submit identifier_exists = false with brand and a complete title/description instead of guessing |
| Price or availability mismatch | The price or stock status in the feed differs from what's shown on the landing page at crawl time | Keep pricing and stock synced between your store and feed, ideally in real time |
| Low-quality or policy-violating image | image_link points to a placeholder, a watermarked image, or one below Google's minimum size | Submit a genuine product photo that meets Google's minimum size (500x500px) and content requirements |
| Missing required attribute | A required field (id, title, price, availability, etc.) is empty for some products | Confirm every required attribute is populated for all products, not just a sample |
| Restricted or invalid GTIN | The submitted GTIN doesn't match GS1 records or belongs to a different product | Verify the GTIN against the manufacturer's packaging or a GS1 database before submitting it |
| Condition mismatch | The condition value in the feed doesn't match what's stated on the landing page | संरेखित करा condition value in the feed exactly with the landing page |
| Misrepresentation or policy violation | Misleading pricing, missing business information, broken landing pages, or other policy issues flagged at the item or account level | Fix the underlying landing page or business-information issue, then request a review once resolved |
A few practices consistently reduce disapprovals and keep products eligible for both free listings and Shopping ads:
identifier_exists = false with brand and a full title/description rather than leaving it blank or guessing a value.shipping attribute to override rates for exceptions like bulky or fragile items — don't leave a target country uncovered by either method.Do I need a GTIN for every product in my Google Merchant Center feed?
Only if the manufacturer assigned one — Google documents this as strongly recommended, and it becomes effectively mandatory in categories where GTIN is the standard identifier. If a product genuinely has no manufacturer-assigned GTIN, submit identifier_exists = false with brand and a descriptive title/description instead of guessing at a number.
What's the difference between free listings and Shopping ads?
Free listings appear at no cost on surfaces like the Shopping tab, Search, and Images; Shopping ads are paid placements run through Shopping campaigns or Performance Max. Both draw from the same product feed in your Merchant Center account.
What image size does Google require for image_link?
At minimum 500x500 pixels, with Google recommending 1500x1500 pixels or larger for the best display across Shopping formats. Files over 16MB or 64 megapixels aren't accepted.
How often does Google re-crawl my feed?
Depends on your scheduled fetch setting — hourly, daily, weekly, or monthly. For catalogs with fast-changing price or stock, the Content API/Merchant API allows near real-time updates instead of waiting for the next scheduled fetch.
Why was my product disapproved even though the feed looked fine?
The most common causes are a price or availability value that doesn't match the landing page, a missing or incorrect GTIN, or an image that's a placeholder or below Google's minimum size — Merchant Center's Diagnostics tab identifies these per item.
Do I need to include the shipping attribute for every product?
No — if you've already configured shipping rates for your target countries at the account level in Merchant Center, a per-product shipping attribute isn't required. Use it only to override account-level settings for specific products, such as oversized or fragile items.
What file formats can I submit to Google Merchant Center?
Text (.txt/.tsv) or XML files — uploaded directly, fetched by Google on a schedule from a URL you host, or pulled from a Google Sheet — plus the Content API/Merchant API for programmatic, near real-time submission.