Conversion

Google Shopping feed to Pinterest catalog

Pinterest's catalog spec reads Google's attribute names and Google's product taxonomy, so a Google Shopping feed is close to a valid Pinterest data source. Three things stop it going straight in: Pinterest wants tall product images (at least 1000 × 1500 pixels), it writes availability with spaces and has no backorder, and its variant fields are capped at 30 characters. Here is the mapping and how to fix each gap once, on every rebuild.

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

At a glance

  • Pinterest requires id, title, description, link, image_link, price and availability on every product, plus item_group_id when a product has variants.
  • Looser than Google on text: title up to 500 characters, description up to 10,000, id up to 127. Stricter on images and variants: image_link at least 1000 × 1500 px, color and size at most 30 characters.
  • Availability is in stock, out of stock or preorder. Google's in_stock needs a space and backorder needs a decision.
  • Pinterest reads a hosted data source once a day. In Textfinity we set up the Pinterest feed from the same store as your Google feed, and the software rebuilds it on a stable URL.

Google Shopping attributes mapped to Pinterest catalog fields

Google Merchant Center attribute on the left, Pinterest field in the middle, the change on the right. Pinterest field names and limits are from its 'Before you get started with catalogs' help page.

Google attributePinterest fieldDifference / rule
id (max 50)id (required)Same value; Pinterest allows 127 characters
title (max 150)title (required)Same; Pinterest allows 500
description (max 5,000)description (required)Plain text, no HTML; Pinterest allows 10,000
linklink (required)Max 511 characters, must start with http
image_linkimage_link (required)At least 1000 × 1500 px, no placeholder images; a changed image needs a new URL
additional_image_linkadditional_image_linkUp to 10, comma-separated in quotes; each one becomes its own Pin
price (24.99 USD)price (required)Same format; no 0 values, no symbols, USD if no code
sale_pricesale_priceSame format, lower than price
availability (in_stock, out_of_stock, preorder, backorder)availability (required)in stock, out of stock, preorder; backorder needs a rule
item_group_id (max 50)item_group_idRequired when the product has variants; max 127
brand / gtin / mpnbrand / gtin / mpnOptional on Pinterest; brand max 100, mpn max 70
conditionconditionOptional; new, used, refurbished
google_product_categorygoogle_product_categorySame Google taxonomy, name or numeric ID
product_typeproduct_typeMax five levels and 1,000 characters, separated by ' > '
color / sizecolor / sizeMax 30 characters each (Google allows 100)
gender / age_groupgender / age_groupSame values
custom_label_0–4custom_label_0–4Same; up to 511 characters each
ads_redirectad_linkRename; the tracked URL used for ads
identifier_exists, excluded_destination—Not Pinterest fields; leave unmapped
—free_shipping_label, free_shipping_limit, custom_number_0–4Pinterest-only extras

Pinterest fields from 'Before you get started with catalogs' (help.pinterest.com); Google attributes from the Merchant Center product data specification. Both checked 2026-10-27.

The image rule a Google feed rarely meets

Google Shopping feeds usually carry square packshots, which Google is happy with; Pinterest's spec asks for at least 1000 × 1500 pixels, a 2:3 portrait. A feed mapping cannot resize an image, and Textfinity does not edit images, so the fix is to point image_link at a different file. Most stores already have one: a lifestyle shot, a portrait crop in the image gallery, or an image size parameter the store's CDN supports.

The usual pattern is a column for the portrait image (a Shopify metafield, an extra export column, or a merged source keyed by SKU from a sheet) and an advanced rule that falls back to the main image when the portrait one is missing. On Shopify the rule names the metafield with underscores, such as [product_metafield_custom_portrait_image]. If the column comes from a merged source, every product needs a row in that sheet: an advanced rule fails for a product with no match, even inside is empty. Feed hygiene's URL check flags malformed links before Pinterest does.

Advanced rule for image_link

if [portrait_image] is empty
  then [image_link]
  else [portrait_image]

How Pinterest reads the catalog file

Pinterest accepts TSV, CSV, XML (RSS 2.0 or Atom 1.0) and Google Sheets, encoded in UTF-8, with up to 20 million products per retail catalog. A hosted data source is fetched once a day, so the file must be current daily. A missing or misformatted required field can fail the whole ingestion, not just one product, which is why availability spelling and empty prices matter more here than on Google.

Pinterest's catalog help does not describe a Merchant Center import, so the reliable route is a data source URL. We publish the Pinterest feed as CSV in Textfinity; the URL then goes into Pinterest Business under Catalogs → Add data source, which we do with you. The download below is the file shape that URL serves.

Examples

Worked examples, by situation

Three stores with three different gaps between their Google feed and a Pinterest catalog.

Home decor · Google feed → Pinterest catalog · 650 SKUs

Square packshots swapped for portrait lifestyle images

Before

image_link: https://cdn.example/vase-33-square.jpg (1000 × 1000)
lifestyle_image: https://cdn.example/vase-33-room.jpg

After

image_link: https://cdn.example/vase-33-room.jpg (1000 × 1500)
additional_image_link: "https://cdn.example/vase-33-square.jpg"

How we set it up

We map image_link with the advanced expression if [lifestyle_image] is empty then [image_link] else [lifestyle_image], and additional_image_link as a rename from the Google image_link, so the packshot still appears as a second Pin.

Fashion · Google feed (XML) → Pinterest, US · 2,100 variants

Color names under 30 characters and backorders decided

Before

color: Midnight Navy Blue (Limited Dye Lot)
availability: backorder

After

color: Midnight Navy Blue
availability: preorder

How we set it up

We map color with remove from regexp \s*\(.*?\) to drop the parenthetical, and availability with the advanced expression if [availability] equals "backorder" then "preorder" else if [availability] equals "in_stock" then "in stock" else if [availability] equals "preorder" then "preorder" else "out of stock". Feed hygiene's length check lists any color still over 30.

Beauty · Google Sheets catalog → Pinterest · 120 SKUs

Tracked ad links and free-sample rows

Before

ads_redirect: https://store.example/p/balm?utm_source=google
price: 0.00 USD (free sample)

After

ad_link: https://store.example/p/balm?utm_source=pinterest
(free sample excluded)

How we set it up

We map ad_link with replace from regexp utm_source=google to utm_source=pinterest on the ads_redirect column, and add a filter "price is more than 0", because Pinterest rejects zero prices. The source is the Google Sheet itself.

Copy this plan

Plan: a Pinterest catalog from your Google Shopping data

One sitting. You need a Pinterest business account with a claimed website first.

  1. 01

    Claim your website on Pinterest

    Pinterest only creates product Pins for a claimed domain. This step happens in Pinterest Business settings.

  2. 02

    Add the store or Google feed as the source

    Connect Shopify, add a Google Sheet, or paste a CSV or Google-shaped XML URL. Feed hygiene profiles completeness and value lengths. Filters read the source columns, so the rules below use Google's names when the source is a Google feed (on Shopify they would be variant.price and product.featuredImage.url).

    What we set up: We connect your Shopify store, Google Sheet, or CSV or XML URL as the source in Textfinity.
  3. 03

    Create the feed from the Pinterest Ads template

    The template pre-fills Pinterest's mandatory and recommended columns. Most map by rename from the same Google attribute.

    What we set up: We start from the Pinterest Ads template and map most columns as renames.
  4. 04

    Fix images, availability and short fields

    Portrait image with fallback, availability with spaces and a backorder decision, color and size trimmed to 30 characters, ad_link from ads_redirect.

    What we set up: We map image_link and availability with advanced rules and trim color with remove from regexp.
  5. 05

    Filter rows Pinterest would reject

    Exclude zero prices, drafts and items without an image.

    What we set up: We add filter rules: price is more than 0, image_link is not blank.
  6. 06

    Add the data source in Pinterest

    Copy the feed URL and add it under Catalogs → Add data source with the right currency and country. Pinterest fetches daily; ingestion errors appear in Pinterest's catalog report (outside Textfinity).

    What we set up: We give you the feed URL and add the data source with you, or with the access you give us.

Customization tips

Make it yours

Use Pinterest's longer title, or don't

Pinterest allows 500 characters against Google's 150, but a Pin shows only the start. Keeping the Google title means one less rule to maintain; a longer combine that adds material and room adds search terms but makes titles harder to scan.

Every additional image is a Pin

Pinterest creates a Pin for each additional_image_link, up to ten. That is reach for decor and fashion with strong lifestyle shots, and noise for products whose extra images are detail crops. Cap the list with a combine of only the images you want.

Decide backorder deliberately

Mapping backorder to preorder keeps the Pin live and honest if you ship later; mapping it to out of stock hides the product from shopping surfaces. Choose per category with a conditional rule rather than one rule for the catalog.

Same ids as Google

Pinterest allows longer ids, but reusing Google's keeps analytics, tag events and any supplemental data aligned across both channels.

FAQ

Questions about google shopping feed to pinterest catalog

Can I upload my Google Shopping feed to Pinterest?

Mostly. Pinterest uses Google's field names and Google's product taxonomy, and accepts CSV, TSV, XML and Google Sheets. Before it ingests cleanly you usually need tall images of at least 1000 × 1500 px, availability written with spaces, no backorder value, and color and size under 30 characters.

What fields does a Pinterest catalog require?

id, title, description, link, image_link, price and availability for every product, plus item_group_id for products with variants. A missing or misformatted required field can cause the whole catalog to fail ingestion.

How often does Pinterest update a catalog from a URL?

Pinterest reads a hosted data source once a day, so the file must be refreshed daily. A manually uploaded file is processed only when you upload it.

Why are my Pinterest product images rejected?

Pinterest's spec asks for a main image of at least 1000 × 1500 pixels that its crawler can reach, and no template or placeholder images. Square packshots from a Google feed often fall short; point image_link at a portrait image instead, and use a new URL when you change an image.

Set up for you

Have us turn your Google Shopping data into a Pinterest catalog.

Send us your store or Google feed URL. We set up the Pinterest feed in Textfinity, fix images and availability once, and add the URL to Pinterest with you; the software rebuilds it daily.

Get your Pinterest feed set upOr email support@textfinity.io

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