Migrate your Google Content API export to Merchant API (single account)
Learn how to migrate your Google Content API for Shopping export to the new Merchant API destination before Google shuts down the Content API on August 18, 2026.
Google is shutting down the Content API for Shopping on August 18, 2026, in favor of the new Merchant API (generally available since July 2025). If you use a Content API-based destination to export your product data to Google Merchant Center, you need to migrate to the Merchant API destination before that date to keep your exports running.
This migration is mandatory, but full feature parity is maintained and your export templates require no changes. You only need to add the new destination, configure it, and disable the old one.
Terminology note
Throughout this guide, data source refers to a data source (feed) as configured in Google Merchant Center — not a Productsup data source — unless explicitly labeled Productsup data source or feedback data source (both of which are Productsup entities used in the feedback-file workflow described in Enable the feedback file).
Scope
This migration covers Content API to Merchant API destinations only. If you deliver your Google feed via SFTP or FTP, or Google Merchant Center fetches it from a URL, for example a file hosted with the Productsup Server destination, this guide does not apply to you. Moving from SFTP to API is a separate change that uses different export templates and isn't required as part of this migration.
Choose your data source strategy (optional)
We recommend keeping the same data source (feed) you already use: map Feed Label, Content Language, and Default Currency Code to the correct target as described in this guide. This approach requires no manual intervention in Google Merchant Center.
This matches Google's "Keep existing Content API data sources" option: data sources created with the Content API for Shopping remain fully compatible with the Merchant API. See Choose your data source strategy in Google's documentation for more information.
Destination name mapping
The following table maps the old destination to its Merchant API replacement.
| Old destination (Content API) | New destination (Merchant API) |
|---|---|
| Google Content API for Shopping | Google Merchant API — single account |
What changes in the destination settings
The destination configuration has changed. The Target Country and Target Language dropdowns are replaced by three free-text fields.
Before, with the Content API destination:
| Field | Example value |
|---|---|
| Target Country (dropdown) | United Arab Emirates |
| Target Language (dropdown) | English |
After, with the Merchant API destination:
| Field | Description | Example value |
|---|---|---|
| Feed Label | Replaces Target Country. Uppercase ISO country code. Maximum 20 characters (A–Z, 0–9, hyphen, underscore). Immutable after feed creation | AE |
| Content Language | Replaces Target Language. ISO 639-1 two-letter code in lowercase. Google validates this server-side and flags mismatches | en |
| Default Currency Code | New field. ISO 4217 three-letter uppercase currency code. See the field mapping table for valid values per country | AED |
Tip
Use the ISO 3166-1 alpha-2 country code in uppercase as your Feed Label (for example, AE, ES, GB) to keep it consistent with how Merchant Center identifies data sources and to ensure you continue pushing to the same primary data source. This value is immutable once the data source is created, so confirm it before saving.
Example: United Arab Emirates / English
| Old setting | Old value | New field | New value |
|---|---|---|---|
| Target Country | United Arab Emirates | Feed Label | AE |
| Target Language | English | Content Language | en |
| — | — | Default Currency Code | AED |
Full field mapping reference
Use this table to find the correct values when you configure the new destination. Feed Label uses the uppercase ISO country code, Content Language uses the lowercase ISO 639-1 code, and Default Currency Code uses the uppercase ISO 4217 code.
| Old: Target Country | Feed Label | Content Language(s) | Default Currency Code |
|---|---|---|---|
| Argentina | AR | es | ARS |
| Australia | AU | en | AUD |
| Austria | AT | de | EUR |
| Bahrain | BH | ar | BHD |
| Belarus | BY | ru | BYN |
| Belgium | BE | fr / nl / de | EUR |
| Brazil | BR | pt | BRL |
| Canada | CA | en / fr | CAD |
| Chile | CL | es | CLP |
| Colombia | CO | es | COP |
| Czechia | CZ | cs | CZK |
| Denmark | DK | da | DKK |
| Ecuador | EC | es | USD |
| Egypt | EG | ar | EGP |
| Ethiopia | ET | en | ETB |
| Finland | FI | fi / sv | EUR |
| France | FR | fr | EUR |
| Georgia | GE | ka | GEL |
| Germany | DE | de | EUR |
| Ghana | GH | en | GHS |
| Greece | GR | el | EUR |
| Hong Kong | HK | zh / en | HKD |
| Hungary | HU | hu | HUF |
| India | IN | en / hi | INR |
| Indonesia | ID | id | IDR |
| Ireland | IE | en / ga | EUR |
| Israel | IL | he | ILS |
| Italy | IT | it | EUR |
| Japan | JP | ja | JPY |
| Jordan | JO | ar | JOD |
| Kazakhstan | KZ | ru | KZT |
| Kenya | KE | en | KES |
| Kuwait | KW | ar | KWD |
| Lebanon | LB | ar | LBP |
| Malaysia | MY | ms / en | MYR |
| Mauritius | MU | en / fr | MUR |
| Mexico | MX | es | MXN |
| Netherlands | NL | nl | EUR |
| New Zealand | NZ | en | NZD |
| Nigeria | NG | en | NGN |
| Norway | NO | no | NOK |
| Oman | OM | ar | OMR |
| Paraguay | PY | es | PYG |
| Peru | PE | es | PEN |
| Philippines | PH | en / tl | PHP |
| Poland | PL | pl | PLN |
| Portugal | PT | pt | EUR |
| Romania | RO | ro | RON |
| Russia | RU | ru | RUB |
| Saudi Arabia | SA | ar | SAR |
| Singapore | SG | en / zh | SGD |
| Slovakia | SK | sk | EUR |
| South Africa | ZA | en | ZAR |
| South Korea | KR | ko | KRW |
| Spain | ES | es | EUR |
| Sweden | SE | sv | SEK |
| Switzerland | CH | de / fr / it | CHF |
| Taiwan | TW | zh | TWD |
| Tanzania | TZ | sw / en | TZS |
| Thailand | TH | th | THB |
| Turkey | TR | tr | TRY |
| Uganda | UG | en | UGX |
| Ukraine | UA | uk | UAH |
| United Arab Emirates | AE | ar / en | AED |
| United Kingdom | GB | en | GBP |
| United States | US | en / es | USD |
| Uruguay | UY | es | UYU |
| Uzbekistan | UZ | uz | UZS |
| Vietnam | VN | vi | VND |
| Zambia | ZM | en | ZMW |
| Zimbabwe | ZW | en | USD |
Migrate to the Merchant API destination
Tip
Take a few screenshots of your current product output before you start. The new destination has been validated internally, but a before-and-after reference lets you confirm it produces identical results, and gives you something to compare against if anything looks unexpected.
Go to Destinations and add Google Merchant API — single account.
Configure the destination: enter Feed Label, Content Language, and Default Currency Code using the field mapping table, and complete all other required credentials.
Switch Active to On and select Save.
Disable the previous destination Google Content API for Shopping and select Save.
Run the site to push your data through the new destination and confirm the output looks correct.
No further action is needed. Export templates require no changes.
Important settings to check before and during the switch
Enable the feedback file
Switch on the feedback file to keep visibility into actionable insights if products get rejected due to data quality issues. If something goes wrong, the feedback file is available as an additional downloadable Productsup data source, showing what's failing and why.
Some clients don't use the feedback file, so sites can fail silently. This isn't caused by the migration — it's caused by unrelated data quality issues that only the feedback file would surface.
If you enable the feedback file and start seeing more errors than before, two separate things are usually happening:
- Real product-level errors from Google become visible. Many accounts never had the feedback file enabled under the Content API, so Google's product-level rejections went unnoticed. In most cases, these errors are pre-existing catalogue or data-quality issues that existed before the migration.
- Unmapped-items notifications appear as separate UI noise. The feedback file arrives as an additional feedback data source in Productsup and isn't automatically mapped to your main Productsup data source. This can trigger extra notifications that look like errors but aren't actual export problems. To reduce this noise, map ID to ID from the feedback data source to your main Productsup data source, or snooze the notification on the feedback data source.
Use Force Full Upload and Cleanup with care
Caution
Only switch on Force Full Upload or Cleanup when there's a clear, identified need — for example, when Productsup and Google Merchant Center are de-synced and products still exist in GMC that Productsup has no record of, and only when Productsup is the single source of truth for that data source (feed). Leaving these options on unnecessarily increases the risk of hitting your daily quota limits. Disable them again as soon as the sync is back to normal.
Set the Full Upload Interval correctly
Google removes products from Merchant Center if they haven't been refreshed within 28 days. Full Upload Interval controls how often Productsup sends your entire catalogue to Google as a full upload, rather than only new or changed products. This refreshes every product's timestamp, including unchanged ones, and prevents Google from dropping them after 28 days.
Caution
Do not set Full Upload Interval to 0, especially on a schedule that runs daily. A value of 0 forces a full upload on every run, which removes the delta export benefit and significantly increases the risk of hitting your daily quota.
The more often you export, the larger this value should be, closer to 28. The less often you export, the smaller it should be, for example 7–14, so unchanged products still get refreshed before Google's 28-day cutoff.
Do not use Dry Run for this migration
Dry Run is intended for new clients who are still testing their data setup before going live. If your site is already running in production, using Dry Run interferes with your normal delta and export flow. Add and activate the new destination as described in Migrate to the Merchant API destination instead.
After the switch
Once you've switched, the data source may still be labeled Content API inside Google Merchant Center.
This is expected and won't affect your exports. The label in Merchant Center hasn't been renamed yet, but the underlying integration is already Merchant API and continues to work after August 18, 2026.
To confirm the switch was successful, check that:
- Products in the data source (feed) have an update timestamp after the switch.
- There has been a successful run since the switch.
- The feedback file shows no issues.
Fallback procedure
If something goes wrong after switching, restore your previous setup:
Disable the new Google Merchant API — single account destination.
Re-enable the old Google Content API for Shopping destination.
Restart the delta on the site and run it again to restore normal data flow.
Contact your Customer Success Manager or support@productsup.com immediately to report the issue.
Act quickly. The faster you switch back, the shorter the gap in data delivery.
FAQ
Google Merchant Center fetches my feed from a URL or SFTP. Do I need to migrate?
No. The Content API shutdown only affects exports that send data to Google through a Content API destination. If Google Merchant Center fetches your feed from a URL, for example a file hosted with the Productsup Server destination, or you deliver it via SFTP or FTP, no action is needed. See Scope.
If Google still notifies you about the Content API, check your data sources in Merchant Center. An old, unused Content API data source that contains no products can trigger the notice. You can remove that data source in Merchant Center if no rules or supplemental feeds reference it.
Where do I find the Merchant API destination?
There is no separate Merchant API export to add for this migration. Open your existing Google Content API for Shopping export, which may appear as Google Merchant API in the platform, and add the new Merchant API destination there. See Migrate to the Merchant API destination.
Can I use the Merchant API destination for a new setup?
Yes. If you have no API-based export yet, for example because Google fetches your feed from a URL, add the Google Merchant API export template to your site and add the Merchant API destination to it. The Blank Export (empty) template cannot send data to Google via API. Configure Feed Label and Content Language to match your existing data source in Merchant Center so that Google recognizes your products.
The Merchant API destination sends only new, changed, and deleted products, so the values of the id attribute must be unique in your export.
Do I need to update my export templates?
No. The export templates have been renamed from Google Content API for Shopping to Google Merchant API for Shopping, but are otherwise unchanged. Only the destination changes.
What actually changes in the destination configuration?
The Target Country and Target Language dropdowns are replaced by three free-text fields: Feed Label (for example, AE), Content Language (for example, en), and Default Currency Code (for example, AED). See What changes in the destination settings for the full breakdown and the field mapping table for all 71 countries.
Will my data source in Merchant Center change?
No. If you follow this guide and use the recommended Feed Label, an uppercase ISO country code, Productsup pushes to the same primary data source (feed) as before. No manual action is needed in Merchant Center. See Choose your data source strategy.
After the switch, my data source in Merchant Center is still labeled Content API. Did the migration fail?
No, this is expected. Even though the data source may still show as Content API in the Merchant Center UI, you're already exporting via the new Merchant API destination under the hood, and it continues working past August 18, 2026, as long as you've switched to Google Merchant API — single account in Productsup. See After the switch.
Why are we still using Google Content API export templates?
We're not — the export templates have been renamed to Google Merchant API for Shopping. They're fully compatible with the Merchant API destination, so no customer action is needed beyond the destination switch described in this guide.
Do I still need to choose between the single-account and multi-threading destinations?
No. The new Google Merchant API — single account destination handles this automatically. It's a unified solution that replaces both the Google Content API (single account) and Google Content API (single account + multi-thread) destinations, so you no longer need to choose between them.
What happens if I don't migrate by August 18, 2026?
The Content API stops accepting requests and your exports fail until you switch to a Merchant API destination.
What if I only use one feed?
No additional action is needed. Data is pushed to your main catalogue automatically.
What is the correct Feed Label value?
Use the ISO 3166-1 alpha-2 country code in uppercase, for example GB, ES, AE. It must match the feed label configured in Merchant Center. This value cannot be changed after the data source (feed) is created.
Feed Label is not a display name. Do not enter the feed name or the full country name, such as Germany. If the value does not match an existing data source, Productsup sends your products to a new data source with that label instead of your existing one. If this has happened, correct the value in the destination, run the site again, and remove the extra data source in Merchant Center.
How do I confirm the switch was successful?
Check that products in the data source (feed) have an update timestamp after the switch, that there's been a successful run since, and that the feedback file shows no issues, or only pre-existing issues unrelated to the migration. See After the switch.
What if something goes wrong after switching?
Follow the Fallback procedure: disable the new Merchant API destination, re-enable the old Content API destination, restart the delta, run again, and contact us immediately. Act quickly, since the faster the fallback, the shorter the gap in data delivery.
Should I turn on Force Full Upload or Cleanup during the switch?
Only if there's a clear, identified need, for example if Productsup and Google Merchant Center are de-synced and Productsup is the single source of truth for that data source (feed). Otherwise, leave them off. See Use Force Full Upload and Cleanup with care.
What should Full Upload Interval be set to, and why does it matter?
Never 0. Google removes products that haven't been refreshed in 28 days, and Full Upload Interval refreshes unchanged products so they aren't dropped. As a rule of thumb, the more frequently your site runs, the higher this number should be, closer to 28. The less frequently it runs, the lower it should be, for example 7–14. See Set the Full Upload Interval correctly.
Will I lose item history in Merchant Center when I switch to the Merchant API destination?
No, as long as Google can recognize your products. Google Merchant Center identifies a product by its product ID together with its feed label and content language, not by the data source or connection that sent it. To keep item status and performance history:
- Keep the same
idvalues as before, including capitalization and formatting. - Set Feed Label, Content Language, and Default Currency Code to match your current target in Merchant Center.
- Activate the Merchant API destination and switch off the previous connection at the same time, so only one system updates Merchant Center.
This also applies if you move to Productsup from another Merchant API integration.
Products that are no longer in my feed still appear in Merchant Center after the switch. Why?
The Merchant API destination only tracks the products it has sent itself. It has no record of products that the old Content API destination uploaded, so it does not delete them when they leave your feed. Google removes products that are not refreshed within 28 days, but you can remove them right away:
In the Merchant API destination, switch on Force Full Upload and Merchant Center Cleanup.
Run the export once.
Switch off Force Full Upload and Merchant Center Cleanup again.
The cleanup only affects the data source that Productsup sends products to. Remove outdated products in other data sources directly in Merchant Center. See Use Force Full Upload and Cleanup with care.
Why are there far fewer API calls in Merchant Center than products in my feed?
This is expected. After the first run, the Merchant API destination only sends products that are new, changed, or deleted since the last successful run. Products that have not changed are already up to date in Merchant Center. To refresh all products, see Set the Full Upload Interval correctly.
After the switch, no products reach Merchant Center. What should I check?
Check whether the old Content API export or destination is still active on the same site. If the old destination fails during the run, the run can stop before the Merchant API destination uploads any products. Deactivate the old export or destination and run the site again. After you confirm the migration was successful, you can delete the old destination.
Also check that Feed Label and Content Language match your data source in Merchant Center. See What is the correct Feed Label value?.
After enabling the feedback file, I see Error 10032 "Failed to connect additional datasource." What does it mean?
The feedback file arrives as an additional feedback data source. Error 10032 means the platform cannot find the ID column you defined for that data source in the feedback file. The feedback file from the Merchant API destination uses the column id, not ___id.
To fix the error, open the feedback data source and set ID Column In This Feed to id. Then run the site again. See Add an additional data source for more information about these settings.
You do not need to connect the feedback data source to your main data source to use the feedback file. If you do not need the connection, you can snooze or deactivate the notification in the Error Log instead. See Enable the feedback file.
I'm seeing frequent internal_error responses in the feedback file. What's going on?
The Merchant API is still going through some instability on Google's side. internal_error and similar transient failures are typically temporary issues on Google's side rather than something caused by your setup or by Productsup. See Google's Merchant API known issues for current known issues.
How is this guide?