Advertisement
NikolayBezay

Mercedes-benz GA Adoric event sync code for GTM(updated).

Jul 21st, 2022 (edited)
618
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 5.48 KB | None | 0 0
  1. <script>
  2. (function() {
  3.         var GA_WAITING_TIMER = 20;
  4.  
  5.         function startCampaignChecking() {
  6.             function getTrackerData() {
  7.                 try {
  8.                     var trackers = window.ga.getAll();
  9.                     var masterTracker = {};
  10.                     var slaveTracker = {};
  11.                     trackers.forEach(function(item) {
  12.                         if (item.model.data.ea[':name'] == 't0') {
  13.                             masterTracker.id = item.model.data.ea[':trackingId'];
  14.                             masterTracker.name = item.model.data.ea[':name'];
  15.                         }
  16.                        
  17.                     });
  18.                     trackers.forEach(function(item) {
  19.                         if (item.model.data.ea[':trackingId'] !== masterTracker.id) {
  20.                             slaveTracker.id = item.model.data.ea[':trackingId'];
  21.                             slaveTracker.name = item.model.data.ea[':name'];
  22.                         }
  23.                        
  24.                     });
  25.                     return slaveTracker;
  26.                 } catch(error) {
  27.                     console.log(error);
  28.                 }
  29.  
  30.             }
  31.  
  32.             function pushCustomGAEvent(eventCategory, eventAction, eventLabel) {
  33.                 window.ga && window.ga(aditionalGaTracker.name +  '.send', 'event', {
  34.                    'eventCategory': eventCategory,
  35.                    'eventAction': eventAction,
  36.                    'eventLabel': eventLabel
  37.                });
  38.             }
  39.  
  40.             var aditionalGaTracker = getTrackerData();
  41.             if (window.adoric) {
  42.                 adoric.on('lightbox:after:show', function(campaignData) {
  43.                     if (campaignData.lightbox.options.settings.GA.adv.i && campaignData.lightbox.options.settings.GA.adv.i.length == 3) {
  44.                        pushCustomGAEvent(
  45.                            campaignData.lightbox.options.settings.GA.adv.i[0],
  46.                            campaignData.lightbox.options.settings.GA.adv.i[1],
  47.                            campaignData.lightbox.options.settings.GA.adv.i[2]
  48.                        );
  49.                     } else {
  50.                         pushCustomGAEvent(
  51.                             'Adoric - ' + campaignData.lightbox.options.campaignTitle,
  52.                             'Impression',
  53.                             'Adoric - ' + campaignData.lightbox.options.title
  54.                         );
  55.                     }
  56.                 });
  57.                 adoric.on('lightbox:after:close', function(campaignData) {
  58.                     if (campaignData.lightbox.options.settings.GA.adv.cs && campaignData.lightbox.options.settings.GA.adv.cs.length == 3) {
  59.                        pushCustomGAEvent(
  60.                            campaignData.lightbox.options.settings.GA.adv.cs[0],
  61.                            campaignData.lightbox.options.settings.GA.adv.cs[1],
  62.                            campaignData.lightbox.options.settings.GA.adv.cs[2]
  63.                        );
  64.                     } else {
  65.                         pushCustomGAEvent(
  66.                             'Adoric - ' + campaignData.lightbox.options.campaignTitle,
  67.                             'Close or Transition',
  68.                             'Adoric - ' + campaignData.lightbox.options.title
  69.                         );
  70.                     }
  71.                 });
  72.                 adoric.on('lightbox:after:click', function(campaignData) {
  73.                     if (campaignData.lightbox.options.settings.GA.adv.ck && campaignData.lightbox.options.settings.GA.adv.ck.length == 3) {
  74.                        pushCustomGAEvent(
  75.                            campaignData.lightbox.options.settings.GA.adv.ck[0],
  76.                            campaignData.lightbox.options.settings.GA.adv.ck[1],
  77.                            campaignData.lightbox.options.settings.GA.adv.ck[2]
  78.                        );
  79.                     } else {
  80.                         pushCustomGAEvent(
  81.                             'Adoric - ' + campaignData.lightbox.options.campaignTitle,
  82.                             'Click',
  83.                             'Adoric - ' + campaignData.lightbox.options.title
  84.                         );
  85.                     }
  86.                 });
  87.                 adoric.on('form:after:submit', function(campaignData) {
  88.                     if (campaignData.lightbox.options.settings.GA.adv.ck && campaignData.lightbox.options.settings.GA.adv.ck.length == 3) {
  89.                        pushCustomGAEvent(
  90.                            campaignData.lightbox.options.settings.GA.adv.ck[0],
  91.                            campaignData.lightbox.options.settings.GA.adv.ck[1],
  92.                            campaignData.lightbox.options.settings.GA.adv.ck[2]
  93.                        );
  94.                     } else {
  95.                         pushCustomGAEvent(
  96.                             'Adoric - ' + campaignData.lightbox.options.campaignTitle,
  97.                             'Click',
  98.                             'Adoric - ' + campaignData.lightbox.options.title
  99.                         );
  100.                     }
  101.                 });
  102.             }
  103.         }
  104.  
  105.         function waitGaObject() {
  106.             GA_WAITING_TIMER--;
  107.             if ((!window.ga || !window.adoric) && GA_WAITING_TIMER > 0) {
  108.                    setTimeout(waitGaObject, 500);
  109.             } else if (window.ga && window.ga.getAll && window.adoric) {
  110.                startCampaignChecking();
  111.             }
  112.         }
  113.         waitGaObject();
  114. })();
  115. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement