Template
Google Sheets product feed template
A Google Sheet is the fastest way to get a small catalog, a supplemental attribute set or a lookup table into a Google Shopping feed. This page gives you the sheet laid out with Google's attribute headers, the exact Merchant Center steps to sync it, example rows for three uses, and the point at which you should stop editing the sheet by hand and let a feed tool read it as a source or a lookup.
We connect your store, build the feed and keep it in sync. Updated 2026-10-27.
At a glance
- Row 1 is the header with Google's attribute names: id, title, description, link, image_link, availability, price, brand, gtin, condition, google_product_category.
- Merchant Center: Products → Add products → add another product source → Use Google Sheets → Use template; delete rows 2 to 5; default sync every 24 hours.
- Do not wrap values in double quotes in the sheet; they become part of the value. Escape commas, colons and backslashes inside repeated or group attributes.
- A sheet works as a full feed for a few hundred hand-maintained products, as a supplemental source for custom labels, or as a lookup table a feed tool joins onto a live catalog.
The Google Sheets product feed template, column by column
Merchant Center reads the first row as attribute names, so use Google's spelling exactly. The table lists the columns the template below carries; required attributes come first, then the ones Google uses for variants and grouping. Prices carry the currency code in the cell ('129.99 USD').
| Column | Required? | Example |
|---|---|---|
| id | Required, max 50 characters | SKU-10432 |
| title | Required, max 150 characters | Nike Pegasus 41 Men's Road Running Shoes, Blue, US 9.5 |
| description | Required, max 5,000 characters | Neutral daily trainer with ReactX foam and a breathable mesh upper. |
| link | Required, http or https | https://store.example/products/pegasus-41 |
| image_link | Required | https://cdn.example/pegasus-41-blue.jpg |
| availability | Required | in_stock, out_of_stock, preorder or backorder |
| price | Required | 129.99 USD |
| brand | Required for new products (most categories), max 70 | Nike |
| gtin | Required if the product has one | 00195866188174 |
| condition | Required if used or refurbished | new |
| google_product_category | Recommended | Apparel & Accessories > Shoes |
| product_type | Optional, max 750 | Running > Road > Neutral |
| item_group_id | Required for variants | PEG41 |
| color / size / gender / age_group | Required for apparel variants | Blue / 9.5 / male / adult |
| sale_price | Optional | 109.99 USD |
| custom_label_0 ... custom_label_4 | Optional, max 100 characters each | bestseller |
Attribute names and limits from Google's product data specification, checked 2026-10-27.
Syncing the sheet with Merchant Center
In Merchant Center, open Products under 'Products & store', select Add products, then the option to add another product source, choose Use Google Sheets and click Use template. Google creates a sheet in your Drive with instructions in rows 2 to 5; delete those rows before adding products. Back in Merchant Center, set the sync schedule; the default is every 24 hours. Products then go through the usual review and any problems appear under the Needs attention tab.
Two formatting rules trip people up. Values must not be wrapped in double quotes, because the quotes become part of the value and 'in_stock' with quotes is not a valid availability. Inside repeated or group attributes (shipping, product_detail) commas, colons and backslashes that belong to a value must be escaped with a backslash. Removing the data source later does not delete the sheet.
The sheet route suits a catalog small enough to maintain by hand. The moment prices or stock change daily, a sheet someone forgets to update becomes a feed full of price mismatches, which is the most common cause of disapprovals you could have avoided.
Three ways to use a product feed sheet
Full feed: every product is a row, the sheet is the primary data source, and you own freshness. Good for a maker with 40 products, bad for a store with a thousand.
Supplemental source: the sheet carries id plus a few columns (custom_label_0, sale_price, product_highlight) and Merchant Center merges them onto a primary feed by id. In Merchant Center this needs the Advanced data source management add-on. Good for marketing attributes that change weekly.
Lookup table: the sheet maps one value to another (category path to Google category, brand variant to clean brand, SKU to margin band) and a feed tool applies it while building the feed from the live catalog. In Textfinity this is the 'replace from google sheet' transform (it reads the first tab's columns A and B and replaces substrings, so keep column A values specific), the 'is in google sheet list' filter operator and the merged source. The sheet never touches Merchant Center; the finished feed does.
Reading the sheet as a source or lookup in Textfinity
Textfinity reads a Google Sheet as a shop source like any CSV URL, re-pulling it on the shop's schedule. More often the sheet is a sidecar: a merged source joined onto a Shopify or XML catalog by key to add columns the store lacks, or a lookup used inside a mapping rule. In both cases the live catalog stays the source of truth for price and stock, and the sheet only carries what humans decide.
Sheet as lookup table (replace from google sheet on google_product_category)
Sheet 'categories', first tab, columns A:B
store_category google_product_category
Running > Road Apparel & Accessories > Shoes
Home > Desks Furniture > Office Furniture > Desks
Skincare > Moisturisers Health & Beauty > Personal Care > Cosmetics > Skin Care > Lotion & MoisturizerExamples
Worked examples, by situation
Three sheets for three jobs. Each is two or three rows you could paste into the template.
A hand-maintained primary feed
rows 1-3 of the sheet
id,title,description,link,image_link,availability,price,brand,condition,google_product_category
MUG-01,Stoneware Mug Sand 350 ml,Hand-thrown stoneware mug with a matte sand glaze.,https://kiln.example/mug-sand,https://kiln.example/img/mug-sand.jpg,in_stock,28.00 USD,Kiln & Co,new,Home & Garden > Kitchen & Dining > Tableware > Drinkware > Mugs
BOWL-04,Stoneware Serving Bowl 24 cm,Wide serving bowl in speckled white glaze.,https://kiln.example/bowl-24,https://kiln.example/img/bowl-24.jpg,preorder,64.00 USD,Kiln & Co,new,Home & Garden > Kitchen & Dining > Tableware > ServewareHow we set it up
Sync directly in Merchant Center (Use Google Sheets → Use template, delete rows 2-5). Or we read the sheet into Textfinity as the shop source, so feed hygiene flags a missing image_link or a 160-character title before Google does.
Weekly marketing labels without touching the store
Before
id,custom_label_0 PEG41-BL-95,
After
id,custom_label_0,custom_label_1 PEG41-BL-95,bestseller,spring-26 PEG41-BK-10,clearance,spring-26
How we set it up
We join the sheet as a merged source on id and map custom_label_0 as a rename of the merged column. The Shopify connection stays the source for price and stock; the sheet carries only the labels.
Two lookup sheets, two channel taxonomies
Before
store_category Audio/Headphones/Wireless
After
Google sheet: Audio/Headphones/Wireless,Electronics > Audio > Headphones Idealo sheet: Audio/Headphones/Wireless,Kopfhörer > Bluetooth-Kopfhörer
How we set it up
We map google_product_category with replace from google sheet in the Google feed, and category with replace from google sheet in the Idealo custom feed, each pointing at its own two-column sheet (the transform reads columns A and B of the first tab). The merchandiser keeps the same store categories in column A of both.
Copy this plan
Set up the sheet and decide who owns freshness
Twenty minutes for a sheet-only feed; an hour when a live catalog is connected and the sheet stays for lookups.
01
Create the sheet from the template
Download the CSV below and import it into a new Google Sheet (File → Import), or use Merchant Center's own template. Keep row 1 as the header and delete the example rows.
02
Fill the required columns first
id, title, description, link, image_link, availability, price and brand. Add gtin where you have it and item_group_id with color and size for variants. No quotes around values.
03
Decide: primary feed, supplement or lookup
Primary if the sheet is the catalog. Supplement if it adds a few columns to a live feed. Lookup if it maps values. The next step differs for each.
04
Primary or supplement: register in Merchant Center
Products → Add products → add another product source → Use Google Sheets. Set the sync schedule (default 24 hours). Supplements need the Advanced data source management add-on. This step happens in Merchant Center.
05
Lookup or sidecar: join it to the live catalog
Read the sheet as a shop source, join it as a merged source on id or SKU, or point a mapping rule at it. The live catalog remains the source for price and stock.
What we set up: We read the sheet as the shop source, join it as a merged source on your key, or point a replace from google sheet rule at it, whichever the job needs.06
Check the feed before Merchant Center sees it
Run a profile for completeness, over-length titles and malformed URLs, then add the feed URL to Merchant Center as a scheduled fetch.
What we set up: We run feed hygiene on the output, then add the feed URL to your Merchant Center with access you give us, or walk you through it.
Customization tips
Make it yours
Freeze row 1 and protect it
A renamed header silently drops an attribute from the feed. Freeze the header row and protect it so collaborators can edit values but not names.
Keep the currency in the price cell
'129.99 USD' is what Google expects. If the sheet holds bare numbers for convenience, add the suffix in the feed tool (an add suffix ' USD' rule on price) rather than in formulas that break on copy.
Use one sheet per lookup, not one tab per channel
Textfinity reads a lookup from the first tab, column A to column B, so each channel taxonomy gets its own two-column sheet. Keep the store values in column A identical across them, and keep notes on a later tab where the lookup never reads them.
Move price and stock out of the sheet as soon as they change weekly
The sheet is fine for descriptions and labels. Once stock changes daily, connect the store directly and keep the sheet as a merged source; otherwise Merchant Center will find the mismatch before you do.
Downloads
Take the files
FAQ
Questions about google sheets product feed template
Can I use Google Sheets as a product feed for Google Merchant Center?
Yes. In Merchant Center go to Products → Add products, choose to add another product source, select Use Google Sheets and click Use template. Google creates a sheet with instructions in rows 2 to 5 that you delete, then syncs it on a schedule, every 24 hours by default.
What columns does a Google Sheets product feed need?
At minimum id, title, description, link, image_link, availability, price and brand, plus gtin where the product has one and condition for used or refurbished items. Variants add item_group_id with color, size, gender and age_group. Headers use Google's attribute names exactly.
How often does Merchant Center fetch a Google Sheet?
On the schedule you set when registering the sheet; the default is every 24 hours. If prices or stock change more often than you will edit the sheet, connect the store to a feed tool instead and keep the sheet for labels and lookups.
Can I use a Google Sheet as a supplemental feed?
Yes. A sheet with id and the extra columns (custom labels, sale price, highlights) can be registered as a supplemental source in Merchant Center, which requires the Advanced data source management add-on. A feed tool can do the same join upstream: Textfinity merges a sheet onto the catalog by key before the feed is built.
Should I put quotes around values in the sheet?
No. In a Google Sheet source, double quotes become part of the value, so a quoted 'in_stock' fails validation. Quotes are only needed in a CSV file, where they mark cells containing commas.
Set up for you
Keep the sheet for what humans decide; we'll set up the feed for the rest.
Send us your store and your Google Sheet. We join the sheet as a merged source or lookup and publish a Google Shopping feed that rebuilds on a schedule.
Tell us your store and channels. We reply within 24 hours.