Google Universal Analytics Tag Enhanced E-Commerce
This article is an overview of setting up Enhanced Ecommerce tracking forthe Google Universal Analytics tag in Tealium iQ Tag Management.
As of July 1, 2023, Google Universal Analytics properties stopped processing hits. This tag has been deprecated and no longer available in the tag marketplace. For the current tag, see Google Analytics 4.
Overview
Enhanced Ecommerce is an advanced plugin for ecommerce tracking using Google Universal Analytics to track user interactions with products on your website, including: product impressions, product clicks, viewing product details, adding a product to a shopping cart, initiating the checkout process, transactions, and refunds.
How it works
Enhanced Ecommerce tracking works with a combination of the E-Commerce extension and data mapping in the Google Universal Analytics tag. The E-Commerce extension handles the most common ecommerce data, while the more advanced data is sent using data mappings in the tag configuration. Enhanced Ecommerce actions are also mapped in the tag as events.
Enhanced E-commerce data and actions
The E-Commerce Extension settings cover many of the new Enhanced E-Commerce features. However, if your Universal Data Object (UDO) does not accommodate the data required for Enhanced E-Commerce, you will have to add variables to your website’s data layer.
Here is a recommended list of data layer variables to add, along with their matching variable in Enhanced Ecommerce.
If a variable is marked as “n/a” in the E-Commerce Extension column, it must be added to the tag as a data mapping.
Impression data
When impression data is mapped and populated in the UDO it is passed to Google Analytics using the ec:addImpression
command.
Data Layer Variable | Google Key | E-Commerce Extension |
---|---|---|
product_impression_id | id | n/a |
product_impression_name | name | n/a |
product_impression_list | list | n/a |
product_impression_brand | brand | n/a |
product_impression_category | category | n/a |
product_impression_variant | variant | n/a |
product_impression_position | position | n/a |
product_impression_price | price | n/a |
Product data
The product variables are used in any event that expects product data. The product data required by Enhanced Ecommerce is mapped automatically via the E-Commerce Extension (see table below). Product variables are passed to Google Analytics using the ec:addProduct
command.
Data Layer Variable | Google Key | E-Commerce Extension |
---|---|---|
product_id | id | _cprod |
product_name | name | _cprodname |
product_brand | brand | _cbrand |
product_category | category | _ccat |
product_variant | variant | n/a |
product_price | price | _cprice |
product_quantity | quantity | _cquan |
product_promo_code | coupon | _cpdisc |
product_position | position | n/a |
Promotion data
When promotion data is mapped and populated in the UDOit is passed to Google Analytics using the ec:addPromo
command.
Data Layer Variable | Google Key | E-Commerce Extension |
---|---|---|
promotion_id | id | n/a |
promotion_name | name | n/a |
promotion_creative | creative | n/a |
promotion_position | position | n/a |
Action data
The action variables are populated in any event that expect order data. The order data required by Enhanced Ecommerce is automatically mapped via the E-Commerce Extension (see table below). Action variables are passed to Google Analytics using the ec:setAction
command.
Data Layer Variable | Google Key | E-Commerce Extension |
---|---|---|
order_id | id | _corder |
order_store | affiliation | _cstore |
order_grand_total | revenue | _ctotal |
order_tax_amount | tax | _ctax |
order_shipping_amount | shipping | _cship |
order_promo_code | coupon | _cpromo |
checkout_step | step | n/a |
shipping_method, shipping_carrier, payment_method, etc. (various checkout options) |
option | n/a |
Data mapping
Enhanced Ecommerce actions are triggered using data mappings. A data mapping for an event matches the values of the event variable to the corresponding Enhanced Ecommerce action. These mappings results in triggering the ec:setAction
command in Google Analytics.
Typical event variables in your data layer would be: tealium_event
, page_type
, or event_name
.
The following are suggested Tealium events that map onto the expected Enhanced Ecommerce actions:
Tealium Event/Page Type | Google Action (enh_action) |
---|---|
product_click | click |
product_view | detail |
cart_add | add |
cart_remove | remove |
checkout | checkout |
checkout_option | checkout_option |
purchase | purchase |
refund | refund |
promo_click | promo_click |
Examples
To trigger Enhanced E-Commerce actions map your event variable to an event in the data mappings.
Product impression
You can send the following data with a product impression action:
- List of IDs (required)
- List of Names
- List of Brands
- List of Categories
- List of Variants
- Product List Names
This event occurs on page load using utag_data
or using utag.view()
and triggers the ec:addImpression
command in Google Analytics for each item in the arrays.
// EXAMPLE CODE: Product Detail Page View
var utag_data = {
"product_impression_id" : ['P12345', 'P67890'],
"product_impression_name" : ['DV T-Shirt', 'DV Water Bottle'],
"product_impression_brand" : ['Tealium', 'Tealium'],
"product_impression_variant" : ['black', 'blue'],
"product_impression_category" : ['Shirts', 'Home & Office'],
"product_impression_list" : ['Search Results', 'Search Results'],
"product_impression_position" : [1, 2]
};
Product click
Send the following data with a product click
action:
- List of IDs (required)
- List of Names
- List of Brands
- List of Categories
- List of Variants
- Product Position
This event is tracked using utag.link()
and triggers the ec:addProduct
and ec:setAction
(click) command in Google Analytics.
// EXAMPLE CODE: Product Click
utag.link({
"tealium_event" : "product_click",
"product_id" : ['P12345'],
"product_name" : ['DV T-Shirt'],
"product_brand" : ['Tealium'],
"product_variant" : ['black'],
"product_category" : ['Shirts'],
"product_position" : [1]
});
Product view/detail
You can send the following data with a product detail
action:
- List of IDs (required)
- List of Names
- List of Brands
- List of Categories
- List of Variants
This event is tracked on page load using utag_data
or using utag.view()
and triggers the ec:addProduct
and ec:setAction
(detail) command in Google Analytics.
// EXAMPLE CODE: Product Detail Page View
var utag_data = {
"tealium_event" : "product_view",
"product_id" : ['P12345'],
"product_name" : ['DV T-Shirt'],
"product_brand" : ['Tealium'],
"product_variant" : ['black'],
"product_category" : ['Shirts']
};
Cart add
You can send the following data with the cart add
action:
- List of IDs
- List of Names
- List of Brands
- List of Categories
- List of Quantities
- List of Prices
- List of Discounts
- List of Variants
- Product Position
This event is tracked using utag.link()
and triggers the ec:addProduct
and ec:setAction
(add) command in Google Analytics.
// EXAMPLE CODE: Product Add
utag.link({
"tealium_event" : 'cart_add',
"product_id" : ['P12345'],
"product_name" : ['DV T-Shirt'],
"product_brand" : ['Tealium'],
"product_variant" : ['black'],
"product_category" : ['Shirts'],
"product_price" : ['23.49'],
"product_quantity" : [1]
});
Cart remove
You can send the following data with the cart remove
action:
- List of IDs
- List of Names
- List of Brands
- List of Categories
- List of Quantities
- List of Prices
- List of Discounts
- List of Variants
This event is tracked using utag.link()
and triggers the ec:addProduct
and ec:setAction
(remove) command in Google Analytics.
// EXAMPLE CODE: Product Cart Removal
utag.link({
"tealium_event" : 'cart_remove',
"product_id" : ['P12345'],
"product_name" : ['DV T-Shirt'],
"product_brand" : ['Tealium'],
"product_variant" : ['black'],
"product_category" : ['Shirts'],
"product_price" : ['23.49'],
"product_quantity" : [1]
});
Checkout
You can send the following data with the checkout
action:
- List of IDs
- List of Names
- List of Brands
- List of Categories
- List of Quantities
- List of Prices
- List of Discounts
- Checkout Step
- Checkout Option
- List of Variants
- Product Position
This event is tracked on page load using utag_data
or using utag.view()
and triggers the ec:addProduct
and ec:setAction
(checkout) command in Google Analytics.
// EXAMPLE CODE: Checkout
var utag_data = {
"tealium_event" : 'checkout',
"product_id" : ['P1235', 'P67890'],
"product_name" : ['DV T-Shirt', 'DV Water Bottle'],
"product_brand" : ['Tealium', 'Tealium'],
"product_variant" : ['black', 'blue'],
"product_category" : ['Shirts', 'Home & Office'],
"product_price" : ['23.39', '11.00'],
"product_quantity" : [1, 2],
"product_position" : [1, 2],
"checkout_step" : "1",
"shipping_carrier" : 'FedEx'
};
Checkout steps can be assigned more descriptive names using the Checkout Funnel Configuration within your Google Analytics account.
Checkout option
The Checkout Option action lets you capture information about the state of a checkout after the initial page view, when the visitor is interacting with the site.
You can send the following data with the checkout option action:
- Checkout Step
- Checkout Option
This event is tracked using utag.link()
and triggers the ec:setAction
(checkout_option) command in Google Analytics.
// EXAMPLE CODE: Checkout Option
utag.link({
"tealium_event" : "checkout_option",
"checkout_step" : "2",
"shipping_carrier" : "FedEx"
});
Purchase
You can send the following data with the purchase
action:
- Order ID
- Revenue
- Tax
- Shipping
- Promo Code
- List of IDs
- List of Names
- List of Brands
- List of Categories
- List of Quantities
- List of Prices
- List of Discounts
- List of Variants
This event is tracked on page load using utag_data
or using utag.view()
and triggers the and purchase
command in Google Analytics.
// EXAMPLE CODE: Checkout
// The following information should be in the data object on page load
var utag_data = {
"tealium_event" : 'purchase',
"order_id" : 'O1234567',
"order_grand_total" : '57.44',
"order_tax_amount" : '3.65',
"order_shipping_amount" : '8.50',
"order_promo_code" : 'SALE20',
"product_id" : ['P1235', 'P67890'],
"product_name" : ['DV T-Shirt', 'DV Water Bottle'],
"product_brand" : ['Tealium', 'Tealium'],
"product_variant" : ['black', 'blue'],
"product_category" : ['Shirts', 'Home & Office'],
"product_price" : ['23.39', '11.00'],
"product_quantity" : [1, 2]
};
Promo click
You can send the following data with a promo click action:
- Promotion ID
- Promotion Name
- Promotion Creative
- Promotion Position
This event is tracked using utag.link()
and triggers the ec:addPromo
and ec:setAction
(promo_click) command in Google Analytics.
// EXAMPLE CODE: Promotion Click
utag.link({
"tealium_event" : "promo_click",
"promotion_id" : ['DV18-EARLY-REG'],
"promotion_name" : ['DV 2018 Early Registration'],
"promotion_creative" : ['early_reg_promo1'],
"promotion_position" : [1]
});
Refund
In order to fire a refund action, you must have the Order ID of the transaction that is being refunded. For a partial refund, the Product IDs of any items being refunded must be present as well.
-
Order ID
-
List of Product IDs (for partial refund only)
-
List of Quantities
This event is tracked on page load using utag_data
or using utag.view()
and triggers the ec:addProduct
and ec:setAction
(refund) command in Google Analytics.
// EXAMPLE CODE: Refund
var utag_data = {
"tealium_event" : "refund",
"order_id" : 'O123456',
"product_id" : ['P12345'],
"product_quantity" : [1]
};
Additional resources
- About Enhanced Ecommerce (Google Analytics)
- How to collect enhanced ecommerce data using analytics.js (Google Analytics)
This page was last updated: July 17, 2023