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 almost all the measurements of users' interactions.

Table of Contents
maxLevel3
outlinetrue

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

Table of Contents
includeEnhanced e-commerce tracking
typeflat

Note
titlePrerequisite

Please note that our Enhanced E-commerce Tracking is only supported if you are using Universal Analytics tracking and Google Tag Manager.

1. Activate Enhanced E-commerce for the Point of Sales 

Login 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.

Image Removed

Wait for a few minutes for the corresponding PoS to be updated with the latest parameters.

Verification

Once 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:

  • press the "F12" key to open the Console (or right click the mouse and choose "Inspect Element")
  • type "dataLayer" in the Console and press the "Enter" key
  • if you can find the JavaScript object called "ecommerce" inside the dataLayer object (as highlighted below), then that means the activation step works.
    Image Removed

2. Activate Enhanced E-commerce in Google Analytics

  • Login to your Google Analytics account
  • Go to the Admin page 
  • Find the corresponding "View" where your online ticket shop is configured to send the tracking data
  • Click on the "Ecommerce Settings"
    Image Removed
  • Activate the Enhanced Ecommerce Reporting

    Image Removed

  • Add a new Annotation to mark the date when you activate enhanced e-commerce
    Image Removed

3. Setup Google Tag Manager

Once 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

Warning

Please note that this is an important step. If you couldn't configure it properly, you might end up having duplicated transactions in your Google Analytics reports.

To successfully migrate to the Enhanced E-commerce, first we need to deactivate the existing traditional e-commerce tag.

  • Login to your Google Tag Manager account
  • Open the Tag where you configured the traditional e-commerce tracking
  • On the top-right corner, click on "Pause" via the options menu to pause the tag
    Image Removed
  • Click "Save" to save the changes

3.2 Enable Enhanced E-commerce 

The second step is to enable enhanced e-commerce tracking inside your existing Universal Analytics basic tracking tag.

  • Open the Tag where you configured the Universal Analytics basic tracking 
  • Open the "More Settings" > "Ecommerce" option and check both checkboxes as shown below
    Image Removed
  • Click "Save" to save the changes
Note
iconfalse

Note that you can also enable the "Enhanced Ecommerce" feature in GA by checking the same checkboxes in your Google Analytics Settings variable, if you are using it.

3.3 Preview & Publish 

Click on the "Preview" button at the top right corner 
Image Removed
  • Inside the same browser, open your target online ticket shop in a new tab
  • Do a test purchase
  • On the Confirmation Page:
    • note down the Reference ID (i.e. File ID) for this transaction displayed in the thank you message 
    • verify that there is only one e-commerce tag fired (as shown in the example screenshot below)
      Image Removed
  • Go to the corresponding Google Analytics account 
  • Click on Conversions > Ecommerce > Sales Performance report and change the date range to the current date
  • Wait for a few minutes and keep refreshing the page until you see the Reference ID of your test purchase appears in the Sales Performance report
  • Go back to the Google Tag Manager account
  • Click on "Submit" button to publish your GTM container if the above steps are verified to be correct
  • Done!
  • Enhanced e-commerce tracking

    Expand

    What's New?

    New Google Analytics Reports

    If 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!

    Image Removed

    Image Removed

    Traditional E-commerce Enhanced E-commerce

    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 CouponProduct 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.

    Image Removed

    Order Coupon Report Example

    Image Removed

    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.

    Image Removed

    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. 

    Image Removed

    Product Brand Report Example

    New DataLayer

    With 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:

    • Tax - the tax (VAT) amount of the order
    • Order Coupon - the promotional code used by user to get a order-level discount on the Order Summary Page 
    • Product Brand - information about product family type and topic of the product if a topic configured 
    • Product Variant - information about the cross-selling type (including up-selling, cross-selling, cross-selling via one click, hit offer, post-selling) and ID of the parent product if a product is purchased via cross-selling
    • Product Coupon -information about the advantage if a purchased product has an advantage

    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:

  • Transaction ID - we are now using an order's File ID instead of Order ID as File ID is a more accurate reference for operations like order refund, cancellation, pay for a reservation, etc.
  • Affiliation - instead of using the institution code, we are now tracking the associated organization code and point of sales code of the corresponding online ticket shop in order to help you easier compare the sales performance across multiple online ticket shops, if you have more than one organizations or online ticket shops configured. 

    For a full definition of the new DataLayer structure, please refer to the example below.

    Code Block
    languagejs
    titleNew DataLayer Example
    collapsetrue
    'ecommerce': { 'purchase': { 'actionField': { 'id': '12345', // File ID 'affiliation': 'MOSA_TSHOP', // OrganizationCode_PoSCode 'revenue': '35.43', // Total order amount (incl. tax and shipping) (same as the traditional e-commerce tag) 'tax':'4.90', // Tax (VAT) 'shipping': '5.99', // Shipping fee (same as the traditional e-commerce tag) 'coupon': 'SUMMER_SALE' // Access code of the promotional code if the user uses one in the Order Summary Page }, 'products': [{ // List of purchased products inside the order. 'name': 'School Workshop', // Product name

    SecuTix ticketshop offers a data layer interface compatible with E-commerce tracking (data about events and commerce data pushed via standard JavaScript from our funnel pages), providing key information about the purchase and the various purchase steps as detailed below. Note that for security/PCI reasons, we do not push any tracking information from our payment page.

    Our data layer content is common to all our customers (when activated) and compatible with our supported default setup within Google Tag Manager (which we offer as a service provided by our service team). Customers relying on the data layer to perform custom tracking with their agencies are responsible for the usage of the data layer data provided as-is and are kindly requested to point out which data layer element does not have the expected value based on the below documentation when raising an incident so that our engineering team can perform the analysis without requiring to dig into the customer-specific setup.

    Table of Contents
    maxLevel3
    outlinetrue

    Overview of how tracking works in conjunction with SecuTix Ticketshop

    SecuTix ticketshop integrate with Google Tag Manager (GTM) as the only supported tagging tool at the moment. GTM tracking is activated via the back-office by providing a container ID. Once setup, the GTM tracking code is added on all ticketshop pages with the exception, for security reasons, of our payment page.

    In order to expose data relevant to e-commerce tracking to GTM, we have a standardized implementation of a data layer. Based on the description provided in this Confluence page, we push relevant event and purchase data designed to work with e-commerce tracking.

    Within GTM, tags are defined within the container to inject content (HTML/JavaScript) on the SecuTix ticketshop page generally for the purposes of adding analytics tags. We offer 2 different options:


    Image Added


    OPTION 1 - SECUTIX-MANAGED GTMOPTION 2 - CLIENT-MANAGED GTM

    SecuTix can provide a standard setup of GTM that includes basic and e-commerce tracking with Google Analytics (subject to a service fee).

    Additional trackers/analytics tool can be evaluated for inclusion as a service (subject to a service fee).

    For customers with GTM capabilities (internally or via an agency), the setup of GTM can be performed autonomously, following the recommendation on this page. In this case, SecuTix is not responsible for the accurate setup with GTM. In case of tracking issues, our support team will need to get precise information about which event/data listed on this page is not surfaced correctly.

    In this case, the client is allowed to integrate any tags that he wants provided he is not breaking the behaviour of the ticketshop.



    Info
    titleNote


    GA Set Up - Not Supported
    We only provide documentation and guidelines for setting up Google Analytics (GA). We do not offer direct support for GA implementation.

    Data Layer

    We provide documentation and guidelines, however, we do not support third-party tools outside of SecuTix control, such as Meta, Matomo, or other Tag Analytics tools.

    Support for data layer implementation is available in specific cases:

    a) Events triggered incorrectly with the correct setup.
    b) Experiencing sudden errors without changing configurations (following our guidelines).




    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

    Table of Contents
    includeEnhanced e-commerce tracking
    typeflat

    Note
    titlePrerequisite

    Please note that our Enhanced E-commerce Tracking is only supported if you are using Universal Analytics tracking and Google Tag Manager.

    1. Activate Enhanced E-commerce for the Point of Sales 

    Login 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.

    Image Added

    Wait for a few minutes for the corresponding PoS to be updated with the latest parameters.

    Verification

    Once 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:

    • press the "F12" key to open the Console (or right click the mouse and choose "Inspect Element")
    • type "dataLayer" in the Console and press the "Enter" key
    • if you can find the JavaScript object called "ecommerce" inside the dataLayer object (as highlighted below), then that means the activation step works.
      Image Added

    2. Activate Enhanced E-commerce in Google Analytics

    • Login to your Google Analytics account
    • Go to the Admin page 
    • Find the corresponding "View" where your online ticket shop is configured to send the tracking data
    • Click on the "Ecommerce Settings"
      Image Added
    • Activate the Enhanced Ecommerce Reporting

      Image Added

    • Add a new Annotation to mark the date when you activate enhanced e-commerce
      Image Added

    3. Setup Google Tag Manager

    Once 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

    Warning

    Please note that this is an important step. If you couldn't configure it properly, you might end up having duplicated transactions in your Google Analytics reports.

    To successfully migrate to the Enhanced E-commerce, first we need to deactivate the existing traditional e-commerce tag.

    • Login to your Google Tag Manager account
    • Open the Tag where you configured the traditional e-commerce tracking
    • On the top-right corner, click on "Pause" via the options menu to pause the tag
      Image Added
    • Click "Save" to save the changes

    3.2 Enable Enhanced E-commerce 

    The second step is to enable enhanced e-commerce tracking inside your existing Universal Analytics basic tracking tag.

    • Open the Tag where you configured the Universal Analytics basic tracking 
    • Open the "More Settings" > "Ecommerce" option and check both checkboxes as shown below
      Image Added
    • Click "Save" to save the changes
    Note
    iconfalse

    Note that you can also enable the "Enhanced Ecommerce" feature in GA by checking the same checkboxes in your Google Analytics Settings variable, if you are using it.

    3.3 Preview & Publish 

    • Click on the "Preview" button at the top right corner 
      Image Added

    • Inside the same browser, open your target online ticket shop in a new tab
    • Do a test purchase
    • On the Confirmation Page:
      • note down the Reference ID (i.e. File ID) for this transaction displayed in the thank you message 
      • verify that there is only one e-commerce tag fired (as shown in the example screenshot below)
        Image Added
    • Go to the corresponding Google Analytics account 
    • Click on Conversions > Ecommerce > Sales Performance report and change the date range to the current date
    • Wait for a few minutes and keep refreshing the page until you see the Reference ID of your test purchase appears in the Sales Performance report

    • Go back to the Google Tag Manager account
    • Click on "Submit" button to publish your GTM container if the above steps are verified to be correct
    • Done!


    Enhanced e-commerce tracking

    Expand

    New Google Analytics Reports

    If 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!

    Image Added

    Image Added

    Traditional E-commerce Enhanced E-commerce


    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 CouponProduct 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.

    Image Added

    Order Coupon Report Example

    Image Added

    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.

    Image Added

    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. 

    Image Added

    Product Brand Report Example



    New DataLayer

    With 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:

    • Tax - the tax (VAT) amount of the order
    • Order Coupon - the promotional code used by user to get a order-level discount on the Order Summary Page 
    • Product Brand - information about product family type and topic of the product if a topic configured 
    • Product Variant - information about the cross-selling type (including up-selling, cross-selling, cross-selling via one click, hit offer, post-selling) and ID of the parent product if a product is purchased via cross-selling
    • Product Coupon -information about the advantage if a purchased product has an advantage

    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:

    • Transaction ID - we are now using an order's File ID instead of Order ID as File ID is a more accurate reference for operations like order refund, cancellation, pay for a reservation, etc.
    • Affiliation - instead of using the institution code, we are now tracking the associated organization code and point of sales code of the corresponding online ticket shop in order to help you easier compare the sales performance across multiple online ticket shops, if you have more than one organizations or online ticket shops configured. 

    For a full definition of the new DataLayer structure, please refer to the example below.

    Code Block
    languagejs
    titleNew DataLayer Example
    collapsetrue
     'ecommerce': {
       'purchase': {
         'actionField': {
           'id': '12345',                      // File ID
           // 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'affiliation': 'MOSA_TSHOP',        // OrganizationCode_PoSCode
           'revenue': '35.43',                 // Total order amount (incl. tax and shipping) (same as the traditional e-commerce tag)
           'pricetax': '154.2590',                             // UnitTax price(VAT)
           'brandshipping': 'Visit Pass / Exhibition','5.99',                 // ProductShipping Familyfee Type / Topic of(same as the product (if settraditional e-commerce tag)
           'categorycoupon': 'Cat A / Normal',    SUMMER_SALE'             // SeatAccess categorycode /of Tarrifthe typepromotional code if the user uses one in 'variant': 'Cross-sell 1-click / 1234567',the Order Summary Page
        // Cross},
    selling type / Parent product id (if purchased via cross-selling)'products': [{           'quantity': 1,            // List of purchased products inside the order.
           'name': 'School Workshop',   // Purchased quantity of the product item        'coupon': 'Free Admission // 54321'Product name
           'id': '12345',  // Advantage name / Advantage id (if purchased product is an advantage product)       },       {    // Unique SKU of 'name': 'Gift Voucher',
           'id': '67890',
           'price': '33.75',
           'brand': 'Exhibition',
           'category': 'Normal',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)
           'variantprice': 'Post-sell / 123456715.25',         'quantity': 1       }]    }
     }

    Contact data

    Expand

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

    Code Block
    languagejs
    titleProduct details impression DataLayer Example
    collapsetrue
    <script>
    dataLayer.push({
      'event':'ee-productView'
      'ecommerce': {        // Unit price
           'userbrand': [{'Visit Pass / Exhibition',      'contactNumber':'300',				// logged in contact's number
       // Product Family Type / Topic of the product (if set)
           'hashEmailcategory':'a73070283a933005e429eda4ad2e219ce304404dbd518dd6f9624e64a8ea52eb',				// user's email encrypted
      'Cat A / Normal',                 // Seat category / Tarrif type
         }]   'variant': 'Cross-sell 1-click }/ 1234567',   }; <//script> 

    Product impression and action data

    Expand

    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
     Cross selling type / Parent product id (if purchased via cross-selling)
           'quantity': 1,                                // Purchased quantity of the product item
           'coupon': 'Free Admission / 54321'            // Advantage name / Advantage id (if purchased product is an advantage product)
          },
          {
           'name': 'Gift Voucher',
           'id': '67890',
           'price': '33.75',
           'brand': 'Exhibition',
           'category': 'Normal',
           'variant': 'Post-sell / 1234567',
           'quantity': 1
          }]
       }
     }


    Contact / LogIn data

    Expand

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

    Code Block
    languagejs
    titleProduct details impression DataLayer Example
    collapsetrue
    <script>
    dataLayer.push ({
      'event':'ee-productImpressionproductClick'
      'ecommerce': {
        'impressionsuser': [{
          'idcontactNumber':'123456783010',                  // Product ID, Tour ID. If on landing display multiple timeslots or multiple performances, push product ID of the Pass or Event multiple times.logged in's contact number
          'namehashEmail':'a73070283a933005e429eda4ad2e219ce304404dbd518dd6f9624e64a8ea52eb'Romeo,  & Juliet',          // Product name, Tour nameencrypted contact's email      
    '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',script> 

    If you need the "hashEmail" field, please consult Share email of logged in internet user with third party software.

    Product impression and action data

    Expand

    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
    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':'ProductRomeo & NameJuliet',          // Product name, Tour name
          'brand':'ProductEvent / BrandDrama',          // Product Family Type / Topic of the product (if set)
    	  'positiontype':1, 'Sport', 				 	// Product Type
          'listposition':0, 'Hot  topic'      }]    } }); </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 ({   'event':'ee-promoImpression'
      'ecommerce':{
        'promoView':{
          'promotions':[{
          'id':'177664',                // 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'   // Advantage ID       'name':'Member Exclusive',  // On Landing page content return Section name, on Landing page list view return //Product Advantagetype name (for a Product type products can  'creative':'Only for member',             // Advantage description
     be grouped by topic (sub-grouping), please set position and list by Topic name in this case
         },
        'position':1 {
          'id':'ABC124',
          'name':'Product Name',
          'brand':'Product Brand',
         // Position of a product in a given Section (landing page) or Product type (Landing page list view or Normal view)
         }]
       } 'position':1,
          'list': 'Hot topic'
         }]
       }
    });
    </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

    2. Promotion impression (Advantage)

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

    Code Block
    languagejs
    titleProduct details Promotion (advantage) impression DataLayer Example
    collapsetrue
    <script>
    dataLayer.push ({
      'event':'ee-productViewpromoImpression'
      'ecommerce': {
        'detailpromoView': {
     
          'productspromotions': [{
     
          'id':'ABC123177664',						// Product ID         'name':'Product Name',				// Product name         'brand':'Product Brand',			// Product Family Type // TopicAdvantage ofID
    the product (if set)   'name':'Member Exclusive',    }]      }    } }); <//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({ Advantage name
          'eventcreative':'ee-productClick'Only for  member'ecommerce':, {     'click': {       'actionField': {// Advantage description
          'listposition':1    'Product list name'       },       'products': [{         'id':'ABC123',						// ProductPosition IDof a product in a given Section (landing  'name':'Product Name',				//page) or Product name
    		'date':'15/04/2021 - 15:30'     type (Landing page list view or Normal view)
       // Date time}]
    of timeslot, performance, match}
      }
    });
        'brand':'Product Brand',			// Product Family Type / Topic of the product (if set)</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
    languagejs
    titleProduct details impression DataLayer Example
    collapsetrue
    <script>
    dataLayer.push({
      'event':'ee-productView'
      'ecommerce': {
        'detail': {
            'products': [{
            'positionid':0'ABC123',						// Position of a product in a given Section (landing page) or Product type (Landing page list view or Normal view)
    		'variant':'SALE'Product ID
            'name':'Product Name',					// Product isname
    to be SOLD or RESERVED    'brand':'Product Brand',			// Product Family Type / Topic of the product (if set)
    	 	'type': 'Sport', 				 	// Product }]Type
           }]
         }
       }
    });
    </script> 
    5

    4.

    Promotion

    Product click

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

    Code Block
    languagejs
    titlePromotion Product click DataLayer Example
    collapsetrue
    <script>
    dataLayer.push ({
      'event':'ee-promoClickproductClick',
      'ecommerce': {
        'promoClickclick': {
          'promotionsactionField':[ {
    
           'idlist': 'PromoProduct list ID',						// Advantage ID
     name'
          },
          'nameproducts':'Promo name',					// Advantage name [{
            'creativeid':'Creative nameABC123',						// AdvantageProduct descriptionID
            'positionname':Position'Product Name',				// Product name
    		'date':'15/04/2021 Position of a product in a given Section (landing page) or Product type (Landing page list view or Normal view)
    		'variant':'SALE'		- 15:30'         // Date time of timeslot, performance, match
            'brand':'Product Brand',			// Product isFamily toType be/ SOLDTopic orof RESERVEDthe product (if set)
         }]   'position':0						// Position of a }product in a given Section }(landing });
    </script> 

    Cart and Check-out

    Expand

    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',   page) or Product type (Landing page list view or Normal view)
    		'variant':'SALE'					// Product is to be SOLD or RESERVED
    	 	'type': 'Sport', 				 	// Product Type
            }]
         // Currency code}
    used for the PoS }
    });
    </script>  'add': 

    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':{
         // 'addpromotions':[{
    actionFieldObject measures.       'productsid': [{ 'Promo ID',					// Advantage ID
            'name':'Promo name',				// Advantage name
            'creative':'Creative name',			// Advantage Listdescription
    of product items added to the shopping cart.
            'name': 'Museum Pass',                   '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 Nameis to be SOLD or RESERVED
    	   	'idtype': '1234-567-987Sport', 				 	// Product Type
            }]
         // 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)
       }
    });
    </script> 


    Cart and Check-out

    Expand

    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
        'priceadd': '15.25',{                       // Unit'add' PriceactionFieldObject measures.
          'products': [{          'brand': 'Visit Pass / Exhibition',     // Product Family Type // Topic List of the product (ifitems set)added (sameto asthe enhanced e-commerce dataLayer)shopping cart.
            'categoryname': 'Museum Pass'Cat,  A / Normal',           // Seat category // tarrifProduct typeName
            'variantid': 'Cross1234-sell 1-click / 1234567-987', // Cross  selling type / parent product id (if added to cart via cross-selling)    // Unique SKU of the '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 toolsproduct 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          
            'imgUrlbrand': '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
     Visit Pass / Exhibition',     // Product Family Type / Topic of the product (if set) (same as enhanced e-commerce dataLayer)
            'category': 'Cat A / Normal',      }]     }// Seat category }
    });
    Code Block
    languagejs
    titleRemove from Cart DataLayer Example
    collapsetrue
    // Measure the removal of a product from a shopping cart.
    dataLayer.push({/ tarrif type
            'eventvariant': 'removeFromCartCross-sell 1-click / 1234', // Cross selling 'ecommerce': {
        'remove': {   type / parent product id (if added to cart via cross-selling)
            'quantity': 1                  // 'remove' actionFieldObject measures.       'products': [{      // Quantity added to cart for this product item
                 'url': 'https://mosa.int1-shop.secutix.com/selection/timeslotpass?productId=101047223156'      // URL removing a productpointing to athe shoppingcorresponding cart.product item selection page which can be used  'name': 'Museum Pass', by 3rd-party email retargeting tools
              'imgUrl': 'https://mosa.int1-shop.secutix.com/api/1/dl/product/101047223156/logo'             // Product Name
            'id Image URL of the corresponding product item which can be used by 3rd-party email retargeting tools
    	 	'type': '1234-567-987Sport', 				 	// Product Type
           }]
          //}
    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)
     }
    });


    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.
          'priceproducts': '15.25', [{                      // Unit Price  //  removing a product to a shopping cart.
            'brandname': 'VisitMuseum Pass / Exhibition',     // Product Family Type / Topic of the product (if set) (same as enhanced e-commerce dataLayer)// Product Name
            'categoryid': 'Cat A / Normal','1234-567-987',              // Seat category / tarrif type// Unique SKU of the product item, i.e. product 'variant': 'Cross-sell 1-click / 1234', // Cross selling type / parent productid - item id (if product is non-dated product)  - performance id (if addedproduct tois cartof via cross-selling)
            'quantity': 1event 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   // Quantity added to cart for this product
    item       }] 'brand': 'Visit Pass / }Exhibition',   }
    });

    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)  // 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
    	 	'type': 'Sport', 				 	// Product Type
          }]
        }
      }
    });

    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': { 
    						'quantitystep': 1, 										//check sameout as the basic e-commerce tagstep, (1: Delivery, 2: Summary) 
    						'couponid': '15284',
    					 	'option':'PartnerCUBEsummary' 								// advantage name / advantage id order summary page - where the ee-checkout step 1 is pushed (additional information)
    						}] 'shippingMode': 'E-ticket', 					}//shipment mode name 
    						}'shipping': 
    }); 
    </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':{8 									//shipment fee 
    			'checkout':{ 
    				'actionField':{}, 
    					'stepproducts': 2,[{ 											//checkList outof step, (1: Delivery, 2: Summary)productFieldObjects inside the order. 
    						'optionname': 'VISATriblend Android T-Shirt', 									//selectedProduct payment method name 
    Name (mandatory). 
    						'id': '100046312345', 									//File IDProduct Id (mandatory). 
    						'shipmentIDprice': '111111115.25', 								// shipment ID, get from Delivery stepUnit Price (mandatory) (same as the basic e-commerce tag). 
    						'shippingModebrand': 'E-ticketVisit Pass / Exhibition', 						// shipment mode name// Product Family Type / Topic of the product (if set) 
    						'shippingcategory': 8 'Cat A / Normal', 										//shipment fee 
    // seat category / tarrif type 
    						'variant'payment: fee': 4, 									//payment overhead fee 
    'Cross-sell 1-click / 1234567', 		// cross selling type / parent product id (if purchased via cross-selling) 
    						'revenuequantity': 351, 										//total amount to pay 
     same as the basic e-commerce tag 
    						'coupon': 'PROMOPartnerCUBE' 									//promotional advantage codename or/ voucheradvantage codeid 
    					},  				'productstype': [{'Sport', 							 				// ListProduct of productFieldObjects inside the order. 
    Type
    						'name': 'Triblend Android T-Shirt',}] 
    					} 
    				// Product Name (mandatory). 
    					'id': '12345', 										// Product Id (mandatory).} 
    }); 
    </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':{ 
    					'pricestep': '15.25'2, 											//check Unitout Pricestep, (mandatory) (same as the basic e-commerce tag).1: Delivery, 2: Summary) 
    				 	'brandoption': 'Visit Pass / Exhibition', 'order-confirmation' 						//order Productconfirmation Familypage Type- /where Topicthe ofee-checkout the productstep 2 is pushed (ifadditional set)information)
    					'option': 'VISA', 									//selected payment method name 
    					'categoryid': 'Cat A / Normal'1000463', 									//File ID 
    					'shipmentID': '1111111', 							// shipment seatID, categoryget /from tarrifDelivery typestep 
    					'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>					'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 
    					 'type': 'Sport', 				 					// Product Type
    					}] 
    				} 
    			} 
    }); 
    </script>


    Ticket quantity tracking for e-commerce package

    Expand

    We've added a new parameter at point of sale level to define the way the data layer is structured for packages before sending the data to Google Analytics.

    Image Added

    With this new parameter, package quantity is calculated based on the number of tickets in the package before sending the data to Google Analytics.


    Specific tracking for the Tournament-specific Lottery Module

    The tournament lottery module does not have the same tracking as our regular ticketshop. This section details the events that are pushed to the data layer for this specific module.


    Tournament Lottery Specific Tracking


    Expand

    The Tournament Lottery module also provide specific events to track the behaviour of users of the lottery module.

    Events that are tracked and pushed to the data layer are listed below.

    Event tracking on the application page

    Events are fired to track the progress of the user on the application page when creating and/or updating an application.

    Note that the events are designed to track the behaviour of the user on the screen as the lottery application page is a one-page-application where all interactions are purely handled on the front-end side until the submission. It is not intended to provide reliable information about actual, valid application content nor e-commerce-like tracking as they are fired upon clicks on the front-end application, before the data is ultimately saved at the end of the process.

    EventEvent CategoryEvent Action Event LabelTrigger
    APPLICATION_EVENTS1 - Ticket requestConfirm a ticket requestProduct type - Match - Category
    (e.g. IMT - Match 6 - Category 1)
    User adds or updates a ticket request to his application in the front-end
    APPLICATION_EVENTS1 - Ticket requestEdit a ticket request-Users clicks on edit on an existing ticket request within his application in the front-end
    APPLICATION_EVENTS1 - Ticket requestDelete a ticket requestProduct type - Match - Category
    (e.g. IMT - Match 6 - Category 1)
    Users clicks on delete on a ticket request in his application in the front-end
    APPLICATION_EVENTS2 - Profile DetailsEdit profile details-User clicks on "Edit profile details" in his application in the front-end
    APPLICATION_EVENTS2 - Profile DetailsSave profile details-User clicks on "Save" in the ticket details section of  his application in the front-end
    APPLICATION_EVENTS3 - Submit ApplicationSubmit Clicked-User clicks on "Submit/Update" in his application to submit a new application or update its application 
    APPLICATION_EVENTS3 - Submit ApplicationSubmit Succeeded-The submission of the application succeeds after the user clicks on "Submit/Update" (for new application and updates)
    APPLICATION_EVENTS3 - Submit ApplicationSubmit FailedError messageThe submission of the application failed after the user clicks on "Submit/Update" (for new application and updates)
    APPLICATION_EVENTS4 - Reset Application

    The user withdraws his existing application by clicking on the delete button.