Setting up Enhanced Ecommerce can be very challenging. However, it’s more than worth it to put in the effort to get this to work. At the very least a solid measurement plan, technical knowhow and patience are required!
Any organization involved with selling products should – if they have access to the resources required – seriously consider implementing Enhanced Ecommerce. Non-Ecommerce websites can certainly leverage this great feature as well, but that is not in scope here.
The Classic Ecommerce module in Google Analytics simply doesn’t yield enough in-depth insights.
In this article I am not going to copy and paste an overview of the actual coding required. I will do something far more useful for you.
Google has already done a tremendous job in outling (the basics of) the Enhanced Ecommerce implementation. Just do a search on “Enhanced Ecommerce” or “Enhanced Ecommerce GTM” and you will find great guides available online.
I will reveal my latest tips and best practices on implementing Enhanced Ecommerce in the right way. Keep in mind that you should always configure goals in addition to your ecommerce setup.
1. Set up a Winning Team
In my experience you don’t want to rely on just one person when setting up Enhanced Ecommerce. You want to work with a team!
In order to get this module to work you need to understand:
- The business.
- The website structure and challenges.
- The Google Analytics Enhanced Ecommerce module.
- Coding (JavaScript).
- How to set up GTM. (Implementing it fully hardcoded is an option as well)
- How to configure Google Analytics.
- How to use the most suitable debugging tools (GTM and GA).
And I am sure this list is not complete. In short, it’s really a team effort to get the implementation of Enhanced Ecommerce right. Leverage the unique skills of different people in your organization and hire external resources where needed.
2. Classic OR Enhanced Ecommerce
Make sure to not implement Enhanced Ecommerce alongside Classic Ecommerce in the same Analytics property.
Let’s say you have already implemented Ecommerce tracking and want to start using Enhanced Ecommerce tracking. In that case there are two options:
- Use a new property to track Enhanced Ecommerce.
- Migrate an existing property.
Here is what you need to think about when migrating an existing property:
- Current analytics.js users should remove and replace references with enhanced ecommerce code.
- Current ga.js users need to first migrate to analytics.js before using the enhanced ecommerce code.
- Transaction and item data previously collected via Classic Ecommerce will remain available in the properties and views to which they were originally sent.
Read this Enhanced Ecommerce migration guide if you want to learn more about the migration process.
3. Create a Thorough Measurement Plan
The Enhanced Ecommerce module can literally span across the entire website.
This is completely different from Classic Ecommerce where the sole focus is on sending transactional data into Google Analytics on the thank you page.
Enhanced Ecommerce allows you to capture a ton of data:
- Product Impressions
- Product Actions
- Product clicks
- Product detail page views
- Add to carts
- Remove from carts
- Checkout page views
- Checkout option data
- Purchase
- Refund
- Promotion Impressions
- Promotion Clicks
You might think, let’s send these plain intructions to my developer and we are all set.
Unfortunately it doesn’t work that way.
You need to exactly outline:
- What you want to measure on your website. // impressions, clicks, refunds etc.
- Where you want to fire your tags. // homepage, search page, gallery page etc.
- When you want to fire your tags. // one time, multiple times, visible in viewport etc.
Your developer can only guess and as you know just taking a guess is not the best way going forward.
Here is an example of what I mean:
It’s clear that you want to measure these product impressions, but how?
- Capture only these four products on the initial pageload (in viewport browser).
- Directly capture all products that are visible on the page.
- Upon scrolling of visitor, capture additional products with a product impression event.
As you can see, this isn’t easy at all. It requires thorough thinking and planning to implement Enhanced Ecommerce in the best possible way.
4. Have a Great Developer
Don’t settle for the cheapest solution.
Implementing Enhanced Ecommerce and the required dataLayers asks for a thorough understanding of your Ecommerce solution and back-end.
It’s most often beneficial to work with your internal developers as they know your website and Ecommerce platform usually best.
However, sometimes it works really well if you have a partner involved with extensive knowledge of your Ecommerce platform. This is especially true if you are migrating to a new platform.
I am in the midst of an Enhanced Ecommerce implementation for a leading US Ecommerce Store. They are switching to Demandware and have an external partner as well.
In short, don’t refrain from spending a few more bucks to get the implementation right!
5. Start with Transaction Tracking
Consider implementing the Enhanced Ecommerce features gradually over time if you have just one developer at your disposal. Realistically not everybody has a huge team of developers at their disposal to implement Enhance Ecommerce.
The beauty is, Enhanced Ecommerce will already work if you just implement transaction tracking.
My advice is to start working backwards. As a first step start with measuring transactions. After that you should enable the tracking to measure the checkout flow and work backwards.
Here you can find more about the order of implementation of Enhanced Ecommerce.
6. Be Smart in How to Convey Your Data
Google Analytics allows you to convey the Enhanced Ecommerce data via events or pageviews.
In general I recommend to use event tracking, but here are my simple guidelines.
Google Analytics 360 account
- Use events to convey the Enhanced Ecommerce data to Google Analytics.
- If you send them with an event, you’ll have a record of Ecommerce actions in your Events report.
Google Analytics account
- Use events to convey the Enhanced Ecommerce data to Google Analytics.
- In case you are approaching the Google Analytics hit limit, either consider Google Analytics 360 or use a pageview to convey the Enhanced Ecommerce data (please note that pageviews don’t provide any further “proof” of Enhanced Ecommerce actions).
- You should only use a pageview for Enhanced Ecommerce actions that are related to viewing a page (product impressions, product detail page, checkout pages and transaction confirmation page).
7. Carefully Monitor Your Bounce Rate
Event tracking is really powerful, but you have to be aware of the non-interaction setting.
You have two options, setting non-interaction to:
- False // occurrence of event impacts bounce rate
- True // occurrence of event doesn’t impact bounce rate
Let’s assume you implement events to convey all Enhanced Ecommerce data.
Two examples:
- Add to cart event // a visitor lands on a product detail page, clicks on the add to cart button and leaves the website. This event should impact the bounce rate in this case. Non-interaction should be set to false to accommodate for this.
- Product detail page event // a visitor lands on a product detail page and immediately leaves the website. This event – showing the product detail page – shouldn’t impact bounce rate. Non-interaction should be set to true to accommodate for this.
8. Don’t Trigger Duplicate Pageviews
You might be a Google Analytics customer with a ton of data not willing to switch to Google Analytics 360 yet. That’s ok, but be careful when implementing Enhanced Ecommerce.
Probably you want to limit the hits sent to GA and choose to use pageviews to convey Enhanced Ecommerce data.
Here is an example setup in GTM (two tags):
You will generate two pageviews for each product detail page visit if you don’t modify the GTM setup.
Therefore you need to add an exclusion trigger to the GA – Pageview – All Pages tag to prevent it from firing on a product detail page (or any other page within your Enhanced Ecommerce implementation).
The best way is to set it up on the page level so that the Exception Event matches the Trigger Event.
9. Consistency is Key
Enhanced Ecommerce is comprised almost entirely of hit-level interactions. So every payload sent to Google Analytics is unique.
It is easy to run into flawed reports if your implement lacks consistency.
You need to make sure that the products array is consistent throughout the funnel process.
A best practice is to embed the product details (product name, product sku etc.) in a dataLayer as the page loads, making sure they are added consistently in all steps of the funnel. For the checkout it is enough to send the products array with the first step.
10. Enhance Product Category Data
Keep in mind that you need to be consistent with implementing product categories (in the entire funnel) if you want to analyze your product category against all different steps of the purchase process.
Where the category field in Classic Ecommerce was available as well, there are more options in Enhanced Ecommerce:
The category to which the product belongs (e.g. Apparel). Use / as a delimiter to specify up to 5-levels of hierarchy (e.g. Apparel/Men/T-Shirts).
- Product Category Level 1: Apparel
- Product Category Level 2: Men
- Product Category Level 3: T-Shirts
It’s very useful, since bringing this hierarchy into your product category implementation allows you to analyze product category performance on many different levels.
11. Add Meaningful Checkout Labels
The checkout behavior report displays the steps you have defined within your Enhanced Ecommerce implementation.
A report example is shown below:
If you do not configure checkout step names, they will appear simply as Step 1, 2, 3, etc.
For easy understanding, it is always recommended to add appropriate names:
As you can see, you should refrain from adding the actual confirmation page here. Sessions with Transactions will take care of that automatically.
12. Add Custom Dimensions and Metrics
Enriching your Google Analytics data is a very useful thing to do. Google Analytics allows you to set up custom dimensions and metrics.
Here are a few suggestions on how to make them powerful for Ecommerce.
Customer ID (user-level)
If visitors log in to your website, you should absolutely be capturing their customer/user ID. Although you can’t track personally identifiable info to Google, you can segment your traffic by customer ID and then marry that data with data from your internal database(s). It’s a great way to find out who your power users/customers are.
Coupon Code (session-level)
This is different from your Ecommerce data; this is more for the purpose of analyzing the behavior of visitors who used a coupon code during their session. As you will see not everybody who uses a coupon code during a session will convert.
Availability (product-level)
It’s incredibly powerful to measure the effect of overall and individual product availability on conversion.
Product Size (product-level)
You can also enrich your data with all bits of information related to a particular product. This will greatly enhance the potential insights from your data.
Read Simo Ahava’s article on product-scoped custom dimensions and metrics to learn more about the implementatation. One useful application of a custom metric is capturing CartValue.
13. Test, Test, Test
I can’t stress this enough, the success or failure of Enhanced Ecommerce depends on testing and solving issues.
It’s very common that your implementation is not 100% correct from the start.
That’s why you should do a ton of testing both on the staging site as well as after going live in the production enviroment. You will be amazed how many (small) mistakes you will encounter.
Work together with your developer and set up a thorough testing plan for each phase.
LunaMetrics wrote a great article on ways to test your Ecommerce Analytics Setup. Make sure to read it!
14. Learn from Google (Part 1)
You might be interested in a “code example”?
Lucky you, Google has already set up an Enhanced Ecommerce implementation where you can spy on.
I can’t guarantee their setup is 100% right, but at the very least you will develop a greater understanding of what is required to get the Enhanced Ecommerce data into your GA account.
15. Learn from Google (Part 2)
In addition Google runs their Google Merchandise Store. You can get free access to this demo account.
This is great since you can verify your own data collection process with their account:
This is it from my side. I hope these Enhanced Ecommerce implementation tips will help you to get this incredibly powerful feature implemented on your site.
Do you have additional tips or best practices that I should add to this article? Please share and I will further expand this guide!
One last thing... Make sure to get my automated Google Analytics 4 Audit Tool. It contains 30 key health checks on the GA4 Setup.
Rudger says
Hi Paul,
Small error found it’s way in point 7 Product detail page event – you say false but i’m sure you mean true.
Paul Koks says
Thanks Rudger, you are 100% right! I have just corrected it.
Alok says
Hi Paul,
I have E-commerce website but still bounce rate increasing can you suggests how to reduce my bounce rate.
Thanks
Paul Koks says
Hi Alok,
There is no one-size-fits-all approach here.
I recommend to check out one of my other articles for general guidelines on how to deal with / reduce bounce rate:
https://online-metrics.com/reduce-bounce-rate/
Best,
Paul
Alok says
Thanks Paul :)
Khrystyna says
Hi Paul,
Thank you for you article.
I have a question about this part “8. Don’t Trigger Duplicate Pageviews” :
why not use the Standard Pageview analytics tag (just switch on the ecommerce option) to sent the ecommerce impressions/details/purchase data ?
I mean, you have one GA pageview tag for all pages with ecommerce switched on and the GA event tags with ecommerce switched on for ecommerce actions (clicks, add to cart, etc.).
Thanks,
Khrystyna
Paul Koks says
Hi Khrystyna,
Thanks for your comment!
I believe this won’t work if you use the Data Layer and custom event triggers per pageview type (Ecommerce related) that you want to track.
Your custom event firing trigger will be unique per pageview type -> you need to set up multiple pageview tags. The effect of duplicate pageviews on your data you need to negate in the general pageview tag in that case.
That being said, there are always multiple ways in which you can implement a Google Analytics feature (like Enhanced Ecommerce).
Best,
Paul
caro says
Hi Paul, we implemented enhanced ecommerce and in order to avoid duplication of ad to cart duplicates on product list report we followed your tip thou now the Product list views are not polulating :( Do you know what could be wrong?
Paul Koks says
Hi Caro,
I could only be guessing as I don’t have access to the entire (GTM) setup.
What did you exactly implement?
Mikey says
Hi Paul! Thanks for the guide. We would like to change the name of the product, but only the part that is visible for the customer, will that effect how the product name show up in Google Analytics as well (which we don´t want). If it does how do we fix it?
Paul Koks says
Hi Mikey,
This depends on your setup. You need to ensure that the product name (visible for the customer) is not connected to the product name you send to GA. That should be a separate element. Exact solution depends on website/architecture, something to discuss with your developer.
Best,
Paul
Redgar says
Hi Paul,
What in case if I have marketplace. Where people can buy products (so here we have one type of users where we have ope funnel) and also people can sell products (here we are earning from paid publication)?
Thank you for a great article, it’s very helpful. What in case if I have marketplace? I am implementing GA on a marketplace that connects sellers with buyers. In that case we have to groups:
a) People who buy products on our page (we don’t have profits from them) – here we will implement enhanced ecommerce with tracking products etc. + events
b) People who sell products on our page (here we earn money selling them paid publications) – here it could be simple ecommerce because we have only 3 types of packets + events
What will be the best way to separate that two groups in GA for simpler analysis?
Paul Koks says
Hi Redgar,
There are many different ways on how to approach this, but I think what is relatively easy to implement, is by distinguishing based on product name and category.
Then you can make a simple analysis afterwards.
Hope this helps!
Paul