Skip to main content
GlobalXMLTemplate readyOAuth

Google Shopping product feed

Google Shopping is the single largest discovery surface for branded product ads — listings appear across Google Search, the Shopping tab, Performance Max campaigns, YouTube, and Google Display Network. FeedArc generates a Google Merchant Center–compliant RSS 2.0 feed with the `xmlns:g` namespace, automatically validates every product against Google's required and recommended fields, and corrects the most common rejection causes before your feed reaches Merchant Center. The XML schema below is verified against the live Google Merchant Center specification (last checked 2026-05-20) and the same output is consumed by Performance Max asset groups, Free Listings, and Local Inventory Ads from a single feed URL — no duplicate setup. If you already publish to Meta Catalog, Amazon, TikTok Shop, or Criteo through FeedArc, your Google Shopping feed reuses the same product catalog with channel-specific transformations applied at export time.

Last updated

Feed format specification

Google Shopping requires an RSS 2.0 XML feed with the `xmlns:g="http://base.google.com/ns/1.0"` namespace. Each `<item>` represents one product or variant. FeedArc generates this format directly — no manual conversion needed.

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
  <channel>
    <title>FeedArc Demo Feed</title>
    <link>https://feedarc.com</link>
    <description>Generated by FeedArc</description>
    <language>en</language>
    <item>
      <g:id>SKU-1042</g:id>
      <g:title>ASICS Gel-Nimbus 25 Running Shoes — Mens</g:title>
      <g:description>Premium long-distance running shoe with FF Blast Plus cushioning.</g:description>
      <g:link>https://example.com/shoes/gel-nimbus-25</g:link>
      <g:image_link>https://example.com/cdn/gel-nimbus-25.jpg</g:image_link>
      <g:price>189.00 EUR</g:price>
      <g:availability>in_stock</g:availability>
      <g:condition>new</g:condition>
      <g:brand>ASICS</g:brand>
      <g:gtin>4550456987123</g:gtin>
      <g:google_product_category>187</g:google_product_category>
      <g:product_type>Footwear &gt; Running &gt; Road</g:product_type>
    </item>
  </channel>
</rss>

Required fields

  • id

    Unique product identifier — stable across feed updates. Max 50 chars.

  • title

    Product name with brand and key attributes. Max 150 characters (FeedArc auto-truncates).

  • description

    Plain-text product description. Max 5000 characters (FeedArc auto-truncates).

  • link

    Canonical landing-page URL. Must match the verified domain in Merchant Center.

  • image_link

    Primary product image URL. Minimum 100×100 pixels (Google rejects smaller).

  • price

    Price with ISO 4217 currency suffix, e.g. "189.00 EUR". VAT included for EU markets.

  • availability

    One of: in_stock, out_of_stock, preorder, backorder.

Limits

  • title150 characters
  • description5000 characters
  • product_type750 characters
  • image_linkmin 100×100 px
  • promotion_idmax 10 IDs, 50 chars/ID

What makes Google Shopping unique

Google Shopping is not a single placement — it is the underlying product layer for the entire Google ads ecosystem. The same feed powers organic discovery, paid Shopping ads, Performance Max asset groups, and YouTube product extensions. Five capabilities make it strategically different from marketplace channels:

Free Listings (organic Shopping)

Since 2020, Google Shopping shows organic product results alongside paid ads at no cost per click. A Merchant Center–approved feed is the only requirement — no ad budget needed to appear.

Performance Max integration

Performance Max campaigns consume the same product feed as Shopping ads. A single FeedArc feed feeds asset groups across Search, Display, YouTube, Discover, Gmail, and Maps simultaneously.

Cost of Goods Sold reporting

The `cost_of_goods_sold` field unlocks gross-profit reporting and ROAS-based bidding in Google Ads. FeedArc supports this field with built-in validation (must be greater than zero and less than price).

Supplemental feeds

Add or override specific attributes (custom labels for bid strategies, supplementary GTINs, country-specific titles) without touching the primary feed. FeedArc generates supplemental feeds as a separate output your team can manage independently.

Promotion linking

The `promotion_id` field links products to Merchant Center promotions (e.g. "10% off footwear"). FeedArc validates the comma-separated list against Google's constraints (max 10 IDs, 50 chars/ID, alphanumeric + underscore + hyphen) before export.

Custom labels for bid strategies (0–4)

Google supports five `custom_label_0` … `custom_label_4` slots per product, free-form text used in Smart Shopping and Performance Max bid strategies. FeedArc populates these from GA4 segments (Hero/Sidekick/Zombie classification, margin tiers, seasonality flags) automatically — without writing SQL or manual labelling for thousands of SKUs.

Local Inventory Ads (LIA) feed

For omnichannel retailers, Google supports a secondary `local_inventory` feed that maps in-store stock to each `store_code`. FeedArc generates this as a separate output keyed off your store-locator data, so the same Google Shopping listing can show "available in your local store" without rebuilding the primary feed.

FeedArc dashboard walkthrough

FeedArc connects to Google Merchant Center via OAuth — no API keys or manual file uploads. Once authorised, your feed regenerates on your plan's schedule and Google reads it directly from the FeedArc-hosted URL.

1

Authorise Merchant Center

In FeedArc Dashboard → Channels, click Connect on the Google Shopping tile. You will be redirected to Google's OAuth consent screen. FeedArc requests only the Content API for Shopping scope (no broader Google account access).

2

Map your catalog

Choose which products to include (all, by category, by collection, or by custom filter). FeedArc applies the channel's pre-configured rules automatically: title truncation to 150 chars, description truncation to 5000 chars, and category auto-mapping to Google's taxonomy.

3

Preview before publish

FeedArc shows you a live XML preview with row-level validation warnings: missing GTINs, length overruns, invalid prices, and any field that violates Google's spec. Fix issues in-app or with transformation rules before pushing to Merchant Center.

4

Submit to Merchant Center

Copy the FeedArc-hosted feed URL (`https://feedarc.com/api/feeds/{id}`) and paste it into Merchant Center → Products → Feeds → Add primary feed. Google fetches the URL on the schedule you choose (daily, hourly, every 15 minutes, or every 5 minutes depending on plan).

End-to-end integration

End-to-end setup from a fresh Google account to your first approved feed. Typical timeline: 30–90 minutes for steps 1–5, then 1–3 days for Merchant Center's initial review and product approval.

1

Create your Google Merchant Center account

Sign in at merchants.google.com with a Google account that has full admin rights. Choose your business country and primary feed language — these are hard to change later.

2

Verify and claim your website

Merchant Center requires proof that you own the domain in the `link` field of every product. Verify via DNS TXT record, HTML meta tag, or Google Tag Manager, then claim the URL. Without verification, your feed will not pass review.

3

Connect Merchant Center in FeedArc

In your FeedArc dashboard, open Channels and click Connect on the Google Shopping tile. Authorise the Content API for Shopping scope — FeedArc requests no other permissions on your Google account.

4

Configure your feed source and currency

Choose where products come from (Shopify, WooCommerce, Magento, CSV upload, or any FeedArc connector). Set currency, country, and language to match your Merchant Center account exactly. Mismatched settings cause silent product rejection.

5

Apply the Google Shopping preset rules

FeedArc auto-applies three rules for Google Shopping: TAXONOMY_AUTO_MAP (Google categories), TRUNCATE title (150 chars), TRUNCATE description (5000 chars). Add custom rules for your own brand and category normalisation.

6

Submit the feed URL in Merchant Center

In Merchant Center → Products → Feeds → Add primary feed, paste the FeedArc-hosted URL (`https://feedarc.com/api/feeds/{your-feed-id}`). Choose a fetch schedule — start with daily, then increase frequency as your catalog stabilises.

7

Monitor the Diagnostics tab

After Google's first fetch (typically within an hour), open Products → Diagnostics. Review item-level errors and warnings. FeedArc's pre-export validation catches most issues, but country-specific policy disapprovals only surface here.

Common errors and how FeedArc prevents them

The five most common Google Shopping disapprovals — and how FeedArc prevents them before your feed reaches Merchant Center. Every check below corresponds to a real validation routine in our source code (see lib/feed-generators/validation.ts). A clean feed is the floor, not the ceiling: once products are approved, product feed optimization — better titles, correct categories, custom labels — is what wins impressions and clicks in Shopping.

Missing required attribute: title / description / price

Cause: Google rejects items lacking any of the seven required fields. The most common cause is an empty title in your e-commerce store or a price stored as zero/null.

FeedArc solution: FeedArc blocks products with empty id, title, or price at validation time — they never enter the feed. Set fallback values in your import settings or fix the source data.

Title or description exceeds maximum length

Cause: Google enforces 150 characters for title and 5000 for description. Long titles from imported catalogues often exceed this and get truncated unpredictably by Google's own pipeline.

FeedArc solution: FeedArc applies a TRUNCATE rule to both fields by default (configured in the GOOGLE_SHOPPING preset). Use AI Optimization to rewrite titles to a target length instead of truncating mid-word.

Invalid GTIN — checksum does not match

Cause: Many stores import GTINs as free-text without validating the GS1 modulo-10 checksum. Google rejects any GTIN whose check digit is wrong, even by one position.

FeedArc solution: FeedArc validates every GTIN with the full GS1 algorithm (EAN-8, UPC-12, EAN-13, GTIN-14) and warns on invalid checksums before export. Products with broken GTINs are flagged in the dashboard.

Missing google_product_category

Cause: Without a Google category, your product cannot enter most ad formats — and bidding is severely limited. Manual mapping for thousands of SKUs is impractical.

FeedArc solution: FeedArc's TAXONOMY_AUTO_MAP rule infers the correct Google category from your product's name, description, and existing category path with a configurable confidence threshold (default 40%). Low-confidence matches are surfaced for manual review.

Image link returns 404, 403, or non-HTTPS

Cause: Google fetches every image URL during feed processing. CDN authentication, hot-link protection, mixed-content HTTP URLs, or broken links cause silent product suppression.

FeedArc solution: FeedArc batch-checks every image URL via HEAD requests during validation, surfaces 4xx/5xx responses, and warns on HTTP-only links that Google rejects in EU markets.

Country and regulatory specifics

Google enforces different policies depending on the country your feed targets. The following requirements are documented in Google Merchant Center policy and apply at the product level.

European Union (RO, DE, FR, IT, ES, NL, PL, CZ, SE, BE, AT, etc.)

Price must include VAT. The `price` field is the final consumer price the buyer pays at checkout. FeedArc supports per-country price overrides for cross-border merchants.

United States

Price excludes sales tax — tax is calculated at checkout. The `tax` field is used to declare nexus states. FeedArc emits `tax` only when configured for US targeting.

GTIN-required markets (US, UK, FR, DE, CZ, IT, NL, ES, SE, JP, AU, BR, CH)

Branded products in these markets must include a valid GTIN. Unbranded products (`identifier_exists: false`) are exempt. FeedArc warns on missing GTIN when the brand field is populated.

United Kingdom (post-Brexit)

GB feeds are separate from EU feeds — currency in GBP, VAT in price, EORI number on shipping declarations. FeedArc supports country-specific feeds with independent currency and language settings.

Country-targeted ads with exclusions

The `shopping_ads_excluded_country` attribute lets you list ISO 3166-1 alpha-2 codes (e.g. `US,CA,UK`) where a product must not appear, even if the rest of the feed targets those countries. Useful for licence-restricted SKUs.

Restricted categories (adult, alcohol, healthcare)

Adult products require the `adult: yes` flag. Alcohol requires `excluded_destination: Shopping_ads` in some markets. Healthcare-related items face additional scrutiny — Merchant Center may request documentation.

Romania (RON currency, 19% VAT)

Romanian feeds use RON in the `price` field with VAT (19% default) included. Google Merchant Center for Romania accepts both `ro` and `en` as `content_language` — but the descriptions must match the language declared. FeedArc auto-derives currency and VAT inclusion from the shop's country setting; you don't configure these per feed.

Frequently asked questions

Start exporting to Google Shopping

Import your products, optimize with AI, and generate a validated XML feed — free to start.

Create free account