Google Merchant Feed Validation avatar

Google Merchant Feed Validation

Pricing

from $50.00 / 1,000 feed validateds

Go to Apify Store
Google Merchant Feed Validation

Google Merchant Feed Validation

Ecommerce operators and agencies get products disapproved in Google Merchant Center because of feed errors (missing required attributes, invalid GTINs, bad price/availability formats, over-length titles). They find out only after upload. They need every problem listed per item, with a fix, and a...

Pricing

from $50.00 / 1,000 feed validateds

Rating

0.0

(0)

Developer

Jordan Nabbe

Jordan Nabbe

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Google Merchant Feed Validation is built for ecommerce store owners, feed managers and PPC/Shopping agencies who need to catch product feed errors before Google Merchant Center disapproves their products. Give it a CSV, TSV, Google XML (RSS/Atom) or XLSX feed and it returns one import-ready row per issue, with a suggested fix, a health score per feed, an auto-corrected CSV and an optional new/recurring/fixed comparison with your previous run.

What it does

  • Parses real feed files: CSV, TSV, Google Shopping XML (RSS 2.0 and Atom, g: prefixes stripped) and .xlsx workbooks (first sheet, header in row 1). Input can be inline text, a base64 string or a public https URL.
  • Runs a deterministic rule table: missing required attributes (id, title, description, link, image_link, price, availability), duplicate ids, price format (19.90 USD), sale price not lower than price, availability and condition values, title over 150 characters, description over 5000 characters, invalid links (http is accepted by Google and only flagged as info), GTIN length and mod-10 check digit (ISBN-10 accepted), missing GTIN/MPN, brand required for new products except media (placeholder brands such as N/A or Generic are rejected), and missing apparel attributes when the product category contains "Apparel".
  • Applies only safe automatic fixes to a corrected CSV (price format — both 1.234,56 EUR and 1,234.56 USD become 1234.56 …; an ambiguous value such as 1.234 EUR is flagged PRICE_AMBIGUOUS and never changed, availability and condition values, truncation of over-long title/description). GTIN problems and missing values are flagged, never guessed.
  • Scores every feed (0-100) and reports per-feed summary rows, so agencies can compare clients.
  • Optional run-over-run diff (compareToPrevious): each issue is marked new, recurring or fixed against the previous run's baseline. Baselines are kept in a named key-value store in your own account (baselineStoreName, default merchant-feed-baselines), one per feed baselineId (default: the feed name), so they survive between runs and never mix feeds or clients.
  • Every failed feed produces a feed_error row; other feeds still complete.

How to use it

  1. Paste your feed(s) into the feeds input, or use the prefilled example and click Start.
  2. Read the dataset (one row per issue, plus one feed_summary row per feed) or the OUTPUT record.
  3. Download the corrected feed from the key-value store record named in correctedFeedKey.
{
"feeds": [
{
"name": "demo-shop",
"format": "csv",
"content": "id,title,description,link,image_link,price,availability,condition,gtin,brand\nSKU1,Blue Shirt,Soft cotton shirt,https://shop.example/p/1,https://shop.example/i/1.jpg,19.9 USD,in stock,new,4006381333931,Acme"
}
],
"targetCountry": "US",
"generateCorrectedFeed": true
}

For XLSX use "contentBase64": "<base64 of the .xlsx file>". For a hosted feed use "url": "https://example.com/feed.xml".

Output example

recordTypefeeditemIdseverityruleCodeattributecurrentValuesuggestedFixautoFixed
issuedemo-shopSKU1errorPRICE_FORMATprice19.9 USD19.90 USDtrue
issuedemo-shopSKU1errorAVAILABILITY_ENUMavailabilityin stockin_stocktrue
feed_summarydemo-shop

Every row has the same 19 columns (unused ones are null), so it imports cleanly into spreadsheets and databases. Summary rows carry itemsTotal, itemsWithErrors, errorCount, warningCount, healthScore and correctedFeedKey.

Pricing

Pay per event. The main charge is per validated feed; everything else listed below is free.

EventPrice (USD)Charged when
Run start (apify-actor-start)$0.005once per run; the default 512 MB memory is one event
Feed validated (feed-validated)$0.05per feed that was parsed and validated

Not charged:

  • every issue row and feed summary in the dataset
  • the corrected CSV feed
  • feeds that could not be read

Examples (default 512 MB memory, one start event):

  • One daily feed check: $0.005 start + 1 × $0.05 = $0.055
  • Five country feeds every day for 30 days: $0.005 start + 150 × $0.05 = $7.505

Spending limit: when you set a maximum cost per run, the Actor stops before it would exceed it, keeps every validated feed it already delivered and reports limitReached in the OUTPUT record. It never delivers results beyond the limit.

The Store's Pricing tab shows the prices in force. If this section and the Pricing tab ever differ, the Pricing tab applies.

Use cases

  • Pre-upload check of a product feed export before sending it to Merchant Center.
  • Agency batch check of up to 50 client feeds in one run with per-feed health scores.
  • Scheduled monitoring: enable compareToPrevious and see which issues are new, recurring or fixed.
  • Producing a cleaned CSV with the mechanical errors already repaired.

Limits

  • Up to 50 feeds per run and 200,000 items per feed (default 50,000); extra items are ignored and reported with an info issue.
  • Remote feeds: https only, default port, public hosts only (private and loopback addresses and redirects to them are blocked), 3 redirects, 60 s timeout, 100 MB cap. Base64 content is also capped at 100 MB and the whole input at 25 MB.
  • Image checks (checkImageUrls) apply only to feeds supplied by URL, use HEAD requests with 10 in parallel, a 5 s timeout and at most 5,000 checks per run.
  • The rules cover a practical subset of the Google product data specification; they do not replace Merchant Center's own review, and category-specific or country-specific rules beyond those listed are not checked.
  • The OUTPUT record holds the first 1,000 rows; the dataset holds all rows.
  • The Actor uses no Merchant Center credentials and does not scrape third-party sites.

FAQ

Does it connect to my Merchant Center account? No. It only reads the feed you supply.

Will it change my original feed? No. Fixes are written to a separate corrected CSV.

Why is a GTIN not auto-fixed? A wrong check digit usually means a wrong number. The suggestion shows the digit that would make it valid, but you should verify it.

How does the diff work? Issues are matched by item id, rule and attribute against the baseline saved for the same feed name in the default key-value store of the run's storage, so use the same feed name and a persistent store for scheduled runs.

What happens if one feed is broken? It gets a feed_error row and the rest continue. The run fails only if every feed fails.