For

Google Shopping feeds for jewelry

Jewelry feeds have two problems most catalogs do not. Much of what independent jewelers sell is handmade or one of a kind, so there is no GTIN to send, and the attributes shoppers actually filter by (metal, stone, carat, ring size) are buried in titles and descriptions. A Google Shopping feed for jewelry works when it declares the missing identifiers honestly and pulls the metal, stone and size into fields and titles. Here is how, from a single studio to a multi-brand retailer.

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

At a glance

  • Handmade, custom and one-of-a-kind pieces, and vintage pieces made before GTINs, can send identifier_exists = no; Google lists 'custom goods or one-of-a-kind products' and 'handmade goods' as examples.
  • Only use no when you are certain: if Google finds an identifier exists for that product, the item gets a warning. Branded pieces with barcodes should send gtin and brand.
  • Jewelry sits under Apparel & Accessories in Google's taxonomy, so free listings need gender, age_group and color; ring sizes are variants with size and item_group_id.
  • We set up Textfinity to set identifier_exists by rule, build metal-and-stone titles from your data, and publish Google, Meta, Pinterest and Microsoft feeds from one source.

The GTIN question in a jewelry product feed

Google's identifier_exists attribute exists for exactly the pieces many jewelers sell. Its help page lists custom goods and one-of-a-kind products, art and handmade goods, and products made before GTINs (vintage and antiques) as items that may have no unique product identifier. For those, send identifier_exists = no and leave gtin and mpn empty; brand can still be your studio name. Microsoft Advertising follows the same logic with a boolean: identifier_exists = FALSE for custom handmade and vintage products.

The rule cuts both ways. If the piece is manufactured and carries a barcode (branded watches, mass-produced fashion jewelry, licensed charms), Google expects the GTIN, and an item marked no that Google can match to an identifier gets a warning. A mixed catalog therefore needs a rule, not a static value: no when the GTIN is empty and the item is your own make, the GTIN otherwise.

identifier_exists by rule

if [gtin] is empty
  then "no"
  else "yes"

(use your source's barcode column:
[variant_barcode] on Shopify)

Attributes and title formulas for jewelry

PieceTitle formulaExample
RingBrand + metal + stone + style + carat + sizeAurel 14k Yellow Gold Sapphire Solitaire Ring, 0.5 ct, Size 7
NecklaceBrand + metal + pendant + chain lengthAurel Sterling Silver Moonstone Pendant Necklace, 18 in
EarringsBrand + metal + stone + styleWren Studio Recycled Gold Pearl Drop Earrings
BraceletBrand + material + style + lengthWren Studio Hand-Forged Copper Cuff Bracelet, 7 in

Put metal and stone in the first 70 characters; Google allows 150. Use material for the metal (Google allows a primary and up to two more, separated by /), color for the metal color, and size for ring sizes or chain lengths.

Gender, age group and variants for jewelry

Google's taxonomy puts Jewelry under Apparel & Accessories, and its spec makes gender, age_group and color required for free listings of Apparel & Accessories products. Most jewelers send adult and either female or unisex; a store with a men's line derives gender from the product type. Color is the metal color for most pieces (Yellow Gold, Silver, Rose Gold).

Rings sold in sizes 5 to 9 are variants: one id per size, the same item_group_id across them, the size in size and in the title. Necklaces sold in chain lengths work the same way. Google requires size for any product available in multiple sizes, so a ring style without size on each variant reads as duplicate offers.

Channel mix and catalog size for a jewelry store

Google Shopping and free listings catch searches like 'sapphire engagement ring 14k', and Microsoft Ads takes nearly the same feed. Jewelry is visual and gift-driven, so Meta Ads and Pinterest Ads catalogs carry the discovery and seasonal pushes; Pinterest wants portrait images of at least 1000 × 1500 pixels, which on-model shots usually meet.

A studio with 60 one-of-a-kind pieces may need only a Google feed. Ring sizes multiply SKUs fast: 120 ring styles in eight sizes is 960, and a store with Google, Meta and Pinterest feeds carries every one of them in each. The variant count, the number of feeds and whether you want AI titles and descriptions are what a quote is based on.

Examples

Worked examples, by situation

Four jewelry catalogs, from a one-person studio to a multi-brand retailer.

Handmade studio · Google Shopping US · Shopify, 70 pieces

No GTINs, declared honestly

Before

Vendor: Wren Studio
Barcode: (empty)
title: Tide Cuff

After

brand: Wren Studio  identifier_exists: no  gtin: (empty)
title: Wren Studio Hand-Forged Copper Cuff Bracelet, 7 in

How we set it up

We map identifier_exists with an advanced rule: if [variant_barcode] is empty then "no" else "yes" (Shopify's raw key for the barcode; advanced rules on Shopify use underscore names), and title with an advanced rule: [product_vendor] + " " + [product_metafield_custom_finish] + " " + [product_metafield_custom_material] + " " + [product_productType] + ", " + [variant_length], reading finish and material metafields.

Fine jewelry · Google and Microsoft Ads · 960 ring variants

Ring sizes as variants on both channels

Before

Option1: Size 7
product id: 7731
title: Sapphire Solitaire

After

size: 7  item_group_id: 7731
title: Aurel 14k Yellow Gold Sapphire Solitaire Ring, 0.5 ct, Size 7
Microsoft: identifier_exists: FALSE

How we set it up

We map size with remove from regexp ^Size\s* and item_group_id by rename from product id. The Microsoft Ads feed uses the advanced rule with "FALSE" and "TRUE" in place of no and yes, because Microsoft's spec is boolean.

Fashion jewelry retailer · CSV export · Meta Ads catalog · 2,400 SKUs, branded

Branded pieces keep GTINs; cheap add-ons stay out of ads

Meta Ads feed filters and fields

exclude if [price] is less than 10
exclude if [product_type] is equal to "Gift Box"
gender ← if [product_type] includes "Men"
  then "male" else "female"
gtin ← rename Barcode

How we set it up

We add exclude filters with is less than and is equal to on the Meta feed only, map gender with an advanced rule on the product type and gtin by rename. Feed hygiene's completeness check shows which branded items are missing barcodes.

Vintage and estate jewelry · Google Shopping UK · WooCommerce CSV, 300 pieces

Used condition and no identifiers for pre-GTIN pieces

Before

Tags: vintage, 1960s
condition: (empty)
Barcode: (empty)

After

condition: used  identifier_exists: no
title: 1960s 18k Gold Garnet Cluster Ring, Size N

How we set it up

We give condition a conditional rule: if tags includes 'vintage', the static value used, else the static value new. identifier_exists uses the is-empty rule above on the export's Barcode column; Google names vintage and antique products among those without identifiers.

Copy this plan

Plan: a jewelry feed for Google Shopping and beyond

Under two hours for most catalogs; the identifier rule and the title are most of it.

  1. 01

    Send us the store and read the profile

    Feed hygiene shows how many products have a barcode, a metal or material value and a size, and lists inconsistent spellings like '14K Gold' and '14k gold'.

    What we set up: We connect your Shopify store or CSV / XML export URL and run feed hygiene.
  2. 02

    Build the Google Shopping feed

    Map brand from the vendor or your studio name, gtin from the barcode, item_group_id from the product id.

    What we set up: We start from the Google Shopping channel template and map these fields by rename.
  3. 03

    Set identifier_exists by rule

    no when the barcode is empty, yes otherwise. Do not mark manufactured pieces no.

    What we set up: We map identifier_exists with an advanced rule: if [variant_barcode] is empty then "no" else "yes" on Shopify, or on your export's barcode column.
  4. 04

    Add gender, age group, color and size

    Static adult and female or unisex for most stores; derive from the product type for men's lines. Metal color in color, ring size in size.

    What we set up: We give gender a static value or an advanced rule, and map size with remove from regexp.
  5. 05

    Write titles with metal and stone first

    Brand + metal + stone + style + carat + size. AI title enhancement writes 100–150 characters with the key details in the first 70, and only titles you accept reach the feed.

    What we set up: We map title as a combine, or set up an AI config that enhances titles, used through replace from AI config.
  6. 06

    Add Meta, Pinterest or Microsoft

    Separate feeds from the same shop; switch identifier_exists to TRUE/FALSE for Microsoft. Each feed is a URL the channel fetches on a schedule.

    What we set up: We build the Meta Ads, Pinterest Ads or Microsoft Ads feeds and register the feed URLs with you: you give us access or we walk you through it.

Customization tips

Make it yours

Studio name as brand is fine

Google asks for the brand of the product; for your own pieces that is your studio or shop name. Do not invent a brand for resold pieces, and do not use your shop name as the brand of a branded watch you resell.

Carat and length in the title, not only in a field

Google has no dedicated carat field, so 0.5 ct belongs in the title and description. Chain length goes in size and in the title, in the unit your market uses.

Normalize metals before titles

A title built from '14K gold', '14k Gold' and '14 kt' looks careless. Clean the values in the store, or use replace from regexp on the material column with a case-insensitive pattern ((?i)14\s*k(t)?\s*gold → 14k Gold).

Gift-season labels

A custom_label_0 from the product type or a metafield ('gift-under-100', 'bridal'; tags work when the source is a CSV export) lets campaigns push the right pieces in December and wedding season without a second feed.

FAQ

Questions about google shopping feed for jewelry

Do I need GTINs for handmade jewelry on Google Shopping?

No. Google's identifier_exists help lists custom goods, one-of-a-kind products and handmade goods as products that may have no unique identifier. Send identifier_exists = no and leave gtin and mpn empty. Only do this when you are certain: a product marked no that Google can match to an identifier gets a warning.

What brand should handmade jewelry use in a feed?

Your studio or shop name, since you are the maker. For resold branded pieces, use the manufacturer's brand and send its GTIN if the piece has one.

Does jewelry need gender and age group in Google Shopping?

Jewelry is part of Apparel & Accessories in Google's taxonomy, and Google requires gender, age_group and color for free listings of Apparel & Accessories products. Most stores send adult and female or unisex, and the metal color as color.

How do I list ring sizes in a jewelry product feed?

As variants: one item per size with its own id, the same item_group_id across the style, and the size in the size attribute. Google requires size for products available in multiple sizes.

Set up for you

Have your jewelry listed on Google Shopping with the right identifiers.

Send us your store. We set up Textfinity to set identifier_exists by rule, build metal-and-stone titles and publish feeds for Google, Meta and Pinterest.

Have us build your feedsOr email support@textfinity.io

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