Google Shopping for Shopify:
The Definitive Guide
by Joshua Uebergang of Digital Darts
by Joshua Uebergang of Digital Darts
Advertising is totally unnecessary. Unless you hope to make money.
Jef I. Richards, Professor of the Department of Advertising and Public Relations at Michigan State University
The shopping feed is optimised, you continually work on bids plus bid adjustments, and you manage the structure of campaigns. How can you further optimise your Google Shopping or Performance Max campaigns? The answer is with Google Merchant programs that include product reviews and free listings, to drive further sales.
There are strategies to squeeze even more sales out of Google Shopping by applying for Merchant Center programs. The programs give retailers more value for shopping ads. Not all are relevant to all stores, but they often boost conversions so it is wise to implement what you can for your store.
You can apply for each program by clicking “Growth” in the left navigation of Merchant Center. Click “Manage programs” or “Manage programmes” then enable the program you wish to participate in. Some will instantly enable while others require an application form.
Google Shopping ads let you promote products across Google and partner websites. A feed is submitted to Merchant Center containing product information such as price, title, and an image.
You can get started with Google Shopping ads by clicking “Shopping ads setup” from the cog icon in Merchant Center. Run through the setup of Merchant Center by doing the tax configuration, shipping policies, verifying your website, providing business information, submitting products in a feed, then linking your Google Ads account.
Showcase your products on Google without paying a pretty penny. Free product listings let shoppers see products from your store across Google properties like Google search, Google images, Google Shopping, and Google Lens.
In the screenshot below, the first row is paid shopping ads. The second row is free product listings.
Free product listings do not replace shopping ads since the paid ads get far more visibility and sales volume.
Every Shopify merchant needs to be on this program since it costs nothing and takes little effort to set up. Once we set this up for Google Ads clients, most get an easy 1% of total store sales through this channel.
The set up for free product listings is the easiest of all Merchant Center programs to configure. Enable “Free product listings” from Merchant Center by clicking “Growth” then “Manage Programs”. Once you follow Google’s guidelines, your free listing status will be marked as “Active”.
If you use the Google channel app in Shopify and haven’t followed anything in this book on Google Shopping, you can follow Shopify’s tutorial that contains a detailed PDF to get going.
Not to be confused with the “Product Ratings” merchant program that focuses on product reviews, Google Customer Reviews let customers review their purchase experience. The ratings are different from product reviews in that they are about the store as a whole.
A pop-up is presented to customers on the order confirmation asking if they wish to receive a survey via email after their order has been delivered. The review email asks for a 1-5 star rating followed by a request for comments to inform other shoppers.
One unique benefit to Google Customer Reviews is the review widget that is able to be placed across any page of a store. Few merchants today use this feature.
The real benefit comes in the form of seller ratings. Customer reviews fuel seller ratings that appear in shopping and search ads. A seller rating can show up as a percentage rating such as “86% positive”, or as a 1-5 star rating alongside the number of reviews, in ads.
A store’s seller rating changes over time. This is partly attributed to customers leaving new ratings and partly Google tweaking the ratings feature to exclude irrelevant or incorrect ratings.
According to Google, seller ratings can be collated from the following sources:
Your goal is to benefit from seller ratings, not necessarily use Google Customer Reviews. For seller ratings to function, you must have 100 reviews through a partner platform and be in an eligible country.
The most popular way to get setup with seller ratings in Shopify is to follow my tutorial on implementing Google Customer Reviews. A second way is using your own review system, like Yotpo, which is compatible with the program.
Google Product Ratings show an aggregated 1-5 star rating for the advertised product. The program is different to seller ratings in that it applies to individual products rather than the whole store. Our client Etrnl uses the program. You can see how much an ad stands out for “wedding rings” because they have 5-yellow stars and 93 reviews.
A store with Product Ratings can grab the searcher’s attention. Likewise, a product with no ratings among a slew of products who do have ratings, will struggle to attract the click.
Curious as to its effect on shopping ad performance, at Digital Darts we implemented Product Ratings for a client that had over 500 reviews across a SKU range slightly larger. Most SKUs did not have a review. After 30 days, the click-through rate increased 6% and transactions through shopping ads were slightly higher.
Product Ratings are available in any country that has Google Shopping. The store needs at least 50 product reviews to be approved in the application. When approved and everything is set up right, Product Ratings will show when a product has three or more reviews.
My recommended app for product reviews that integrates with the Product Ratings program is Judge.me. Its features are comprehensive at an affordable price. Other review apps that we’ve successfully got Product Ratings set up on, are Stamped.io reviews, Yotpo, and Loox.
Most review apps will provide you with an XML feed to upload to Merchant Center as well as an additional support page or staff to get you setup. I have found Google’s support team, who you’ll hear from when applying to the program, excellent in helping you get set up on Product Ratings. The setup with Yotpo is a little different as you enable the feature inside their app for it to work. (That’s what you get when you pay five-figures a year for the software.)
You can inspect the “Product reviews” section in Merchant Center to see what reviews do not have the green “Ready to serve” status. Any that have a yellow or red status need your attention. The most common reason for product reviews having a yellow or red status, is the shopping and Product Ratings feed do not include a strong identifier of either the gtin
or mpn
attribute.
After you look at products in a store, how often do you see ads from that website following you around the web? It happens often because it is profitable.
Google’s dynamic remarketing program allows advertisers to show products that someone viewed or may be interested in. Google fills the ad space with the most recent items a user has viewed. To give you an example, I was looking at a product called the “DJI Mavic Pro Drone” on Kogan.com. I have zero interest in drones, but alas, work beckons me for your benefit. I then jumped back to Google search to get tips on picking a good drone. This lead me to read a Drone buying guide where dynamic remarketing ads displayed at the bottom:
The dynamic remarketing ad is a flexible format. Its appearance depends on the website, the ad location, and what Google thinks will perform best.
To create dynamic remarketing ads for a Shopify, follow three steps:
What I’ll cover is the remarketing code as well as best practices to profit from dynamic remarketing.
In your Shopify theme, go to the “Snippets” folder then create a file named dynamic-remarketing.liquid
. Copy-and-paste the following code:
<!-- START Google Ads dynamic remarketing by DigitalDarts.com.au v1.6 --> {% assign AW-ID = "AW-GOOGLE_CONVERSION_ID" -%}{%- comment -%}Google Ads conversion ID.{%- endcomment -%} {%- assign product-id = "product-id_variant-id" -%}{%- comment -%}The format of the product IDs in the feed. 3 accepted values "sku" (SKU of the variant e.g. aga-012), "variant-id" (variant ID e.g. 21283160948841), or "product-id_variant-id" (product ID underscore then variant ID e.g. 28541777444969_21283160948841).{%- endcomment -%} {%- assign product-id-prefix = "shopify_AU_" -%}{%- comment -%}Prefix to product-id. Leave blank if there's no prefix. This is likely needed if product-id_variant-id is selected so 28541777444969_21283160948841 becomes shopify_AU_28541777444969_21283160948841.{%- endcomment -%} {%- assign price-decimal-fs = true -%}{%- comment -%}If the decimal separator is a full stop like in USD and AUD currencies, set to true. If it is a comma like in some European countries, set to false.{%- endcomment -%} {% if template contains 'product' or template contains 'collection' or template contains 'search' or template contains 'cart' %} <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id={{ AW-ID }}"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', '{{ AW-ID }}'); {%- if template contains 'product' -%} gtag('event', 'view_item', { 'items': [ {%- if product-id == "product-id_variant-id" -%} { 'id': '{{ product-id-prefix }}{{ product.id }}_{{ product.selected_or_first_available_variant.id }}', 'google_business_vertical': 'retail' } {%- elsif product-id == 'variant-id' -%} { 'id': '{{ product-id-prefix }}{{ product.selected_or_first_available_variant.id }}', 'google_business_vertical': 'retail' } {%- elsif product-id == 'sku' -%} { 'id': '{{ product-id-prefix }}{{ product.selected_or_first_available_variant.sku }}', 'google_business_vertical': 'retail' } {%- endif -%} ] }); {%- elsif template contains 'collection' -%} gtag('event', 'view_item_list', { 'items': [ {%- for item in collection.products limit:3 -%} {%- if product-id == "product-id_variant-id" -%} { 'id': '{{ product-id-prefix }}{{ item.id }}_{{ item.selected_or_first_available_variant.id }}', 'google_business_vertical': 'retail' }{% unless forloop.last %},{% endunless %} {%- elsif product-id == 'variant-id' -%} { 'id': '{{ product-id-prefix }}{{ item.variants.first.id }}', 'google_business_vertical': 'retail' }{% unless forloop.last %},{% endunless %} {%- elsif product-id == 'sku' -%} { 'id': '{{ product-id-prefix }}{{ item.selected_or_first_available_variant.sku }}', 'google_business_vertical': 'retail' }{% unless forloop.last %},{% endunless %} {%- endif -%} {%- endfor -%} ] }); {%- elsif template contains 'search' -%} gtag('event', 'view_search_results', { 'items': [ {%- for item in search.results limit:3 -%} {%- if product-id == "product-id_variant-id" -%} { 'id': '{{ product-id-prefix }}{{ item.id }}_{{ item.selected_or_first_available_variant.id }}', 'google_business_vertical': 'retail' }{% unless forloop.last %},{% endunless %} {%- elsif product-id == 'variant-id' -%} { 'id': '{{ product-id-prefix }}{{ item.variants.first.id }}', 'google_business_vertical': 'retail' }{% unless forloop.last %},{% endunless %} {%- elsif product-id == 'sku' -%} { 'id': '{{ product-id-prefix }}{{ item.selected_or_first_available_variant.sku }}', 'google_business_vertical': 'retail' }{% unless forloop.last %},{% endunless %} {%- endif -%} {%- endfor -%} ] }); {%- elsif template contains 'cart' -%} gtag('event', 'add_to_cart', { 'items': [ {%- for item in cart.items limit:3 -%} {%- if product-id == "product-id_variant-id" -%} { 'id': '{{ product-id-prefix }}{{ item.product_id }}_{{ item.variant_id }}', 'google_business_vertical': 'retail' }{% unless forloop.last %},{% endunless %} {%- elsif product-id == 'variant-id' -%} { 'id': '{{ product-id-prefix }}{{ item.variant_id }}', 'google_business_vertical': 'retail' }{% unless forloop.last %},{% endunless %} {%- elsif product-id == 'sku' -%} { 'id': '{{ product-id-prefix }}{{ item.sku }}', 'google_business_vertical': 'retail' }{% unless forloop.last %},{% endunless %} {%- endif -%} {%- endfor -%} ] }); {%- endif -%} </script> {% endif %} <!-- END Google Ads dynamic remarketing by DigitalDarts.com.au -->
There are adjustments to make so the remarketing code works for your store:
AW-GOOGLE_CONVERSION_ID
with your unique numerical number that is tied to the Google Ads account. Your value can be retrieved by going to “Tools” from the top-right, “Audience manager”, “Audience sources”, then clicking on “Details” under “Google Ads tag”.id
attribute of your shopping feed.price-decimal-fs
to true. If it is a comma like in some European countries, set it to false.The code is now correct so let’s make it live. In theme.liquid
, insert {% include 'dynamic-remarketing' %}
immediately after the <head>
tag.
With that done, your theme is set up for dynamic remarketing. You’re not done though. An alternate version of the code needs to be inserted on the order confirmation page because it is not connected to your theme.
Go to “Settings” in Shopify then “Checkout”. In the “Additional scripts” section, copy-and-paste the following:
<!-- START Google Ads checkout dynamic remarketing by DigitalDarts.com.au v1.8 --> {% assign AW-ID = "AW-GOOGLE_CONVERSION_ID" -%}{%- comment -%}Google Ads conversion ID.{%- endcomment -%} {%- assign product-id = "product-id_variant-id" -%}{%- comment -%}The format of the product IDs in the feed. 3 accepted values "sku" (SKU of the variant e.g. aga-012), "variant-id" (variant ID e.g. 21283160948841), or "product-id_variant-id" (product ID underscore then variant ID e.g. 28541777444969_21283160948841).{%- endcomment -%} {%- assign product-id-prefix = "shopify_AU_" -%}{%- comment -%}Prefix to product-id. Leave blank if there's no prefix. This is likely needed if product-id_variant-id is selected so 28541777444969_21283160948841 becomes shopify_AU_28541777444969_21283160948841.{%- endcomment -%} <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id={{ AW-ID }}"><script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', '{{ AW-ID }}'); </script> <script> gtag('event', 'purchase', { 'value': checkout.total_price_set.presentment_money.amount, 'items': [ {%- if product-id == 'product-id_variant-id' -%} {%- for item in checkout.line_items limit:3 -%} {%- unless forloop.first -%},{%- endunless -%} { 'id': '{{ product-id-prefix }}{{ item.product_id }}_{{ item.variant_id }}', 'google_business_vertical': 'retail' } {%- endfor -%} {%- elsif product-id == 'variant-id' -%} {%- for item in checkout.line_items -%} {%- unless forloop.first -%},{%- endunless -%} { 'id': '{{ product-id-prefix }}{{ item.variant_id }}', 'google_business_vertical': 'retail' } {%- endfor -%} {%- elsif product-id == 'sku' -%} {%- for item in checkout.line_items -%} {%- unless forloop.first -%},{%- endunless -%} { 'id': '{{ product-id-prefix }}{{ item.sku }}', 'google_business_vertical': 'retail' } {%- endfor -%} {%- endif -%} ] }); </script> <!-- END Google Ads checkout dynamic remarketing by DigitalDarts.com.au -->
Like before, replace AW-GOOGLE_CONVERSION_ID
. If needed, change other settings described at the top of the code so product IDs match the id
attribute of your shopping feed.
You may notice there are already pre-existing audiences set up for you in these campaigns like homepage viewers, product page viewers, category page viewers, cart abandoners and converted customers. It’s certainly worth going further than these five to maximise your results. I have other best practices for you to follow.
display_ads_title
attribute.Google Merchant Promotions showcase special offers from the store. Acceptable offers include percentage discounts, tiered discounts, BOGO, free gifts, shipping offers, and more. Retailers often see an increase in click-through rate and a boost in transactions when running a promotion.
Not all special offers can be advertised. Exclusions include vague discounts, restrictive promotions, and some other conditions. For more help on what is permitted to get promotions approved, download then keep on hand the Merchant Promotions Quick Guide.
The Merchant Promotions program is limited to fewer countries compared to Seller Ratings, Product Ratings, and Dynamic Remarketing. You can apply for the program by clicking the three vertical dots in Merchant Center, going to “Merchant Center Programs”, then enabling the program. You will be taken to an application form.
Once the Merchant Center account is approved, follow Google’s guidelines to get setup on Merchant Promotions.
promotion_id
attribute that corresponds to the unique ID of a promotion so Google can match the two. One promotion_id
can apply to multiple products.promotion_display_dates
attribute so the promotion displays in a period after approval.promotion_id
.People seek an easy way to purchase with relevant and meaningful assistance. How people search today is different to 2018 with the growth of voice-activated systems like Google Home leading to longer search queries.
One of Google’s answers to this trend is Buy On Google, which streamlines the purchase process by enabling people to buy directly on the Google platform through Google Assistant and Google Search. Formerly known as Shopping Actions, it used to charge commission upon sale, but now the big G takes zero commission fees.
Qualities of the platform according to Google is a “shareable list, universal shopping cart, and instant checkout with saved payment credentials [that] work across Google.com and the Google Assistant.” The shopping cart works across multiple devices so someone can add makeup to their cart while on their phone. Later that night in the kitchen using Google Home, they add a spatula to their cart then purchase both items at once.
It is early days for Buy on Google. I suspect stores selling consumable products, selling a large number of commodity SKUs below $30 (as product research is minimal), or with a loyal customer-base benefit most from the program that enables quick purchases.
The program used to be stupid hard to get set up on, requiring API work, unique feed rules, and custom policies. Today, it is easier than ever yet still takes some effort.
Requirements are strict. Buy on Google is only available in the US. Retailers need to ensure their products are not on the restricted policy that is tighter than Google Shopping. Returns need to be processed in two days.
Once you meet the criteria, how you get setup depends on your feed solution. If you use the Google channel in Shopify, follow Shopify’s steps to set up Buy on Google.
If you manage the feed through another provide, follow this overview to get setup:
To drive growth from the program, you need to excel in Google’s retailer standards. Each retailer receives an updated rating at the start of each month analysing key performance indicators over the past 90 days. The rating considers metrics like item defect rate, shipping different rate, and item availability. High performers get prominent visibility and other benefits. The retailer standards are in the platform’s best interest because a poor customer experience may lose Google a customer for life to Amazon.
Do you have a physical brick-and-mortar store? Local inventory ads is for you. The program drives footfall to your store and boosts customer experience by letting people see what is available for purchase offline while online. Local inventory ads allow brick-and-mortar stores to gain market share against pure ecommerce business models.
The ad format does great at blending retail and online together. A local inventory ad is similar to a regular shopping ad, but it contains a distance on the image of how far the product is from the user’s location. Let’s say I’m a hermit with no idea of the bakeries or shops around me so I search “white bread” on my Nest Hub:
If I click the Coles listing, I’m taken to a page known as the “local storefront”. The storefront page provides information including store inventory, opening times, and directions to the store. Since the business also sells in the online store, I can click to the product page like a normal shopping ad.
Local inventory ads lets you choose to drive traffic to either a Google-hosted page or your own store. The program lets you promote your offline inventory to an online audience.
To qualify for local inventory ads, the business must have a physical store in the list of eligible countries.
If you qualify, get set up by following the local inventory ads onboarding guide. There is a fair bit to do like getting your Google My Business configured with Merchant Center, creating then submitting multiple feeds, verifying inventory with Google, and configuring your Google Ads to run local inventory ads. See the local inventory FAQ for further help.
When you pass the verification process, I recommend you set up Google Analytics for local storefront. This puts tracking on the local storefront page, which is a Google-hosted page, to measure pageviews, clicks, directions, and calls to the shop. The more you measure offline, the better.
Free local product listings for local inventory ads are what free product listings are to shopping ads. The program lets you promote in-store products for free across Google properties like search, images, shopping, and maps.
Back to my search for white bread, I hate having to drive 25.8km to pick a loaf of bread. So I scroll down to discover free local product listings on my Nest Hub to find a supermarket 7.5km away:
The steps and requirements to setup free local product listings are nearly the same as local inventory ads:
For more help, see Google’s implementation guide.
The product ratings program lets merchants show a 1-5 star rating for their products.
The promotions program lets merchants showcase special offers.
Some programs instantly enable while others require an application form.
Yes, Google Merchant Center is free. There are features like free listings and product ratings that cost nothing to use. If you wish to run shopping ads, you will pay per click.
This whole chapter has been turned into an infographic! And it’s now yours to easily reference how you can get setup on, and optimise, all Google Merchant Center programs.
Right-click the original, full-size image link here then save it to your computer. If you do Google Ads for a living, may I suggest you get it professionally printed and hang it in your office.
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: