Google product category vs product_type: what's the difference
One is Google's taxonomy and you must use its exact values. The other is your own taxonomy and you can write anything. They are both optional, they do different jobs, and filling in only one of them is a common and avoidable mistake.
What this comes down to
- google_product_category takes an exact value from Google’s fixed taxonomy. product_type takes anything you want to write.
- Both are optional. Neither causes a disapproval by being absent.
- Only google_product_category can be invalid, because only it has a list of valid values to be wrong against.
- product_type is where your own reporting and bidding segments live, so copying the Google tree into it gives you two copies of one view and no second view.
- Multiple product_type values are accepted and only the first organises bidding and reporting — put the important one first.
The difference in one table
| google_product_category | product_type | |
|---|---|---|
| Who defines the values | You | |
| Valid values | One of 5,595 taxonomy entries, by ID or exact path | Any string you like, up to 750 alphanumeric characters |
| Requirement level | Optional | Optional |
| Invalid values | Rejected, and may prevent products from appearing | No such thing — it is your own vocabulary |
| Main job | Category-specific attribute rules, Google Ads targeting by category, and the same column in Meta and Microsoft feeds | Organising your own bidding and reporting in Shopping campaigns |
One is a value you look up. The other is a label you decide. They are not two attempts at the same field.
google_product_category: a value from a fixed list
Google publishes a taxonomy of 5,595 categories and this attribute takes exactly one of them. You can send the numeric ID or the full path, but not both
, and the product data specification recommends the ID.
It is optional. Google assigns a category automatically to every product, and this attribute can override that automatic categorisation in specific cases
— enforcement of category-specific attribute requirements, Google Ads targeting, and alcohol. It is not a general-purpose override switch.
What it definitely controls is which category-specific rules apply to the rest of your feed. Apparel & Accessories, Mobile Phones and Software all bring extra required attributes with them. How to find the right one.
product_type: your own shelf labels
Google describes product_type as the product category that you define for your product
. There is no list to pick from. If your business thinks in terms of “Trail > Winter > Waterproof”, that is a valid value.
Three practical details:
- Use a full path rather than a leaf. Google’s own example asks for
Home > Women > Dresses > Maxi Dressesinstead of justDresses. - Only the first value is used to organise bidding and reporting in Google Ads Shopping campaigns. If you submit several, put the one you plan to bid on first.
- The limit is 750 alphanumeric characters, which is far more than you need.
Why you want both filled in
They are not alternatives, and the most common error is treating them as one. The symptom looks like this: a merchant fills product_type with their own neat hierarchy, sees the feed accepted, and assumes the category question is handled. It is not — Google is still categorising those products by its own signals, and the category-specific attribute rules being applied are the ones Google chose.
The reverse error is quieter. Fill only google_product_category and your Shopping reporting is organised by Google’s tree rather than yours, which is fine until you want to see performance by the segments your business actually manages.
The two also answer different questions when you are debugging. If a category-specific attribute is being demanded and you do not know why, look at google_product_category. If a Shopping campaign will not let you build the product group you want, look at product_type.
A third field, if you are on Shopify
Shopify has its own product taxonomy, exposed as a Product category field, and it is a separate column from Google Shopping / Google product category in the official CSV template. Both appear in the same export, which is where the confusion starts. How the two relate, and where the mapping breaks.
Questions
Can I put the same value in both attributes?
You can — a Google taxonomy path is a valid product_type string. But it wastes the attribute. product_type exists so you can report and bid on your own segments, and duplicating Google's tree into it gives you two copies of the same view.
Is product_type required?
No. Both attributes are optional.
How many product_type values can I submit?
More than one is accepted, and only the first is used to organise bidding and reporting in Shopping campaigns. Google states a 750 alphanumeric character limit per value. We have seen a specific maximum count quoted in one Google help page but could not confirm it consistently, so treat "put the important one first" as the reliable rule.
Which one affects whether my product is approved?
Neither, by being absent. An invalid google_product_category value can prevent products from appearing, so a wrong value is a risk where an empty one is not. product_type has no valid-value list and so cannot be invalid.
Read next
How to find the right Google product category (with ID)
A practical walkthrough: read the taxonomy, pick the most specific category that is still true, and get the numeric ID your product feed needs.
Shopify product category vs Google product category: how they relate to your feeds
Shopify has its own product taxonomy and it is not the same tree as Google's. Here is how the two map, and exactly where the mapping breaks.
How to override Google's automatic product category with a supplemental feed
What a supplemental feed can and cannot change, when Google accepts a category override, and the exact two columns to submit in the file.
ChatGPT product feed: OpenAI’s spec and where the category goes
OpenAI’s ChatGPT product feed spec: the nine required fields, how SFTP delivery works, and where your Google product category goes in each format.