From Carting To Purchasing: Tracking Product Journey
From Carting To Purchasing: Tracking Product Journey
From Carting To Purchasing: Tracking Product Journey
Allaedin Ezzedin
Whether you are the CEO of walmart.com or the owner of a small ecommerce site,
we all have similar expectations of our online store: convert visitors into buyers, and
then turn those customers into repeat buyers who will then advocate for your brand.
This is done by digging deep into your visitor’s behavior and customer’s buying habits
through gathering specific data at given touch points within your website known as Key
Performance Indicators (KPIs). And while these ecommerce KPIs may vary based on the
complexity of your business model and targeted audience, many KPIs are universal for
most ecommerce businesses. These KPIs are the focus of this eBook.
Online stores are product-centric, and the success of these sites is dependent on
maximizing the category and product page exposure, number of social shares, number
of product purchases and the selling price.
√√ How to analyze the data collected for the different users’ segments.
Disclaimer:
1. Timberland (up to the time of writing this eBook) is not a client of my analytics
consulting agency and is being used as a case study.
3. For technical people: All tracking code shared in this eBook is using the newest
Universal Analytics JavaScript snippet, which is a new way to measure how users
interact with websites. It is similar to the legacy Google Analytics tracking code,
ga.js, but offers more flexibility for developers to customize their implementations.
4. The tracking code snippets provided in this document are meant for website
tracking. Same concepts are applicable to mobile apps tracking. Use the Google
Analytics SDK for Android or iOS to implement the proper syntax.
5. Installing Universal Analytics via Google Tag Manager is an ideal way to implement,
as making changes in the future will be much easier.
Measuring visitors’ interaction with our product-detail pages is very crucial for site
optimization purposes and bottom-line ROI. It is an important step towards understanding
the true value of our visitors and their behavior.
While any interaction with the product pages up to adding items to cart are considered
micro-conversions, we have to remember that these interactions are the prerequisites
for any macro conversion (e.g. sales) and in most cases will lead to more product
exposure and revenue.
The engagement metrics for the product-detail pages include, but are not limited to:
So let’s now go into detail on how you can track a few of the above KPIs in Google
Analytics (GA):
Since our example in this eBook is timberland.com and it sells clothing, footwear and
accessories for men, women and kids, all product-detail pages will be associated with
these three categories as seen here:
Examples:
URL: http://shop.timberland.com/product/index.jsp?productId=12310017
Product Name: Men’s Earthkeepers® City Premium Chukka Boot
Event: Product Detail Page | View | Mens Earthkeepers City Premium Chukka Boot
Content Groups: Men >> Footwear >> Boots
URL: http://shop.timberland.com/product/index.jsp?productId=11361203
Product Name: Kids’ Cooling Crew Sock 2-Pack
Event: Product Detail Page | View | Kids Cooling Crew Sock 2-Pack
Content Groups: Kids >> Accessories >> Socks
Sample Code:
</>
ga('set', 'contentGroup1', 'Men');
ga('set', 'contentGroup2', 'Footwear');
ga('set', 'contentGroup3', 'Boots');
ga('send', 'event', 'Product Detail Page', 'View', 'Mens Earthkeepers City
Premium Chukka Boot');
Note: Before you can send Content Groups values to Google Analytics, they must first be
defined in a Google Analytics View (Profile).
Effectively listening to user-generated content and marrying their feedback with analytics
data is an amazing combination to get the complete picture about the performance of
our product-detail pages and their impact on the purchase cycle.
Sample Code:
</>
ga('send', 'event', 'Product Detail Page', 'Product Rating', 'Womens
Winter Leaf Beanie', 5);
In this eBook, let’s limit our focus to tracking clicks on the social media buttons located
on the product-detail pages, which will allow us to answer questions like: Which segment
of our visitors are more socially engaged? How much love are they bringing back? Which
product lines are shared the most? Which social media we need to invest more in?
To set up tracking for social interactions, you need to use the _trackSocial method, which
sends social interaction data to Google Analytics. The method should be called once a
user has completed a social interaction. Each social network uses a different mechanism
to determine when the social interaction occurs and this typically requires integrating
with the API for that network’s social sharing button.
Sample Code:
</>
ga('send', 'event', 'Product Detail Page', 'Add to Cart', 'Women’s Winter
Leaf Beanie');
Sample Code:
</>
ga('send', 'event', 'Product Detail Page', 'Unsuccessful Add to Cart',
'Women’s Winter Leaf Beanie');
I don’t want to put too much pressure on you here, but the failure of completing
conversions after this point is all yours! For one reason or another, the shopper trusted
your products and dropped few items in the shopping cart and your job now is to keep
every single item inside the cart until they have successfully checked out. Measuring
the shoppers’ behavior and experience during the checkout funnel is very important
to understand. And examining issues such as why some visitors abandon the funnel,
reduce the number of items in the cart, or add more items to their original intended list
can be beneficial data.
The KPIs and engagement metrics for this step may include, but are not limited to:
Here is how we suggest tracking a few of the above KPIs in Google Analytics:
Be sure to always keep in mind the Conversion Rate metric assumes that every transaction
is of the same value. Therefore, an improved conversion rate may just mean more lower
revenue transactions due to targeting lower value customers.
In Google Analytics, Conversion Rate is one of the standard metrics, and is available
across almost all reports. You just need to ensure that the ecommerce code is fired
properly in all receipt/thank you pages.
</>
ga('require', 'ecommerce', 'ecommerce.js');
ga('ecommerce:addTransaction', {
'id': '1234567', // Transaction ID. Required.
'affiliation': 'Online Store', // Affiliation or store name.
'revenue': '438.00', // Grand Total.
'shipping': '13.95', // Shipping.
'tax': '1.29' // Tax.
});
ga('ecommerce:addItem', {
'id': '1234567', // Transaction ID. Required.
'name': 'Men’s Earthkeepers City Premium Chukka Boot', // Product name. Required.
'sku': '5321R', // SKU/code.
'category': 'Men’s Footwear', // Category or variation.
'price': '185.00', // Unit price.
'quantity': '2' // Quantity.
});
ga('ecommerce:addItem', {
'id': '1234567', // Transaction ID. Required.
'name': 'Women’s Long Sleeve Flower Pattern Shirt', // Product name. Required.
'sku': '5207J', // SKU/code.
'category': 'Women’s Clothing', // Category or variation.
'price': '68.00', // Unit price.
'quantity': '1' // Quantity.
});
ga('ecommerce:send');
I define the Conversion Duration metric as, “The time is takes a user to complete a
purchase or a Goal from a defined starting event.”
In this eBook, let’s measure two conversion durations for our visitors. The first one I call
“Micro Conversion Duration,” which is the time that users take from landing at the site
to adding the first item into the shopping cart/basket. The second duration is Macro
Conversion Duration, which represents the time users take from landing at the site to
making a purchase.
vi. Calculate the time duration between t1 and t2 and between t1 and t3. (In GA the
time difference between the two timestamps is in milliseconds)
viii. Fire the Google Analytics Timing method to track the conversion duration in
GA. (Read more here about Timing https://developers.google.com/analytics/
devguides/collection/analyticsjs/user-timings)
</>
ga('send', 'timing', 'Micro Conversion Duration', 'Add to Cart',
timeSpent1, 'Men’s Earthkeepers City Premium Chukka Boot');
Go to Content > Site Speed > User Timings to see your data.
Similar to what we did above for the Add to Cart action, let’s also fire an event to Google
Analytics when users click on the “Remove Item” button in the shopping cart by following
the steps below.
Sample Code:
</>
ga('send', 'event', 'Shopping Cart', 'Remove Item', 'Women’s Winter
Leaf Beanie');
Gut feelings are sometimes one of the best sources of insights for business and for
life, but when it comes to website optimization I like to combine my gut feeling with
data. So let us track the impact of this box on conversion, meanwhile asking certain
questions along the way: Do visitors abandon the process if the promo code didn’t go
through? Which promo code is generating more sales? Is there any impact on revenue
and average order value for purchases with coupons applied verses those without?
Sample Code:
</>
ga('send', 'event', 'Promotional Code', 'Applied', 'mothersday2013');
ga('send', 'event', 'Promotional Code', 'Failed', 'mothersday2013');
Sample Code:
</>
ga('send', 'event', 'Payment Method', 'Credit Card', 'Visa', '340');
Many marketers and web analysts usually stop tracking their visitors once they finalize
their purchase because the ultimate goal of tracking conversions was achieved. True
data ninjas, on the other hand, look at the picture differently! Their interest is always on
people and the relationship their online clients has just started.
The engagement metrics for this step may include, but are not limited to:
If we’re continuously gaining a lot of new buyers, I can argue that our engagement
numbers will always look positive because those new buyers may stay highly engaged
with our website during their very first purchasing visits. They may view many product
pages, add multiple items to the cart, share items with their social media followers and
buy products. If we just look at the engagement numbers then we would think that we
are doing great and our site is very engaging.
However, our buyers may stop being engaged with our site or buying again from our
store for any number of reasons: not happy with our services, got what they are looking
As you see, the lack of continued engagement of these one-time buyers is being hidden
by the high numbers of new buyers.
In order to track the above KPI, we will set a custom dimension for every purchase with
two values: the purchase date and the purchase count.
Configuration:
The Day of Purchase custom dimension is defined in the property settings section of the
web interface with these values:
Index: 1
Name: Day of Purchase
Scope: Session
State: Active
Sample Code:
</>
ga('set', 'dimension1', '20131226');
The third string parameter is the purchase date. In the above configuration, the visitor
successfully confirmed the transaction on December 26th, 2013.
Now we can see how each cohort is performing. Which campaign brought more of the
second time buyers? Which visitors’ segment is more active in sharing our products in
social sites? What is the email click rate for the visitors who bought more than 10 times?
Etc.
In order to track the above KPI, we will set a custom dimension for every purchase. The
purchase count value has to be read from the backend (User’s Profile/Account) during
the order confirmation process and get passed to GA through this code. We will set the
value of the custom dimension at the User level to ensure grouping all of the user’s
component sessions and hits together.
Note: The value of the User-Level custom dimension will be applied to all user activities
in current and future sessions, until the Number of Purchases value changes by a new
purchase.
Configuration
The Number of Purchases custom dimension is defined in the property settings section
of the web interface with these values:
Index: 2
Name: Numbers of Purchases
Scope: User
State: Active
The third string parameter is the Number of Purchases. The visitor in the above example
purchased 8 times from our store.
If you divide your clients’ demographics into three different sets of customers base on
their order value: Big Spenders, Average Spenders, and Small Spenders, then you can
truly know over time who is bringing more business than others.
By looking at data within these three segments, you can easily determine the referring
sites that are sending us lots of big spenders, or discover that the Defection Rate among
the average spenders is very low or that most of our big spenders fall under the one-
time buyers or that the big spenders’ cost of acquisition is very high. You might also
discover that small spenders not only have a very good Retention Rate, but overtime
they convert to big spenders and so on.
For these reasons and more, you need to learn more about our favorite spending cohort,
where they’re coming from and how they behave on our site. Once you know where
they come from, adjust and optimize the marketing budget to attract more of them. And
once you know how these customers interact with the site, you can update and enhance
the content to meet their needs.
Index: 3
Name: User Type
Scope: User
State: Active
Sample Code:
</>
ga('set', 'dimension3', 'Big Spender');
The third string parameter is the User Type (i.e. Big Spender, Average Spender, Small
Spender)
These custom dimensions will remain attached to the visitors for future visits starting
from the visit in which they filled the form, until they clear their cookies.
</>
ga('set', 'dimension4', 'female');
ga('set', 'dimension5', '30');
Note: If you choose to support DoubleClick Display Advertising, then Google Analytics
by default will present your users’ demographics (age, gender) data under the Audience
section as well as in custom reports
Here are few reasons why Timberland visitors may visit the site:
Configuration:
The Visit Type custom dimension is defined in the property settings section of the web
interface with these values:
Index: 6
Name: Visit Type
Scope: Session
State: Active
Multi-Tiered
Segmentation
Now as we have all KPIs needed to start our analysis, I have to caution you that it’s very
dangerous and misleading to look at these KPIs at the site-wide level. In the last section,
you may have noticed, I focused on creating some visitor-level segmentation that we
can use to help us massage our data and read our KPIs accurately.
If I tell you that the performance of the past Thanksgiving campaign for your online
store is as following:
You might immediately - after waking up from your heart attack - fire your entire web
team and make executive orders to change the funnel flow and redesign the whole web
store.
But wait!
Hmmmm… now, I think you’re not only considering not firing your web and marketing
teams, but rather sending them to Hawaii for a vacation!
By applying few basic segments, we just found out that our target audience actually
reacted very well to the Thanksgiving campaign and their performance was beyond our
initial expectations.
So before we start laying down the foundations of our analytics framework and deciding
on the KPIs, we need to think about business objectives, who is visiting our site and why
they are visiting us. Once we do that and we do it right, KPIs will be generated based on
real business needs and the data collected will be more actionable and insightful.
Today, we live in a multi-device world. A typical user nowadays interacts with our online
store using multiple platforms. It is increasingly common for users to view and talk about
our products and services on smart phones and/or tablets, and then make their final
purchase on laptops and/or desktops.
In technical terms, Universal Analytics allows us to stitch together all sessions that belong
to a single user. Logged-in visitors will no longer receive new cookies for their visits on
different platforms, but only one. All activities will be attached to a unique visitor ID and
the end result is that we see one user using multiple devices and making a purchase.
Multi-Channel Attribution
Web analytics tools, by default, use the “last touch” attribution model to assign credit for
conversions and ecommerce transactions, which means only the last point of interaction
prior to conversion will be granted the credit for conversion.
I know you are not naive to believe that all your August conversions are coming from the
“Back to School” email blast that you sent last month, but your email marketing agency
or your affiliate agency might want you to believe so and provide you with one-side-of-
the-story reports to support their claims.
GA’s Multi-Channel Funnels reports answer these business needs in a very simple
way by showing how marketing channels interact with each other. It gives a complete
picture of how our visitors interact with the different marketing campaigns prior to their
conversion visit.
The real value of the Multi-Channel Funnels report will only be achieved on if all marketing
campaigns are tagged. Google Analytics allows pushing campaign-identifying information
by adding tags to the end of the marketing destination URLs. Tags are variables that
contain campaign information. For example, ‘utm_medium=social’ identifies a social
Setting up campaign tags doesn’t require any modifications to the tracking code. They
can be set up manually or by using a tool such as CampaignAlyzer to help append URL
variables.
Example:
Tagging a social update on Facebook for the
2014 “father’s day” campaign:
http://shop.timberland.com/category/index.
jsp?categoryId=4278570&utm_source=facebook&utm_
medium=social&utm_campaign=fathers-day-2014
Action Items
Executives:
Hire great digital analysts. They are the main ingredient for success.
Digital Analysts:
The days of site-wide level KPIs, treating all site visitors as being homogenous, single
marketing campaign attribution, one-size-fits-all approach, and visit-centric analytics
are in the past.
Today’s digital analytics requires smart analysts who know how to:
Solution Architects:
Bridging the gap between business requirements and technical capabilities is a tough
job, as measurement technologies and analytics tools keep evolving everyday. It is
important that Solution Architects and Technical Analysts stay at the cutting edge of
the analytics technologies. They need to move beyond tracking clicks within isolated
sessions to tracking visitors’ behavior across sessions and platforms.
About E-Nor
E-Nor, Inc. is a leading digital analytics and marketing optimization consulting firm
headquartered in the heart of the Silicon Valley in Santa Clara, with offices in Los
Angeles, Dallas, Tampa, NYC and Brussels. E-Nor’s clients include Fortune 500, as well as
those aspiring to establish a data-driven culture. E-Nor leverages its time-tested digital
analytics optimization framework to bring actionable insights to some of the world’s
most recognized brands including Sony, SanDisk, MIT, eBay, and more.
E-Nor was founded in 2003, and has achieved multiple Google certifications including
Google Analytics Premium Authorized Reseller and Google Analytics Certified Partner.
E-Nor is a Premier Corporate Sponsor of the Digital Analytics Association. Many of
E-Nor’s consultants are frequent speakers at leading industry conferences and publish
regularly on www.e-nor.com/blog as well as leading industry publications.