Enhanced E-commerce Tracking offers deeper insights and more accurate tracking data of online shopping engagement, Google Analytics.
Our Enhanced E-commerce feature has been further extended and is here to support almost all the measurements of users' interactions.
Table of Contents | ||||
---|---|---|---|---|
|
How to migrate to Google Analytics Enhanced E-commerce
Expand | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
This guide describes step-by-step how to migrate to the Google Analytics Enhanced E-commerce Tracking from the traditional E-commerce tracking, a new feature that SecuTix supports in Whymper V2. We recommend migrating your Google Analytics E-commerce today to take advantage of the new key features
1. Activate Enhanced E-commerce for the Point of SalesLogin to your SecuTix back-office, and activate enhanced e-commerce for the corresponding Internet point of sales via the screen Organisation > Initialisation > Organisation Parameters > Sales Channels > Point of Sale > Internet Parameters. Wait for a few minutes for the corresponding PoS to be updated with the latest parameters. VerificationOnce the PoS parameter is successfully updated, you could verify whether your activation works by doing a test purchase. When you reach the Confirmation Page of your test purchase, do the following:
2. Activate Enhanced E-commerce in Google Analytics
3. Setup Google Tag ManagerOnce you have activated the enhanced e-commerce tracking at the dataLayer level and inside Google Analytics, the final step is to configure the tags properly in your associated Google Tag Manager account. 3.1 Deactivate The Existing Traditional E-commerce Tag
To successfully migrate to the Enhanced E-commerce, first we need to deactivate the existing traditional e-commerce tag.
3.2 Enable Enhanced E-commerceThe second step is to enable enhanced e-commerce tracking inside your existing Universal Analytics basic tracking tag.
3.3 Preview & Publish
|
Enhanced e-commerce tracking
Expand | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
What's New?New Google Analytics ReportsIf you activate Enhanced E-commerce in your Google Analytics Admin page, you will notice that Google now offers double the number of e-commerce reports compared to traditional e-commerce. However those new reports need the corresponding data to be properly tracked on the ticket shop side. With your best interests in mind, our goal is to track and send more detailed user online shopping engagement data in order to enable these new enhanced e-commerce reports one by one. With the release of Whymper V2, a first set of the new reports, including Order Coupon, Product Coupon, Affiliate Code and Product Brand reports, will finally be filled with the correct data!
Measuring External Marketing Effort and Coupon Usage Do you ever wonder the following questions? How are my coupons (either at a product level or an order level) being used by online customers? How effective are these coupons? How often are they being used? You can now have a more insightful understanding on how well each of your promotional codes and advantages performs through the Order Coupon, Product Coupon reports. Order Coupon report groups and compares the sales by the promotional code used by the user at order-level (on Order Summary Page). Product Coupon report provides the same insights but for advantages used at the product-level. Both reports help you measure your external marketing effort in promoting the coupons and advantages and understand how they are used by users. Analyzing the data could also help you take necessary actions to improve the performance. Order Coupon Report Example Product Coupon Report Example Comparing Sales Performance Among Multiple Online Shops Besides measuring coupon usage, the new Affiliation report offers a way to easily compare sales performance among multiple online shops, if you have more than one configured. Affiliation Report Example Measuring Sales Performance At The Product Family and Topic Level The traditional e-commerce report offers sales performance comparison at the product level. But sometimes in order to observe the trend, it is also important to compare things at an aggregate level. The new Product Brand report is there to answer this need. Note that the brand of a ticket shop product is defined as "Product Family Type / Topic (if configured)". This report provides you possibilities to track e-commerce success of different product family and topic combinations and take actions if necessary. Product Brand Report Example New DataLayerWith the support of enhanced e-commerce data tracking, more accurate and detailed transaction data are added to the DataLayer, which is pushed every time when an online user pays for an order successfully and reaches the Order Confirmation Page. On top of existing e-commerce data, the following new information are now tracked:
Not only are these new data needed by Google Analytics, other 3rd-party tracking tools (integrated via GTM) can also exploit and make use of them in order to obtain deeper insights about users' e-commerce engagement behavior. There are also some fields that exist in traditional e-commerce that are now further improved in the enhanced e-commerce tracking:
For a full definition of the new DataLayer structure, please refer to the example below.
|
Contact data
Expand | |||||||||
---|---|---|---|---|---|---|---|---|---|
Push contact's information (contact Number, hash Email) for all online journeys.
|
Product impression and action data
Impressions and clicks
- On the landing page :
- Clusters & sections views: push all products' impression data (including all products in the List view, even if the "Load more" button has not been clicked.)
- For the carousel or slider sections, we push all products inside the slider, no matter when user clicks on an arrow to see the other products or not. Meaning that if the product is in the slider, it will considered as an impression.)
- Product type view: push all products belonging to the current Product Type selected (e.g push all products of the EVENT tab, when user clicks on the VISIT tab, and then pushing all VISIT tab products)
- On Landing page section view, sending data also depends on scroll depth. This means that the data will be pushed as the user scrolls the landing page.
- If a product card on the landing page is a Tour, we push the Tour id as the product Id.
- If a product card is a list of timeslots/performancse, we push its' product Id (Event Id or Visit pass Id).
- Data are also sent after user clicks on a product/promotion, and in the product/promotion details page (page just before the shopping cart)
1. Product impression
Push product impression data to datalayer.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<script>
dataLayer.push ({
'event':'ee-productImpression'
'ecommerce': {
'impressions': [{
'id':'12345678', // Product ID, Tour ID. If on landing display multiple timeslots or multiple performances, push product ID of the Pass or Event multiple times.
'name':'Romeo & Juliet', // Product name, Tour name
'brand':'Event / Drama', // Product Family Type / Topic of the product (if set)
'position':0, // Position of a product in a given Section (landing page) or Product type (Landing page list view or Normal view). Position of a product in a Section can be different if user change the day view (Today, Tomorrow, After,...)
'list': 'Hot topic' // On Landing page content return Section name, on Landing page list view return Product type name (for a Product type products can be grouped by topic (sub-grouping), please set position and list by Topic name in this case
},
{
'id':'ABC124',
'name':'Product Name',
'brand':'Product Brand',
'position':1,
'list': 'Hot topic'
}]
}
});
</script> |
2. Promotion impression (Advantage)
Push Promotion impression data to datalayer on the same pages and sections mentionned above.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<script>
dataLayer.push ({
'event':'ee-promoImpression'
'ecommerce':{
'promoView':{
'promotions':[{
'id':'177664', // Advantage ID
'name':'Member Exclusive', // Advantage name
'creative':'Only for member', // Advantage description
'position':1 // Position of a product in a given Section (landing page) or Product type (Landing page list view or Normal view)
}]
}
}
});
</script> |
3. Product details impression
Data pushed when :
- A product is clicked (accessing the product details page)
- For the calculated season tickets, it is at the ticket selection page
- For the Hospitality product family, it is at the hospitality selection page
- At the ticket selection page.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<script>
dataLayer.push({
'event':'ee-productView'
'ecommerce': {
'detail': {
'products': [{
'id':'ABC123', // Product ID
'name':'Product Name', // Product name
'brand':'Product Brand', // Product Family Type / Topic of the product (if set)
}]
}
}
});
</script> |
4. Product click
Push Product details' data when user clicks a product, includes the additional data
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<script>
dataLayer.push({
'event':'ee-productClick'
'ecommerce': {
'click': {
'actionField': {
'list': 'Product list name'
},
'products': [{
'id':'ABC123', // Product ID
'name':'Product Name', // Product name
'date':'15/04/2021 - 15:30' // Date time of timeslot, performance, match
'brand':'Product Brand', // Product Family Type / Topic of the product (if set)
'position':0 // Position of a product in a given Section (landing page) or Product type (Landing page list view or Normal view)
'variant':'SALE' // Product is to be SOLD or RESERVED
}]
}
}
});
</script> |
5. Promotion click
Push Product details' data when user clicks a product
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<script>
dataLayer.push ({
'event':'ee-promoClick',
'ecommerce':{
'promoClick':{
'promotions':[{
'id':'Promo ID', // Advantage ID
'name':'Promo name', // Advantage name
'creative':'Creative name', // Advantage description
'position':Position // Position of a product in a given Section (landing page) or Product type (Landing page list view or Normal view)
'variant':'SALE' // Product is to be SOLD or RESERVED
}]
}
}
});
</script> |
Cart and Check-out
1. Add or Remove products from Cart
Push data when a product is added to cart, or remove from cart
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
// Measure adding a product to a shopping cart
// and a list of product.
dataLayer.push({
'event': 'addToCart',
'ecommerce': {
'currencyCode': 'EUR', // Currency code used for the PoS
'add': { // 'add' actionFieldObject measures.
'products': [{ // List of product items added to the shopping cart.
'name': 'Museum Pass', // Product Name
'id': '1234-567-987', // Unique SKU of the product item, i.e. product id - item id (if product is non-dated product) - performance id (if product is of event or parking or visit type) - seat category id - tarrif type id - timeslot id (if product is timeslot) - advantage id (if any) (same as enhanced e-commerce dataLayer)
'price': '15.25', // Unit Price
'brand': 'Visit Pass / Exhibition', // Product Family Type / Topic of the product (if set) (same as enhanced e-commerce dataLayer)
'category': 'Cat A / Normal', // Seat category / tarrif type
'variant': 'Cross-sell 1-click / 1234', // Cross selling type / parent product id (if added to cart via cross-selling)
'quantity': 1 // Quantity added to cart for this product item
'url': 'https://mosa.int1-shop.secutix.com/selection/timeslotpass?productId=101047223156' // URL pointing to the corresponding product item selection page which can be used by 3rd-party email retargeting tools
'imgUrl': 'https://mosa.int1-shop.secutix.com/api/1/dl/product/101047223156/logo' // Image URL of the corresponding product item which can be used by 3rd-party email retargeting tools
}]
}
}
}); |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
// Measure the removal of a product from a shopping cart.
dataLayer.push({
'event': 'removeFromCart',
'ecommerce': {
'remove': { // 'remove' actionFieldObject measures.
'products': [{ // removing a product to a shopping cart.
'name': 'Museum Pass', // Product Name
'id': '1234-567-987', // Unique SKU of the product item, i.e. product id - item id (if product is non-dated product) - performance id (if product is of event or parking or visit type) - seat category id - tarrif type id - timeslot id (if product is timeslot) - advantage id (if any) (same as enhanced e-commerce dataLayer)
'price': '15.25', // Unit Price
'brand': 'Visit Pass / Exhibition', // Product Family Type / Topic of the product (if set) (same as enhanced e-commerce dataLayer)
'category': 'Cat A / Normal', // Seat category / tarrif type
'variant': 'Cross-sell 1-click / 1234', // Cross selling type / parent product id (if added to cart via cross-selling)
'quantity': 1 // Quantity added to cart for this product item
}]
}
}
}); |
2. Check out
Data are sent to datalayer in check out process with 2 steps: Delivery and Order confirmation (after the payment page)
Info | ||
---|---|---|
| ||
Please note that the payment page cannot push any data in the data layer, as this is a secure page and pushing data externally in a secure page is forbidden by the PCI certification. |
When user choose a delivery mode and click on Continue
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<script>
dataLayer.push({
'event': 'ee-checkout',
'ecommerce': {
'checkout': {
'actionField': {
'step': 1, //check out step, (1: Delivery, 2: Summary)
'id': '15284', //shipment Mode ID
'shippingMode': 'E-ticket', // shipment mode name
'shipping': 8 //shipment fee
},
'products': [{ // List of productFieldObjects inside the order.
'name': 'Triblend Android T-Shirt', // Product Name (mandatory).
'id': '12345', // Product Id (mandatory).
'price': '15.25', // Unit Price (mandatory) (same as the basic e-commerce tag).
'brand': 'Visit Pass / Exhibition', // Product Family Type / Topic of the product (if set)
'category': 'Cat A / Normal', // seat category / tarrif type
'variant': 'Cross-sell 1-click / 1234567', // cross selling type / parent product id (if purchased via cross-selling)
'quantity': 1, // same as the basic e-commerce tag
'coupon': 'PartnerCUBE' // advantage name / advantage id
}]
}
}
});
</script> |
When user input a voucher, select a payment method, then click on Continue to Payment
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<script>
dataLayer.push({
'event': 'ee-checkout',
'ecommerce':{
'checkout':{
'actionField':{
'step': 2, //check out step, (1: Delivery, 2: Summary)
'option': 'VISA', //selected payment method name
'id': '1000463', //File ID
'shipmentID': '1111111', // shipment ID, get from Delivery step
'shippingMode': 'E-ticket', // shipment mode name
'shipping': 8, //shipment fee
'payment fee': 4, //payment overhead fee
'revenue': 35, //total amount to pay
'coupon': 'PROMO' //promotional code or voucher code
},
'products': [{ // List of productFieldObjects inside the order.
'name': 'Triblend Android T-Shirt', // Product Name (mandatory).
'id': '12345', // Product Id (mandatory).
'price': '15.25', // Unit Price (mandatory) (same as the basic e-commerce tag).
'brand': 'Visit Pass / Exhibition', // Product Family Type / Topic of the product (if set)
'category': 'Cat A / Normal', // seat category / tarrif type
'variant': 'Cross-sell 1-click / 1234567', // cross selling type / parent product id (if purchased via cross-selling)
'quantity': 1, // same as the basic e-commerce tag
'coupon': 'PartnerCUBE' // advantage name / advantage id
}]
}
}
});
</script> |
Contact data
Expand | |||||||||
---|---|---|---|---|---|---|---|---|---|
Push contact's information (contact Number, hash Email) for all online journeys.
|
Product impression and action data
Expand | |||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Impressions and clicks
1. Product impressionPush product impression data to datalayer.
2. Promotion impression (Advantage)Push Promotion impression data to datalayer on the same pages and sections mentionned above.
3. Product details impressionData pushed when :
4. Product clickPush Product details' data when user clicks a product, includes the additional data
5. Promotion clickPush Product details' data when user clicks a product
|
Cart and Check-out
Expand | |||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1. Add or Remove products from CartPush data when a product is added to cart, or remove from cart
2. Check outData are sent to datalayer in check out process with 2 steps: Delivery and Order confirmation (after the payment page)
When user choose a delivery mode and click on Continue
When user input a voucher, select a payment method, then click on Continue to Payment
|