Shopping Feed Hourly Fetcher
Triggers a Merchant Center feed fetch every hour via the Merchant API — fresher prices and availability than the standard daily feed schedule allows.
by Nils Rooijmans (concept), chiliad (rewrite)·nilsrooijmans.com/google-ads-script-increase-shopping-feed-update-frequency
Overview
Merchant Center's scheduled fetch runs at most daily, but prices and stock change all day — and stale data means disapprovals or ads for out-of-stock products. This script lists every data source in your Merchant Center account via the Merchant API and triggers an immediate fetch of each fetchable one (scheduled-fetch and Google Sheets feeds), logging every attempt to a Google Sheet. Schedule hourly for near-real-time feed freshness.
Setup
- 1Create a new blank Google Sheet and copy its URL (optional — blank logs to the console only).
- 2Open your Google Ads account and go to Tools → Bulk Actions → Scripts.
- 3Click the + button to create a new script and paste the code below.
- 4Set MERCHANT_ID and SPREADSHEET_URL.
- 5In the script editor, open 'Advanced APIs' and enable Merchant API → Data Sources.
- 6Authorize (the Google account needs Merchant Center access), preview, then schedule hourly.
Configuration Variables
| Variable | Default |
|---|---|
MERCHANT_ID | (required) |
SPREADSHEET_URL | (empty) |
Expected Output
Sheet rows per data source per run: run time, data source name, id, input type, result (FETCH TRIGGERED / SKIPPED - not fetchable / ERROR) — plus a run summary in the logs.
Notes
Uses the Merchant API (Data Sources sub-API) — the Content API for Shopping that powered the original version is sunset on August 18, 2026. Only data sources with a fetchable file input (scheduled fetch URL or Google Sheets) can be triggered; upload- and API-based feeds are listed as skipped. Fetches count against Merchant Center's fetch quota.