If you're running a Shopify store and want to sell on Google Shopping, you need a product feed. Not just any feed — one that meets Google Merchant Center's strict specifications. Get it wrong and your products get disapproved. Get it right and you unlock one of the highest-ROI advertising channels in e-commerce.
This guide walks through exactly how to set up a Shopify-to-Google Shopping product feed, what fields matter, and how to avoid the most common rejection reasons.
What is a product feed?
A product feed is a structured file (CSV, XML, or JSON) that contains your product data in the format Google expects. Think of it as a translation layer between your Shopify store and Google Merchant Center.
Google uses this data to:
- Display your products in Shopping ads
- Show your products in free listings
- Match your products to search queries
Every product in your feed needs specific attributes like title, description, price, availability, image_link, and google_product_category. Google publishes the full list in their product data specification.
Step 1: Set up Google Merchant Center
Before you can send product data, you need a Google Merchant Center account:
- Go to Google Merchant Center and sign in
- Verify and claim your website URL
- Set up shipping and tax information
- Choose your target countries
The verification step trips up many store owners. Google needs to confirm you own the domain — you can do this via an HTML tag, Google Analytics, or Google Tag Manager. See Google's verification guide for the full process.
Step 2: Understand required fields
Google requires specific attributes for every product. Missing even one will get your product disapproved.
Required for all products
| Field | Description | Example |
|---|---|---|
id | Unique product identifier | shopify_12345 |
title | Product name (max 150 chars) | Men's Running Shoes - Blue |
description | Product description (max 5000 chars) | Lightweight mesh running shoes... |
link | Product page URL | https://yourstore.com/products/running-shoes |
image_link | Main product image URL | https://cdn.shopify.com/... |
price | Product price with currency | 59.99 USD |
availability | Stock status | in_stock, out_of_stock |
brand | Product brand or vendor | Nike |
Required for apparel and variants
| Field | Description |
|---|---|
color | Product color |
size | Product size |
gender | male, female, unisex |
age_group | adult, kids, toddler, infant, newborn |
item_group_id | Groups variants together |
Strongly recommended
| Field | Why it matters |
|---|---|
gtin (or mpn) | Required for most products. Without it, your products lose visibility |
google_product_category | Helps Google classify your product correctly |
product_type | Your own categorization, helps with reporting |
sale_price | Shows strikethrough pricing in ads |
shipping | Override account-level shipping for specific products |
Step 3: Map Shopify fields to Google's format
This is where most people get stuck. Shopify's data model doesn't map 1:1 to Google's requirements.
Here's how Shopify fields translate:
| Shopify Field | Google Field | Notes |
|---|---|---|
product.id | id | Prefix with variant ID for multi-variant products |
product.title | title | Consider appending variant info (color, size) |
product.body_html | description | Strip HTML tags, limit to 5000 chars |
product.handle | link | Combine with store URL |
product.images[0] | image_link | Use the variant-specific image when available |
variant.price | price | Append currency code |
variant.compare_at_price | sale_price | Only if currently on sale |
product.vendor | brand | |
variant.barcode | gtin | Must be valid UPC/EAN/ISBN |
variant.sku | mpn | Use when GTIN is not available |
| Inventory tracking | availability | in_stock if quantity > 0 |
product.product_type | product_type | |
| Option: Color | color | Extract from variant options |
| Option: Size | size | Extract from variant options |
Step 4: Handle common rejection reasons
Google Merchant Center is strict. Here are the top reasons products get disapproved and how to fix them:
1. Missing GTIN / invalid barcode
Problem: Google requires GTINs for most branded products. If your variant.barcode is empty or contains an invalid value (like an internal SKU), the product gets flagged.
Fix: Add valid UPC/EAN barcodes to your Shopify variants. You can verify barcodes with the GS1 check digit calculator. If you manufacture your own products, set identifier_exists to false and provide brand + mpn instead. See Google's GTIN requirements for details.
2. Price mismatch
Problem: The price in your feed doesn't match the price on your product page. Google crawls your site and compares.
Fix: Keep your feed in sync. Manual exports go stale quickly — this is where automated syncing saves you. Your feed should update within minutes of a price change.
3. Image doesn't meet requirements
Problem: Google requires images to be at least 100x100 pixels (250x250 for apparel), no watermarks, no promotional text overlays.
Fix: Use clean product photos. Shopify's CDN images usually work fine, but check for any overlay text added by your theme. Review Google's full image requirements.
4. Missing required attributes
Problem: Products in certain categories (apparel, electronics) need additional attributes like color, size, gender, age_group.
Fix: Map your Shopify variant options to these fields. If your option is named "Color" in Shopify, map it to Google's color field.
5. Title too generic
Problem: Titles like "T-Shirt" won't rank well and may get flagged for insufficient product information.
Fix: Use descriptive titles that include brand, product name, key attributes: "Nike Dri-FIT Men's Running T-Shirt - Black, Large". Google's title requirements explain what works best.
Step 5: Choose your sync method
You have three options for getting data from Shopify to Google:
Option A: Manual CSV export
Export products from Shopify admin, reformat the CSV to match Google's spec, upload to Merchant Center.
Pros: Free, no tools needed. Cons: Tedious, error-prone, goes stale immediately. You'll need to re-export every time you change a product.
Option B: Google & YouTube Shopify app
Shopify's official integration with Google.
Pros: Free, direct integration, reasonably reliable. Cons: Limited customization. You can't control field mapping, add custom attributes, or optimize titles/descriptions for better ad performance.
Option C: Dedicated feed management tool
Tools like SnowPipe, Feedonomics, or DataFeedWatch that automate the entire process.
Pros: Full control over field mapping, automated sync, feed optimization, multi-channel support (Google + Facebook + more from one source). Cons: Monthly cost (varies by tool).
For stores with more than 50 products or those running serious Google Shopping campaigns, Option C pays for itself by preventing disapprovals and keeping your feed fresh.
Automating with SnowPipe
SnowPipe connects to your Shopify store via GraphQL Bulk Operations, pulls your entire product catalog (including variants, inventory, and metafields), and transforms it into a Google-compliant feed — automatically.
Here's what that looks like:
- Connect your Shopify store — OAuth, no API keys to copy-paste
- Add Google Merchant Center as a destination
- Smart mapping auto-applies — SnowPipe knows which Shopify fields map to which Google fields
- AI categorization — automatically assigns Google Product Categories based on your product titles and descriptions
- Schedule syncs — hourly, daily, or triggered by webhooks when products change
No more CSV exports. No more disapproved products from stale data. No more manually looking up Google Product Categories.
Next steps
If you're just getting started:
- Set up Google Merchant Center and verify your domain
- Audit your Shopify product data — are barcodes filled in? Are variant options named consistently?
- Decide on your sync method
- Monitor Merchant Center's Diagnostics tab after your first feed upload
Getting your product feed right is the foundation of Google Shopping success. Every dollar you spend on Shopping ads is only as effective as the data behind it.
Ready to fix this for good?
Try SnowPipe free — connect your store and get accurate Google/Facebook syncs in minutes. Or, book a 15-min demo and I'll walk you through your specific setup.