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 Manage a Shopify Google Shopping Feed That Stands Out

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 Merchant Center feed.

This chapter teaches you everything you need to set up then optimise your Google Shopping or Performance Max feed in Shopify. As a Shopify Expert since 2015 and Google Ads veteran since 2009, 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 to fill the feed with 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 categorised 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”. As long as your bid is high enough and your campaign settings are correct, an optimised feed ensures your red running shoes appear in their search. All but one shopping ad is relevant to the search:

Search query of red running shoes in Google Shopping

Getting each product in your store to appear for its maximum number of relevant searches can skyrocket your total impressions. Then with more impressions, you can bid less to get the same reach and conversions. Once you provide complete data that is accurate, you may also boost the click-through-rate because you match the product to the search query.

What Makes a Bad Feed?

You know the need to have a fully optimised feed. Let’s explore the dark side of Google Shopping or listing groups in Performance Max. 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. Most customers will shop elsewhere after seeing the product that drew their attention is out of stock. You’ve just wasted money on a click that will convert far worse than another product in 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 set up 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. The first strategy is preventative: read this chapter so you know the specifications of a strong Shopify Google Shopping feed. The second strategy is reactive: as issues arise work through the diagnostics inside Merchant Center to fix the errors or warnings.

Inaccurate Pricing

The wrong prices in your Google Shopping feed will get your products 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 website then shop elsewhere. What’s worse is you waste money on 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 changes 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 during moments like 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. I searched for jumpers during winter time in Australia and found this eye-freezing example of irrelevancy:

Search query with funny irrelevant shopping ad

That jumper is not warm enough 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 the content of a product, like title and description, heavily influences their purchase decision. Since Google Shopping and Performance Max 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. One being to use keywords in the product title. The best keyword research can be done by downloading the search terms report from search campaigns to see the exact queries people use in search. 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 like: Title + Type + Format + Author. I’ll give you recommended formats for products in other industries and further optimisation tips soon.

Google Shopping feed mistakes

The Best Three Ways to Keep Your Shopify Google Shopping Feed Healthy

To run successful shopping campaigns, you need to continually fill the feed with up-to-date information. You don’t want to spend the time adding a new product to your feed every time one is released. 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 the most time-consuming task of Google Ads. You could spend hours every week to create the data then check it is accurate. Feed management 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 catalog feed‚ÄĒthat is only the setup with no optimizations.

You need to be optimising your feed to get more clicks and boost the return of campaigns. Software solutions can help you optimise titles, and more, with recommended structures. There are three options I 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 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
Google Shopping feed spreadsheet
A spreadsheet detailing how to set up your product feed. You can make a copy for your use.

A Google Sheet is better in every way compared to a spreadsheet in offline software. 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 that you manage together.

2. Google Channel App on Shopify

The Google channel app on Shopify has changed a lot over the years. 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 technical skills to manage and optimise feeds.

One feature of the channel is you can create Performance Max campaigns. This uses Google’s machine learning to acquire customers across the whole ad network.

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

Other downsides of the channel is you cannot advertise variants, are limited in field customizations, and cannot enter information in all fields such as material which is critical for feed optimisation. Store owners who have over 100 SKUs find the usability of the interface difficult.

3. DataFeedWatch

The spreadsheet and Google channel solutions can suit small feeds and business owners who have low technical understanding that 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 any feed 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, 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 from your feed until you have more of these colours. This saves you from trawling through feeds or stopping ads altogether for the product. Another example. If you sell shirts in five sizes and only one size is in stock, the Google channel will continue to advertise it, but conversions on the product page always plummet in such cases of low inventory. 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 are 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 sheet, adding a suffix to titles, and split-testing titles. DataFeedWatch pulls all product data directly from Shopify, meaning you avoid code and avoid manually updating the feed each time there is a change to product data.

Whatever feed service you use, there are feed attributes you must include, attributes you should use, and attributes you can ignore. The feed is one of the most important parts to optimise for your shopping campaigns so it is worth knowing the nuts and bolts.

The Most Important Attributes for a Google Shopping Feed

Google requires some attributes in the feed to run shopping ads. Skip this data to guarantee your products never run in ads.

Most required fields are displayed to shoppers 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 set up 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 SKU for the ID as it can be clear at face value what product the value refers to, which can make it easier to work with disapprovals.

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 stop selling a 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.
  • Keep the title length to under 150 characters.
  • Do not use promotional text such as “free delivery”, exclamation points, or unnecessary capital letters.
  • Avoid 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. Its 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 key information early in your description¬†even though it can have up to 5,000 characters.
  • Use keywords in your description that your customers are likely to search to find the product. The SEO of a product page is also better when the Shopify product description contains keywords.
  • 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 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 Merchant Center is, but your Product URL is, Google will disapprove your products. Claim your shop’s domain in Merchant Center then set up 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 a halogen, 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.
  • 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. Sometimes you will get a disapproval for several days before Google crawls an image. This will auto-correct within the week. A Shopify website will only have issues when foolish robots.txt customizations block Google from crawling images.
  • 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 size of at least 100x100px for non-apparel products and 250x250px for apparel products. If your product images are close to this size, you need 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), WebP (.webp), 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.
  • Don’t use placeholder images.


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

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 Rich Results Test tells you what markup is on your product pages. If you want the feature or run into markup errors, use our structured data template for Shopify stores.
  • Use the availability_date attribute when availability is set to preorder or backorder.
  • If you stop 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 the Google channel app or DataFeedWatch.


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

Do’s and Don’ts

  • The price in the feed must 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.”
  • Exclude tax in the price for US and Canada. Include VAT or GST in the price for all other countries.
  • In DataFeedWatch, map price to compare_at_price if the value is not blank, else rename to price. This way the sale price in Shopify will show in Google Shopping ads as a discounted price to boost clicks from 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).


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 (when 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 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 7 pro”, 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 by monitoring prices. An accurate report will help you price-match competitors to increase sales volume. Chapter 7 covers such tools and 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 colour.

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, use blue.
  • The colour in your product data must match the colour on the product landing page.
  • If bureaucracy stops you from being able 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.
  • Don’t refer to the product or image like “see image”.


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 the shipping country and price. 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 with four values of country, region, tax rate, and whether tax is in the shipping cost.

Optional But Powerful Attributes for a Google Shopping Feed

Google Shopping experts go one step further like other experts do in their profession. Optional fields boost accuracy, impressions, and sales.

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.

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. Do not confuse it 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 ever run into one error using the US taxonomy for another English-speaking country.
  • Select the most specific category. 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.
  • Submit gift cards to Arts & Entertainment > Party & Celebration > Gift Giving > Gift Cards & Certificates.
  • Do not use more than one category.

The time 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.

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. 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 shopping campaigns or asset groups in Performance Max 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.

Product Highlight

Optional attribute: product_highlight. Example: Made from 100% smooth silk in the United States. Lets you answer the most common questions or spoon-feed shoppers with the most important product features in easily digestible bullet points. The most overlooked shopping attribute.

  • Get your copywriting chops on to sell the product. Write potent bullet points that summarise benefits of the product.
  • Describe the product, not the store or other products.
  • Include 2 to 100 product_highlight attributes per product.
  • Maximum of 150 characters per highlight.
  • Do not include discount amounts, sale periods, or other time-related information.
  • Do not capitalise letters for emphasis.

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 must be combined with revenue tracking 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, you could do this with metafields, but Shopify introduced a cost per item field that you 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 set up 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.

You get an advantage in shopping ads when a product is on sale. Below you can see jackets by Superdry AU, rebel, and RVCA Australia that have a price-drop percentage strikethrough plus the “Sale” badge, thanks to sale_price:

Google Shopping sale price drop strikethrough

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 “led downlights” then found a promotion offered by Designer Chandelier Australia. The coupon showed when I clicked the code link:

Google Shopping promotion example with promotion ID

You’ll learn how to set up a promotion and the best practices in a later chapter “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 effect 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 have only 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 require 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 labelled 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, you won’t make any better decisions because of it, and you may exceed the cap of 1,000 unique values. The profit margin is a good label to use with a price range label.
  • 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’s 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 searches for it. Due to this, sell-rate is not my favourite label. At Digital Darts we use “priority” when a client is desperate to push a product.

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

Other Google Shopping Feed Attributes

The attributes shared so far are the most important for most stores. There may be additional attributes to include in your Google Shopping 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 (0-3 months old), infant (3-12 months old), toddler (1-5 years old), kids (5-13 years old), or adult (13+ years old).
  • size: Needed for apparel, clothing, and shoes. Example: L. If it’s one size, use OS (one size), OSFA (one size fits all), or OSFM (one size fits most).
  • material: One attribute to distinguish a product for item_group_id. For example, leather. Secondary or tertiary materials can be added. They are separated by a forward slash like leather/cotton/nylon.
  • 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. The default value is no.
  • sale_‚Äč‚Äčprice_‚Äč‚Äčeffective_‚Äč‚Äčdate: The date the sale price launches and must be used in conjunction with the sale_price attribute. Example format 2023-04-24T11:08+0100 / 2023-04-29T23:08+0100.
  • 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.
  • lifestyle_image_link: A URL of a lifestyle image. Appears on browsy surfaces like Discovery Ads.
  • short_title: A title of 150 characters maximum. Appears on browsy surfaces like Discovery Ads.
  • pause: A way to quickly pause the product in all shopping, display, and local inventory ads. Accepts the value ads.

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

Your feed is built with rich data. The titles may not be perfect and other attributes need a polish, but you know what to fix and how to fix it. Feeds are never perfected the first time.

Feed Submission

Once you’ve got the required attributes ready in a feed, you can now submit the product information to Google. If you use the Google channel app inside Shopify, you can skip feed submission because it is handled for you with the Content API.

Submit the Feed to Google Merchant Center

  1. Inside Google Merchant Center, go to “Products” > “Feeds”. Click the blue “+” button to submit a feed.
  2. Add the target countries you ship to and plan on targeting in a Google Shopping or Performance Max campaign.
  3. Once you select a country, choose the language in your feed, which must be the language of landing pages in the link value.
  4. Ignore the feed label unless you plan on creating feeds for various countries.
  5. Select “Display ads”, “Free listings”, and “Shopping ads”.
  6. 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”. If your feed is in a Google Sheets, click “Google Sheets” otherwise click the most common option of “Scheduled fetch”.
  7. 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.
  8. 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 minimise disapprovals that can happen from a bad feed. Copy-and-paste the URL of your feed to continue.
  9. From “Products” > “Feeds”, click on your newly created feed. Go to “Settings”. 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.
  10. 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 is the first automatic check by Google to verify that all products have the required attributes. If your feed is correctly setup the first time, you will see no processing errors like so:
How to submit Google Merchant Center feed for success

How to Fix Google Shopping Errors Guaranteed

Once your feed is submitted, the diagnostics section of Merchant Center may show errors or warnings. These are common 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.

Go to “Products” then “Diagnostics”. Read the error message for your first clue of what to fix.

Google Merchant Center errors and warnings

Cross-check the error against the attribute specifications in this chapter. You will also find it helpful to see the number of products the error or warning applies to. If the message applies to all products, the issue is likely to be 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.

Another diagnostic tactic that works wonders is to click-through to a product details page in Merchant Center. Down the bottom will be final attributes, raw feed attributes, and information found on your site. See what values are used for each attribute to locate the source of the data issue:

Final attributes in Google Merchant Center

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”, “Invalid value [gtin]”, and “Incorrect value [identifier exists]”. Use the reason to find out what is going on, look at the final attributes of the products to see where the problem is, then review this chapter to make educated changes.

Some products will be set up perfectly yet get automatically declined. If products are inaccurately declined, follow these steps to get a manual review:

  1. From the “Products” page in Merchant Center, filter by disapproved products. Click the title of the product you want to fix.
  2. Under “Item status”, click “Request review”.
Request review GMC
  1. 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 three most common reasons I see are: “Forbidden pharmaceuticals or products making misleading claims”, “Health in personalized advertising”, and “Partial nudity in personalized advertising”.
  2. Select “Request manual review.”
  3. Repeat for each disapproved product. Each product needs to be re-submitted one-by-one even when you have hundreds that require a manual review.

If a product has the status of “Disapproved or invalid” with no option to request review, it has been definitively disapproved. The ID cannot be used in Google Shopping.

The only way to address such an automatic disapproval is to set up 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. Use a description that is one basic sentence with no risky keywords (related to prohibited or restricted content) to minimise the chance of disapproval. Even if you reach out to Google support, they will not tell you what to correct other than to re-do the whole description then 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 for item errors 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.

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

Everything is now ready to create an optimal Google Shopping or Performance Max campaign. A profitable campaign is quick to set up once you have a good feed.

Google Shopping Feed FAQ

  1. Create a feed in Google Merchant Center.
  2. Enable “Free listings” and “Shopping ads” under destinations.
  3. Configure your Merchant Center settings of shipping, taxes, returns, and branding.
  4. Wait for products to be approved.
  5. Benefit from free listings or create a shopping campaign in Google Ads.

Google Shopping works beautifully with Shopify. Use a third-party software tool like DataFeedWatch or the Google channel in Shopify to sync your products into Merchant Center. You can then run a Google Shopping campaign.

  1. Create a Google Merchant Center account.
  2. Install the Google channel app.
  3. Complete the Google channel checklist.
  4. Review product data to correct errors or warnings.

This is the quickest way to setup a Google feed in Shopify.

Google Shopping has free listings in the Shopping tab, Google Search, Google Images, YouTube, and Google Lens. Participating retailers can have their product information display across Google properties.

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 Shopify 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 then 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.