Collections, product type and google_product_category
How Shopify's product type, tags and collections relate to Google's product_type and google_product_category attributes, and why Shopify's own categorisation never satisfies Google's taxonomy.
Shopify lets you categorise products three ways, product type, tags and collections, all of which are your own naming, for running your own store. Google Shopping has two category attributes: product_type (your taxonomy, which it accepts as-is) and google_product_category (Google's fixed tree of thousands of categories, which it does not). The gap between 'your categories' and 'Google's categories' is where a lot of Shopping performance is won or lost.
Three Shopify tools, all yours
Shopify gives you three ways to organise a catalogue, and all three are your naming for your store:
- Product type: a single free-text field per product ("Dress", "Trainers", "Coffee Grinder"). Your words.
- Tags: free-text labels you attach in any number ("summer", "sale", "waterproof", "new-in"). Your words again.
- Collections: groupings of products, either manual or rule-based, used to build storefront navigation and merchandising pages. Your structure.
None of these were designed for Google. They exist so you can build menus, run promotions and merchandise your shop. That's the root of the confusion: merchants assume the category they set in Shopify is the category Google reads. It isn't.
Google's two category attributes
Google Shopping has two distinct category fields, and they behave completely differently:
| Google attribute | What it is | Where it comes from in Shopify | Google's stance |
|---|---|---|---|
product_type |
Your taxonomy string, often a path | Product type, or a collection path you build | Accepted as-is; used for your own campaign structure |
google_product_category |
Google's fixed category from its taxonomy | Nothing native: must be mapped | Must match Google's tree; strongly affects matching and CPC |
product_type is easy: it's your language and Google takes it verbatim. It's genuinely useful for structuring campaigns (you can bid differently on "Dresses" vs "Accessories"), but it doesn't help Google understand what the product is in its own terms.
google_product_category is the hard one. It draws from Google's published taxonomy: a fixed tree of roughly 5,500 categories, from top-level "Apparel & Accessories" down to leaves like "Apparel & Accessories > Clothing > Dresses > Cocktail Dresses". Your product type "Dress" is not a node in that tree, so it can't be used directly. Something has to translate "Dress" (yours) into the correct Google leaf.
Why Shopify's category ≠ Google's
Even Shopify's newer built-in product category (its own standard taxonomy, separate from the free-text product type) is not the same tree as Google's. The two taxonomies overlap in spirit but differ in structure, depth and IDs, so a Shopify category still needs mapping to Google's category: they are not interchangeable identifiers.
So no matter which Shopify field you rely on (free-text product type, tags, collection membership, or Shopify's own product category) you end up needing a translation step into google_product_category. There is no field you can set in Shopify that is Google's category.
Specificity is the point
Getting google_product_category populated is step one. Getting it specific is where the performance lives:
- Broad: "Apparel & Accessories". Technically valid, matches loosely, competes in a huge pool, tends toward a higher CPC.
- Leaf: "Apparel & Accessories > Clothing > Dresses > Cocktail Dresses". Matches the shopper's intent tightly, qualifies for category-specific treatment, and typically runs more efficiently.
The common failure is a feed that auto-guesses a top-level category for everything and calls the field "filled". It passes validation and quietly underperforms: see common feed mistakes.
Deep dive Tags and collections as raw signal, not category
Tags and collections don't map to a Google category: but they're not useless to the feed. They're raw signal a feed layer can translate into other attributes:
custom_label_0–4. These five free-text buckets are meant for your segmentation: margin tier, seasonality, clearance status, bestseller flags. Shopify tags are the natural source. A "clearance" tag can becomecustom_label_0 = clearance, letting you split that traffic into its own campaign and bid it down. A "bestseller" collection can drivecustom_label_1 = herofor aggressive bidding. None of this happens by default (no standard integration reads your tags into custom labels) but the raw material is sitting in your tags and collections already.Category hints. A collection called "Women's Cocktail Dresses" or a "wedding-guest" tag is strong evidence for classifying
google_product_categorycorrectly, even though the collection name itself never becomes the category value. It narrows the guess from "some apparel" to "occasion dress".
The trap is treating tags and collections as if they were the Google category. They're your merchandising language, and they change for merchandising reasons (you rename a collection for a seasonal campaign, retag for a sale) with no thought to how Google reads them. Anything derived from them has to be recomputed as they drift, which is exactly the kind of continuous work a feed layer does and a one-time export doesn't. Because /tools reads these signals and writes the resulting categories and labels to its own supplemental layer, your collections and tags stay purely yours: rename and retag freely; the feed re-derives without you touching a category field.
How /tools handles this
/tools reads your product type, tags, collections and Shopify product category as inputs and classifies each product into Google's taxonomy at leaf depth ("Cocktail Dresses", not "Apparel & Accessories") writing the result to its supplemental feed layer rather than into any Shopify field. Your own product_type is preserved for campaign structure; tags and collection membership can feed custom labels for segmentation. Because the classification lives in the feed layer, your Shopify categorisation stays exactly as you use it for your storefront. Category coverage and specificity feed into your Feed Health Score; the mechanics of the mapping are covered in Google product category mapping.
Frequently asked questions
Does my Shopify product type become google_product_category?
No. Your product type maps to Google's product_type attribute (your own taxonomy, accepted as-is). google_product_category is a separate attribute drawn from Google's own fixed tree of thousands of categories, something has to translate your product type into Google's category, they aren't the same field.
Do collections show up in the feed?
Not as a Google attribute directly. Collections are a merchandising tool for your storefront. Their path can inform product_type, but Google's google_product_category still has to come from Google's taxonomy, not your collection names.
Is a top-level category good enough?
Usually not. A specific leaf category ("Dresses > Cocktail Dresses") matches better and runs at a more efficient CPC than a broad one ("Apparel & Accessories"). Generic categories are one of the commonest reasons a feed underperforms without erroring.