The Google Merchant Centre supports several fields that they require if they are needed to identify variants on a feed. This is primarily true for apparel. These fields include:

  • Color
  • Material
  • Pattern
  • Size

Google recently added support for these fields in the Structured Data for a product page. This means Google can get this data directly from your pages and show them in their free shopping listings without needing a feed.

This article covers adding these fields to your product pages and the product feed using our SEO Rich Snippets app and Data Feed Watch.

Defining Attributes for your Products

The first thing that needs to be done is to set these attributes for your products in a structured way. Fortunately, the BigCommerce Product Filtering feature (faceted navigation) defines an excellent way to set the attributes via custom fields and variant options.

Custom Fields

These can be added to a product to define product-level attributes. They have a name and a value. All custom field names are available for use by Product Filtering, Data Feed Watch and the SEO Rich Snippets app.

In this scenario, the custom field values become the default values for a product, which a variant can override. Set the values to match what your product page shows by default, and don’t include lists of the attribute varies by variant; that’s dealt with later. Please follow the guidelines:

You should define them in the custom fields using consistent field names. e.g.

  • Color or Colour
  • Material
  • Pattern
  • Size

By default, a custom field is shown on the product page. If you don’t want these attributes visible, a common practice is hiding them using a custom field name that starts with __ (double underscore). This is the theme code to do it (source):

<dl class="productView-info">
  {{#each product.custom_fields}}
    {{#startsWith '__' name}}
    {{else}}
      <div><dt class="productView-info-name">{{name}}:</dt><dd class="productView-info-value">{{{value}}}</dd></div>
    {{/startsWith}}
  {{/each}}
</dl>

In this case you would use the following field names for the fields you want hidden:

  • __Color or __Colour
  • __Material
  • __Pattern
  • __Size

Adding all these attributes may be a lot of work. BCtools.io is an app that lets you download, update and upload all your product custom fields in one go.

Product Options

If the attributes vary at the variant level, their value can be aquired if they use a consistent option name. e.g.

  • Color or Colour
  • Material
  • Pattern
  • Size

This is the option name as displayed within the product editor. In the shared options editor it is the “Display Name”.

Product Filtering, Data Feed Watch and the SEO Rich Snippets all support getting values from a specific option.

Adding Product Attributes to your Product Pages

By default, the SEO Rich Snippets app provides detailed product information in the Structured Data it creates. It also supports specifying custom field and option names for the attributes we are interested in.

In the app’s Product settings, switch on advanced mode, and you can set them names of all your custom fields and options. It’s that easy.

The app also supports variant URLs with structured data specific to the variant.

Data Feed Watch

Now to add these attributes to your feed. In this case, I’ll show how to do it using Data Feed Watch. I’m sure other feed providers can also support this custom field population.

Adding the Internal Fields

We first want to add the attribute fields to the “Internal Fields” list. Here’s an example of what the color field could look like:

Note you should name each field using the standardised names for each attribute. e.g. lower case and US spelling.

  • color
  • material
  • pattern
  • size

When adding the field values, a product option will appear in the input list field under its name. A custom field shows up prepended with “custom_”. e.g. If the custom field and Option are both named “Colour”, their field names in Data Feed Warch would be:

  • Colour (option)
  • custom_Colour (custom field)

The logic is, for each product:

  1. If the option value is set, then use it
  2. Else, if custom field value set, then use it
  3. Else it is left blank

This should be repeated for all the attributes you want to support. Once you have added the first one, there is a “Copy Internal Field” button to make it easier.

Adding the fields to the Google Ads Channel

Head to the channel mappings and add each new field. In this case we want the field name to also be the standarised attribute name used by the merchant centre:

  • color
  • material
  • pattern
  • size

Bonuses

Now you have these attributes in Data Feed Watch, you can use them to improve your product titles. This will help your product rank for those attribute values. You may also want to add the brand and category. Only the first part of the title is displayed, but the rest contributes to the product’s ranking:

10 Rules to Optimize Your Google Shopping Titles

Our Tag Rocket app is excellent at adding dynamic remarketing support to shopping campaigns powered by Data Feed Watch:

Dynamic Remarketing on BigCommerce with Data Feed Watch

Tag Rocket also supports adding the Data Feed Watch Analytics tag via a custom script (instructions on adding Tag Rocket API customs scripts).

Why not go the extra mile and support even more attributes:

Merchant Feed HeadingNotes
gtinProviding your GTIN is extremely valuable as it helps Google know exactly what product you are talking about.

Fill in your product’s GTINs, then map them from the internal field to the Google Ads channel as ‘gtin’.

If you don;t have GTINs you could use ‘brand’ and ‘mpn’.
cost_of_goods_soldThis data is passed on to Google ads to enable reporting on “Cost of goods sold” and “Gross profit”. One day it may be used as a more accurate bidding strategy. This is part of the basket data feature. Tag Rocket supports the rest of it.

In BigCommerce, you can set the cost price in the products price detail section. Then you should be able to add a Data Feed Watch internal feed using ‘cost_price’ that is mapped to the Google Ads channel as ‘cost_of_goods_sold’.
item_group_idWe recommend you modify this as per our Dynamic Remarketing on BigCommerce with Data Feed Watch article. That modification will stop accidental clashes between variant and product ids.
product_weightThis can be mapped via the ‘weight’ field.
product_widthThis can be mapped via the ‘width’ field.
product_heightThis can be mapped via the ‘height’ field.
product_lengthThis can be mapped via the ‘depth’ field.
age_groupThese would probably need to be a product custom field…
gender
size_type
size_system
energy_efficiency_class

Tell me if I missed any good ones.