# Health and beauty

Health and beauty feeds sit under advertising policy as much as feed specification. Cosmetics need unit pricing and shade handling, supplements run into healthcare restrictions that vary by market, and anything classed as adult content needs declaring rather than hiding.

- **Canonical URL:** https://www.feedlab.io/knowledge/verticals/health-and-beauty
- **Last reviewed:** 18 September 2026
- **Source:** feedlab knowledge base
- **Licence:** free to quote and cite with attribution to feedlab



## Categories this covers

- `Health & Beauty`
- `Health & Beauty > Personal Care`
- `Health & Beauty > Health Care`
- `Health & Beauty > Health Care > Nutrition & Food Supplements`



## Attributes this vertical changes

| Attribute | Requirement here | Why |
| --- | --- | --- |
| `unit_pricing_measure` | Required in some cases | Applies to cosmetics and toiletries sold by volume or weight in markets with unit-pricing rules, which covers most of a skincare or haircare catalogue. |
| `unit_pricing_base_measure` | Required in some cases | The base the unit price is shown against, typically 100ml for liquids and 100g for solids. |
| `color` | Required in some cases | Cosmetics are bought by shade. Where the product sits in the Apparel & Accessories branch the colour requirement applies outright; elsewhere it is what makes shade variants distinguishable at all. |
| `adult` | Required in some cases | Required for products that are adult in nature. Declaring it keeps the rest of the catalogue out of the restrictions that apply when a channel decides for itself. |
| `item_group_id` | Required | Shade and size variants only work as a picker when they are grouped, and this vertical is almost entirely variant based. |
| `gtin` | Required | Branded cosmetics and supplements carry barcodes, and this is a vertical where channels lean heavily on identifiers to police what is being sold. |



## What catches these stores out

### Supplements are a policy question before a feed question

Nutritional supplements are restricted differently in every market, and some ingredients are refused outright. A feed can be technically perfect and still see items disapproved on policy grounds, which is not something a mapping change fixes. Establish what is sellable per market before optimising the feed.

### Shade names are not colours

A foundation catalogue carries shades like "220 Natural Beige" or "Porcelain". Those belong in the title, where a shopper searches for them. The colour attribute wants a recognisable colour so filtering works, which means mapping shade to a normalised colour while keeping the shade name visible.

### Volume lives in the title, not in a field

As with food, the size of a cosmetic is usually part of its name: "Shampoo 250ml". Unit pricing needs that as a number and a unit, and parsing it from titles breaks on travel sizes, duo packs and refills. A metafield is the only stable source.

### Before and after imagery gets items rejected

Product images that show results, or that carry text and promotional badges, fall foul of image policy on several channels even though the feed itself is valid. Shopify stores frequently use exactly those images as the featured image, so the mapping question is which image to send rather than whether one exists.

### Declaring adult content protects the rest of the catalogue

Leaving the adult attribute off an item a channel considers adult does not hide it. It gets classified anyway, and the consequences can reach beyond the single item. Declaring it is both the honest and the safer mapping.




## Where these values come from in Shopify

- **`unit_pricing_measure`** — A metafield holding volume or weight with its unit. Frequently absent in stores that grew from a small range, and worth backfilling once rather than parsing repeatedly.
- **`color`** — From the shade variant option, normalised to a real colour name. Keep the original shade in the title so search still matches on it.
- **`adult`** — Usually a tag or metafield set deliberately on the affected products, since nothing in Shopify classifies content.
- **`image_link`** — Prefer a clean product-only shot. Where the featured image is a results or lifestyle image, map an alternative position from the product's image list for this purpose.







## Frequently asked questions

### Why are my supplements disapproved when the feed is valid?

Because supplements are restricted by advertising policy, which is separate from feed validation. The rules differ per market and some ingredients are refused entirely, so the item can be perfectly formatted and still not eligible.

### How should cosmetic shades be mapped to colour?

Keep the shade name in the title and send a normalised colour in the colour attribute. Shade names are what shoppers search for, but they are useless as filter values.

### Do cosmetics need unit pricing?

In markets with unit-pricing rules, yes, for anything sold by volume or weight. That covers most of a skincare, haircare and fragrance catalogue, and the value has to come from a structured field rather than the product name.

### What image should a beauty product feed use?

A clean image of the product itself, without added text, badges or before-and-after comparisons. Those breach image policy on several channels even when the feed is otherwise correct.




## Primary sources

- [Google: unit_pricing_measure attribute](https://support.google.com/merchants/answer/6324455)
- [Google: Product data specification](https://support.google.com/merchants/answer/7052112)



