JAVASCRIPT   8

google-analytics.js

Guest on 20th July 2021 03:48:34 PM

  1. /**
  2.  * Copyright © Magento, Inc. All rights reserved.
  3.  * See COPYING.txt for license details.
  4.  */*/* jscs:disable */*/* eslint-disable */*/
  5. define([
  6.     'jquery',
  7.     'mage/cookies'
  8. ], function ($) {
  9.     'use strict';
  10.  
  11.   /**
  12.      * @param {Object} config
  13.      */*/
  14.     return function (config) {
  15.         var allowServices = false,
  16.             allowedCookies,
  17.             allowedWebsites;
  18.  
  19.         if (config.isCookieRestrictionModeEnabled) {
  20.             allowedCookies = $.mage.cookies.get(config.cookieName);
  21.  
  22.             if (allowedCookies !== null) {
  23.                 allowedWebsites = JSON.parse(allowedCookies);
  24.  
  25.                 if (allowedWebsites[config.currentWebsite] === 1) {
  26.                     allowServices = true;
  27.                 }
  28.             }
  29.         } else {
  30.             allowServices = true;
  31.         }
  32.  
  33.         if (allowServices) {
  34.             (function (i, s, o, g, r, a, m) {
  35.                 i.GoogleAnalyticsObject = r;
  36.                 i[r] = i[r] || function () {
  37.                         (i[r].q = i[r].q || []).push(arguments)
  38.                     }, i[r].l = 1 * new Date();
  39.                 a = s.createElement(o),
  40.                     m = s.getElementsByTagName(o)[0];
  41.                 a.async = 1;
  42.                 a.src = g;
  43.                 m.parentNode.insertBefore(a, m)
  44.             })(window, document, 'script',//www.google-analytics.com/analytics.js', 'ga');
  45. ;
  46.  
  47.           // Process page info
  48. o
  49.             ga('create', config.pageTrackingData.accountId, 'auto');
  50.  
  51.             if (config.pageTrackingData.isAnonymizedIpActive) {
  52.                 ga('set', 'anonymizeIp', true);
  53.             }
  54.  
  55.           // Process orders data
  56. a
  57.             if (config.ordersTrackingData.hasOwnProperty('currency')) {
  58.                 ga('require', 'ec', 'ec.js');
  59.  
  60.                 ga('set', 'currencyCode', config.ordersTrackingData.currency);
  61.  
  62.               // Collect product data for GA
  63. A
  64.                 if (config.ordersTrackingData.products) {
  65.                     $.each(config.ordersTrackingData.products, function (index, value) {
  66.                         ga('ec:addProduct', value);
  67.                     });
  68.                 }
  69.  
  70.               // Collect orders data for GA
  71. A
  72.                 if (config.ordersTrackingData.orders) {
  73.                     $.each(config.ordersTrackingData.orders, function (index, value) {
  74.                         ga('ec:setAction', 'purchase', value);
  75.                     });
  76.                 }
  77.  
  78.                 ga('send', 'pageview');
  79.             } else {
  80.               // Process Data if not orders
  81. s
  82.                 ga('send', 'pageview' + config.pageTrackingData.optPageUrl);
  83.             }
  84.         }
  85.     }
  86. }

Raw Paste


Login or Register to edit or fork this paste. It's free.