Guide

Product feed translation

Product feed translation means sending each market a feed whose titles and descriptions are in the language of its landing pages. Google Merchant Center fixes the language per data source, so a translated feed is a separate feed, not a column. Textfinity builds one feed per market from the same catalog, and an AI config translates titles and descriptions into 25 European languages, with a review step before anything is published.

We connect your store, build the feed and keep it in sync. Updated 2026-10-27.

At a glance

  • In Merchant Center, the content language and feed label are set when a data source is created and cannot be changed afterwards.
  • One language per data source: countries that share a language can share a feed; a country with a different language needs its own translated source.
  • The feed, landing page and checkout must be in the same language, or products are flagged with the Incorrect language issue.
  • Feed labels: up to 20 characters, A-Z, 0-9, hyphen or underscore, no spaces; a campaign targets one feed label.
  • Textfinity: one feed per market; an AI config translates a field or enhances a title or description in a target language. Spanish is not among the target languages.

Merchant Center's rules for a translated product feed

Google treats language as a property of the data source, not of the product. When you create a product data source you choose its country, language and feed label, and Google's help states that the language and feed label cannot be modified once the source exists. Products in that source are expected to be written in that language; if most of them are not, Google raises Incorrect language and may disapprove them.

The landing page and checkout must be in the feed's language too. That is why a translated feed only works when the store has the translated pages: the link column should point at the localized URL (/de/products/... or the market domain). Prices go in a currency supported for the target country, for example SEK for Sweden or CHF for Switzerland.

Countries that share a language can be served by one multi-country source, such as a German feed for Germany and Austria. A country whose primary language differs gets a separate source with the data translated.

Feed labels and campaigns

Feed labels group data sources for targeting in Google Ads. A label is up to 20 characters using upper-case A-Z, digits, hyphens or underscores, and a Shopping or Performance Max campaign selects one label. Using the two-letter country code as the label (DE, SE, NL) keeps country-based campaign structures readable.

When we register a feed's URL in Merchant Center with you, we create the data source with the feed's market as the feed label and target country and the feed's language as the content language, so the market and language the feed was built for are the ones Google sees.

How AI configs translate titles and descriptions

An AI config reads the source fields you pick (title, description, category, manufacturer and any extra attributes as context) and does one job: enhance the title, enhance the description, or translate a chosen field. Enhancement can also write its output in a target language. Length rules are fixed by Textfinity: titles of 100 to 150 characters with the key information in the first 70, descriptions of 500 to 1,000 characters.

Generations are reviewed: accept them one by one or with Accept all. The feed uses AI text through the replace from AI config transform, which takes only accepted generations and falls back to the field you choose, so an unreviewed product goes out in its original text rather than empty. Editing a config creates a revision and the products are regenerated.

Target languages: English, Swedish, Bulgarian, Croatian, Czech, Danish, Dutch, Estonian, Finnish, French, German, Greek, Hungarian, Irish, Italian, Latvian, Lithuanian, Maltese, Norwegian, Polish, Portuguese, Romanian, Russian, Slovak and Slovenian. Spanish and non-European languages are not available.

Three ways to get translated text into a feed

Source of the translationBest forHow in Textfinity
Store already holds it (Shopify locales)Stores using Shopify's translationsThe feed's source language is set to the locale; no AI needed
AI configNo translations exist yet; 25 European languagesAn AI config that translates a field, or enhances the title or description in a target language
Translator's fileSpanish, regulated copy, brand-approved wordingMerged source (CSV or Google Sheet) joined by SKU

Examples

Worked examples, by situation

Different stores, different languages, different sources of the translation.

Furniture · Google Shopping, Germany · Shopify, 600 SKUs, Swedish copy

Swedish store, German feed with AI titles

Before

title: Matbord ek 180 cm, oljad
link: store.se/products/matbord-ek

After

title: Esstisch Eiche 180 cm, massiv und geölt, für 6 bis 8 Personen
link: store.se/de/products/matbord-ek

How we set it up

We set up an AI config that enhances the title in German, with category and material as context, and the store accepts the generations. Title uses replace from AI config with title as fallback; link uses replace from regexp store\.se/ with store.se/de/. The feed's market is DE, so Merchant Center gets feed label DE and content language German.

Fashion · Google Shopping, France · Shopify with French locale, 2,200 variants

Translations already in the store

Before

title (en): Wool Blend Overshirt, Charcoal
locale fr: Surchemise en laine mélangée, anthracite

After

title: Surchemise en laine mélangée, anthracite
price: 89.00 EUR (FR market)

How we set it up

We build a Google Shopping feed with market FR and source language French. Textfinity reads the Shopify locale's translated fields, so no AI config and no review step are needed for this feed.

Beauty · Meta catalog, Finland · CSV export, 350 SKUs

Translated descriptions, reviewed before use

Before

description: A lightweight gel moisturizer with hyaluronic acid for daily use.

After

description: Kevyt geelivoide, jossa on hyaluronihappoa, päivittäiseen käyttöön ...
(not yet accepted: English fallback)

How we set it up

We set up an AI config that translates description into Finnish, and map description with replace from AI config, fallback description. Optionally we give that rule the condition is accepted in AI config, with leave empty otherwise, so the Finnish catalog never shows English copy; products then go out without a description until their generation is accepted.

Electronics · Google Shopping, Spain · WooCommerce, 900 SKUs

Spanish via a translator's sheet

Before

title: Wireless Noise-Cancelling Headphones, Black
(no Spanish in the store export)

After

title: Auriculares inalámbricos con cancelación de ruido, negro

How we set it up

Spanish is not an AI target language, so the translations come from a translator's Google Sheet (SKU, title_es) added as a merged source joined on SKU. We map title with a rule whose condition is title_es matches regexp ^\s*$ (empty): rename title, otherwise rename title_es, so untranslated rows keep the English title until the sheet catches up.

Copy this plan

Plan: launch a translated feed for one new market

Do one market end to end before copying the set-up to the next.

  1. 01

    Confirm the localized storefront exists

    Translated landing pages and checkout in the target language, with prices in the local currency. Without them, a translated feed will be flagged. This is store work, outside the feed.

  2. 02

    Create a feed for the market

    Pick the channel template, the market and the language. One feed per language and country pair keeps Merchant Center sources clean.

    What we set up: We create a feed from the channel template with the market, source language and target language set for that pair.
  3. 03

    Choose where the translation comes from

    Shopify locale if it exists; an AI config if it does not and the language is supported; a translator's sheet or merged source otherwise.

    What we set up: We set up the AI config that translates, or enhances the title or description in the target language, or join the translator's sheet as a merged source.
  4. 04

    Review and accept the generations

    Read a sample per category, then accept. Only accepted text reaches the feed.

    What we set up: We go through a sample per category with you and accept the generations once you are happy with them.
  5. 05

    Map the translated fields and localized links

    Point title and description at the AI config with the original as fallback; prefix or rewrite links to the localized URL.

    What we set up: We map title and description with replace from AI config, the original as fallback, and rewrite link to the localized URL with replace from regexp.
  6. 06

    Register the feed in Merchant Center

    Add the feed URL as a file data source with a scheduled fetch, the market's country, the feed's language and a feed label. Then target that feed label in a campaign in Google Ads.

    What we set up: We register the feed URL in your Merchant Center with you, with the market as feed label and the feed's language as content language.

Customization tips

Make it yours

Translate titles first

Titles carry most of the matching weight in Shopping, and they are short enough to review quickly. Descriptions cost more AI configs and review time; start with titles and add descriptions once the market performs.

Use store translations where they exist

Title plus description in two new languages is already four AI configs to review. Where Shopify locales already hold a language, reading them needs no config and no review, so mix the two approaches market by market.

Keep IDs identical across language feeds

Use the same id in the German and French feeds. Google separates them by content language and feed label, and your reporting stays joined on one product id.

Hold back what is not reviewed

The fallback keeps products live in the source language, which is fine for a bilingual market and a problem elsewhere. Where the language must be consistent, accept before the feed goes live, or condition the rule on is accepted in AI config and leave the field empty otherwise. Filters cannot see whether a generation was accepted.

FAQ

Questions about product feed translation

Can one Google Shopping feed have several languages?

No. Merchant Center sets one content language per data source when it is created and does not let you change it. Send one feed per language; countries that share a language can share one multi-country source.

Do I need translated landing pages to advertise in another language?

Yes. Google requires the landing page and checkout to be in the same language as the feed. A translated feed pointing at untranslated pages is flagged with the Incorrect language issue and products may be disapproved.

Which languages can Textfinity translate a product feed into?

English, Swedish, Bulgarian, Croatian, Czech, Danish, Dutch, Estonian, Finnish, French, German, Greek, Hungarian, Irish, Italian, Latvian, Lithuanian, Maltese, Norwegian, Polish, Portuguese, Romanian, Russian, Slovak and Slovenian. Spanish is not available; use a translator's sheet or your store's own translations for it.

Do I need AI translation if my store is already translated?

No. If your Shopify locales already hold the translations, the feed reads the locale's fields directly and no AI config is involved. AI translation is for markets where no translation exists yet, and only generations that have been reviewed and accepted reach the feed.

Set up for you

Tell us your next market. We'll build its feed in its own language.

We create a feed per market, translate titles and descriptions with an AI config you review, and register it in Merchant Center with you under the right feed label and language.

Have us translate my feedOr email support@textfinity.io

Tell us your store and channels. We reply within 24 hours.