> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wisepim.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Merchant Center Integration

> Push enriched products from WISEPIM to Google Merchant Center over the Merchant API, with per-market locale mapping, validation, and sync health.

The Google Merchant Center (GMC) integration pushes products from WISEPIM straight into your Merchant Center account over Google's Merchant API, powering Shopping ads and free listings. Unlike a [feed file](/en/essentials/feed-hub), this is a direct API connection: exports land in Merchant Center within minutes, deletions propagate automatically, and every run is tracked in a sync history.

<Info>
  This integration is in **beta**. Prefer a scheduled feed file instead? The **Google Shopping** preset in [Feed Hub](/en/essentials/feed-hub) generates a Merchant Center product feed you host on a URL.
</Info>

## Before you start

You need three things from Google:

* **Merchant ID**: the account number shown in Merchant Center.
* **Service account JSON**: a Google Cloud service account key with access to the Content API. Add the service account's email as a user on your Merchant Center account.
* **Data source ID**: the API data source in Merchant Center that WISEPIM should write products into.

And your products need, at minimum, a **title**, a **product URL**, and a **price**. Products missing any of these are skipped with a clear per-product error instead of being sent and disapproved. For identifiers, Google wants a **GTIN, or a brand plus MPN**; a main image is required and a brand is recommended.

<Note>
  Category mapping is optional. WISEPIM always sends your product's own category path as `productTypes`, and Google auto-categorizes listings when no Google product category is mapped.
</Note>

## Connect Google Merchant Center

<img className="block dark:hidden" src="https://mintcdn.com/swiftsyncai/RLaMjcoRj_e9BxFM/images/marketing-screenshots/integrations/integration-configure-google-merchant-center-light-transparent.webp?fit=max&auto=format&n=RLaMjcoRj_e9BxFM&q=85&s=e991c6b785e14a624e74646cdfc8b24d" alt="Connecting Google Merchant Center to WISEPIM, credentials, locale mapping and a live connection test" width="1478" height="2078" data-path="images/marketing-screenshots/integrations/integration-configure-google-merchant-center-light-transparent.webp" />

<img className="hidden dark:block" src="https://mintcdn.com/swiftsyncai/RLaMjcoRj_e9BxFM/images/marketing-screenshots/integrations/integration-configure-google-merchant-center-dark-transparent.webp?fit=max&auto=format&n=RLaMjcoRj_e9BxFM&q=85&s=aa867fc39a96d300fbdd0a01e4253772" alt="Connecting Google Merchant Center to WISEPIM, credentials, locale mapping and a live connection test" width="1478" height="2078" data-path="images/marketing-screenshots/integrations/integration-configure-google-merchant-center-dark-transparent.webp" />

<Steps>
  <Step title="Open Integrations">
    Go to **Channels → Integrations** and find the **Google Merchant Center** card.
  </Step>

  <Step title="Enter your credentials">
    Fill in the **Merchant ID**, paste the **Service Account JSON**, and set the **Data Source ID**.
  </Step>

  <Step title="Set the feed defaults">
    Set the **Default Feed Label**, **Default Content Language**, and **Default Currency** for your primary market, plus the **Website URL** WISEPIM should use to build product links when a product has no storefront URL of its own.
  </Step>

  <Step title="Map your locales">
    Under **Locales to sync**, add each project language you want to publish and set its feed target (see below).
  </Step>

  <Step title="Test and save">
    Run the connection test and save. Editing credentials or locale mappings later resets the test status, so re-test after changes.
  </Step>
</Steps>

## Locale mapping: one product, many markets

For most platforms, "Locales to sync" is just a language list. For Google Merchant Center each locale is a full **feed target**, because Merchant Center identifies a listing by feed label and content language:

| Field                   | What it does                                      | Example |
| ----------------------- | ------------------------------------------------- | ------- |
| **Feed label**          | The Merchant Center feed label for that market    | `NL`    |
| **Content language**    | The language code Google receives for the listing | `nl`    |
| **Currency (optional)** | Overrides the default currency for that market    | `EUR`   |

Adding a locale pre-fills sensible defaults from the language code (`de-AT` becomes feed label `AT` with content language `de`), and you can edit both. Only languages configured on your project can be added. On export, WISEPIM publishes the base product to your default feed target plus a translated listing for **every mapped locale**, so one product covers all your markets in a single run.

## What WISEPIM sends

| Field                      | Notes                                                                                                        |
| -------------------------- | ------------------------------------------------------------------------------------------------------------ |
| Title                      | Capped at Google's 150-character limit                                                                       |
| Description                | Capped at 5,000 characters; HTML stripped when **Escape HTML** is on                                         |
| Link                       | The product's storefront URL, falling back to your **Website URL** setting                                   |
| Images                     | Main image plus up to 10 additional images                                                                   |
| Price and sale price       | Sale prices respect their date window; an expired special is never sent                                      |
| Availability and condition | Mapped to Google's values (in stock, out of stock, preorder, backorder; new, refurbished, used)              |
| GTIN, brand, MPN           | GTINs are check-digit validated; an invalid GTIN is omitted rather than sent, preventing certain disapproval |
| Product types              | Your product's category path, e.g. `Garden > Tools > Pruners`                                                |
| Item group ID              | The parent SKU, so variants group correctly in Merchant Center                                               |
| Shipping weight            | When available                                                                                               |
| Product details            | Your structured attributes as Merchant Center product details, up to 100 entries, grouped by attribute group |

The **Attribute Mapper** on the connection lets you override or disable individual fields. Computed fields such as the link, Google product category, and item group ID show as unmapped by default because WISEPIM derives them for you.

<Warning>
  The Merchant Center offer ID is your product's **SKU**. Renaming a SKU creates a new listing; WISEPIM detects the rename and automatically removes the old listing so it does not linger as an orphan (auto-sync must be on, see below).
</Warning>

## How exports run

* **Bulk export**: select products and export them to Google Merchant Center like any other channel, or send the whole catalog. With **skip unchanged** enabled, products untouched since their last export are skipped; if nothing changed, nothing is sent.
* **Auto-sync**: with auto-sync enabled for the project, saving a product pushes the change to Merchant Center automatically.
* **One export at a time**: starting a second bulk export while one is running is rejected with a clear message; wait for the running export to finish.
* **Quality Guard runs first**: products blocked by your [Quality Guard](/en/quality-guard/overview) rules are recorded as blocked, not exported.

## Deletions propagate

When auto-sync is on, deleting a product in WISEPIM also removes its listing from Merchant Center, across every mapped locale. This covers single deletes, bulk deletes, and SKU renames (the old SKU's listing is removed and the new one is created). A listing that is already gone counts as success.

Two boundaries to know:

* **Projects that export manually get no automatic deletes.** Deletion propagation follows the same auto-sync switch as exports, so a manually-exporting project is never surprised by automatic removals.
* **If a deletion cannot be delivered**, the product in WISEPIM is still deleted; the Merchant Center listing then expires on its own after Google's standard 30-day window instead of being removed promptly.

## Sync health and run history

The integration's detail page shows a **Sync health** section once you have a connection:

* **Connection health** per store: **Healthy**, **Degraded** (temporary failures, retried with an automatic cool-down), **Authentication failed** (reconnect or fix the service account), or **Temporarily disabled**.
* **Recent export runs**: the last 10 runs with status (**success**, **partial**, **error**, **running**), start time, duration, row count, and the first error when something failed. A partial run means some products succeeded and some did not, for example `12 of 500 products failed to export`.

The marketplace card mirrors this: a connection that needs a look shows **Needs attention** instead of hiding behind a green Connected chip.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Products are skipped with 'missing required fields'">
    The error names the exact fields, for example `missing required fields: title, link`. Fill the missing values (or map them in the Attribute Mapper) and export again. [Channel Readiness](/en/essentials/feed-hub) shows required-field coverage before you export.
  </Accordion>

  <Accordion title="A product exported without its GTIN">
    The GTIN failed GS1 check-digit validation, so WISEPIM omitted it rather than trigger a Merchant Center disapproval. Correct the barcode value on the product. If the product genuinely has no GTIN, set a brand and MPN instead.
  </Accordion>

  <Accordion title="Export rejected: an export is already running">
    Only one bulk export per project runs at a time. Wait for the current run to finish, then start the next one. Automatic single-product pushes are not affected by this limit.
  </Accordion>

  <Accordion title="Health shows 'Authentication failed'">
    Google rejected the credentials. Check that the service account key is valid and that its email is still a user on the Merchant Center account. After rotating a key, allow a few minutes for the new key to take effect everywhere.
  </Accordion>

  <Accordion title="A run finished as 'partial'">
    Some products failed while others succeeded. Open the run in Sync health for the first error, fix the cause, and re-export; with skip unchanged on, only the affected products are re-sent.
  </Accordion>

  <Accordion title="Deleted products still show in Merchant Center">
    If the project exports manually (auto-sync off), deletions are not propagated by design; remove the listings in Merchant Center or via a fresh export scope. If auto-sync is on and a delete could not be delivered, the listing expires on its own after Google's 30-day window.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Feed Hub" icon="rss" href="/en/essentials/feed-hub">
    Prefer a feed URL? Generate a Google Shopping feed instead.
  </Card>

  <Card title="Exporting Products" icon="upload" href="/en/essentials/exporting-products">
    Push products to any connected channel in a few clicks.
  </Card>

  <Card title="Quality Guard" icon="shield-check" href="/en/quality-guard/overview">
    Block incomplete products from reaching your channels.
  </Card>

  <Card title="Launch on a channel without rejections" icon="store" href="/en/guides/launch-on-a-new-channel">
    Go from a fresh connection to an approved channel without a rejection queue.
  </Card>
</CardGroup>
