Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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 the following measurements of users' interactions:

Table of Contents
maxLevel2
typeflat


Contact data

Push contact's information (contact Number, hash Email) for all online journeys.




Code Block
languagejs
titleContact's data Datalayer Example
collapsetrue
<script>
dataLayer.push ({
  'event':'ee-productImpression'
  'ecommerce': {
    'impressions': []
    'user': [
		'contactNumber':'3010'
		'hashEmail':'a73070283a933005e429eda4ad2e219ce304404dbd518dd6f9624e64a8ea52eb'
   }
});
</script> 


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

as follows : Code Block
languagejs
titleProduct impression DataLayer Example
collapsetrue
<script> dataLayer.push ({ 'event':'ee-productImpression

.

2. Promotion impression (Advantage)

Push Promotion impression data to datalayer on the same pages and sections mentionned above.

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.

4. Product click

Push Product details' data when user clicks a product, includes the additional data

5. Promotion click

Push Product details' data when user clicks a product





Code Block
languagejs
titlePromotion (advantage) impression DataLayer Example
collapsetrue
<script>
dataLayer.push ({
  'event':'ee-promoImpression'
  'ecommerce':
{
    '
impressions
promoView':
[
{
      '
id
promotions':
'12345678',
[{
      'id':'177664',           
//
 
Product
 
ID,
 
Tour
 
ID.
 
If
 
on
 
landing
 
display multiple timeslots or multiple
 
performances,
 
push
 
product
 
ID
 
of
 
the
 
Pass
 
or
 
Event
// 
multiple
Advantage 
times.
ID
      'name':'
Romeo
Member 
& Juliet
Exclusive',                // 
Product name, Tour
Advantage name
      '
brand
creative':'
Event
Only 
/
for 
Drama
member',             // 
Product
Advantage 
Family
description
Type
 
/
 
Topic
 
of
 
the
 
product (if set)
 'position':1         
'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',
 or Normal view)
     }]
   }
  }
});
</script> 


Code Block
languagejs
titleProduct impression DataLayer Example
collapsetrue
<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':'
Product
Romeo & 
Name
Juliet',       
'brand':'Product
 
Brand',
  // Product name, Tour name
'position':1,
      '
list
brand':
'Hot topic'
'Event / Drama',        
}]
  // Product 
}
Family 
});
Type 
<
/
script>

2. Promotion impression (Advantage)

Push Promotion impression data to datalayer on the same pages and sections mentionned above :

Code Block
languagejs
titlePromotion (advantage) impression DataLayer Example
collapsetrue
<script> dataLayer.push ({
 Topic of the product (if set) 
      '
event':'ee-promoImpression'
position':0,           
'ecommerce':{
     
'promoView':{
     // 
'promotions':[{ 'id':'177664', // Advantage ID
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,...)
      '
name
list': '
Member
Hot 
Exclusive
topic'
,
               // 
Advantage
On 
name
Landing page content return 
'creative':'Only for member'
Section name, on Landing page list view return Product type name (for a 
// Advantage description 'position':1
Product type products can be grouped by topic (sub-grouping), please set position and list by Topic name in this case
     },
     {
      
// 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.
'id':'ABC124',
      'name':'Product Name',
      'brand':'Product Brand',
      'position':1,
      'list': 'Hot topic'
     }]
   }
});
</script> 


Code Block
languagejs
titleProduct details impression DataLayer Example
collapsetrue
<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
languagejs
titleProduct click DataLayer Example
collapsetrue
<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
languagejs
titlePromotion click DataLayer Example
collapsetrue
<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
languagejs
titleAdd to Cart DataLayer Example
collapsetrue
// 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
languagejs
titleRemove from Cart DataLayer Example
collapsetrue
// 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
titleSecurity and data layer

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
languagejs
titleDelivery step DataLayer Example
collapsetrue
<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
languagejs
titleOrder summary step DataLayer Example
collapsetrue
<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>