A Google Shopping feed is the list of products you send to Google Merchant Center, with one row per product and one column per attribute. Seven attributes are required for every product, more are required depending on your category and country, and the optional ones are where most of your Shopping performance comes from. This guide gives you the full attribute list, checked against Google's current product data specification, plus a free feed template you can download.
You will also see how GTIN and identifier_exists work, the difference between google_product_category and product_type, title formulas by category, feed formats, supplemental feeds and the most common feed errors. If you would rather have someone build and manage your feed and campaigns, see my ecommerce Google Ads management page.
- What Is a Google Shopping Feed?
- Free Google Shopping Feed Template
- Required Feed Attributes
- Attributes Required by Category or Country
- Recommended and Optional Attributes
- GTIN and identifier_exists
- google_product_category vs product_type
- Title Formulas by Category
- Google Shopping Feed Formats
- Supplemental Feeds and Feed Rules
- Common Feed Errors and Fixes
- Frequently Asked Questions
1What Is a Google Shopping Feed?
A Google product feed, also called a product data source, is a file or spreadsheet that describes everything you sell. Each row is one product. Each column is an attribute, such as id, title, price or gtin. Merchant Center reads the feed, checks it against the Google product data specification, and makes approved products eligible for free listings and Shopping ads.
The feed matters more than most people expect. Google Shopping ads have no keywords, so Google uses your feed to decide which searches each product can show for. My Google Shopping ads guide explains how that auction works.
In the current Merchant Center, feeds are called data sources. You manage them under Data sources from the Settings gear icon, and you fix product problems on the Needs attention tab of the Products page. My Google Merchant Center guide covers the account setup.
2Free Google Shopping Feed Template
I built a free CSV template with the header row for the most used attributes and example rows you can copy:
- A simple product. A water bottle with a GTIN, an MPN and a sale price.
- A product with variants. A t-shirt in two colors and sizes, with both rows sharing one item_group_id.
- A product with no GTIN. A handmade candle using identifier_exists set to no.
Download the Free Feed Template (CSV)
You can import the CSV straight into Google Sheets. Open a blank sheet, go to File, then Import, and upload the file. From there, replace the example rows with your products and connect the sheet to Merchant Center as a Google Sheets data source. Keep in mind that Merchant Center file uploads accept .txt, .tsv or .xml, so if you upload a file instead of a sheet, save it as tab separated values first.
3Required Feed Attributes
These are the attributes Google's specification marks as required for every product, or required in the condition shown.
| Attribute | Format | Example |
|---|---|---|
| id | Unique, up to 50 characters. Use your SKU and keep it stable. | TG-BTL-24-NVY |
| title | Up to 150 characters. Must match the landing page. No promotional text. | Tidewater Insulated Water Bottle 24 oz Navy |
| description | Up to 5,000 characters. Product only, no links or promotions. | Double-wall vacuum insulated bottle... |
| link | Landing page on your verified domain, starting with http or https. | https://www.example.com/products/bottle |
| image_link | Main image URL. JPEG, WebP, PNG, non-animated GIF, BMP or TIFF. No watermarks or promotional text. | https://www.example.com/images/bottle.jpg |
| availability | in_stock, out_of_stock, preorder or backorder. | in_stock |
| price | Number plus ISO 4217 currency. US and Canada prices exclude tax. | 34.99 USD |
| brand | Required for all new products except movies, books and music recordings. Up to 70 characters. | Tidewater |
| condition | Required if used or refurbished: new, refurbished or used. | new |
| availability_date | Required if availability is preorder. ISO 8601. | 2027-02-24T11:07+0100 |
| shipping | Required for Shopping ads and free listings in countries including the US, unless you set shipping in your account settings. | US::Standard:5.99 USD |
Source: Google Merchant Center product data specification, accessed October 27, 2026.
Images need a little extra attention. Google lists a 500 x 500 pixel minimum for image_link, with enforcement starting January 31, 2027. Title and description also have structured versions, structured_title and structured_description, which Google says to use for AI generated text.
4Attributes Required by Category or Country
This is where most feeds fall short. These attributes are only required in certain situations, but if your products are in those situations, they will be disapproved or limited without them.
| Attribute | Required when | Format and example |
|---|---|---|
| gtin | The manufacturer assigned one. Strongly recommended whenever it exists. | 8 to 14 digits. 850004123010 |
| mpn | The product has no manufacturer assigned GTIN. | Up to 70 characters. TW-BTL24-NV |
| item_group_id | The product is a variant, for BR, FR, DE, JP, UK and US. | Up to 50 characters. TG-TEE-CRW |
| color | Apparel in BR, FR, DE, JP, UK and US, and multi-color products. | Black, or Black/White |
| size | Clothing (1604) and Shoes (187) in those countries, and multi-size products. | M, or 16/34 Tall |
| gender | Apparel in those countries and gender specific products. | male, female or unisex |
| age_group | Apparel in those countries and products with an age group. | newborn, infant, toddler, kids or adult |
| material, pattern | They are what makes the variants different. | leather, Striped |
| adult | The product contains adult content. | yes or no |
| multipack | You assemble multipacks yourself, in listed countries including the US. | 6 |
| is_bundle | A custom bundle with a main product, in listed countries including the US. | yes |
| unit_pricing_measure | Local law requires unit pricing. | 1.5kg |
For variants, every row in a group shares one item_group_id, and each row gets its own id, color, size and, where one exists, GTIN. Google also lists item_group_title and variant_option as optional attributes for variant groups.
5Recommended and Optional Attributes
Google marks these as optional. I recommend most of them, because they give Google more to match on and give you more ways to structure campaigns.
| Attribute | What it does | Example |
|---|---|---|
| additional_image_link | Up to 10 extra images, including lifestyle shots. | https://www.example.com/images/bottle-lid.jpg |
| sale_price | Sale price, sent with price set to the regular price. | 29.99 USD |
| sale_price_effective_date | Start and end of the sale, ISO 8601, separated by a slash. | 2026-11-27T00:00-0500/2026-12-01T23:59-0500 |
| identifier_exists | Set to no when the product has no GTIN and no MPN plus brand. | no |
| google_product_category | Overrides the category Google assigns. One ID or full path. | 3809 |
| product_type | Your own category path, up to 750 characters. | Kitchen > Drinkware > Water Bottles |
| custom_label_0 to custom_label_4 | Your own labels for campaign structure. Up to 100 characters, 1,000 unique values per label. | bestseller |
| product_highlight | 2 to 100 short highlights, up to 150 characters each. Google recommends 4 to 6. | Keeps drinks cold for up to 24 hours |
| product_detail | Technical specs as section, name and value. Up to 100 details. | General:Capacity:24 oz |
| lifestyle_image_link | A lifestyle image for browsing surfaces. | https://www.example.com/images/bottle-beach.jpg |
| mobile_link | A mobile specific landing page. | https://m.example.com/products/bottle |
| shipping_weight | Needed if you use carrier calculated rates. | 3 lb |
| excluded_destination | Keeps a product out of a destination, such as Shopping_ads. | Shopping_ads |
Custom labels are the ones I use most. Tag products by margin, season, best seller status or clearance, and you can split campaigns and ROAS targets around those groups. My post on structuring Shopping campaigns for retailers shows how.
6GTIN and identifier_exists
A GTIN is the number under the barcode. In the US that is usually a 12 digit UPC. Google accepts UPC, EAN, JAN, ISBN-13 and ITF-14, and the check digit has to be correct.
Here is how to decide what to send:
- The manufacturer assigned a GTIN. Send it. Google says products with missing or incorrect GTINs may have limited visibility, and a product could be disapproved if a GTIN exists and you leave it out.
- No GTIN, but the manufacturer has an MPN. Send brand and mpn.
- No GTIN and no MPN. This covers handmade, custom and many private label products. Set identifier_exists to no.
Keep in mind that identifier_exists defaults to yes. Do not set it to no just to clear an error if the product really has a GTIN. And never make up a number. Google is clear that you should only provide a GTIN if you are sure it is correct. GTINs starting with the restricted prefixes 02, 04 or 2, or coupon prefixes, are not accepted.
7google_product_category vs product_type
These two look similar, but they do different jobs.
| google_product_category | product_type | |
|---|---|---|
| Who defines the values | Google's fixed taxonomy | You |
| Required | No, Google assigns one automatically | No |
| Format | One category ID or full path | Your path, up to 750 characters |
| Use in campaigns | Product groups by Category in listed countries | Product groups by product type in any country |
Google says all products are automatically assigned a product category, and you only need google_product_category to override it. You can download the full Google product category list as a text file or spreadsheet. The current file has about 5,595 categories. For example, 212 is Apparel & Accessories > Clothing > Shirts & Tops, and 3809 is Water Bottles.
There is no Google product type list, because you write product_type yourself. I recommend matching your store navigation, such as Apparel > Men > T-Shirts. Only the first product_type value is used for Shopping bidding and reporting.
8Title Formulas by Category
Google allows 150 characters, but shoppers usually see 70 characters or fewer, so put the most important words first. Google does not publish formulas by category. These are the ones I use.
| Category | Formula | Google shopping feed example |
|---|---|---|
| Apparel | Brand + Gender + Product Type + Material or Style + Color + Size | Tidewater Men's Organic Cotton Crew Neck T-Shirt Black Medium |
| Electronics | Brand + Product Line + Model + Key Spec + Color | Google Pixel 4 64 GB Midnight Blue |
| Home and kitchen | Brand + Product Type + Key Feature + Size + Color | Tidewater Insulated Stainless Steel Water Bottle 24 oz Navy |
| Beauty | Brand + Product Type + Key Benefit + Shade or Scent + Size | Brand Waterproof Mascara Black 0.3 oz |
| Auto and hardware parts | Brand + Part Type + Compatibility + Part Number | Brand Brake Pads for 2020 to 2024 Honda Civic BP1234 |
| Handmade or private label | Product Type + Key Attribute + Variant + Size + Brand | Hand-Poured Soy Candle Sea Salt 8 oz Tidewater |
Google does not allow promotional text, prices, shipping details, your company name used as promotion, capital letters for emphasis or decorative symbols in titles. For variants, put the size or color in the title and in the matching attribute.
9Google Shopping Feed Formats
You have six main ways to get products into Merchant Center. To add one, open Data sources from the Settings gear icon, and on the Primary sources tab select Add product source.
- Google Sheets. Use Google's template or an existing sheet. The default sync is every 24 hours. This is the easiest option for small catalogs.
- TSV or TXT file. Tab separated text, one product per row. Google recommends TSV over CSV for text files.
- XML file. Common for larger stores and feed tools. Files can be up to 4 GB.
- Scheduled fetch or SFTP. Host the file at a URL starting with http, https or sftp, and Merchant Center fetches it every 24 hours by default.
- Merchant API. Real time updates for developers and large catalogs.
- Shopify app. The Google & YouTube app syncs your available products with Merchant Center automatically. My Shopify Google Merchant Center guide walks through it.
A manual upload does not sync on its own, so you have to upload the file again every time something changes. For most stores, a scheduled fetch, a sheet or an app is the better choice.
10Supplemental Feeds and Feed Rules
You do not have to rebuild your main feed to fix it. Supplemental data sources and attribute rules let you change data on top of it.
Supplemental data sources add or update attributes for products already in a primary source. They cannot add or remove products. The id in the supplemental source must exactly match the id in the primary source. A Google Sheet with just id and custom_label_0 is a quick way to add labels to a Shopify feed.
Attribute rules, the current name for feed rules, transform data as it comes in. Google lists operations such as Set to, Extract, Prepend, Append, Find & Replace, Calculate and Clear. For example, you can append color and size to every apparel title, or set a custom label for every product over $100.
- Turn on the add-on. Go to Settings, then Add-ons, and activate Advanced data source management.
- Add a supplemental source. In Data sources, use the Supplemental sources tab and pick a file, a Google Sheets template or the API.
- Create a rule. Open a primary product source and select the Attribute rules tab.
- Test before you apply. Save as draft, select Test rules, then Apply changes.
11Common Feed Errors and Fixes
Every issue shows up on the Needs attention tab of the Products page. Changes can take up to 72 hours to show there.
| Error | Usual cause | Fix |
|---|---|---|
| Mismatched value (page crawl) [price] | Feed price differs from the landing page or checkout. | Match the feed, page and structured data. Update the feed right after price changes. |
| Inaccurate availability | Feed says in stock, page says sold out. | Sync stock more often. Allow at least 24 hours for re-approval. |
| Missing or invalid GTIN | Wrong check digit, restricted prefix or no GTIN sent. | Send the real manufacturer GTIN, or use identifier_exists no if none exists. |
| Unable to show image | Image blocked by robots.txt, too small or has promotional overlays. | Allow Googlebot, use a clean image of at least 500 x 500 pixels. See Google's fix. |
| Product page unavailable | Broken link, redirect or blocked page. | Fix the link, then select Request website check. See Google's fix. |
| Missing shipping information | No account shipping settings and no shipping attribute. | Add shipping in Merchant Center settings or in the feed. |
| Missing apparel attributes | No color, size, gender, age_group or item_group_id. | Add them, or use a supplemental source. |
| Product ID already used | Two products share one id. | Give every product and variant a unique, stable id. See Google's fix. |
To fix many products at once, download the affected list as a CSV from Needs attention, correct your source data and let the next sync run. Once the feed is clean, use my guide to spotting underperforming products in Shopping ads to see which products are worth the spend.
12Frequently Asked Questions
What attributes are required in a Google Shopping feed?
Every product needs id, title, description, link, image_link, availability and price. Brand is required for new products except movies, books and music. Condition, availability_date, shipping, gtin or mpn, and apparel attributes are required depending on the product, category and country.
Is google_product_category required?
No. Google automatically assigns a category to every product. You can submit google_product_category with one category ID or full path to override that assignment.
What is the difference between google_product_category and product_type?
google_product_category uses Google's fixed taxonomy. product_type is your own category path, up to 750 characters, and you can use it to build product groups in Shopping campaigns.
When should I use identifier_exists no?
Use identifier_exists no when a product has no manufacturer GTIN and no MPN plus brand, such as handmade or custom products. Do not use it if a real GTIN exists.
Can I use a CSV file for my Google Shopping feed?
Merchant Center file uploads accept .txt, .tsv and .xml files. The easiest way to use a CSV is to import it into Google Sheets and connect that sheet as a Google Sheets data source, or save it as a tab separated file.
In Summary
Your Google Shopping feed is your targeting. Fill in every required attribute, add the category and country specific ones that apply to you, and send real GTINs wherever they exist. Then use titles, custom labels and product highlights to give Google more to work with.
Start with the free template, fix everything on the Needs attention tab, and use supplemental sources and attribute rules instead of rebuilding your feed. If you want help with your feed and campaigns, see my ecommerce Google Ads management service or schedule a free consultation. Management starts at $750 a month.
Sources
- Merchant Center Help, "Product data specification". Accessed October 27, 2026.
- Merchant Center Help attribute pages: GTIN, Google product category, Title and Product highlight. Accessed October 27, 2026.
- Merchant Center Help data source pages: Create a product data source, Add products from a file, Add products using Google Sheets and Set up your attribute rules. Accessed October 27, 2026.
- Merchant Center Help troubleshooting pages: The Needs attention tab, Inaccurate availability, Unable to show image, Product page unavailable and Product ID already used. Accessed October 27, 2026.
- Merchant Center Help, "Syncing your products" for the Google & YouTube app on Shopify. Accessed October 27, 2026.
- Google product taxonomy with IDs (en-US), version 2021-09-21. Downloaded October 27, 2026.
0 comments