How Can We Help?

< All Topics

Google Merchant Centre Feed | Step by Step Build Tutorial

Build a Google Merchant Centre Feed in easy to follow steps

Here is the video version of this tutorial

Just a small qualifier before we dive into this, this guide is not intended to be a completely comprehensive tutorial covering every possible scenario.

Following this, we will however, introduce you to most of the key features within the builder and should help you get started with what is probably the first feed that you will be looking to build.

Name your feed and choose the output file format

Fields left to right:

  • feed name – this will be how your feed is named in your list of saved feeds.
  • feed filename – when you download or access your feed from the URL this (in combo with the extension) is what the file will be called.
  • delimiter – the separator character that your file will use.
  • file extension – here you have a choice of .csv or .txt

Google will accept other formats but within the choices here, the preferred option is a TAB delimited .txt file.

First New Column

When you arrive in the builder you will first see an empty column header field. You will give it a name and choose the method/ type of data population, Map data and Process data. There is another article explaining this in more detail. Following this guide you will get to see first hand the difference between the two and is arguably the better way of getting to grips with the concept.

  • title

This is a straightforward case of building the column so product titles are outputted as they are saved in the store. There are several columns in your feed that probably will require no more complexity than this. For the sake of cutting down any repetition we will not show config screenshots for these.

Pro tip – as you add your columns, use Preview column to check the output. See this video clip for how to do this.

Another strong recommendation is to save your feed regularly as you progress.

Example: Mens Short Sleeve Shirt

  • description

In the guide from now on I’m going to use the notation format instead of screen grabs where we are simply outputting data from store unchanged or passing a static value

So this:

Process > Store > Products > Product_Description (Original)

Is the same as:

Long text description of the product (no html tags allowed)

Example: The latest flagship smartphone from Google, cutting edge features, great ergonomic design and the cleanest, smoothest Android operating system on the market.

  • link

Process > Store > Products > Product_OnlineStoreURL (Original)

The main product hyperlink for customers to navigate to the right product result page

  • product_type

Process > Store > Products > ProductType (Original)

Your product type/ category value from your store

Example: Phones/Smartphones/Manufacturer/Google

  • condition

Process > Static > “new”

This store only sells new product so passing a static value is ok

  • google_product_category

This is an example of where the ‘Map’ data type can be employed. This is a simple example from a soft furnishings retailer.

The first match condition identifies Curtains products (by the Product Type from the store data) and gives them the Google Product category value:

Home & Garden > Decor > Window Treatments > Curtains & Drapes

The second identifies Fabrics products and gives them a value in the column of

Arts & Entertainment > Hobbies & Creative Arts > Arts & Crafts > Art & Crafting Materials > Textiles > Fabric

You can have as many values as you please, just ensure that results don’t overlap. The Default value is returned against records that do not match any of the conditions set.

The type of product – as categorised by the google product taxonomy

Example: Electronics > Communications > Telephony > Mobile Phones > Contract Mobile Phones

  • gtin

Global Trade Item Number, this is standard that incorporates various types of barcode.

Its perfectly possible that you could be just outputting this data in its original form – but here is an example to illustrate how you could validate data as it appears in your feed.

Here we have applied a Regular Expression to only populate if the field contents matches a certain pattern.

In simple terms [0-9]{13} means only match if the value is a thirteen digit number, enough for you to have confidence that you are only going to include barcodes in your feeds.

Example: 5001234567891

  • price

This is an example of where you can use the ‘Composite Column’ function. Replace the currency abbreviation with the appropriate value for your store.

Example: 59.99 GBP

  • sale_price

Same as price but use Process > Store > Variants > Variant_Price to give the correct sale price value.

Example: 35.95 GBP

  • mpn

Process > Store > Variants > Variant_SKU (Original)

Manufacturers Part Number. In this example we are using a simple unique value from the store as mpn, the Variant SKU. You may have an actual suppliers product code saved against products.

Example: GOOGPIX5G-1234

  • image_link

Process > Store > Products > Product_FeaturedImage.src (Original)

  • colour

Process > Store > Products > Product_Meta_Fabric_Colour (Original)

In this example, we are pulling the colour value from a custom metadata field saved in this particular store – this is not a standard field you will have. You could have it in another place like tags and so all you have to do is identify the best way to extract this.

Example: Ochre

  • id

Process > Store > Variants > Variant_SKU (Original)

Example: GOOGPIX5G-123/128G/WHITE

  • item_group_id

Process > Store > Products > Products_SKU (Original)

Id and item_group_id are distinct columns but it is worth taking a minute to discuss them as they are connected. Here we are giving the information to show which products have variants. Item_group_id is the ‘parent’ product, and id the variations if present.

Worth noting here that if your product variants have both a colour and size dimension, you need to include as a minimum a colour and a size variable column.

Example: GOOGPIX5G-123

  • availability

This is another example of using the ‘Map’ data type – but this time we are using a numerical test on the inventory quantity.

Simply if total inventory is less than 1 item is out of stock. Please note that Feed Donkey reads and makes location based inventory available to the builder function too.

Example: In Stock

  • brand

Process > Store > Products > Products_Vendor (Original)

Example: Google

  • custom_label_0

This is literally only scratching the surface of this subject – custom labels in your merchant centre feed are an incredibly powerful tool that you should be using. You can have up to five of them ranging subjects such as indicating where products are:

  • seasonal
  • high or low margin
  • fast or slow sellers
  • or like the example above, price point

This is all valuable intelligence that can be utilised to optimise your paid advertising.

Example: Bestseller

  • identifier_exists

Process > Static > “yes”

Identifier exists is a value that Google asks for to indicate whether a product has one of the designated unique product references (barcode and/ or combo of brand and mpn). In the example store there is no need to test this as all products will meet this minimum criteria – so we are passing a static value.

It is certainly also possible to set up a ‘Map’ data type column to cover if there will be variation in products that do and do not meet this test.

  • shipping

Similar to the example on custom labels there is so much more that you can do with data elements under the the definition of delivery. We are just going to look at shipping cost here, getting this right is essential for you to achieve stable and accurate ads.

Google requires you to pass the shipping cost value in the form of

Country:Region/ Location:Service Name:Cost

The important thing here is that what you include in your feed matches how you charge for shipping in actual fact. Maybe you charge a flat rate for everything you sell that is shipped in a particular country. You could in this scenario pass a static value e.g.

UK:::£2.99 GBP (note I’ve omitted Region/ Location & Service Name – these are optional, country code and cost are mandatory)

The likelihood is however is that you vary your shipping in one way or another over your geographic market. The column configuration above is a very simple example of how we can use store data in a map condition to achieve what is required. We are using weight as the condition here, there may be others like size dimensions/ volumetric info.

You can add up to 100 columns with the header “shipping” to cover all the shipping variations that you need.

Example: UK:Scottish Highlands:Hermes:£5.99 GBP


Filters allow you to control the product records that your feed will contain.

Pro tip – when you have configured your filters, use Record Count to check the effect that this has on the number of product records included. See this short video clip showing how to do this.

In this example, we are adding a filter that excludes product records based upon a discontinued flag that this store has against products in metadata.

You can add multiple inclusion and exclusion rules – but just note that these are applied in order. In the above example rule 1 has excluded discontinued products.

Therefore, if we were to add a 2nd rule – this would be applied to a product ‘population’ that was excluded of discontinued product.

URL Parameters

This is a completely optional feature at your disposal, its intended use is to give you more colour to your clickstream analytics.

The usefulness of analytics is correlated with your ability to segment your data, this feature gives you more strength to your arm in being able to do this effectively.

If you really do not want to dive this deep at the moment, you may want to come back to this later…

But if you do an example, if you want to look at data from an aspect such as the collection page that products appear, plus the brand that is associated with this product – its difficult to get this view from my analytics package.

Setting this config in URL Parameters

this would ‘tag’ all the urls in the feed (anything that is rendered as a hyperlink) with a parameter.

So clicks from channels that your have ‘fed’ from this created feed – you will get this enhanced information attached to the URL entry point.

Hopefully this tutorial has given you a few pointers of how to proceed, it is quite difficult to do a ‘cover all’ guide as the fact is that your Merchant Centre Feed will look different depending on several factors, like the type of product you are selling and how your store data has been created.

This article should have given you most if not all the techniques that you need to create your first feed – if not please contact us and we will assist you as far as we possibly can to get you up and running.

Help Documentation from Google

We have covered enough so far to (probably) give you at least a basic and useful product retail feed for more information and how you approach other specific product/ service types please refer to Google Merchant Centre help guide.