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.

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 “Needs attention” tab 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 do 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 are limited in field customizations which is critical for feed optimisation. It advertises your variants, but a title or description can only be what is on the product or in its search engine listing. Extra information like the age group, gender, and Google product category is entered product by product or in the bulk editor because the app has no rules to fill it in. Store owners who have over 100 SKUs find the usability of the interface difficult.

3. FeedShine

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 rewrite your titles, or want to customise a field in your feed for optimal profit, FeedShine will be better for you. You can customise the fields in any feed to help your store grow each month.

FeedShine is my number one choice when it comes to managing and optimising feeds. I am biased because we built it at Digital Darts with the skills from 10 years of growing client shopping campaigns. One app creates your feeds for Google, Meta, Microsoft, Pinterest, TikTok, and more.

Challenges like stock levels among variants are managed for you. Let’s say you sell heeled boots in a variety of colours but some colours are out of stock. FeedShine sends every variant as its own item with its own availability, so only the colours you can sell are advertised as in stock. If you would rather pull the sold out colours from your feed until you have more of them, switch off “Include out-of-stock products” in the “Metadata” tab of the feed. This saves you from trawling through feeds or stopping ads altogether for the product.

Connect Google Search Console and FeedShine lists the products whose top search query is missing from the title, highest impressions first. You can rewrite the titles yourself or have your AI assistant suggest the changes. Nothing changes in your feed until you approve it.

There are a lot of neat adjustments you can make to your feed in FeedShine, like excluding products from one feed or all of them, adding a suffix to titles, renaming values with a table, and overriding fields on a single product. A preview shows exactly what Google will receive. FeedShine 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. It is free for up to 10 products. Customising fields needs a paid plan, and every paid plan starts with a free trial.

The best Google Shopping apps for Shopify

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.

ID

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

FeedShine sets the id in the same format as the Google channel app, like shopify_AU_812345_43210. That is your target country, product ID, then variant ID, which are always available and unique for every product. If you move over from the Google channel app, the ID stays the same so your products keep their history in Merchant Center. You can switch the format in the “Basic” tab of your feed before you submit it. The variant ID on its own, or the product ID with the variant ID, stays the same in every country you sell to. 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.

Title

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. The “Optimization” page in FeedShine does the matching with data from Google Search Console. It lists the products whose top search query is missing from the title.
  • 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. In FeedShine, choose “Combine fields” to join the product title with its variant options.
  • 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:

Description

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;. FeedShine strips the HTML from your Shopify description and escapes these characters.
  • 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 a custom expression in FeedShine:

{{ product.title }} by {{ product.vendor }}. Comes in size {{ variant.option.Size }} and colour {{ variant.option.Color }}.

Tips for modifying the description like this:

  1. If you only need to join fields, choose “Combine fields” then use a space as the separator to stop multiple attributes combining into one word. Empty values are skipped.
  2. In FeedShine you can check how your description will appear in the preview on the page of your feed. It reloads each time you save to show exactly what Google will receive.
  3. Other attributes you can add to create better descriptions include materials, special features, technical specifications, and patterns.

Link

Required attribute: link. Example: https://yourstore.com/products/womens-red-dress. 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 mydomain.com, but your Product URL is mydomain.myshopify.com, Google will disapprove your products. Claim your shop’s domain in Merchant Center then set up your feed to use these links rather than mydomain.myshopify.com. FeedShine builds every link from the primary domain of your store so there is nothing to replace.
  • Start with https. All Shopify stores use the protocol.
  • 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. FeedShine adds the variant to every link, like https://yourstore.com/products/womens-red-dress?variant=43210.
  • Avoid redirects where possible as it can slow down the feed.

Required attribute: image_link. Example: https://cdn.shopify.com/s/files/1/1360/1125/products/red_dress_2000x.jpg. 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. Image URLs pulled from Shopify already do. FeedShine uses the image of the variant when it has one, else the main image of the product.
  • Use an image size of at least 500x500px. Google is lifting the minimum from 100x100px for non-apparel products and 250x250px for apparel products, then enforces it from 31 January 2027. 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.

Availability

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. FeedShine handles this automatically. A variant with stock, or with inventory tracking turned off, is in stock. A variant with no stock that continues selling is backorder. Everything else is out of stock.
  • 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 FeedShine.

Price

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. FeedShine formats every price this way, like 59.00 USD.
  • 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.
  • When a product is on sale in Shopify, the price needs to be the compare-at price and the sale_price needs to be the price. FeedShine does this for you whenever the compare-at price is higher than the 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).

Brand

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

FeedShine sets the brand attribute to equal the vendor in Shopify. If you are the manufacturer, you can put your store name. If your vendors are suppliers, use a table in the app to replace each supplier with the brand shoppers know.

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. FeedShine sets the attribute to no only when a product has no GTIN and no brand with an MPN.

GTIN

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. FeedShine takes the GTIN from the barcode in Shopify and tests its check digit before sending it, so most junk barcodes never reach Google. If you’re struggling to verify the correct value, see the FeedShine guide to GTINs for Google Shopping.

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.

MPN

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, which FeedShine does by default. This works well for the Stamped.io review app and Judge.me review app to get approved for Google’s Product Ratings program, a Merchant Center program discussed at the end of the book.

Color

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 FeedShine. If you have a short list of colours that will not change, choose “Replace values with a table” then add a row for each shade, like azure to blue. If you have a bulky number of colour shades or your list changes each season, add a rule that sends blue only if the colour contains blue. New shades like sky blue are then renamed without you touching the feed.
  • 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”.

Shipping

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.

Tax

Retired attribute: tax. Google stopped asking for US sales tax on 1 July 2025, both in the feed and in the tax settings of Merchant Center.

You can remove tax and tax_category from your feed if you still submit them. FeedShine never sends them. Tax now only matters inside your price. Leave it out of the price for the US and Canada, then include VAT or GST in the price for all other countries.

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 rules in FeedShine to quickly categorise all products. To do so, open the “Identifiers” tab of your feed then go to “Google product category”:
    1. Choose “Set a fixed value” then enter the category that suits most of your products. This is your default category.
    2. Click “Add rule”. Set the rule to apply only if the “Product type” is one of your product types, like Dresses.
    3. Enter the category the rule sends. 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.
    4. Repeat for your other product types. If you have more than a handful, choose “Replace values with a table” to list each product type beside its category.
  • 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 FeedShine, a second benefit of doing this attribute is you can save the rule as a master field so your feeds for Meta, Microsoft Advertising, and Criteo use it too 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 rules in FeedShine 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 FeedShine reads.

There is nothing to set up for the COGS field in FeedShine. The app sends the “Cost per item” from Shopify as the cost_of_goods_sold attribute for every variant where you have entered a cost. Seriously, get the app 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. FeedShine creates an accurate value for the attribute on its own. It sets sale_price to the price in Shopify when the compare-at price is higher, else leaves 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: https://cdn.shopify.com/s/files/1/1360/1125/products/red_dress_side_2000x.jpg, https://cdn.shopify.com/s/files/1/1360/1125/products/red_dress_back_2000x.jpg. 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. FeedShine sends the other images of your product, up to the limit of 10. 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 FeedShine with rules in the “Label” tab. For a price range, add a rule that sends <10 only if the price is less than 10, then add a rule for each range above it. The first rule that matches a product wins. If you want to keep the Google channel app as your main feed, FeedShine can create a supplemental feed that adds custom labels to the products the channel already syncs. 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:

  • adult: If your product contains adult content, this must be set to yes. The default value is no.
  • 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).
  • auto_pricing_min_price. This field is used for the automated discounts feature. It sets the lowest price you want Google to set for the product.
  • availability_date: If your products had a preorder option, this is where you can give information as to when it will be available.
  • certification: This is required for some products like fridges and televisions to meet local energy efficiency labeling regulations.
  • condition: Choose from new, refurbished, or used.
  • expiration_date: Where applicable, you can choose a date that your product will need to stop showing.
  • gender: Required for apparel. Use female, male or unisex.
  • is_bundle: If you have a custom bundle, you need this attribute with either a yes or no value.
  • 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. FeedShine sets it on every product with more than one variant.
  • lifestyle_image_link: A URL of a lifestyle image. Appears on browsy surfaces like Demand Gen campaigns.
  • 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.
  • mobile_link: A mobile version of the product. It has the same requirements as link. Since all Shopify themes are responsive, you never use this.
  • multipack: You will need to include the number of items sold together where this is needed.
  • pattern: Another attribute to distinguish products in a set of variants. An example is polka dot.
  • pause: A way to quickly pause the product in all shopping, display, and local inventory ads. Accepts the value ads.
  • 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.
  • 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).
  • size_type: For apparel products. Supported values are regular, petite, maternity, big, tall, and plus. If nothing is submitted, regular is used.
  • size_system: For apparel products. Accepted values are like US and AU. If no value is submitted, your target country is used.
  • short_title: A title of 150 characters maximum. Appears on browsy surfaces like Demand Gen campaigns.
  • virtual_model_link: An additional link to show a 3D model of your product. Use a .gltf or .glb file.

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. FeedShine can handle it for you too. Connect your Google account in the app, pick your Merchant Center account, then click “Register feed in Merchant Center”. The app creates the feed in Merchant Center with a daily fetch then asks Google to fetch it again after every update.

Submit the Feed to Google Merchant Center

Follow these steps if your feed is in a Google Sheet or you would rather add the feed yourself.

  1. Inside Google Merchant Center, click “Settings” in the left menu then “Data sources”.
  2. Click “Add product source”. If your feed is in a Google Sheet, select “Use Google Sheets” then follow the prompts. Otherwise select “Add products from a file”.
  3. Choose “Enter a link to your file” then copy-and-paste the URL of your feed. The link must point directly to the feed file.
  4. Click “Edit schedule” so Google fetches your feed everyday. Pick the same time zone as your store, but set the fetch time to an hour after your feed software refreshes the feed. FeedShine shows its daily refresh time under “Feed delivery” when you open a feed. By having Google fetch the feed daily 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.
  5. If your feed has a password, click “Add authentication information” to enter it. Click “Continue”.
  6. Add the target countries you ship to and plan on targeting in a Google Shopping or Performance Max campaign.
  7. Choose the language in your feed, which must be the language of landing pages in the link value. You cannot change the language once the data source is created.
  8. Ignore the feed label unless you plan on creating feeds for various countries. It only shows if you turned on the “Advanced data source management” add-on.
  9. Select “Free listings” and “Shopping ads” as your marketing methods. Select “Dynamic remarketing” as well if it shows and you run remarketing ads.
  10. Enter the name of your data source. Name it anything you want as it’ll appear only to you in the “Data sources” section. I suggest you put the URL of your store and the source of your feed. For example, “YourStore.com FeedShine”. Click “Continue”.
  11. Click the name of your newly created data source to open its “Latest update” tab. 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 issues found” like so:
How to submit Google Merchant Center feed for success

How to Fix Google Shopping Errors Guaranteed

Once your feed is submitted, the “Needs attention” tab 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, click “Update” beside the data source to fetch the feed again, and see if the issues are fixed.

Go to “Products” then the “Needs attention” tab. Read the issue for your first clue of what to fix.

Needs attention tab in Google Merchant Center

Cross-check the issue against the attribute specifications in this chapter. You will also find it helpful to see the number of products the issue applies to. Click “View products” to list them. 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.

If you use FeedShine with your Google account connected, the “Optimization” page in the app pulls the issues from Merchant Center every night. It lists the affected products with the reason, worst first, then links to the setting in your feed that fixes each one.

Another diagnostic tactic that works wonders is to click-through to a product details page in Merchant Center. Open “Additional details” to find the raw data source attributes that came from your feed. See what values are used for each attribute to locate the source of the data issue:

Raw data source 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 reviews your products. This is the second review. It can take up to five business days for Shopping ads and a few weeks for free listings. The “Products” page will show the products with a status of “Under review”. In the rare case your products stay under review for longer, request a review in Merchant Center or contact Google 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 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, go to the “Needs attention” tab. Find the product you want to fix in the table of “All products that need attention”.
  2. Under the “Status” column, click “Fix” to open the product details page.
Request review GMC
  1. Under “What needs attention”, click “I disagree with the issue” then give your reason for the appeal. 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 review”. The review can take up to seven business days.
  3. Repeat for each disapproved product. You may only get one chance to disagree with an issue, so read the policy before you ask. Some issues let you request the review from the issue itself. Click the issue card in the “Needs attention” tab to check.

If a product has the status of “Not approved” with no option to request review, check the “Needs attention” tab for a cool down period. The button is greyed out until the date shown. If there is no cool down, 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” status in 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 FeedShine because of the time it saves and the ability it gives to customise your feed. I encourage you to install it 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

How do I get on Google Shopping?

  1. Add your product feed to Google Merchant Center as a data source.
  2. Select “Free listings” and “Shopping ads” as the marketing methods.
  3. Configure your Merchant Center settings of shipping, returns, and branding.
  4. Wait for products to be approved.
  5. Benefit from free listings or create a shopping campaign in Google Ads.

Does Google Shopping work with Shopify?

Google Shopping works beautifully with Shopify. Use a feed app like FeedShine or the Google channel in Shopify to sync your products into Merchant Center. You can then run a Google Shopping campaign.

How do I add a Google feed to my Shopify?

  1. Create a Google Merchant Center account.
  2. Install the FeedShine app then create your feed.
  3. Connect your Google account in the app to register the feed in Merchant Center.
  4. Review product data to correct errors or warnings.

FeedShine creates a working feed from smart defaults, so there are no fields you must fill in first. The Google channel app is another quick way to setup a Google feed in Shopify.

Is Google Shopping free?

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.