About Services Cases Blog Tools Reviews Partners Contacts

What a Google Merchant Center Product Feed Is: Requirements, Attributes and Supplemental Feeds

Google Merchant Center product feed: requirements, attributes, supplemental feeds

Without a product feed, neither Shopping campaigns nor Performance Max with products will work. The feed is where Google gets the title, price, image and availability of every product. If the feed is broken, ads perform worse, and Merchant Center disapproves products or suspends the account.

Below I cover what a feed is, what it must meet, which attributes are required, which are worth adding and what a supplemental feed is. And so you don’t have to retell it all to a developer in your own words, I put together a feed specification you can simply forward to them.

PDF · 4 pagesProduct Feed Specification for Google Merchant CenterFeed format and URL, required and optional attributes, rules for titles and images, an XML example and an acceptance checklist.FreeDownload
Contents
  1. What a product feed is
  2. General feed requirements
  3. Required attributes
  4. Optional attributes
  5. Supplemental feeds
  6. What to give your developer
  7. FAQ

What a product feed is

A product feed is a file listing all of a store’s products and their details: ID, title, description, price, link, image, availability, brand. Most often it’s an XML file at a permanent address like https://your-domain/feed/google.xml, less often a Google Sheet or CSV.

Merchant Center downloads this file regularly, checks every product and passes the data to Google Ads. From there the feed goes into Shopping campaigns and Performance Max. So everything a shopper sees in a product ad — title, image, price — starts in the feed. I explained it more simply, without technical details, in Google Shopping and product feeds in plain words.

General feed requirements

ParameterRequirement
FormatXML (RSS 2.0) with the namespace xmlns:g="http://base.google.com/ns/1.0"
AddressA permanent URL, accessible without login, not blocked in robots.txt, no captcha for Googlebot
EncodingUTF-8; special characters (&, <, >) escaped or in CDATA
CoverageAll active products. Each variant (size, color) is a separate product
Language and currencyThe feed language matches the language declared in Merchant Center; prices in the currency of the country of sale
UpdatesAutomatic, at least once a day. Price and availability change at the same time as on the website
ExcludeProducts without a price, image or working link, and products hidden on the website

A note on language. If the feed is declared in Ukrainian and even one product in it is in another language, that’s already grounds for a policy violation. I covered this in detail in the article on suspensions over feed language.

Required attributes

A product missing any of these attributes will be disapproved.

AttributeWhat to sendFormat and limits
idUnique ID of the product variant (SKU)Up to 50 characters, never changes
titleProduct titleUp to 150 characters
descriptionProduct descriptionUp to 5,000 characters, no HTML tags or links
linkProduct page URLhttps, domain verified in Merchant Center
image_linkMain imagehttps, at least 500×500 px, 1200×1200 px recommended
availabilityAvailabilityin_stock, out_of_stock, preorder or backorder
priceRegular price1299.00 UAH — a number with a dot, a space, the currency code
brandManufacturer brandFor own production — the store name
gtinEAN-13 / UPC barcodeIf the product has a manufacturer barcode
mpnManufacturer part numberIf there is no GTIN
identifier_existsnoOnly if there is neither a GTIN nor an MPN
conditionConditionnew, refurbished or used

Shipping (shipping) doesn’t have to be sent in the feed if it’s set up at account level in Merchant Center.

Apparel, footwear and products with variants

For apparel, footwear and accessories a few more attributes are required:

  • item_group_id — a shared ID for all sizes and colors of one model;
  • color and size — the color and size of the specific variant;
  • gender — male, female or unisex;
  • age_group — adult, kids, toddler, infant or newborn.

Each variant has its own id, link, image_link (a photo of that exact color), price and availability.

I recommend sending item_group_id in any category with variants. A mattress store had about 1,600 SKUs, but really that was 100 models in 16 sizes. Without grouping, Google learns on 1,600 separate products, and each model’s stats get spread across 16 pieces. With grouping, it learns on 100 groups.

Why You Shouldn’t Stop After the First Month: A Mattress Store Case Study Google Ads case study · Merchant CenterWhy You Shouldn’t Stop After the First Month: A Mattress Store Case StudyMattress store on Horoshop: feed enrichment, shipping_label, CRM instead of fake conversions. Why you shouldn’t stop after the first month.Oct 20, 2026Read

Optional attributes

They aren’t required, but without them impression quality and campaign control are worse.

AttributeWhat to sendWhy
sale_priceSale priceShows the discount in the ad; price stays the regular price
sale_price_effective_dateSale periodThe sale switches on and off by itself
additional_image_linkAdditional images, up to 10More options for ads
product_typeCategory from the site’s breadcrumbsSegmenting products in campaigns
google_product_categoryCategory from Google’s taxonomyIf you don’t send it, Google decides itself
custom_label_0…4Internal labelsSplitting products by margin, bestsellers, season, price group
cost_of_goods_soldCost of goodsProfit reports in Google Ads
product_highlightKey benefits, up to 10 pointsHelps the system understand the product
material, size_system, product_detailProduct specificationsMore precise matching of the product to queries

Of the whole list, I’d single out custom_label. Labels are what let you split products with different margins into different campaigns or groups with different target ROAS. Without them, everything runs in one basket, and the system optimizes for an average that suits neither cheap nor expensive products.

Titles, descriptions and images

Title. Structure: brand + product type + model + key attribute (color, size, volume). The most important part goes in the first 70 characters, because the title is cut off after that. Not allowed: CAPS LOCK, “sale”, “discount”, “buy”, price, emoji, exclamation marks.

Description. Only about the product itself: purpose, material, dimensions, specifications. No shipping, payment, contacts, links or promo codes.

Image. The main image is the product on a white or neutral background, with no watermarks, logos, text, frames or “−20%” badges. Since January 31, 2027 Google doesn’t accept images smaller than 500×500 px.

Matching the website and the feed

Google compares the feed with the product page. Price, sale price and availability in the feed must match what a new visitor sees on the site without logging in or using a promo code. The same values must be in the schema.org Product markup. Mismatches lead to disapproved products, and repeated ones to an account suspension.

Supplemental feeds

A supplemental feed is a separate data source, most often a Google Sheet, that is attached to the primary feed and adds to or overwrites attributes by product ID. It doesn’t add new products; it only works with those already in the primary feed.

What it’s for:

  • rewriting titles when changing them in the admin panel is hard or slow;
  • adding brand, sizes, materials, item_group_id, product_detail;
  • setting custom_label and shipping_label;
  • fixing attributes without touching the website, admin panel or developer.

An example. In the mattress store the size was at the very end of the title, even though people search for mattresses by size. With a supplemental feed I rewrote the titles: size first, then “Mattress”, then the model. There I also added brand, dimensions, material and product_detail for 1,600 SKUs. Nobody would have filled that in by hand in the admin panel.

Another job a supplemental feed handles is shipping for products of different sizes. With shipping_label I split single and double mattresses into different shipping rules in Merchant Center. If the shipping cost on the website and in Merchant Center doesn’t match, it can lead to a suspension.

Besides the supplemental feed for products, Merchant Center has separate feeds for other tasks, for example a promotions feed or a local inventory feed for stores with physical locations. For most online stores the primary and supplemental feeds are enough.

What to give your developer

The primary feed is built by the website developer or a platform module. Instead of explaining the requirements in your own words, forward them the specification. It contains everything from this article in a developer-friendly format: feed format and URL, tables of required and optional attributes, rules for titles and images, website matching requirements, an XML example and an acceptance checklist.

PDF · 4 pagesGoogle Merchant Center Product Feed SpecEnglish version for developers: attributes, rules, an XML example and an acceptance checklist.FreeDownload

There are also Russian and Ukrainian versions for developers who prefer them.

Before accepting the work, go through the checklist in the spec: the feed opens at a permanent URL, the product count matches the site, there are no duplicate ids, and price and availability match the site for 10 random products. Only then upload the feed to Merchant Center.

20 — Merchant CenterProduct feed setup and optimizationFeed setup, optimization and enrichment with extra attributes, product segmentation with custom labels.from $50Learn more
Related services
Google Merchant Center unblocking Misrepresentation, data mismatches, site suspensions. 100+ unblocks and launches without suspensions. from $200Learn more Google Ads management Full cycle: campaigns, analytics, CRM integration and reporting on real sales, not in-platform conversions. from $450 / monthLearn more
Products getting disapproved, or want to check your feed before launch? Get in touch, I’ll take a look

FAQ on the topic

Frequently asked questions

What is a Google Merchant Center product feed?
A file, most often XML, listing all of a store’s products and their details: ID, title, description, price, image, availability, brand. Merchant Center downloads it and passes the data to Shopping campaigns and Performance Max.
Which feed attributes are required?
id, title, description, link, image_link, availability, price, brand, condition and a product identifier: gtin, mpn or identifier_exists = no. For apparel and footwear also item_group_id, color, size, gender and age_group.
How often should the feed update?
At least once a day, and price and availability in the feed must change at the same time as on the website. A mismatch between the feed and the site is one of the most common reasons products get disapproved.
What is a supplemental feed in Merchant Center?
A separate data source, most often a Google Sheet, that adds to or overwrites attributes of the primary feed by product ID. It lets you change titles or add brand, specs or labels without touching the website or admin panel.
What are custom_label attributes for?
They are internal labels for splitting products in campaigns: by margin, popularity, season or price. They let you set different bidding strategies for different product groups.



Contact

Let's discuss
your project

Leave a request — we'll assess your situation, discuss your goals and find the best solution for your business and budget.

🏆
As a Google Partner, I can help you get a Google Ads bonus of up to 55,000 UAH ($1.2K) for your first campaigns.
❌ I don't work with: gambling · betting · alcohol · tobacco · crypto · grey niches · payday loans
▸ new_project.init()
Discuss a project