Note | ||
---|---|---|
| ||
Please note that our Enhanced E-commerce Tracking is only supported if you are using Universal Analytics tracking and Google Tag Manager. If you have not yet activated the Enhanced E-commerce Tracking, please get in touch with our service team to ensure a proper setup. |
Context
Excerpt |
---|
You are a strong user of the Google Analytics enhanced e-commerce tracking and you want to gain a deeper understanding of your visitors behavior especially on the products and promotions impressions, clicks and a more detailed view on the checkout process of your visitorscalculated season tickets sales. Our Enhanced E-commerce feature has been further extended and is here to provide you with all those details. |
Solution
Following the delivery deliveries of Cart and user info tracking on Enhanced E-commerce in Whymper V3, we and Google Analytics improved data layer for products and checkout in Bishorn V1, we have continued our journey to enrich the e-commerce tracking data for our online sales platform in Bishorn V1V2. This time, we focus on understanding product impressions and clicks, promotion impressions and clicks and the checkout processyour season ticket holders journey.
Info | ||
---|---|---|
| ||
Applies for all internal sales channels that enables the pos-param "Enable enhanced e-commerce tracking", applies for all product families (includes Season ticket, Hospitality) The SecuTix data layer is not pushing data on the self-exchange online pages. |
Contact number and order type available to all data pushes existing already
Contact Number: add a new field "user" with key "contactNumber" to all existing datalayers after a user has logged in TS, for instance:
Order Type: re-use the "Variant" field to identify orderType (SALE, RESERVATION) which already done in addToCart, apply for other datalayers
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
event:"ee-productClick" ecommerce:Object click:Object user:Object contactNumber:"3010" // add the contactNumber after user logged in, this can be empty due to guest hashedEmail:".." // only push when activate webTracking.userInfoTrackingType actionField:Object list:"Plan your visit" products:Array[1] 0:Object id:"101061827659" name:"West Hall - Guided visit" brand:"Visit pass" variant: "SALE" // add the orderType from the action productClick (exclude datalayers which already done) position:0 |
Push date time of dated product from addToCart datalayer to all
For dated product (match, performance, timeslot) please add a new field "date" in addTocart and later processes (checkout, confirmation,...)
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
event:"ee-checkout"
ecommerce:Object
checkout:Object
user:Object
contactNumber:"3010"
actionField:Object
products:Array[3]
0:Object
name:"Museum Ticket"
date:"15/04/2021 - 15:30" //date time of timeslot, performance, match
category:"Adult"
price:"14.00"
quantity:2
id:"101049282449-101049310928-306159078-101049317318"
brand:"Visit pass"
variant:"SALE" |
Push data for Subscription journey
. Add productView when purchasing calculated SSTK in 2 steps (when these 2 pages Loaded):
- 1st: once enter the Season ticket first page: https://thecube-l-tcube.int2-shop.secutix.com/selection/subscription?productId=466508722
- 2nd: After clicking on "Subscribe now", send productView data of Calculated SSTK in the next page: https://thecube-l-tcube.int2-shop.secutix.com/selection/subscription/subscribers?productId=466508722
Add new datalayer addSubscription when purchasing Calculated SSTK:
ProductView data are pushed to the data layer first once a visitor enters the Season ticket first page (product description page) and second after the vistor clicks on "Subscribe now".
. Product impressionPush product impression data to datalayer as follows :
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
event:"ee-addSubscription"
ecommerce:Object
add:Object
user:Object
contactNumber:"3010"
products:Array[1]
0:Object
id:"466508722"
name:"Open Season Ticket"
brand:"Season tickets"
quantity:2
variant:"SALE" |
Add new datalayer validateSubscription and cancelSubscription:
- Add validateSubscription when user confirm the Subscription (click on VALIDATE SUBSCRIPTION): https://thecube-l-tcube.int2-shop.secutix.com/selection/subscription/performances?productId=466508722&subscribers=466507290x1
- Send again if user modify seats of some performances and VALIDATE again
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
event:"ee-validateSubscription" ecommerce:Object currencyCode:"EUR" validate:Object user:Object contactNumber:"3010" products:Array[1] 0:Object id:"466508722" name:"Open Season Ticket" brand:"Season tickets" quantity:2 variant:"SALE" performance:Array[3] 0:Object <script> dataLayer.push ({ 'event':'ee-productImpression' 'ecommerce': { 'impressions': [{ 'id':'12345678',id:"466498532" name:"Swan Lake" date:"15/04/ Product ID, Tour ID. If on landing display multiple timeslots or multiple performances, push product ID of the Pass or Event multiple times.2021 - 15:30" category:"Cat 1 / Subscriber - Adult" price:"14.00" quantity:1 brand:"Event" variant:"SALE" 1:Object id:"466498533" 'name':'Romeo & Juliet', name:"La Travia" date:"16/04/2021 - 15:30" category:"Cat 1 / Product name, Tour name Subscriber - Adult" price:"14.00" quantity:1 'brand':'Event / Drama',"Event" variant:"SALE" 2:Object id:"466498535" name:"Romeo&Juliet" date:"17/04/2021 - 15:30" category:"Cat 1 / Subscriber - Adult" price:"14.00" quantity:1 brand:"Event" variant:"SALE" |
- Add cancelSubscription when user cancel the Subscription: same structure and data as validateSubscription except use the event cancel
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
event:"ee-cancelSubscription" ecommerce:Object currencyCode:"EUR" cancel:Object user:Object contactNumber:"3010" products:Array[1] 0:Object id:"466508722" name:"Open Season Ticket" brand:"Season tickets" quantity:2 variant:"SALE" Product Family Type / Topic of the product (if set) 'position':0, performance:Array[3] 0:Object id:"466498532" name:"Swan Lake" date:"15/04/ 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'2021 - 15:30" category:"Cat 1 / Subscriber - Adult" price:"14.00" quantity:1 brand:"Event" variant:"SALE" 1:Object [...] |
Push Subscrition's child performances data in addToCart, removeFromCart, Checkout, Confirmation
Modify these datalayers to have list of child performances of a Season ticket
- Send again if user modify seats of some performances and VALIDATE again
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
event:"addToCart" [...] name:"Open Season Ticket" brand:"Season tickets" quantity:2 variant:"SALE" performance:Array[3] 0:Object id:"466498532" name:"Swan Lake" date:"15/04/ 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', 2021 - 15:30" category:"Cat 1 / Subscriber - Adult" price:"14.00" quantity:1 brand:"Event" variant:"SALE" 1:Object id:"466498533" 'name':'Product Name', name:"La Travia" date:"16/04/2021 - 15:30" 'brand':'Product Brand', category:"Cat 1 / Subscriber - Adult" price:"14.00" 'position':1, quantity:1 brand:"Event" 'list': 'Hot topic' variant:"SALE" 2:Object }] } }); </script> id:"466498535" name:"Romeo&Juliet" date:"17/04/2021 - 15:30" category:"Cat 1 / Subscriber - Adult" price:"14.00" quantity:1 brand:"Event" variant:"SALE" |