DriftGuard: Google Merchant Center Feed Price & Stock Checker
Pricing
from $0.14 / 1,000 product checkeds
DriftGuard: Google Merchant Center Feed Price & Stock Checker
Your Google Merchant Center disapprovals are caused by feed-vs-storefront drift: your feed says one price, your live Shopify storefront shows another. DriftGuard compares your storefront against your feed every run and reports every price, availability, title, and attribute drift with a fix hint.
Pricing
from $0.14 / 1,000 product checkeds
Rating
0.0
(0)
Developer
dheeraj kumar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Shopify Google Merchant Feed Checker: Price & Stock Drift
Who it's for: Shopify merchants and the ecommerce/ads teams running their Google/Meta/TikTok Shopping feeds, who need to catch feed-vs-storefront drift before a platform crawler disapproves a product.
Catch feed-vs-storefront drift before Google, Meta, or TikTok do.
Your product feed says one thing, your live Shopify storefront says another — and the platforms notice before you do. Price mismatches and availability mismatches are the #1–2 causes of Google Merchant Center disapprovals; a disapproved product goes invisible on Shopping and your ads stop serving. This actor compares your live storefront against your product feed on every run and reports each drift with a fix hint, so you correct it before a crawler flags it.
Try it in one click
The input form on this page is already prefilled with the example below — press Start and it runs as-is, against our built-in demo store.
{}
What you get:
- A full demo run against our built-in demo Shopify storefront + Google Shopping feed — no store URL needed.
- One row per price, availability, title or attribute drift found, each with severity, the storefront value vs. the feed value, and a fix hint.
- Costs a fraction of a cent on the small demo catalog (run-start $0.001 plus per-variant checks); point it at your own store/feed URLs for the real thing, same pricing.
What it checks (per variant/SKU)
| Check | Why it matters |
|---|---|
| price_mismatch (high) | Feed price ≠ storefront price — the top disapproval cause |
| availability_mismatch (high) | Feed says in-stock, storefront is sold out (or vice versa) |
| feed_only (medium) | Item in the feed but gone from the storefront — stale listing, disapproval risk |
| storefront_only (medium) | Live product missing from the feed — invisible to Shopping/ads |
| title_mismatch (low) | Feed title diverges sharply from the storefront title |
| attribute_gap (medium) | Feed item missing gtin/mpn identifiers, brand, or image |
Inputs
- Store URL — e.g.
https://example.myshopify.com. Read from your public storefront. No login, no API keys, no app install. - Feed URL — the public URL of your product feed (Google Merchant Center RSS XML or TSV), the same URL you submit to Google/Meta/TikTok. Auto-detected format.
- Max variants per store (default 500), max charge cap (default $5).
- Proxy configuration (default: Apify datacenter proxy). Shopify throttling is handled automatically.
Feed items are paired with storefront variants by multi-signal product matching, so renamed products, missing SKUs and multi-country feed ids still line up.
Rate-limit handling
Shopify throttles aggressive storefront reads. The actor paces itself and recovers from throttling automatically. If a run still can't finish, it stops with an explicit incomplete error row (never reported as a clean audit) so you can re-run.
Output
One dataset row per drift (recordType: drift) with severity, the storefront value vs the feed value, a plain-English explanation, and a fix hint — plus a per-run summary row. Schedule it daily and you get drift alerts before the platforms' crawlers find them.
Example input
{"storeUrl": "https://your-store.myshopify.com","feedUrl": "https://your-store.myshopify.com/feeds/google-shopping.xml","storeCurrency": "USD","maxProductsPerStore": 500,"maxChargeUsd": 1}
Leave storeUrl and feedUrl empty to run the built-in demo.
Example output (one row per drift)
{"recordType": "drift","store": "https://your-store.myshopify.com","storeUrl": "https://your-store.myshopify.com","feedUrl": "https://your-store.myshopify.com/feeds/google-shopping.xml","feedFormat": "xml","productId": "7012345678901","variantId": "41234567890123","sku": "MUG-12","title": "Ceramic Mug - 12oz","feedItemId": "shopify_US_7012345678901_41234567890123","storefrontUrl": "https://your-store.myshopify.com/products/ceramic-mug-12oz","driftType": "price_mismatch","severity": "high","storefrontValue": "16.50","feedValue": "14.00","detail": "Feed shows 14.00 but the storefront charges 16.50.","fixHint": "Update the feed price to match the storefront (or fix the storefront), then re-upload the feed.","detectedAt": "2026-10-16T09:00:00+00:00"}
Pricing
Pay per event: run-started $0.001 · per variant checked $0.0002 · per new drift detected $0.02.
- A 500-variant store with no drift costs about $0.10 per run.
- A typical run (500 variants, 5 new drifts) costs about $0.20: $0.001 run + $0.10 variants + $0.10 drifts.
- Repeat drifts on a daily schedule are reported but not re-billed (baseline dedupe) — you pay for a drift once.
attribute_gapfindings (missing GTIN/brand/image) are a free report section, never billed.- Skipped rows (truncated scans, ambiguous variant matches, currency mismatches) are free.
maxChargeUsd(default $5) is a hard cap covering all charges — the run stops before exceeding it.
Works on Apify’s Free plan — $5/mo platform usage, no credit card required to try. Actor event prices above are unchanged.
Integrations
This actor runs on the Apify platform, so it connects to the tools you already use without custom code:
- Make, Zapier, n8n — trigger a run on a schedule or webhook, and route new drift rows into your workflow (e.g. a ticket, a Slack message, a feed-fix task) using Apify's integrations for each tool.
- Google Sheets — push each run's drift rows to a spreadsheet with the Apify Google Sheets integration so marketing/ads teams can review drift without touching the dashboard.
- Slack / email — get notified the moment a high-severity drift (like a price mismatch) is detected, via Apify's built-in Slack and email integrations.
- API, Python, and JavaScript clients — call it programmatically with the Apify API or the
apify-client/apify-client-jslibraries. - MCP / AI agents — expose this actor as a callable tool to Claude, Cursor, or any MCP-compatible agent through the Apify MCP server, so an agent can run checks and act on drift results on its own.
Run it on a schedule
Suggested frequency: daily, timed shortly after your feed refreshes, so mismatches are caught before Google, Meta or TikTok re-crawl. Stores that change prices often can run it every few hours.
To set it up: save your input as a Task in Apify Console, then add a Schedule. Send results where you work with Apify integrations: Google Sheets, Slack or email notifications, webhooks, Make / Zapier / n8n, or straight into an AI agent through the Apify MCP server. A run that can't get data is marked failed, so your alerts fire.
FAQ
Is this legal? Is the data public? Yes. It reads your store's public storefront and the public feed URL you already submit to Google/Meta/TikTok — no private data is accessed. You're responsible for using the output in line with each platform's terms.
Do I need a login or API keys? No. Both the storefront and the feed are read as public URLs — no Shopify admin login or API key needed. You only need your own Apify account to run the actor.
How often should I schedule it? Daily is a sensible default so you catch drift before a crawler re-indexes your feed. Repeat drifts on a daily schedule are reported but not re-billed — you only pay for each drift once (baseline dedupe).
What does a run cost?
Pay per event: $0.001 per run, $0.0002 per variant checked, $0.02 per new drift. A 500-variant store with no drift costs about $0.10; a typical run (500 variants, 5 new drifts) costs about $0.20. Set maxChargeUsd (default $5) to cap spend.
Does it need a proxy? No setup needed. It runs on Apify's proxy by default and handles Shopify throttling automatically.
What happens if Shopify blocks or rate-limits the run?
The actor recovers automatically in most cases. If it can't, the run stops with an explicit incomplete error row (never reported as a clean audit). Re-run, or lower the variant count.
How do I get support or report a bug? Open an issue on this actor's Issues tab on Apify (apify.com/dheerajitbhu/driftguard/issues) and we'll follow up there.
Can I wire this into n8n, Slack or an AI agent? Yes. Use Apify’s n8n / Make / Zapier integrations, Slack or email notifications, webhooks, or the Apify MCP server so an agent can run a check and act on drift rows.
Related actors
- WooCommerce Products Scraper — on WooCommerce instead of Shopify? Export a store's full product catalog (prices, stock, SKUs, images) as JSON/CSV/Excel.
- WooCommerce Catalog Monitor — track a WooCommerce store's catalog over time and get alerted on new/removed products, price changes, and stock flips.
- Google Shopping Insights — see how your products and competitors' appear in Google Shopping.
- Shopify Scraper — export competitor Shopify stores' products and prices.
Built and maintained by Integration Yard (dheerajitbhu).