Google Shopping for Shopify book
Free PDF Download

Google Shopping for Shopify:

The Definitive Guide

by Joshua Uebergang of Digital Darts

5. Your Google Shopping Feed in Shopify

The Best Way To Create and Manage a Shopify Feed

If you’re trying to persuade people to do something, or buy something, it seems to me you should use their language, the language they use every day, the language in which they think. We try to write in the vernacular.
David Ogilvy, father of advertising who attributed his success to consumer research, telling advertisers in an interview the value of speaking your customer’s language

Your Google Shopping Feed in Shopify

Losing money unnecessarily in any business is infuriating. Yet, many businesses throw money away every month by not optimising their Google Shopping campaigns and feeds.

This chapter will teach you everything you need to know about setting up then optimising your Google Shopping feed in Shopify. As a 4-year Shopify Expert and 10-year Google Ads veteran for retail businesses of all types and sizes, I have developed sneaky tricks of the trade you’re about to discover.

Why Should I Optimise My Feed?

The feed is the most paramount element (followed by bidding) when advertising on Google Shopping. The goal of feed optimisation is for it to contain as much accurate data as possible, allowing Google to match your products with someone’s search. Unlike search ads, there is no option to bid on keywords to market your products. Google’s algorithm decides what to show.

An optimised shopping feed also categorises items to help searchers find what they want. The feed is for shopping ads as keywords is for search ads.

Let’s say you sell a range of running shoes. A customer searches for “red running shoes”. A fully optimised feed ensures your products come up for their search. All the shopping ads below are relevant to the search:

Why should I optimise Google Shopping

Let’s say you sell a range of running shoes. A customer searches for “red running shoes”. A fully optimised feed ensures your products come up for their search. All the shopping ads below are relevant to the search:

Showing up for the right searches will boost your total impressions. You should also see a good click-through-rate to your store because you’ve matched the product to what the searcher has typed.

What Makes a Bad Feed?

You know the need to have a fully optimised feed. Let’s explore the dark side of Google Shopping. A bad feed is incomplete, inaccurate, or ignored.

Out of Stock

This is one of the most frustrating things as a shopper. You’ve found the perfect item on Google Shopping, but when you get to the product page, you’re hit with the dreaded “out of stock”.

Few people want to wait for things, especially when shopping online. Customers will shop elsewhere after seeing the product they want is out of stock.

Product Disapprovals

So imagine this, you’ve worked on creating the perfect shopping campaigns for hours. The feed is built, you’ve implemented the right bidding strategy, your products are neatly organised into concise ad groups and campaigns, and you’ve even setup some pre-emptive negative keywords and bid-modifiers from historical data. You click the “enable” button, pushing your campaigns live and all of a sudden, the disapprovals tumble in.

Disapprovals happen for a number of reasons in shopping. Such reasons include having an unknown category, policy violations, and missing attributes.

There are two strategies to deal with product disapprovals. Firstly, read this chapter so you know the specifications of a Google Shopping feed. Secondly, work through the diagnostics inside Merchant center to fix the errors or warnings before resubmitting your products, otherwise they’ll get disapproved again.

Inaccurate Pricing

The wrong prices in your shopping campaigns will get your ads disapproved. Google hates when stores make this mistake because it leads to a bad user experience. Inaccurate pricing is one of the top reasons people leave a site then shop elsewhere. What’s worse is that by the time they’ve looked at your website, you’ve already paid for a click that’s less likely to convert to a sale.

Rarely do businesses intend for pricing in their feed to be wrong. Inaccurate pricing can creep in when a retailer changers a product price, such as during a sale period. It’s important to ensure the feed is up-to-date with any changes. Price changes like during sales will always require the feed to be updated then re-uploaded. This is time-consuming when you don’t have the right software in place.

Irrelevant Searches

We’ve briefly explored why it’s essential to show up for the right searches so you get in front of the right people, boost clicks to your store, and increase sales. How do irrelevant searches come about?

Search-to-ad mismatches happen when you inaccurately describe a product in the various fields of the feed. For example, if you sell children’s clothes, you need to make clear in the feed that they’re for children, not adults. You would do this by optimizing the product title (more on this below) as well as using the age_group attribute to have the value kids.

Search query with funny irrelevant shopping ad
I searched for jumpers during winter time in Australia and found this eye-freezing example of irrelevancy. That is not a warm-enough jumper even for Australia’s winter. What has been searched cannot be unsearched.

Unoptimised Titles

According to a study conducted by Salsify, 88% of Shoppers said that the content of the product, like title and description, heavily influences their decision to buy a product.

As mentioned, Google Shopping does not use keywords. It is crucial to optimise your titles and descriptions to get impressions for the right searches.

There are numerous tips and tricks to help you get this right such as using keywords in the product title and downloading search terms reports for your search ads to find out the exact terms people use when searching for your product. If some keywords get more searches than others, they are more important to include in the title. Nonessential keywords in a title should be removed.

Another part of title optimisation is the order of keywords in the title. For example, if you sell books, the structure ought to look something like this: Title + Type + Format + Author. I’ll give you recommended formats for products in other industries and further optimisation tips soon.

Google Shopping feed mistakes

Three of the Best Ways to Keep Your Shopify Shopping Feed Healthy

To run successful shopping campaigns, you need to continually fill the feed with up-to-date information. If a new product is added every day, you don’t want to have to then add it to your feed. That becomes time-consuming and frustrating when errors occur. 95% of Shopify stores are best to rely on third-party software to do the heavy lifting of feed management.

Product feed creation has potential to be one of the most time-consuming tasks when selling online. You could spend hours every week to create then check all the information is accurate. It gets more frustrating when platforms require feeds in different formats. Your Amazon feed will look different to your Google Shopping feed, both of which look different to your Facebook products feed. That is just the setup.

You need to be optimising your feed to get more clicks and boost the ROI of campaigns. It can be worrisome if you have no time to work on it. Software solutions can help you optimise titles, and more, with recommended structures.

Many ecommerce platforms like Shopify will work with your selling and advertising channels such as Google Merchant Center, to take work off your hands. There are three options I use and recommend you consider.

1. Manual Input with Google Sheets

If you have a small number of products and variables that seldom need updating, this will work for you. If you fall outside this criteria, it is not a good idea to use a Google Sheet to manage your feed.

To create the sheet feed, you need a file with all the necessary attributes and categories at the top, then fill out all the rows with the information that you would like to upload. I have a Google Sheet you can copy (don’t request access, I’ll ignore it) that has all the required fields mentioned in this chapter, examples filled in, and tips to use the sheet. The document looks like this:

Google Shopping feed spreadsheet example
A spreadsheet detailing how to setup your product feed. You can make a copy of the spreadsheet for your use.

A Google Sheet is better in every way compared to a standard spreadsheet. You can set a fetch schedule every day so you don’t have to upload the feed each time you update the spreadsheet. You can also grant team members edit permissions to a single document you manage together.

2. Shopify’s Google Smart Shopping

Shopify’s Google Shopping app has changed over the years. The app today is known as a Google Smart Shopping campaign inside the marketing section of Shopify. It is the quickest way to get started with feed marketing. A lot of ad agencies like this because their account managers do not have the technical skills to directly manage and optimise feeds.

One feature of the channel is you can create Smart Shopping Campaigns. This uses Google’s automated bid strategy to set how much you pay per-click to meet your return on ad spend goals.

If you’re new to Google Shopping, this is the easiest way to start and manage campaigns. However, you need to know the risk that Google’s automated bid strategy works best on campaigns with 100 (ideally 300) conversions per month. I wish this was made clear to hopeful entrepreneurs and marketers using the software. Should your smart campaign fall short of that performance, the data set becomes small and you can expect week-to-week fluctuations.

If you or your Google Ads agency use the channel and bid strategy to manage your shopping campaign, and your conversions fall short of the recommendation, your strategy needs to be reviewed. You can use the channel for feed management without giving Google free-reign to manage your campaign through its automated bid strategy.

Other downsides of the channel is you cannot advertise variants, customise fields like titles (though you can change this to a degree with rules inside Merchant Center), or enter information in all fields such as material which is critical for feed optimisation. Store owners who have over 100 SKUs also find the usability of the interface difficult.

3. DataFeedWatch

The spreadsheet and Shopify channel solutions suit smaller feeds for business owners who have basic technical understanding and want to give Google Shopping a go. If you have a multi-channel selling strategy, want to advertise variants, or want to customise a field in your feed for optimal profit, DataFeedWatch will be better for you. You can customise anything in your feeds to help your store grow each month.

DataFeedWatch is my number one choice when it comes to managing and optimising feeds. I’ve used it for several years now to manage client campaigns across Google Shopping, Amazon, and Facebook.

Challenges like stock levels among variants are managed with the associated variants feature. Let’s say you sell heeled boots in a variety of colours but some colours are out of stock. You can filter out the specific colours until you have more of these colours. This saves you having to trawl through feeds or stop advertising the product altogether. Another example. If you sell shirts in five sizes and only one size is in stock, Shopify’s Google Smart Shopping campaign will continue to advertise it. DataFeedWatch lets you set a rule that effectively says: “if 60% or more variants of a product are out of stock, mark the product as out of stock.”

There is a lot of neat adjustments you can make to your feed in DataFeedWatch using Google Sheets, like excluding products if their name or ID is in the spreadsheet, or adding a suffix to titles. DataFeedWatch pulls all product data directly from Shopify, meaning you avoid code and having to manually update the feed each time there is a change to product data.

The Most Important Attributes for a Google Shopping Feed

Whatever feed service you decide to use, there are feed attributes you must include, attributes you should use, and attributes you can ignore.

There are a number of attributes to input in your feed that are the bare essentials Google requires to run your shopping ads. Skipping must-have data will result in product disapproval where you products do not show in ads.

From the shopper’s perspective, most of the required fields are displayed to them when they search. Google Shopping works well because the searching person is presented with the main things they need to know when making a purchase such as price, what it looks like, and its name before you even get charged for the click.


Required attribute: id. Example: 20475822011. This is your product’s unique identifier not seen by the searcher.

For Shopify stores we setup on DataFeedWatch, we like to set the id to the variant ID because it is always available and unique for every product. You may want to use your SKU value as it can be clearer at face value what the ID refers to.

Do’s and Don’ts

  • If you sell your products in multiple countries, use the same ID for a product sold in multiple countries.
  • Keep the same ID from the beginning. If you change the ID after the product has been approved, it becomes a new product in the eyes of Google and will be reviewed again.
  • Use valid unicode characters. Avoid private characters and functions.
  • If you stopped selling a certain product, do not recycle that product ID for new products.


Required attribute: title. Example: MYOB Women's Summer Red Dress. This is often the product name. It is the most important attribute for optimising the feed.

Do’s and Don’ts:

  • Front-load your most important information as your product titles might appear truncated in the shopping carousel.
  • Add the brand attribute at the beginning of your titles for popular brands. If the brand is not often searched you can add it to the middle or the end of the product title.
  • Match titles to the most popular search queries for your products. When the campaigns run, you can refer to the search terms report for your most popular search queries then adjust the titles.
  • Be specific. “Home Work Desk” is vague. “Red Gum Timber Office Desk 1m Long” is better.
  • For titles of variants, include a distinctive trait like colour, material, or size.
  • Use the title structure that is best suited for your product vertical. Draw inspiration from the graphic below.
  • Minimise or avoid character symbols like the pipe symbol (“|”) and hyphen.
  • No promotional text such as “free delivery”, exclamation points, or unnecessary capital letters.
  • Don’t use superlatives like “gorgeous” or “impressive”.
Google Shopping Title Templates

You are welcome to download a copy of the template for yourself or share the graphic on your website, blog, or elsewhere online. Here is the embed code for you to copy-and-paste:


Required attribute: description. Example: The dress from MYOB is smooth silk-lined summer outfit in a bold shade of red. It's flattering neckline combines with a lace-up back and hidden zip closure. 100% made in the United States. Your product’s description.

The description often mirrors the landing page’s product description. It can vary word-for-word, but the description must be for the product on the landing page (what’s in the link attribute).

Do’s and Don’ts

  • Put the most important information in the first 500 characters even though your Google Shopping description can have up to 5,000 characters. Like title, put key information early in your description.
  • Use keywords in your description that your customers are likely to search to find the product. If you update the product description in Shopify with this information, you will benefit from improved SEO.
  • HTML tags are allowed in the description but will show in the ads without the HTML tag. Standard HTML tags are supported except for unsafe ones like style and canvas. Always use XML entities or escape characters rather than symbols. As an example for an XML feed, the greater than and less than characters of <em>Google Pixel</em> need to be &lt;em&gt;Google Pixel&lt;/em&gt;.
  • Avoid overloading the description with keywords that produce poor sentences. It will sound unnatural for the customer to read then negatively impact your results.
  • Remove information about other products, accessories, and competitors.

If your product lacks a good description, you can create one on the spot in your feed management tool using the data already in Shopify. Here’s one example for a clothing store using DataFeedWatch:

DataFeedWatch description combination

Tips for modifying the description like this:

  1. Use a space separator when creating the descriptions to stop multiple attributes combining into one word.
  2. In DataFeedWatch you can check how your description will appear in Google Shopping by clicking the eye icon (seen in the top-right of the screenshot).
  3. Other attributes you can add to create better descriptions include materials, special features, technical specifications, and patterns.


Required attribute: link. Example: This is your product’s landing page and can include a tracking URL.

Do’s and Don’ts

  • Claim the right domain in Google Merchant Center. If your claimed domain in GMC is, but your Product URL is Google will disapprove your products. Claim your shop’s domain in Merchant Center and setup your feed to use these links rather than The regex in the screenshot provided will replace the domain for all stores using DataFeedWatch. You just need to enter the store’s domain to replace the original value.
  • Start with https. All Shopify stores use the protocol.
  • Use the variant_url value in DataFeedWatch to link directly to the variant landing page that immediately shows the correct price. If you have product variants with different prices and the shopping ads go to the same URL, you will run into disapprovals.
  • Avoid redirects where possible as it can slow down the feed.

Required attribute: image_link. Example: This is the image URL which comes with requirements to ensure the image is clear and represents what you sell.

Do’s and Don’ts

  • Use the main image of the product. You want your best product image first. All best practices of good photography apply. Use a white background, good angle, and good lighting. An image of shoes from the side is always better than an image of the shoes from above. Natural lighting saves white balance problems. If you use an unnatural light source like halogens, your products will have tinges of yellow. Even if you don’t take your own photos, every owner or marketing manager should know the elements of good photography. The Shopify Academy course Product Photography for Ecommerce covers everything you need to know.
  • Try to use images unique to your company. Many companies resort to manufacturer imagery, but this fails to set the store apart from competitors.
  • The URL must be accessible to Google’s crawlers. If you upload your product images inside Shopify’s admin, this will never be a problem because the out-of-the-box robots.txt file permits crawling of images. Sometimes you will get a disapproval for several days before Google crawls an image. This will auto-correct within the week.
  • Start with https. If you use DataFeedWatch, this is included in the image, image_1, image_2, etc. variables pulled from Shopify.
  • Use an image of at least 100x100px for non-apparel products and 250x250px for apparel products. If your product images are close to this size, you should get new photos anyway. Go for at least 1024x1024px. More tips for good product photos are in my Shopify conversion guide.
  • Accepted formats are non-animated GIF (.gif), JPEG (.jpg/.jpeg), PNG (.png), BMP (.bmp), and TIFF (.tif/.tiff). The later two formats result in huge file sizes so avoid them.
  • You can include other images in the additional_​​​image_​​​link attribute described later.
  • Don’t use an image with watermarks or promotional text.


Required attribute: availability. Example: in stock. Your product’s availability. Contains one of three values: in stock, out of stock, or preorder.

Do’s and Don’ts

  • Create rules in the feed so availability is updated based on a Shopify field like quantity or stock status. You have to consider your product settings of whether customers can order the product if it is out of stock. DataFeedWatch handles this automatically with their own attribute dfw_availability.
  • Enable Automatic Item Updates so the availability status in your product data matches the landing page. Most Shopify themes have the schema markup to use this feature in Merchant Center. The structured data testing tool will quickly tell you what markup is on your product pages. If you need it implemented, refer to the availability schema.
  • If you stopped selling a product, do not set its status to “out of stock”. Create a rule to exclude it from your product data. The best way to do this in Shopify is to go to the product page then mark it as unpublished in the “Online Store”. The product will not be pushed to Shopify’s Google Shopping channel or DataFeedWatch.


Required attribute: price. Example: 59.00 USD. The price of your product.

Do’s and Don’ts

  • The price in the feed needs to reflect both the value and currency on the landing page.
  • Round the price to two decimals. If the price exported from Shopify contains more than two decimals, you can create a rule in DataFeedWatch that rounds it to two.
  • Use Automatic Item Updates to ensure no mismatches between the prices in your product feed and the product landing page. See the price schema used in the unlikely case your theme does not contain it. Refer to the availability attribute above for more information on this feature.
  • For bundles, bulk quantities, or multipacks, Google says to, “Submit the total price of the minimum purchasable quantity, bundle, or multipack.”
  • In DataFeedWatch, map price to compare_at_price if the value is not blank, else rename to price. This way if you have a sale price in Shopify, your Google Shopping ad will correctly show a discounted price appealing to shoppers.
  • Don’t submit a price with a price of 0 unless it’s a mobile phone contract.
  • Don’t include tax in the price for the US and Canada. For all other countries, include value added tax (VAT) or Goods and Services Tax (GST).

Google Product Category

Required attribute (for apparel, media, and software): google_product_category. Example: Apparel & Accessories > Clothing > Dresses or 2271. It is the Google defined category for a product so the ad platform understands what you sell. It is not to be confused with the product_type attribute.

Do’s and Don’ts:

  • The field is optional since 2018 for most categories, but always use it. Always.
  • Categorisation is similar among countries, but slightly varies. Download the latest taxonomy list from Google for the country you are setting up. Here are taxonomy lists for 🇺🇸 United States (considered the default for English speaking countries), 🇦🇺 Australia, 🇬🇧 United Kingdom, and 🇪🇸 Spain. Other countries can be downloaded from Google’s documentation on google_product_category. I have only run into one error using the US taxonomy for another English-speaking country.
  • Select the most specific category as you can. Though a dog kennel fits into the top-most level of “Animals & Pet Supplies”, the taxonomy ID 5094 of “Animals & Pet Supplies > Pet Supplies > Dog Supplies > Dog Houses” is more accurate. Specificity helps Google match the product to the user’s query.
  • Use DataFeedWatch’s category mapping to quickly categorise all products. To do so, when mapping categories in the software:
    1. Select the default category.
    2. Select the field that contains the “product type” attribute. In this screenshot, I’ve selected “category_0”.
    3. Generate categories. DataFeedWatch will populate all your product types ready for categorisation.
    4. Type in a few letters to select the best sub-category for your products. For industries new to me, I find it helpful to also open the taxonomy list in a spreadsheet so I can search all instances of a keyword and see their nearby categories.
  • You can use the category ID or the full category text.
  • Do not use more than one category.

The time spent to categorise products is well invested so you have an optimal feed to help campaign performance. If you use DataFeedWatch, a second benefit of doing this attribute is you can copy the rules into your Facebook Product Ads, Microsoft Advertising, and Criteo because the platforms all use Google’s product categorisation.


Required attribute (for all new products, except movies, books, and musical recordings): brand. Example: MYOB. The brand of the product.

This is easy to map to in DataFeedWatch by setting the brand attribute to equal the vendor in Shopify. If you are the manufacturer, you can put your store name.

Identifier Exists

Optional attribute (if your product does not have a gtin or mpn): identifier_​​exists. Example: no.

The default value is yes if you do not submit the attribute. If you provide a gtin or mpn value, the identifier_​​exists has to be yes. Most newbies setting up a feed for the first time have trouble with getting the gtin, mpn, and identifier_​​exists correct.


Required attribute (for all new products with a Global Trade Item Number, also known as “GTIN”, issued by the manufacturer): gtin. Example: 350398635461. Your product’s Global Trade Item Number.

Exclude dashes or spaces. If you’re struggling to verify the correct value, see DataFeedWatch’s blog on how to validate your gtin.

If a product has a GTIN, the value is critical to include because it may increase the number of impressions the product is eligible to receive. For example, if I type a search query like “Google Pixel”, there is no intent for a particular model. I receive the typical list of shopping ads with a mixture of Google Pixel phones. By searching “Google Pixel 4 64gb”, I narrow the search to show intent for a particular model. I get a comparison shopping experience made possible by retailers including the gtin value.

Should your shopping ads appear with a comparison shopping experience, you can build the business with a pricing monitoring tool. It will help you price match competitors to increase volume. Chapter 7 covers such tools and other optimizations.


Required attribute (if identifier_​​exists is set to yes and there is no gtin): mpn. Example: myobreddress12. It is the manufacturer part number issued by the manufacturer.

I typically map Shopify’s SKU value to the mpn. This works well for the review app and review app to get approved for Google’s Product Ratings program, a Merchant Center program discussed at the end of the book.


Required attribute (for apparel and all products in different colours): color. Example: gold/blue. Your product’s color.

Do’s and Don’ts

  • Flatten colours into something a shopper would search for. Instead of using azure, indigo, ultramarine or another shade of blue, simply use blue.
  • The colour in your product data must match the colour on the product landing page.
  • If your boss simply refuses you the option to edit product colours in the store, you still need to use these values in the color attribute. You can use more popular colour terms, like “Red” instead of “Watermelon”, in the product title.
  • If the product has two colours, use the primary colour first then the secondary colour. Separate the colours with a forward slash (/) and no space. You can include up to three colours. For example: red/white/gold.
  • I have two tips for renaming colours in DataFeedWatch. If you have less than 10 colours or a list that will not change, rename them in the feed tool interface. If you have a bulky number of colour shades or your list changes each season, create a rule to rename them with a .txt, .csv, or a Google Sheets file.
  • Don’t use numbers like 8 or alpha-numeric characters like #0088ff.
  • Don’t use non-colour values like see image or multi-color.


Required attribute (if you don’t create, or you want to override, the shipping table inside Merchant Center): shipping. Example: US:NY:Overnight:9.00 USD.

I use the shipping table inside Merchant Center more often than submitting shipping information through the feed. If you don’t use the shipping table or submit shipping in the feed, you will get an error when processing the feed.

If you submit shipping information through the feed, you must include a shipping price while other sub-attributes are optional. For further help, read about shipping.


Required attribute (if you don’t create, or you want to override, the tax settings for the account inside Merchant Center): tax. Example: US:NY:3.00:y.

It can include sub-attributes as in the example where there are four values of country, region, tax rate, and whether tax is in the shipping cost.

Optional But Powerful Attributes for Google Shopping

Google Shopping experts go one step further like other experts do in their profession. Though the Google Shopping feed has optional fields, you should provide them if the data can be gathered.

The optional attributes help Google match search queries to your products. It may also help shoppers in the “Shopping” tab refine the products they’re looking at using extra attributes (like colour and materials) to find exactly what they want.

I will go in-depth on the most important optional fields for Shopify, reveal how I set them up, and what I think about them.

Product Type

Optional attribute: product_type. Example: Dress. A product category determined by you.

You can pick whatever values for product_type unlike google_product_category where Google requires you to match their taxonomy. The attribute has no direct affect on shopping campaign performance. I recommend you set the attribute to the “Product Type” field in Shopify. If a new store we work with has no product types or uses them vaguely, I refer them to the Google taxonomy to come up with a good product type.

The big benefit of using product_type is to segment your ad groups in the shopping campaigns. Products with the same product type often have similar price points, margins, and keyword goals. This helps your bid management and search term analysis.

The second reason I find this “optional” attribute so important is when you use Shopify’s “Product Type” value, it makes selecting the most accurate google_product_category simple. You can use rule-based logic in DataFeedWatch to automate taxonomy based on the “Product Type” in Shopify.

Cost of Goods Sold

Optional attribute: cost_of_goods_sold. Example: 12.00 USD. The cost of providing then selling the product as determined by you.

The cost of goods sold (COGS) attribute needs to be combined with revenue tracking (which we’ll cover later) and cart conversions. This will enable metrics in the Report Editor of Google Ads to see your gross margin and revenue for each product.

Previously in Shopify, we could do this with metafields, but Shopify introduced a cost per item field we can use in DataFeedWatch.

If the cost per item attribute is unavailable in DataFeedWatch, you have an old version of the Shopify app with insufficient permissions. Don’t uninstall then reinstall the app from the Shopify marketplace as that will not work. Uninstall the app from your store then contact DataFeedWatch support to request your shop in their dashboard be put into install mode. You won’t lose any data. This way you can reinstall the app through the DataFeedWatch dashboard.

To setup the COGS field for Google Ads, in DataFeedWatch, map Google’s cost_per_goods_sold attribute to Shopify’s cost_per_item field. Seriously, get the software if you already haven’t.

Sale Price

Optional attribute: sale_price. Example: 45.97 USD. The product’s price when it has been reduced.

Having a product on sale is an advantage in shopping ads. Below we see a jacket by “Rodd & Gunn” that has a price-drop percentage thanks to sale_price:

The price attribute must be used with sale_price. To create an accurate value for the attribute in DataFeedWatch, map sale_price to price if the compare_at_price is not blank, else leave it empty. This way your feed contains a sale price only if a discounted price exists for the product in Shopify.

Promotion ID

Optional attribute: promotion_​​id. Example: june10off. Conveys a “special offer” message in the shopping ad.

The value of the attribute must match the ID in the promotion feed. It is case sensitive, must not contain spaces, and must not use symbols like an exclamation mark (!) or currency symbol ($). You can submit up to 10 promotion IDs per product, but most stores will only have one promotion per product.

You can see below what it looks like for a product to have a promotion. I searched for “down lights led” then found a promotion offered by Reduction Revolution. The coupon showed when I clicked the “Special offer” link:

Google Shopping promotion with promotion ID

You’ll learn you how to setup a promotion and the best practices in a later chapter on Google Shopping Merchant Center programs.

Additional Image Link

Optional attribute: additional_image_link. Example:, Comma-separated URLs of other images of the product.

If you have more than one image available for the product, use them in the additional_image_link attribute for your feed. The attribute has similar requirements as the image_link except you are allowed graphics, illustrations, and product staging. You can include up to 10 additional images within the one additional_image_link attribute. The more imagery you provide, the more information shoppers have to help them buy what they want.

Custom Labels

Optional attribute: custom_​label_​0. Example: sale. Custom labels are an attribute of your choice. Custom labels have no affect on campaign performance and can only be seen by the advertiser managing the campaigns.

You can have up to five custom labels per product using the attributes: custom_​label_​0, custom_​label_​1, custom_​label_​2, custom_​label_​3, and custom_​label_​4. There can only be 1,000 unique values per label. Each custom label can only have one value per product.

The best practice with custom labels is to use each one as a theme, such as to describe the promotion, season, or price range of the product. The label values are optional. If you use custom_​label_​1 for season, its value can be empty for an all-season product.

Here are my ideas for custom labels:

  • Price range. The most common custom label we use is a price range. The data is readily available; unlike profit margins which requires extra data entry. If a product is below $10, it gets a custom_label_0 value of <10. If the price is between $10-29.99, then the value can be 10-29.99. These products can then receive a lower bid than a product labeled 1000-1999.99.
  • Profit margin. Use the label to assign a range in clusters (20-29%, 30-39%, etc.) like what I suggested with the price range. If instead you use exact margins for a large SKU range, you will create unnecessary work for yourself and you won’t make any better decisions because of it. The profit margin is a good label to use with price range.
  • Season. Group products into summer, autumn (or fall), winter, or spring. Great for fashion, sports, and other markets influenced by the time of year. Be conscious of the countries you serve when categorising by season and the need to manage bids based on the differing seasons.
  • Promotions. Describe any specials for a product. Promotion ideas can be: buy one, get one free offer (BOGO); sale; clearance; and the promotion code offered through Google Promotions.
  • Sell-rate. Values can be high, medium, low. Products vary in performance across channels. Something that sells well on Facebook may not on Google because no one is searching for it. Due to this, sell-rate is not a favourite label of mine, but we use a version of it (priority) when a client is desperate to push a product.

All this can be done in bulk and then automated in DataFeedWatch. I hope these custom labels inspire you to effectively segment your products.

Other Attributes

The attributes shared so far are the most important for the most stores. There may be additional attributes to include in your feed depending on what you sell. Below are other attributes in an order of importance for the majority of stores:

  • condition: Choose from new, refurbished, or used.
  • item_group_id: Required when a parent SKU varies by one or more attributes. For example, one product in Shopify has multiple colour variants or sizes. For Shopify stores you want to set this to the ID value, not the variant ID.
  • age_group: Choose from newborn, infant, toddler, kids, or adult.
  • size: Needed for apparel, clothing, and shoes. Example: L. If it’s one size, use OSFA.
  • material: One attribute to distinguish a product for item_group_id. For example, leather.
  • pattern: Another attribute to distinguish products in a set of variants. An example is polka dot.
  • gender: Required for apparel. Use female, male or unisex.
  • adult: If your product contains adult content, this must be set to yes.
  • sale_​​price_​​effective_​​date: The date the sale price launches and must be used in conjunction with the sale_price attribute.
  • availability_date: If your products had a preorder option, this is where you can give information as to when it will be available.
  • expiration_date: Where applicable, you can choose a date that your product will need to stop showing.
  • multipack: You will need to include the number of items sold together where this is needed.
  • is_bundle: If you have a custom bundle, you need this attribute with either a yes or no value.

For more information on attributes, refer to Google’s product data specifications.

Feed Submission

Your feed is built. If you are yet to create a shipping table because you didn’t provide a shipping attribute in the feed, do that now in the “Shipping” section of Merchant Center (refer to the previous chapter for help.) Next you need to submit the feed to Google.

Submit the Feed to Merchant Center

If you use Google Shopping inside the marketing section of Shopify’s admin, you can skip feed submission because it is handled for you with the API.

  1. Inside Google Merchant Center, go to “Products” > “Feeds”. Click the blue “+” button to submit a feed.
  2. The type of feed selected should be “Products”. Put the “Country of Sale” to the primary country you sell to. The language needs to be the same language in your feed, which must be the language of landing pages in the link value. Select “Shopping”.
  3. Enter the name of your feed. Name it anything you want as it’ll appear only to you in the “Products” > “Feeds” section. I suggest you put the URL of your store and the source of your feed. For example, “ DataFeedWatch”. Select “Google Sheets” if your feed is in a Google Sheets otherwise select the most common option of “Scheduled fetch”.
  4. Follow the remaining steps if you selected “Google Sheets”. If you selected “Scheduled fetch”, enter the file name. I like to use the same name of the feed entered in step six. If you use spaces, you need to remove or replace them.
  5. Set the frequency to “Daily” so Google fetches your feed everyday. Pick the same time zone as DataFeedWatch (or whatever feed provider you use), but set the fetch time to 30 minutes after DataFeedWatch downloads your shop (if you forget what this is, login to review the shop settings in the software). By having Google fetch the feed daily 30 minutes after your feed software produces the latest feed, it will have the most up-to-date data to minimize disapprovals that can happen from a bad feed, which you learned at the start of this chapter. Copy-and-paste the URL of your feed and continue.
  6. From “Products” > “Feeds”, click on your newly created feed. Go to “Settings” and set the default currency used on your Shopify store. This needs to be entered here if the currency values are not entered in every price attribute and other currency attributes of the feed.
  7. In the “Processing” section, click “Fetch Now”. If you have under 100 products, Google normally takes 10 seconds. Even with 10,000 products, you shouldn’t have to wait more than one minute. This stage is the first check done automatically by Google. If your feed is setup correctly the first time, you will see no processing errors like so:
Feed submission successful

How to Correct Google Shopping Errors

Errors or warnings are more common than not when first submitting a feed. Don’t worry. The good thing is you can make the changes right now, re-process the feed, and see if the issues are fixed. Review this chapter and you will not have any data issues.

Read the error message for your first clue of what to fix. Also look at the number of products the error or warning applies to. If the message applies to all products, the issue is likely a general configuration with your feed that affects every product. If the message applies to a percentage of products, look at the message and the commonality between products to diagnose what’s going on.

You can also review the “List” section then click-through to individual items for a clear view of all the values. See what values are submitted in the feed, spreadsheet, or API then view the “Final attributes” to review what Google sees as the final value:

Most warnings like “Text too short [description]” and “Incorrect value [identifier exists]” should be corrected by reviewing what products have the warnings then following this chapter for best practice.

Once you correct early data issues, Google’s team will manually review the feed within three business days. This is the second review. The diagnostics in Merchant Center will show the products under review. In the rare case your products are pending after three business days, contact Google’s item error team for support.

If your products were disapproved, review the reason for their disapproval. Common reasons I see are “Violation of Shopping ads policy” and “Invalid value [gtin]”. Use the reason to find out what is going on, look at the final attributes of the products to see where is the problem, then review this chapter to make educated changes.

Some products will be setup perfect and get automatically declined. If products are declined you should follow these steps to get a manual review:

  1. In the “List” section of the “Products” page, click on the title of the item to view that particular item page. It may help to filter by disapproved products.
  2. Under “Item status”, click “Request review”.
  3. Review the policies related to your item disapproval, and then check the box that acknowledges that you reviewed the information. I had a fishing rod client have all his tan-coloured products declined for “Partial nudity in personalized advertising”. You can figure for yourself why Google thought that. The two most common reasons I see are “Forbidden pharmaceuticals or products making misleading claims” and “Partial nudity in personalized advertising”.
  4. Select “Request manual review.”

Should you have hundreds or thousands of products requiring a manual review, I’m sorry to say you’ll have to submit each one-by-one. If a product has the status of “Disapproved or invalid” and no option to request review, unfortunately that ID cannot be used in Google Shopping. It has been completely disapproved.

Disapproved product

The only way to address such an automatic disapproval is to setup a new ID for the declined product then change feed values that you suspect are problematic. It is a long-game of trial-and-error. I recommend you use a description that is one basic sentence with no risky keywords (related to prohibited or restricted content) to minimize disapproval-potential. Even if you reach out to Google support, they will not tell you what to correct other than to re-do the whole description and hope.

If you’ve done everything described in this chapter, but you’re still getting errors and warnings, you have two last options. Reach out to Google support or work with an expert to handle all your Google Ads for you.

Should all your products get the glorious approved green in the diagnostics section of Merchant Center, you are ready to use them in Google Ads. Good job! You don’t have to wait for all products to be approved, though it’s a good idea to get as many live as possible to increase opportunities to drive sales.

Phew. That was a lot of technical information to understand Google’s shopping feed technology. The feed is one of the most important parts to optimise for your shopping campaigns so it is worth knowing the nuts and bolts.

As you can tell, I am a big fan of DataFeedWatch because of the customisation it allows and time it saves. I encourage you to sign-up for free to give it a whirl.

Everything is now ready to create an optimal Google Shopping campaign. The campaign is quick to setup once you have a good feed.

Get the Google Shopping for Shopify Infographic

This whole chapter has been turned into an infographic! And it’s now yours to easily reference how you can optimise your Google Shopping feed.

Download It

Right-click the original, full-size image link here then save it to your computer. If you do Google Ads for a living, may I suggest you get it professionally printed and hang it in your office.

Embed It

You are welcome to share the infographic on your website, blog, or elsewhere online. Here is the embed code for you to copy-and-paste:

Google Shopping for Shopify Infographic 1
Google Shopping for Shopify Infographic part 2

Share It

About the Author

Joshua Uebergang
Joshua Uebergang is owner and Head of Strategy of certified Shopify Marketing Expert company Digital Darts. He helps Shopify stores rapidly get more visitors and profit. At 6’9″, he plays basketball. To save your store from wasted ad spend and tap into growth opportunities, you can claim your free Google Ads audit. See the Digital Darts Google Ads service for Shopify. You can also contact us if you’re interested in working with a Google Partner and Shopify Expert on your Google Ads.