Product feed
A structured file (XML, TSV, or Google Sheet) that describes every product a merchant wants to list on Google Shopping. Each row is one product; each column is an attribute like title, description, price, availability, or GTIN. Fed to Google via direct upload, scheduled fetch, or Content/Merchant API.
See also: Content API, Merchant API
GTINGlobal Trade Item NumberUPCEAN
A unique 8, 12, 13, or 14-digit identifier assigned to a product by GS1 and its affiliates. Includes UPC (North America), EAN (Europe), and JAN (Japan). Required for most branded products on Google Shopping — missing or incorrect GTIN is a frequent disapproval reason.
MPNManufacturer Part Number
The unique code a manufacturer assigns to a specific product model. Used alongside brand to identify products that don't have GTINs (custom or older items). Less authoritative than GTIN but accepted when GTIN is genuinely unavailable.
Product title
The main identifier shown in Shopping results. Google recommends brand, product name, and distinguishing attributes in that order, under 150 characters. Promotional text ("Sale!", "Free shipping") is disallowed and triggers disapprovals.
Product description
A 500-5000 character narrative describing the product's features and use cases. Google ranks Shopping results partly on description relevance, so keyword-rich, accurate descriptions outrank thin or duplicated ones.
Availability attribute
One of four values — in_stock, out_of_stock, preorder, or backorder — declared per product in the feed. Must match the landing page at all times; mismatched availability (in_stock in feed but out of stock on page) is one of the fastest-detected disapproval reasons.
Price mismatch
When the price in the product feed differs from the price shown on the landing page at crawl time. Even small mismatches (currency rounding, tax display) can disapprove products. Google crawls prices independently of feed updates, so out-of-sync prices are common.
See also: Availability attribute
id (product ID)offer_id
A unique merchant-assigned identifier for each product in the feed. Must be stable across feed updates — changing the id for an existing product creates a new product record and resets approval history.
item_group_id
An identifier shared by all variants of the same product (sizes, colors). Lets Google group variants together in Shopping results. All rows with the same item_group_id must share core attributes (title, description, brand) while differing on variant attributes (color, size).
additional_image_link
Up to 10 secondary product images per row. Used by Google to populate carousels in Shopping results. Each must be a direct URL to a hosted image meeting Google's image requirements (no overlays, no watermarks, no promotional text).
color (attribute)
A required attribute for apparel and accessory categories. Up to three color names separated by slashes. Must use plain English color names; codes, hex values, or proprietary palette names are rejected.
size (attribute)
Required for apparel, shoes, jewelry. Use standard size systems (US, EU, UK) declared via size_system. Custom sizes must include unit (e.g., '32 in'). Critical for performance because Shopping filters use this attribute.
gender (attribute)
Required for apparel categories. Allowed values: male, female, unisex. Inferred from product context but disapprovals occur when an obvious gender mismatch is declared (e.g., 'female' on a tuxedo).
age_group
Required for apparel. Allowed: newborn, infant, toddler, kids, adult. Helps Google match products to age-segmented searches. Disapprovals occur when the value contradicts the product image or description.
condition (attribute)
Declares whether a product is new, refurbished, or used. Refurbished and used products must include explicit disclosure on the landing page and meet warranty/refund requirements that Google considers acceptable.
brand (attribute)
The product brand as recognized by the manufacturer. Critical for matching with GTIN data. Generic brands ('OEM', 'unbranded') are usable only when truly unbranded; using them for branded products causes mismatches.
identifier_exists
A no-required-identifier flag. Set to FALSE only when a product genuinely has no GTIN, MPN, or brand (e.g., custom one-of-a-kind items). Misusing this flag to skip GTIN requirements is detected and disapproves the product.
shipping (attribute)
Per-product shipping cost override, used when shipping varies from the account-level shipping settings. Required when shipping isn't uniform across the catalog. Mismatched shipping (feed says free, landing page charges) is a fast-disapproval trigger.
tax (attribute)
Per-product tax override, used in regions where tax is calculated outside the displayed price (US). Required when tax differs from account-level tax settings. Must match the tax displayed at checkout.
sale_price
An optional reduced price submitted alongside the regular price. Must be displayed on the landing page during the declared sale window. Faking sale prices (price never sold at regular price) is an untrustworthy-promotion violation.
See also: Untrustworthy promotions
sale_price_effective_date
A start-and-end timestamp pair declaring the active period of a sale price. Must match exactly the promotion's visibility on the landing page. Common error: sale_price declared but no effective_date set, leading to permanent-discount disapprovals.
custom_label_0 - custom_label_4
Five optional merchant-defined labels (free-text) used to segment products for bidding in Google Ads. Not visible to consumers. Common uses: profit margin tier, seasonality, supplier code, performance bucket.
google_product_category
The product's category from Google's published taxonomy (Apparel & Accessories > Clothing > Outerwear > Coats & Jackets, etc.). Required for some categories (apparel, media). Incorrect category causes irrelevant traffic and matching failures.
product_type
A merchant-defined free-text category (your own taxonomy). Used alongside google_product_category. Helps with bidding segmentation in Google Ads but doesn't affect approval decisions.
multipack
A flag declaring the product is sold as a multi-unit bundle of identical items (e.g., 6-pack of batteries). The numeric quantity must match the listing. Disapprovals occur when feed says multipack=6 but listing shows a single unit.
is_bundle
Declares the product is a merchant-defined bundle of different items sold together (skincare gift set, gaming bundle). Distinct from multipack. Bundle pricing must reflect the bundle, not the individual items.
adult (attribute)
Declares the product contains adult content. Triggers Google's adult-content policy gating and limits surfaces where the product can appear. Misdeclaring this attribute (false negative for adult content) leads to suspension.
link
The canonical landing page URL for the product. Must resolve to a page selling the product as described. Must use HTTPS, must not redirect through trackers excessively, must not require login to view price.
mobile_link
Optional mobile-specific landing page URL. Most modern stores use responsive design and skip this; only set it when the mobile experience is on a different URL (m.example.com or app deep link).
expiration_date
Optional date after which the product listing should be removed from Shopping. Use for limited-edition or time-sensitive products. Listings without expiration_date stay active until manually removed or until 30 days after the last feed upload that included them.
product_highlight
A short bullet-style feature description (max 100 characters each, up to 100 highlights). Surfaces in Shopping result enhancements. Should be objective product facts, not promotional language.
lifestyle_image_link
Optional URL to a lifestyle image showing the product in use (vs the plain studio image_link). Improves CTR in some Shopping placements. Must follow same image quality rules as the primary image.
energy_efficiency_class
Required for energy-consuming products sold in the EU (appliances, lighting). Uses the EU energy label scale (A+++ to G). Must match the official EU energy label that ships with the product.