For
Product feeds for beauty brands
A beauty brand's product feed has three jobs a fashion or electronics feed does not: turning shade names into variants Google accepts, showing a unit price for every bottle and jar sold in the EU or UK, and keeping supplements and health claims away from channels that prohibit them. Here are the attributes, filters and titles that do that, and a feed set-up sized to a beauty catalog.
We connect your store, build the feed and keep it in sync. Updated 2026-10-27.
At a glance
- Shades are variants: one item_group_id per product, the shade name in the title, a plain color family in color (Google asks for no numbers or codes there).
- Perfume and other goods sold by volume or weight need unit_pricing_measure (for example 50ml) when the feed targets the EU, EFTA or UK.
- Meta's Commerce Policies prohibit ingestible supplements, healthcare products and medical devices in Shops, and used cosmetics or items not in original packaging. Google restricts unapproved supplements and products implying they treat disease.
- We set up Textfinity to filter supplements out per channel, map shades with a Google Sheet, build unit pricing with a regex, and enhance or translate titles and descriptions with reviewed AI text.
What a beauty product feed needs that others do not
- Shades as variants: a foundation in 30 shades is one product with 30 offers. Group them with item_group_id and give each its own id, image and shade in the title. Google's color attribute should name the color family (Beige, Brown, Red), up to 40 characters per color, without numbers or hex codes, so "120 Warm Ivory" belongs in the title, not in color.
- Unit pricing: Google requires unit_pricing_measure in the EU, EFTA countries and the UK for products sold by weight or volume, and names perfume among the affected categories. Submit the contents (50ml) and optionally the base (100ml).
- Ingredients and key actives: Google's description must describe only the product. A product_detail entry such as General:Key ingredient:Niacinamide 10% keeps facts structured without stuffing the description.
- Sizes and sets: a travel size and a full size are separate products with separate GTINs. Gift sets assembled by you are bundles: is_bundle yes in countries that require it, such as the US, UK, Germany and the Netherlands.
Channel policies for beauty: supplements, claims, condition
Most beauty brands now sell something ingestible: collagen, gummies, hair vitamins. Channels treat those differently from cosmetics. Meta's Commerce Policies, which govern Shops, prohibit ingestible supplements, healthcare products and medical equipment, and prohibit cosmetics that have been used or are not sold in their original packaging. Google's Healthcare and medicines policy does not allow unapproved supplements or supplements containing active pharmaceutical ingredients anywhere, restricts claims that a product is as effective as a prescription drug or treats a disease, and varies by country (melatonin, for example, is allowed as a supplement in some countries and not others).
The practical answer is a feed per channel with a supplement filter, and descriptions free of treatment claims. Textfinity's AI configs have no editable prompt, so generated text is reviewed and accepted before it reaches a feed; a regex filter flags words like cure or treat in descriptions you did not write. Disapprovals still show only in Merchant Center and Commerce Manager, not in Textfinity.
Beauty title formula and categories
| Product | Title formula | google_product_category |
|---|---|---|
| Foundation | Brand + product + finish + size + shade | 2765 Foundations & Concealers |
| Serum | Brand + product + key active % + size | 567 Skin Care |
| Perfume | Brand + name + EDP/EDT + size + gender | 479 Perfume & Cologne |
| Lipstick | Brand + product + finish + shade | 473 Cosmetics or deeper |
| Collagen gummies | Brand + product + count + flavor | 525 Vitamins & Supplements |
Category IDs from Google's product taxonomy, checked 2026-10-27. Google allows 150-character titles; the front of the title shows in most placements.
Channel mix and catalog size for a beauty catalog
Beauty sells visually, so the usual mix is Google Shopping for search demand plus Meta Ads, TikTok Ads and Pinterest Ads catalogs for discovery, each a feed with its own filters. An indie brand may need only a Google feed at first; a multibrand retailer with thousands of shades runs four or five. Count shades: SKUs are variants, not parent products, and the variant count is what the feeds carry and what a quote is based on.
Examples
Worked examples, by situation
Four beauty catalogs with different feed problems.
Shade name in the title, color family in color
Before
title: Skin Tint Foundation option1: 120 Warm Ivory color: 120 Warm Ivory
After
title: Halcyon Skin Tint Foundation, Dewy, 30 ml, 120 Warm Ivory color: Beige item_group_id: SKT-30
How we set it up
We map title as a combine of [brand], [title], [finish], [size], [option1]; color with replace from google sheet, full shade names in column A and the family in column B (it is a substring find-and-replace, so the entries stay specific), conditioned on is in google sheet list; item_group_id by rename from the product id.
Gummies stay on Google, out of the Meta Shops catalog
Meta feed filters
exclude if [product_type] is in list "Supplements, Gummies, Collagen"
exclude if [tags] includes "tester"
exclude if [inventory] is less than 1How we set it up
We add exclude filters with is in list and includes on the Meta Ads feed only. The Google Shopping feed keeps the supplements with google_product_category 525, subject to Google's healthcare rules in each target country.
Unit pricing from the size field
Before
size: 50 ml price: 89.00 EUR
After
unit_pricing_measure: 50ml unit_pricing_base_measure: 100ml
How we set it up
We map unit_pricing_measure with replace from regexp ^(\d+)\s?ml$ → \1ml and give unit_pricing_base_measure the static value 100ml. Google then shows the price per 100 ml required in the EU.
Enhanced descriptions, reviewed for claims
Before
description: Hair growth serum that cures thinning hair.
After
description: Leave-in scalp serum with caffeine and rosemary extract, 50 ml. Apply to dry scalp in the evening; no rinse needed.
How we set it up
A filter preview with matches regexp (?i)\b(cure|heal|treat) on the store description lists the products to fix first. We set up an AI config that enhances the description from title, ingredients and size, and the generations are reviewed and accepted. description uses replace from AI config, which takes only accepted generations; products not yet accepted fall back to the store description, so an exclude filter with that regexp stays until they are.
Copy this plan
Plan: a beauty catalog to Google and Meta
01
Send us the store
Shopify connects natively with variants, metafields and markets; other platforms through a CSV export URL or SFTP.
What we set up: We connect the store and pull variants, metafields and markets.02
Profile shades and sizes
Feed hygiene shows inconsistent shade spellings, empty GTINs and size fields in mixed formats (50ml, 50 ML, 1.7 oz).
What we set up: We run feed hygiene on the catalog.03
Map variants and unit pricing
item_group_id, shade in the title, color family from a sheet, unit_pricing_measure from the size field.
What we set up: We build the Google Shopping feed with color as a replace from google sheet and unit_pricing_measure as a replace from regexp.04
Filter per channel
Keep supplements and testers out of the Meta feed; keep products with unapproved ingredients out of every feed.
What we set up: We add exclude filters with is in list and includes, per channel feed.05
Enhance or translate copy
Generate titles or descriptions with AI, approve the ones that are right, and keep the store text as the fallback for the rest.
What we set up: We set up an AI config for descriptions or titles and map the field with replace from AI config.06
Register the feeds with each channel
Each feed is a URL: add it in Merchant Center as a scheduled fetch and in Commerce Manager as a scheduled data feed; TikTok and Pinterest fetch it the same way. Check each channel's diagnostics after the first fetch.
What we set up: We hand you the feed URLs and register them with you: you give us access or we walk you through it.
Customization tips
Make it yours
One product per shade family or per shade?
Grouping all shades under one item_group_id keeps the ad clean, but each shade still needs its own id and image or the swatch will not match. If shade images are missing, filter those shades out rather than repeat the hero image.
Supplements in a separate feed
If supplements sell well, give them their own Google feed and campaign. It costs a feed slot but keeps a healthcare disapproval from muddying the cosmetics feed's numbers.
Reviewed AI text over bulk accept
Accept all is fast, but beauty copy is where a single "heals eczema" causes a disapproval. Accept in batches by product type and read the actives-heavy ones.
FAQ
Questions about product feed for beauty brands
Can I sell supplements in an Instagram or Facebook Shop?
Meta's Commerce Policies prohibit ingestible supplements, healthcare products and medical equipment in Shops. Exclude them from the catalog used for Shops with a filter, and check Meta's advertising standards separately before using them in ads.
Do cosmetics need unit pricing in Google Shopping?
In the EU, EFTA countries and the UK, products sold by weight or volume must show a unit price, and Google names perfume among the affected categories. Submit unit_pricing_measure with the contents (for example 50ml) and optionally a base measure such as 100ml.
How should makeup shades be listed in a product feed?
As variants: one item_group_id per product, a separate id, image and price per shade, the shade name in the title, and a plain color family in the color attribute, because Google asks for no numbers or codes there.
Where do ingredients go in a Google Shopping feed?
In the description, as plain product facts without treatment claims, or as structured product_detail entries such as General:Key ingredient:Niacinamide 10%. Google allows up to 100 product_detail entries per item.
Set up for you
Have every shade published with the right unit price, to the right channel.
Send us your store and the channels you sell on. We set up Textfinity to map shades and sizes, filter supplements per channel and publish a feed for each.
Tell us your store and channels. We reply within 24 hours.