Merchant Center product data: required attributes and feed sources

Your products reach Google through data sources in Merchant Center. This guide explains primary and supplemental sources, files and scheduled fetches, the format rules for the attributes Google checks most, attribute rules, and where to find feed errors.

This guide is built from Google Merchant Center Help: the product data specification, the articles on upload methods, creating a product data source, managing data sources, product files, scheduled updates and attribute rules. If you are new to Merchant Center, read our Google Merchant Center basics first: it covers what the account is for, the list of upload methods, verifying your store and policies. This page goes one level deeper, into how the product data itself is set up.

Primary and supplemental data sources

Merchant Center calls each feed a data source. There are two kinds:

  • Primary data sources are "the only data source type that can add or remove products." They also set the language and target countries for the products in them, and they are where attribute rules are configured. Google recommends submitting all your products in a single primary data source, and using the excluded_destination attribute when some products should not appear in a particular place.
  • Supplemental data sources add or update attributes for products that already exist in a primary source. They can't add or remove products and can't work on their own. Each row is matched to the primary source by id, so the IDs must match exactly, and the data source label must match the primary source's label. Supplemental sources only appear after you turn on the "Advanced data source management" add-on under Settings > Add-ons.

Google notes that supplemental sources replace the older "online inventory" feeds that were used to update only price and availability. For example, a small sheet can add a missing attribute, such as custom_label_0 for campaign grouping, without touching the main export.

Choosing a source type

When you create a primary data source, Merchant Center offers a file, a Google Sheets template or the Merchant API. Products can also come from an e-commerce platform connection or be found automatically on your store. How each one updates is what usually decides the choice:

SourceHow it updatesWorth knowing
File (fetched from a URL, SFTP or Google Cloud Storage)Scheduled fetch: daily, weekly or monthlyA file uploaded from your computer does not sync; you re-upload it after every change.
Google SheetsSyncs on a schedule; the default is every 24 hoursDelete the template's instruction and example rows (rows 2 to 5) before you add products.
Merchant APIIn real time, when your system sends requestsGoogle suggests it for large catalogs or frequent changes and says it "requires technical knowledge."
E-commerce platformAutomaticGoogle says changes may take 24-48 hours to show and recommends managing the data in the platform.
Found by Google (from your site's markup)Google crawls your product pagesNeeds Product structured data and a verified, claimed store. It has no fetch schedule.

The automatic method depends on the markup on your product pages; our product structured data guide covers the properties Google reads for merchant listings.

Product files and scheduled fetches

Merchant Center accepts tab-delimited text (.txt or .tsv) and XML (.xml, such as RSS 2.0 or Atom 1.0) files of up to 4 GB. Google's comparison suggests tab-delimited files for small and medium inventories, since you can build them in a spreadsheet, and XML for large catalogs exported automatically from a store or database. The first row of a tab-delimited file holds the attribute names (id, title, price and so on), and each product gets its own row.

For a fetched file, a few requirements matter:

  • The URL must start with http://, https://, ftp:// or sftp:// and point directly to the file. Google warns that pointing it at an HTML page "will cause the processing of your product data source to fail."
  • Don't block the user agents Googlebot and AdsBot-Google from the folder that holds the file. If the file is password-protected, add the login details in the data source settings.
  • Scheduled fetches run daily, weekly or monthly. If prices or stock change more often, Google suggests pressing Update on the data source to fetch at once, uploading a new file or using the Merchant API.
  • Save the file as UTF-8 or UTF-16. Google lists the wrong encoding, missing tabs, unclosed XML tags and invalid values such as "brand new" instead of new among the common processing errors.

Which data source owns a product

When the same product arrives through more than one data source, Google's rule is that "the product will be considered part of the data source that was most recently updated." That matters when you remove items: a product is deleted only when it disappears from the data source that currently owns it. Two more rules follow from the same idea:

  • If a product is both found on your store and uploaded by you, Merchant Center keeps the uploaded version and drops the one it found.
  • When you replace an old data source, upload the new one before you remove the old one. Google says this lets the item IDs and their history move across. Removed products can take up to an hour to leave your ads and free listings.

Format rules for the core attributes

Our basics guide lists which attributes are required. These are the format rules from the specification that most often cause errors:

AttributeFormat rules
idUp to 50 characters, unique per product. Use the SKU where possible, keep it the same when you update data, and use the same ID for the same product across countries and languages.
titlePlain text, up to 150 characters.
descriptionPlain text, up to 5,000 characters.
linkYour verified domain, starting with http or https. No interstitial page unless the law requires one.
image_linkThe main product image in JPEG, WebP, PNG, non-animated GIF, BMP or TIFF. No scaled-up images, thumbnails, placeholders, promotional text, watermarks or borders. Googlebot and Googlebot-Image must be able to crawl it. Google has announced a minimum of 500 x 500 pixels, enforced from January 31, 2027.
availabilityin_stock, out_of_stock, preorder or backorder, matching the landing page, checkout and structured data. Add availability_date for preorder and backorder items.
priceA number plus an ISO 4217 currency code, for example 15.00 USD. It must match the landing page, structured data and checkout, and anyone must be able to buy at that price without a membership.
conditionnew, refurbished or used. Required for used and refurbished items.
item_group_idUp to 50 alphanumeric characters, shared by all variants of one product (Google suggests the parent SKU). Required for variants in Brazil, France, Germany, Japan, the UK and the US, and for all variants in free listings.

Keep the id stable in particular. Google's tips to keep products approved say a changed ID is "treated like a new product": it goes back through review, which can take up to 3 business days, and its past performance data no longer applies.

GTIN, brand and identifier_exists

brand (up to 70 characters) is required for all new products except movies, books and musical recordings. Only use your own name as the brand if you make the product, or for private-label and custom products. A gtin is "strongly recommended if available": UPC (12 digits) in North America, EAN (13 digits), JAN, ISBN-13 for books, or ITF-14 for multipacks.

identifier_exists defaults to yes. Set it to no only when a media item has no GTIN, an apparel item has no brand, or a product in any other category has neither a GTIN nor an MPN with a brand. Google warns that if a product does have these identifiers, submitting no can get it disapproved.

Attribute rules

Attribute rules (formerly feed rules) change your data inside Merchant Center, so you can fix a value without changing the export. They also need the Advanced data source management add-on, and they are set on a primary data source. The main operations are:

  • Set to: fill an attribute from one of your columns, a fixed value or a mix. Google's example sets title to the brand plus the title.
  • Extract: pull a value out of another field, with options for case, whole words and regular expressions.
  • Take latest: for price and availability only, use the most recently updated value from two or more sources.

Rules run in order, one after another. You save them as a draft, test them, then apply. A rule is a fix inside Merchant Center only: the same mistake can still be on your product pages, so correct it at the source too when you can.

Finding and fixing feed errors

When you add products from a file, product-level problems are listed in the "Needs attention" tab of the Products section, and each issue links to instructions. For file problems, open the data source: the "Latest update" tab has a "What needs attention" column and a Download report button that lists the line numbers of the affected products.

Many disapprovals come from the feed and the landing page disagreeing. Google checks your pages with Googlebot and Googlebot-Image (both required) and Google StoreBot, so don't block them. If a page is down when Google checks it, the product is disapproved. Automatic item updates can correct price and availability from your pages, but Google says not to use them as your main way of updating data, since they only happen when it crawls the page. Our Shopping campaigns guide covers what happens once approved products are in a campaign.

Our view: how we set up product feeds

This part is our own practice, not Google's guidance. For stores we build, we prefer one primary data source generated from the store's own database, either through the platform connection or a scheduled file, so the feed, the product page and its structured data all come from the same values. We keep the SKU as the id from day one. Campaign labels and small fixes go into a supplemental sheet or an attribute rule rather than a second primary feed. After any change to the product templates, we check the Needs attention tab and a few products against their pages before we call it done.

Frequently asked questions

What attributes are required in a Merchant Center product feed?

Every product needs an ID, title, description, link, image link, availability and price. Condition is required for used and refurbished items, brand for most new products, item_group_id for variants in several countries, and some countries and categories need more, such as shipping or apparel details. The product data specification lists them all.

What is the difference between a primary and a supplemental data source?

A primary data source is the only kind that can add or remove products, and it sets their language and target countries. A supplemental data source only adds or updates attributes for products already in a primary source, matched by ID.

Which file formats does Merchant Center accept?

Tab-delimited text (.txt or .tsv) and XML (.xml, for example RSS 2.0 or Atom 1.0), up to 4 GB per file. Google lists HTML, PDF and wrongly formatted .xlsx files among the formats that can't be processed.

How often does Merchant Center fetch my product file?

A scheduled fetch runs daily, weekly or monthly. For more frequent updates, start a fetch manually with Update, upload a new file or use the Merchant API, which updates in real time.

Can I change a product's ID?

You can, but Google treats it as a new product. It goes back through review, which can take up to 3 business days, and its past performance data is not carried over.

For more on selling online, see our guides to Google Merchant Center basics, Google Shopping campaigns, product structured data and launching an online store. We build online stores through our website development service.