> Skip to main content
Home Google Shopping Feed Field Reference
Field reference

Google Shopping feed field reference

Every attribute in the Google Shopping feed spec — what it does, when it’s required, the correct UK format, and a practical example. The fields most practitioners get wrong are highlighted.

Map fields with Trajekt Google Shopping guide
Required Must be present on every product Recommended Strongly impacts performance Conditional Required when applicable Optional Improves targeting and segmentation
Attribute
Status
What it does
UK example
id Required Your unique product or variant identifier. For variable products, use the variant-level ID (Shopify variant ID, WooCommerce variation ID) not the parent product ID. Max 50 characters. Must be stable — changing a product's id creates a new listing and deletes the old one. shopify_GB_12345_67890
item_group_id Required for variants Groups product variants together. All sizes and colours of the same product share this value. Typically the parent product ID. Without this, variants appear as separate products instead of a grouped listing. shopify_GB_12345
title Required Product title — primary Shopping query matching signal. Max 150 chars. Include brand, product name, and key variant attributes (colour, size). First 70 chars visible on mobile before truncation. Barbour Beaufort Jacket Men Navy XL
description Required Plain text product description. No HTML. Max 5,000 chars. For ChatGPT, must also be free of non-ASCII characters (curly quotes, em dashes). Google: keyword-rich. ChatGPT: factual and specific. Heavyweight waxed cotton jacket. 100% waxed cotton outer. Corduroy collar. Zip-out inner lining...
link Required Product page URL. Must return HTTP 200. Must exactly match the canonical URL on your website. Redirects (301) are followed but flagged. https://example.com/products/barbour-beaufort
image_link Required Primary product image URL. HTTPS only. Minimum 100x100px (250x250 for apparel). Recommended 800x800px. No promotional overlays, watermarks, or borders. https://cdn.example.com/images/barbour-beaufort-navy.jpg
price Required VAT-inclusive selling price for UK merchants. Format: numeric value + space + GBP. Never use £ symbol. 279.00 GBP
sale_price Optional Active sale price when lower than regular price. Same format as price. Must match website sale price exactly. 209.00 GBP
availability Required in_stock / out_of_stock / preorder / backorder. Must match website availability. Most common disapproval cause after price mismatch. in_stock
brand Required (branded) Manufacturer or brand name. Required for all branded products. Set identifier_exists: no and omit brand only for genuinely unbranded products. Barbour
gtin Recommended EAN-13 barcode (13 digits) for UK products. UPC-A (12 digits) also accepted. ISBN-13 for books. Required for branded products. Use identifier_exists: no for own-brand. 5055329871234
google_product_category Recommended Google's product taxonomy ID or text path. Use most specific applicable category. Numeric IDs are preferred (more stable across taxonomy updates). 5697
product_type Recommended Your own category hierarchy. Pipe-separated levels. Used for Shopping campaign product group segmentation. Mens > Jackets > Waxed Jackets
color Required (apparel) Product colour. Must exactly match colour shown on product page. Each colour variant = separate feed row with unique id sharing item_group_id. Navy
size Required (apparel) Product size in UK notation. Include size_type and size_system for best results. UK 12
gender Required (apparel) male / female / unisex male
age_group Required (apparel) adult / kids / infant / toddler / newborn adult
custom_label_0 Optional Free-format label for Shopping campaign segmentation. Five available (0-4). Set via feed rules in Trajekt. high-margin
identifier_exists Conditional Set to 'no' for products with no GTIN, MPN, or brand. Required when these identifiers genuinely don't exist (handmade, custom, vintage). Never use for branded products. no

Map these fields automatically with Trajekt

Trajekt maps your Shopify or WooCommerce data to all these fields via a visual rules interface — no code, no manual mapping spreadsheets.

Start free →

Frequently asked questions

item_group_id is the attribute that groups product variants (different sizes, colours, or materials of the same product) together in Google Shopping. All variants of the same product should share the same item_group_id value, typically the parent product's ID. Without item_group_id, each variant appears as a completely separate product in Shopping results instead of as a grouped listing with selectors.
The id attribute is the unique identifier for each individual product row in your feed — each variant needs a different id. The item_group_id is the shared identifier that tells Google which ids belong to the same parent product. For a t-shirt with 3 colours x 4 sizes, you'd have 12 rows each with a unique id, all sharing the same item_group_id.
Format sale_price exactly like price: a numeric value followed by a space and the ISO 4217 currency code. For UK merchants: '24.99 GBP'. Do not use currency symbols (not '£24.99'). The sale_price must be lower than the price attribute, and the product page must show the same sale price. You can also use sale_price_effective_date to schedule when the sale price is active.
product_type is your own categorisation of your products — you define the values yourself (e.g. 'Mens > Jackets > Waxed Jackets'). google_product_category uses Google's fixed taxonomy (e.g. 'Apparel & Accessories > Clothing > Outerwear > Coats & Jackets'). Both should be populated. product_type is used for Shopping campaign product group segmentation; google_product_category improves query matching.
Yes. Google factors shipping speed and cost into Shopping ad quality. Products with free shipping or fast shipping (next day, 2-day) tend to show more prominently than products with slow or expensive shipping. Include the shipping attribute with accurate carrier, country, and cost values. For Shopify merchants with multiple shipping zones, this can be complex — Trajekt supports shipping attribute rules for common UK shipping configurations.
identifier_exists: no tells Google that your product genuinely has no GTIN, MPN, or brand identifier — typically for handmade, custom, vintage, or own-brand products where no barcode was ever assigned. Without this attribute, Google expects your product to have identifiers and may flag it for missing GTIN. Never use identifier_exists: no for branded products that do have manufacturer barcodes.
custom_label_0 through custom_label_4 are five free-format fields you can use to add any classification data you want to use for Shopping campaign segmentation. Common uses: margin tier (high/medium/low), seasonality (autumn-winter/spring-summer), stock velocity (fast-mover/slow-mover), promotional status (on-sale/full-price), product lifecycle (new-arrival/bestseller). Values are set via feed rules in Trajekt.
image_link is the required primary product image. additional_image_link allows up to 10 additional images (showing different angles, colours, lifestyle shots). lifestyle_image_link is specifically for lifestyle images used in Performance Max creative. All image URLs must be HTTPS and return accessible images. Recommended minimum: 800x800px for standard Shopping, 1200x1200px for PMax display placements.

Related guides

Google Shopping feed guide Google product category mapping Feed optimisation Supplemental feeds GTIN and EAN guide Custom labels guide
Ready to automate your feeds?

Connect your store and generate feeds for every channel automatically. Free plan available — no credit card needed.

Start free →

Get every field right, automatically

Trajekt maps your product data to all Google Shopping attributes, validates required fields, and generates feeds for 12+ channels from one store connection.