$(document).ready(function(){ //DataLayer 事件 $('.setDataLayer').click(function(){ var type = $(this).data('dtype'); var serial_no = $(this).data('iserial_no'); var index_no = $(this).data('iindex_no'); var block = $(this).data('lblock'); var name = $(this).data('lname'); var url = $(this).data('lurl'); var picture = $(this).data('picture'); var search_term = $(this).data('search_term'); var search_term_default = $(this).data('search_term_default'); var verify_type = $(this).data('verify_type'); $.ajax({ url:Project_Country+'ajax/ajax_set_datalayer.php', type:"POST", data: { type: type, block: block, name:name, url:url, serial_no: serial_no, index_no: index_no, picture: picture, search_term: search_term, search_term_default: search_term_default, verify_type: verify_type }, cache:false, success:function(data){ eval(data) } }); }); }); // 行銷商品ID var pid = 'pos_no'; // prod_no serial_no /* ========================================================================= * FB FBQ * ========================================================================= */ var fbUserData = ''; // FB USER DATA function setFBUserData(data){ fbUserData = data; } // 基底碼 function setFBBaseCode(FBID, data){ !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', FBID, data); } function sendFBQData(key){ if(window.dataLayer[key-1]['action']){ var event = window.dataLayer[key-1]['action']['event']; var event_id = window.dataLayer[key-1]['action']['event_id']; var data = window.dataLayer[key-1]['action']; switch (event) { case 'page_view': fbq('track','PageView',{},{eventID: event_id}); switch (data['view']){ case 'about': case 'about-news': case 'about-news-detail': case 'about-privacy': case 'about': case 'sale': case 'witness': case 'witness-detail': case 'blog': case 'blog-detail': fbq('track','ViewContent',{},{eventID: event_id}); break; } break; case 'add_to_cart': var arr = { "value" : data['items'][0]['price1'], "currency" : "TWD", "content_ids" : [data['items'][0][pid]], "content_type" : "product", "contents" : [{ "id" : data['items'][0][pid], "quantity" : data['items'][0]['quantity'] }] }; fbq('track','AddToCart',arr, {eventID: event_id}); break; case 'add_to_wishlist': var arr = { "value" : data['items'][0]['price1'], "currency" : "TWD", "content_ids" : [data['items'][0][pid]], "content_type" : "product" }; fbq('track','AddToWishlist',arr, {eventID: event_id}); break; case 'sign_up': fbq('track','CompleteRegistration',{}, {eventID: event_id}); break; case 'add_payment_info': fbq('track','AddPaymentInfo',{}, {eventID: event_id}); break; case 'generate_lead': fbq('track','Lead',{}, {eventID: event_id}); break; case 'view_cart': fbq('track','InitiateCheckout',{}, {eventID: event_id}); break; case 'purchase': var ids = []; for(i in data['items']){ ids.push(data['items'][i][pid]); } var contents = []; for(i in data['items']){ contents.push({ "id" : data['items'][i][pid], "quantity" : data['items'][i]['quantity'] }); } var arr = { "value" : data['order_money'], "currency" : "TWD", "content_ids" : ids, "content_type" : "product", "contents" : contents }; fbq('track','Purchase',arr, {eventID: event_id}); break; case 'search': for(j in window.dataLayer){ if(window.dataLayer[j]['action']){ if(window.dataLayer[j]['action']['event'] == 'view_item_list'){ var prodData = window.dataLayer[j]['action']; } } } var ids = []; for(i in prodData['items']){ ids.push(prodData['items'][i][pid]); } var arr = { "search_string" : data['search_term'], "currency" : "TWD", "content_ids" : ids, "content_type" : "product" }; fbq('track','Search',arr, {eventID: event_id}); break; case 'view_item_list': fbq('track','ViewContent',{}, {eventID: event_id}); break; case 'view_item': var ids = []; for(i in data['items']){ ids.push(data['items'][i][pid]); } var arr = { "currency" : "TWD", "content_ids" : ids, "content_type" : "product", "value" : data['items'][0]['price1'] }; fbq('track','ViewContent',arr, {eventID: event_id}); break; } } } /* ========================================================================= * GA * ========================================================================= */ // 基底碼 function setGABaseCode(GAID){ (function(i,s,o,g,r,a,m) {i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date(); a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)}) (window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', GAID, 'auto'); ga('require', 'ec'); ga('send', 'pageview'); $(document).on('submit', '.ShopCartForm', function(){ var obj = JSON.parse($("#dataLayer_items").text()); for(i in obj){ var arr = { 'id' : obj[i][pid], 'name' : obj[i]['name'], 'category' : obj[i]['category'], 'brand' : obj[i]['brand'], 'variant' : obj[i]['spec1'], 'price' : obj[i]['price1'], 'quantity' : obj[i]['quantity'], }; var str = JSON.stringify(arr); ga('ec:addProduct', arr); } ga('ec:setAction','checkout',{'step':4}); ga('send','event','購物車','確認訂單'); }) } function sendGAData(key){ if(window.dataLayer[key-1]['action']){ var event = window.dataLayer[key-1]['action']['event']; var event_id = window.dataLayer[key-1]['action']['event_id']; var data = window.dataLayer[key-1]['action']; switch (event) { case 'view_item_list': for(i in data['items']){ var arr = { 'id' : data['items'][i][pid], 'name' : data['items'][i]['name'], 'category' : data['items'][i]['category'], 'brand' : data['items'][i]['brand'], 'variant' : data['items'][i]['spec1'], 'list' : 'Search Results', 'position' : data['items'][i]['index_no'] }; ga('ec:addImpression', arr); } break; case 'view_item': var arr = { 'id' : data['items'][0][pid], 'name' : data['items'][0]['name'], 'category' : data['items'][0]['category'], 'brand' : data['items'][0]['brand'], 'variant' : data['items'][0]['spec1'] }; ga('set', 'dimension1', data['items'][0][pid]); ga('set', 'dimension2', 'product'); ga('set', 'dimension3', data['items'][0]['price1']); ga('ec:addProduct', arr); ga('ec:setAction', 'detail'); ga('send', 'event', '商品詳細頁', '瀏覽'); break; case 'view_cart': var ids = []; for(i in data['items']){ ids.push(data['items'][i][pid]); } var str = ids.join(','); ga('set', 'dimension1', str); ga('set', 'dimension2', 'cart'); for(i in data['items']){ var arr = { 'id' : data['items'][i][pid], 'name' : data['items'][i]['name'], 'category' : data['items'][i]['category'], 'brand' : data['items'][i]['brand'], 'variant' : data['items'][i]['spec1'], 'price' : data['items'][i]['price1'], 'quantity' : data['items'][i]['quantity'] }; ga('ec:addProduct', arr); } ga('ec:setAction', 'checkout', {'step': '1'}); ga('send', 'event', '購物車', '進入購物車'); break; case 'begin_checkout': var ids = []; for(i in data['items']){ ids.push(data['items'][i][pid]); } var str = ids.join(','); ga('set', 'dimension1', str); ga('set', 'dimension2', 'cart'); ga('set', 'dimension3', data['order_money']); for(i in data['items']){ var arr = { 'id' : data['items'][i][pid], 'name' : data['items'][i]['name'], 'category' : data['items'][i]['category'], 'brand' : data['items'][i]['brand'], 'variant' : data['items'][i]['spec1'], 'price' : data['items'][i]['price1'], 'quantity' : data['items'][i]['quantity'] }; ga('ec:addProduct', arr); } ga('ec:setAction', 'checkout', {'step': '2'}); ga('send', 'event', '購物車', '填寫寄送資料'); break; case 'purchase': var ids = []; for(i in data['items']){ ids.push(data['items'][i][pid]); } var str = ids.join(','); ga('set', 'dimension1', str); ga('set', 'dimension2', 'purchase'); ga('set', 'dimension3', data['order_money']); ga('set', 'currencyCode', 'TWD'); for(i in data['items']){ var arr = { 'id' : data['items'][i][pid], 'name' : data['items'][i]['name'], 'category' : data['items'][i]['category'], 'brand' : data['items'][i]['brand'], 'variant' : data['items'][i]['spec1'], 'price' : data['items'][i]['price1'], 'quantity' : data['items'][i]['quantity'] }; ga('ec:addProduct', arr); } ga('ec:setAction','purchase',{ id: data['order_id'], affiliation: 'DollBao', revenue: data['order_money'], shipping: data['shipping'] }); ga('send', 'event', '購物車', '訂購成功'); break; case 'add_to_cart': for(i in data['items']){ var arr = { 'id' : data['items'][i][pid], 'name' : data['items'][i]['name'], 'category' : data['items'][i]['category'], 'brand' : data['items'][i]['brand'], 'variant' : data['items'][i]['spec1'], 'price' : data['items'][i]['price1'], 'quantity' : data['items'][i]['quantity'] }; ga('ec:addProduct', arr); } ga('ec:setAction', 'add'); ga('send', 'event', '購物車', '加入購物車'); break; case 'add_payment_info': for(i in data['items']){ var arr = { 'id' : data['items'][i][pid], 'name' : data['items'][i]['name'], 'category' : data['items'][i]['category'], 'brand' : data['items'][i]['brand'], 'variant' : data['items'][i]['spec1'], 'price' : data['items'][i]['price1'], 'quantity' : data['items'][i]['quantity'] }; ga('ec:addProduct', arr); } ga('ec:setAction', 'checkout', {'step':3}); ga('send', 'event', '購物車', '選擇付款方式'); break; case 'select_item': var pathName = location.pathname; if(pathName.indexOf('/products/') >= 0){ var list_title = '商品列表頁'; } if(pathName.indexOf('/searchall-products/') >= 0){ var list_title = '搜尋商品列表頁'; } if(pathName.indexOf('/brands-detail/') >= 0){ var list_title = '品牌列表頁'; } ga('ec:addProduct',{ 'id' : data['items'][0][pid], 'name' : data['items'][0]['name'], 'category' : data['items'][0]['category'], 'brand' : data['items'][0]['brand'], 'position' : data['items'][0]['index_no'] }); ga('ec:setAction','click',{list: data['items'][0]['category']}); ga('send', 'event', list_title, '瀏覽',{'nonInteraction':1}); ga('send','event',data['items'][0]['category'],'點擊商品連結','Results',{ hitCallback:function(){} },{'nonInteraction':1}); break; case 'refund': ga('ec:setAction','refund',{'id':data['order_id']}); ga('send','event','訂單','退貨成功',{'nonInteraction':1}); break; case 'remove_from_cart': for(i in data['items']){ var arr = { 'id' : data['items'][i][pid], 'name' : data['items'][i]['name'], 'category' : data['items'][i]['category'], 'brand' : data['items'][i]['brand'], 'variant' : data['items'][i]['spec1'], 'price' : data['items'][i]['price1'], 'quantity' : data['items'][i]['quantity'] }; var str = JSON.stringify(arr); ga('ec:addProduct', str); } ga('ec:setAction','remove'); ga('send','event','購物車','移除購物車'); break; } } } /* ========================================================================= * GA4 ADS * ========================================================================= */ window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);return;} var GADSID = ''; var GA4ID = ''; var GMARKET = ''; var GACONVER = ''; var GCOMPLETE = ''; var GSHOPCART = ''; var GREGISTER = ''; // 基底碼 function setGA4BaseCode(GA4 = '', GADS = '', MARKET = ''){ GA4ID = GA4; GADSID = GADS; GMARKET = MARKET; gtag('js', new Date()); if(GA4ID != ''){ gtag('config', GA4ID); } if(GADSID != ''){ gtag('config', GADSID); gtag('event', 'conversion', { 'send_to': GADSID + '/' + GMARKET, 'event_callback': window.location.href }); } var dt = new Date(); var hr = dt.getHours(); if((hr % 2) > 0){ var str = (hr - 1) + ':00~' + (hr + 1) + ':00'; }else{ var str = (hr) + ':00~' + (hr + 2) + ':00'; } gtag('set','user_properties',{'time_interval':str}); } function setGADSData(CONVER = '', COMPLETE = '', SHOPCART = '', REGISTER = ''){ GACONVER = CONVER; GCOMPLETE = COMPLETE; GSHOPCART = SHOPCART; GREGISTER = REGISTER; } function sendGADSData(key){ if(window.dataLayer[key-1]['action']){ var event = window.dataLayer[key-1]['action']['event']; var event_id = window.dataLayer[key-1]['action']['event_id']; var data = window.dataLayer[key-1]['action']; switch (event) { case 'page_view': switch (data['view']) { case 'index': gtag('event','page_view',{'send_to':GADSID,'ecomm_pagetype':'home'}); break; case 'about-contact': case 'about': case 'witness': case 'witness-detail': case 'blog': case 'blog-detail': case 'about-news': case 'about-news-detail': gtag('event','page_view',{'send_to':GADSID,'ecomm_pagetype':'other'}); break; } break; case 'view_item_list': var ids = []; for(i in data['items']){ ids.push(data['items'][i][pid]); } gtag('event','page_view',{ 'send_to' : GADSID, 'ecomm_pagetype' : 'category', 'ecomm_prodid':ids }); break; case 'view_item': gtag('event','page_view',{ 'send_to':GADSID, 'ecomm_pagetype':'product', 'ecomm_prodid':data['items'][0][pid], 'ecomm_totalvalue':data['items'][0]['price1'] }); break; case 'search': gtag('event','page_view',{ 'send_to':GADSID, 'ecomm_pagetype':'searchresults' }); break; case 'view_cart': var ids = []; for(i in data['items']){ ids.push(data['items'][i][pid]); } gtag('event','page_view',{ 'send_to':GADSID, 'ecomm_pagetype':'cart', 'ecomm_prodid':ids, 'ecomm_totalvalue':data['order_money'] }); break; case 'purchase': var ids = []; for(i in data['items']){ ids.push(data['items'][i][pid]); } gtag('event','page_view',{ 'send_to':GADSID, 'ecomm_pagetype':'purchase', 'ecomm_prodid':ids, 'ecomm_totalvalue':data['order_money'] }); if(GADSID && GACONVER){ gtag('event', 'conversion', {'send_to':GADSID + '/' + GACONVER}); } if(GADSID && GCOMPLETE){ gtag('event', 'conversion', { 'send_to': GADSID + '/' + GCOMPLETE, 'transaction_id': data['order_id'], 'value': data['order_money'], 'currency': 'TWD', 'event_callback': window.location.href }); } break; case 'add_to_cart': if(GADSID && GSHOPCART){ gtag('event', 'conversion', {'send_to': GADSID + '/' + GSHOPCART}); } break; case 'sign_up': if(GADSID && GREGISTER){ gtag('event', 'conversion', { 'send_to': GADSID + '/' + GREGISTER, 'event_callback': window.location.href }); } break; } } } function sendGA4Data(key){ if(window.dataLayer[key-1]['user'] && window.dataLayer[key-1]['user']['id'] != 'NULL'){ gtag('set', 'user_properties', {'mid': window.dataLayer[key-1]['user']['id']}); gtag('set', 'user_properties', {'user_id': window.dataLayer[key-1]['user']['cellphone']}); gtag('set', 'user_properties', {'mlvl': window.dataLayer[key-1]['user']['vip']}); } if(window.dataLayer[key-1]['action']){ var event = window.dataLayer[key-1]['action']['event']; var event_id = window.dataLayer[key-1]['action']['event_id']; var data = window.dataLayer[key-1]['action']; switch (event) { case 'page_view': break; case 'view_item_list': var category = data['items'][0]['category'].split(' > '); var count = category.length; var count2 = data['items'].length; var ids = []; if(data['tag_id']){ var tag = data['tag_id']; } for(i in data['items']){ var arr = { 'item_id' : data['items'][i][pid], 'item_name' : data['items'][i]['name'], 'currency' : 'TWD', 'item_brand' : data['items'][i]['brand'], 'item_variant' : data['items'][i]['spec1'], 'price' : data['items'][i]['price1'], 'quantity' : 1, 'index' : data['items'][i]['index_no'], 'item_category':category[0], 'item_category2':category[1], 'item_category3':category[2], 'item_category4':category[3] }; ids.push(arr); if((parseInt(i) + 1) % 3 == 0 || (parseInt(i) + 1) == count2){ gtag('event','view_item_list',{ 'item_list_id': tag ? tag : category[count - 1], 'item_list_name': tag ? tag : category[count - 1], 'items': ids }); var ids = []; } } break; case 'view_item': var category = data['items'][0]['category'].split(' > '); var ids = []; var arr = { 'item_id' : data['items'][0][pid], 'item_name' : data['items'][0]['name'], 'currency' : 'TWD', 'item_brand' : data['items'][0]['brand'], 'item_variant' : data['items'][0]['spec1'], 'price' : data['items'][0]['price1'], 'quantity' : 1, 'item_category':category[0], 'item_category2':category[1], 'item_category3':category[2], 'item_category4':category[3] }; ids.push(arr); gtag("event","view_item",{'items': ids}); break; case 'view_cart': var ids = []; for(i in data['items']){ var category = data['items'][i]['category'].split(' > '); var arr = { 'item_id' : data['items'][i][pid], 'item_name' : data['items'][i]['name'], 'currency' : 'TWD', 'item_brand' : data['items'][i]['brand'], 'item_variant' : data['items'][i]['spec1'], 'price' : data['items'][i]['price1'], 'quantity' : 1, 'item_category':category[0], 'item_category2':category[1], 'item_category3':category[2], 'item_category4':category[3] }; ids.push(arr); } gtag("event","view_cart",{'items': ids}); break; case 'begin_checkout': var ids = []; for(i in data['items']){ var category = data['items'][i]['category'].split(' > '); var arr = { 'item_id' : data['items'][i][pid], 'item_name' : data['items'][i]['name'], 'currency' : 'TWD', 'item_brand' : data['items'][i]['brand'], 'item_variant' : data['items'][i]['spec1'], 'price' : data['items'][i]['price1'], 'quantity' : 1, 'item_category':category[0], 'item_category2':category[1], 'item_category3':category[2], 'item_category4':category[3] }; ids.push(arr); } gtag("event","begin_checkout",{'items': ids}); break; case 'refund': gtag('event','refund',{ 'currency': 'TWD', 'transaction_id': data['order_id'], 'value': data['order_money'], 'shipping': data['shipping'] }); break; case 'cancel': gtag('event','cancel',{ 'currency': 'TWD', 'transaction_id': data['order_id'], 'value': data['order_money'], 'shipping': data['shipping'] }); break; case 'purchase': var ids = []; for(i in data['items']){ ids.push(data['items'][i][pid]); } gtag('event','purchase',{ 'currency':'TWD', 'value':data['order_money'], 'shipping':data['shipping'], 'shipping_tier':data['shipping_tier'], 'transaction_id':data['order_id'], 'items': ids }); break; case 'login': gtag("event","login",{'method': data['type']}); break; case 'sign_up': gtag("event","sign_up",{'method': data['type']}); break; case 'select_item': var category = data['items'][0]['category'].split(' > '); var count = category.length; gtag('event','select_item',{ 'item_list_id':category[count - 1], 'item_list_name':category[count - 1], 'items':[{ 'item_id' :data['items'][0][pid], 'item_name' :data['items'][0]['name'], 'item_brand' : data['items'][0]['brand'], 'currency' : 'TWD', 'price' : data['items'][0]['price1'], 'quantity' : 1, 'index' :data['items'][0]['index_no'], 'item_variant':data['items'][0]['spec1'], 'item_category':category[0], 'item_category2':category[1], 'item_category3':category[2], 'item_category4':category[3] }] }); break; case 'search': gtag("event","search",{'search_term': data['search_term']}); break; case 'select_content': gtag('event','select_content',{'content_type':'product'}); break; case 'view_promotion': gtag("event","view_promotion",{'promotion_id':data['block'],'promotion_name':data['name'],'location_id':data['url']}); break; case 'select_promotion': gtag("event","select_promotion",{'promotion_id':data['block'],'promotion_name':data['name'],'location_id':data['url']}); break; case 'add_to_cart': var category = data['items'][0]['category'].split(' > '); gtag("event","add_to_cart",{ "items":[{ 'item_id' :data['items'][0][pid], 'item_name' :data['items'][0]['name'], 'item_brand' : data['items'][0]['brand'], 'currency' : 'TWD', 'price' : data['items'][0]['price1'], 'quantity' : 1, 'item_variant':data['items'][0]['spec1'], 'item_category':category[0], 'item_category2':category[1], 'item_category3':category[2], 'item_category4':category[3] }] }); break; case 'remove_from_cart': var category = data['items'][0]['category'].split(' > '); gtag("event","remove_from_cart",{ "items":[{ 'item_id' :data['items'][0][pid], 'item_name' :data['items'][0]['name'], 'item_brand' : data['items'][0]['brand'], 'currency' : 'TWD', 'price' : data['items'][0]['price1'], 'quantity' : 1, 'item_variant':data['items'][0]['spec1'], 'item_category':category[0], 'item_category2':category[1], 'item_category3':category[2], 'item_category4':category[3] }] }); break; case 'add_to_wishlist': var category = data['items'][0]['category'].split(' > '); gtag("event","add_to_wishlist",{ "items":[{ 'item_id' :data['items'][0][pid], 'item_name' :data['items'][0]['name'], 'item_brand' : data['items'][0]['brand'], 'currency' : 'TWD', 'price' : data['items'][0]['price1'], 'quantity' : 1, 'item_variant':data['items'][0]['spec1'], 'item_category':category[0], 'item_category2':category[1], 'item_category3':category[2], 'item_category4':category[3] }] }); break; case 'add_payment_info': gtag("event","add_payment_info",{"payment_info":data['pay_type']}); break; case 'add_shipping_info': gtag("event","add_shipping_info",{"shipping_tier":data['shipping_tier']}); break; case 'payfail': gtag("event","payfail",{"method":data['pay_type']}); break; } } } /* ========================================================================= * Sensorsdata * ========================================================================= */ // 全埋點 function setSensorsBaseCode(SensorsUrl,ShowLog=2){ var log_flag = (ShowLog == 1) ? true : false; sensors.init({ server_url: SensorsUrl, use_client_time:true, send_type:'beacon', heatmap: { //是否开启点击图,default 表示开启,自动采集 $WebClick 事件,可以设置 'not_collect' 表示关闭。 clickmap:'default', //是否开启触达图,not_collect 表示关闭,不会自动采集 $WebStay 事件,可以设置 'default' 表示开启。 scroll_notice_map:'default', }, show_log: log_flag }); sensors.quick('autoTrack'); } function sendSensorsData(key){ if(window.dataLayer[key-1]['user']){ //登入login() $.ajax({ url:Project_Country+'ajax/ajax_set_sensorsdata.php', type:"POST", data: { type: 'web', event: 'login', }, cache:false, async:false, success:function(d){ eval(d) } }); } if(window.dataLayer[key-1]['action']){ var event = window.dataLayer[key-1]['action']['event']; var event_id = window.dataLayer[key-1]['action']['event_id']; var data = window.dataLayer[key-1]['action']; switch (event) { case 'view_item': var arr = sendSensorsCommon(); //公共屬性 var category = data['items'][0]['category'].split(' > '); var campaign_name = data['items'][0]['activity'].split(','); arr['entrance'] = data['entrance']; arr['product_id'] = data['items'][0][pid]; arr['product_web_id'] = data['items'][0]['prod_no']; arr['product_name'] = data['items'][0]['name']; arr['product_spec_img_src'] = data['items'][0]['picture']; arr['first_cat'] = category[0]; arr['second_cat'] = category[1]; arr['third_cat'] = category[2]; arr['fourth_cat'] = category[3]; arr['product_color'] = data['items'][0]['spec1']; arr['product_size'] = data['items'][0]['spec2']; arr['brand_name'] = data['items'][0]['brand']; arr['original_price'] = parseInt(data['items'][0]['price2']); arr['present_price'] = parseInt(data['items'][0]['price1']); arr['campaign_name'] = campaign_name; sensors.track("productDetailView",arr); break; case 'select_promotion': var arr = sendSensorsCommon(); //公共屬性 arr['banner_area'] = data['block']; arr['banner_name'] = data['name']; arr['url'] = data['url']; arr['banner_img_src'] = data['picture']; arr['banner_rank'] = data['index_no']; sensors.track("bannerClick",arr); break; case 'add_to_cart': var arr = sendSensorsCommon(); //公共屬性 var category = data['items'][0]['category'].split(' > '); arr['entrance'] = data['entrance']; arr['product_id'] = data['items'][0][pid]; arr['product_web_id'] = data['items'][0]['prod_no']; arr['product_name'] = data['items'][0]['name']; arr['product_spec_img_src'] = data['items'][0]['picture']; arr['first_cat'] = category[0]; arr['second_cat'] = category[1]; arr['third_cat'] = category[2]; arr['fourth_cat'] = category[3]; arr['product_color'] = data['items'][0]['spec1']; arr['product_size'] = data['items'][0]['spec2']; arr['product_brand'] = data['items'][0]['brand']; arr['product_original_amt'] = parseInt(data['items'][0]['price2']); arr['product_actual_amt'] = parseInt(data['items'][0]['price1']); sensors.track("addCart",arr); break; case 'remove_from_cart': var arr = sendSensorsCommon(); //公共屬性 var category = data['items'][0]['category'].split(' > '); var campaign_name = data['items'][0]['activity'].split(','); var remove_type; switch(data['remove_type']){ case 'remove': remove_type = '刪除'; break; case 'next': remove_type = '下次買'; break; } arr['remove_type'] = remove_type; arr['product_id'] = data['items'][0][pid]; arr['product_web_id'] = data['items'][0]['prod_no']; arr['product_name'] = data['items'][0]['name']; arr['product_spec_img_src'] = data['items'][0]['picture']; arr['product_color'] = data['items'][0]['spec1']; arr['product_size'] = data['items'][0]['spec2']; arr['brand_name'] = data['items'][0]['brand']; arr['original_price'] = parseInt(data['items'][0]['price2']); arr['present_price'] = parseInt(data['items'][0]['price1']); arr['campaign_name'] = campaign_name; sensors.track("removeCart",arr); break; case 'add_to_wishlist': var arr = sendSensorsCommon(); //公共屬性 var category = data['items'][0]['category'].split(' > '); arr['entrance'] = data['entrance']; arr['product_id'] = data['items'][0][pid]; arr['product_web_id'] = data['items'][0]['prod_no']; arr['product_name'] = data['items'][0]['name']; arr['product_spec_img_src'] = data['items'][0]['picture']; arr['first_cat'] = category[0]; arr['second_cat'] = category[1]; arr['third_cat'] = category[2]; arr['fourth_cat'] = category[3]; arr['product_color'] = data['items'][0]['spec1']; arr['product_size'] = data['items'][0]['spec2']; arr['product_brand'] = data['items'][0]['brand']; arr['product_original_amt'] = parseInt(data['items'][0]['price2']); arr['product_actual_amt'] = parseInt(data['items'][0]['price1']); sensors.track("addWishlist",arr); break; case 'search': var arr = sendSensorsCommon(); //公共屬性 var key_word = (data['search_term'])?data['search_term']:data['search_term_default']; var key_word_type = (data['search_term'])?'自行輸入':'推薦詞'; arr['key_word'] = key_word; arr['key_word_type'] = key_word_type; arr['result_number'] = data['search_result']; sensors.track("searchRequest",arr); break; case 'select_item': var arr = sendSensorsCommon(); //公共屬性 if(data['entrance'] == 'searchall-products'){ var key_word = (data['search_term'])?data['search_term']:data['search_term_default']; var key_word_type = (data['search_term'])?'自行輸入':'推薦詞'; arr['key_word'] = key_word; arr['key_word_type'] = key_word_type; arr['position_number'] = data['items'][0]['index_no']; arr['product_id'] = data['items'][0][pid]; arr['product_web_id'] = data['items'][0]['prod_no']; arr['product_name'] = data['items'][0]['name']; arr['product_img_src'] = data['items'][0]['picture']; sensors.track("searchResultClick",arr); } break; case 'review': var arr = sendSensorsCommon(); //公共屬性 arr['product_id'] = data[pid]; arr['product_web_id'] = data['prod_no']; arr['product_name'] = data['name']; arr['product_spec_img_src'] = data['picture']; arr['content'] = data['content']; arr['picture_amt'] = parseInt(data['picture_amt']); sensors.track("commentProduct",arr); break; case 'verify_code_request': var arr = sendSensorsCommon(); //公共屬性 var service_type = ''; switch(data['type']){ case '1': service_type = '忘記密碼'; break; case '2': service_type = '註冊'; break; case '3': service_type = '會員簡訊驗證'; break; } arr['service_type'] = service_type; sensors.track("verifyCodeRequest",arr); break; case 'login': var arr = sendSensorsCommon(); //公共屬性 $.ajax({ url:Project_Country+'ajax/ajax_set_sensorsdata.php', type:"POST", data: { type: 'server', event: 'login', json: data, }, cache:false, async:false, success:function(d){ } }); break; case 'view_event': var arr = sendSensorsCommon(); //公共屬性 var category = data['category'].split(' > '); arr['campaign_cat_name'] = category[0]; arr['campaign_name'] = [data['name']]; arr['campaign_img_src'] = data['picture']; sensors.track("campaignDetailView",arr); break; case 'select_event': var arr = sendSensorsCommon(); //公共屬性 var category = data['category'].split(' > '); arr['campaign_cat_name'] = category[0]; arr['campaign_name'] = [data['name']]; arr['campaign_img_src'] = data['picture']; sensors.track("campaignRegisterClick",arr); break; case 'sign_up_event': var arr = sendSensorsCommon(); //公共屬性 var category = data['category'].split(' > '); arr['campaign_cat_name'] = category[0]; arr['campaign_name'] = [data['name']]; arr['campaign_img_src'] = data['picture']; arr['campaign_total_num'] = data['peoples']; arr['campaign_total_num_adult'] = data['adult']; arr['campaign_total_num_child'] = data['child']; arr['campaign_total_amt'] = data['money']; arr['campaign_payment_method'] = data['pay_type']; sensors.track("campaignSubmit",arr); break; case 'purchase': var arr = sendSensorsCommon(); //公共屬性 //送出訂單結果 - 成功 arr['is_success'] = true; arr['fail_reason'] = []; sensors.track("submitOrderClick",arr); break; case 'gamin_lottery': var arr = sendSensorsCommon(); //公共屬性 //送出訂單結果 - 成功 arr['lottery_name'] = data['name']; arr['lottery_prize_type'] = data['award']; arr['lottery_prize_amt'] = data['award_value']; arr['voucher_series_id'] = data['voucher_code']; sensors.track("joinLottery",arr); break; } } } //公共屬性 function sendSensorsCommon(){ var sensors_common = []; $.ajax({ url:Project_Country+'ajax/ajax_set_sensorsdata.php', type:"POST", dataType: 'json', data: { type: 'getCommon', }, cache:false, async:false, success:function(d){ sensors_common = d; } }); return sensors_common; } //神策事件(無須datalayer的項目) $(document).ready(function(){ if(SensorsFlag){ var pathName = location.pathname; //公共屬性 var sensors_common = sendSensorsCommon();; $('.setSensorsData').click(function(){ var type = $(this).data('dtype'); var event = $(this).data('event'); var login_method = $(this).data('login_method'); $.ajax({ url:Project_Country+'ajax/ajax_set_sensorsdata.php', type:"POST", data: { type: type, event: event, login_method: login_method, }, cache:false, async:false, success:function(d){ var arr = sensors_common; eval(d) } }); }); //送出訂單結果 if(pathName.indexOf('/shopcart/') >= 0){ $(document).on('click','.sensorsSubmitOrder',function(){ var arr_Submit = sensors_common; //js返回錯誤 var fail_reason = []; $("#Main_Form .forms_show").each(function(){ $forms_show = $(this); if($forms_show.attr('error') == 'true'){ var fail_text = $forms_show.text(); fail_text = fail_text.replace('請輸入','未輸入'); fail_text = fail_text.replace('請選擇','未選擇'); if(fail_reason.indexOf(fail_text) == -1){ fail_reason.push(fail_text); } } }); if(fail_reason.length > 0){ arr_Submit['is_success'] = false; arr_Submit['fail_reason'] = fail_reason; sensors.track("submitOrderClick",arr_Submit); } }) //php返回錯誤 $.ajax({ url:Project_Country+'ajax/ajax_set_sensorsdata.php', type:"POST", data: { type: 'web', event: 'submitOrderClick', }, cache:false, async:false, success:function(d){ var arr = sensors_common; eval(d) } }); } //頁面瀏覽深度 let flag25 = false; let flag50 = false; let flag75 = false; let flag100 = false; $(window).on('scroll',function(){ var s = $(window).scrollTop(), d = $(document).height(), c = $(window).height(); var scrollPercent = (s / (d - c))*100; var view_percentage = 0; if(scrollPercent > 25 && !flag25){ flag25 = true; view_percentage = 25; } if(scrollPercent > 49 && !flag50){ flag50 = true; view_percentage = 50; } if(scrollPercent > 74 && !flag75){ flag75 = true; view_percentage = 75; } if(scrollPercent >= 100 && !flag100){ flag100 = true; view_percentage = 100; } if(view_percentage > 0){ var arr = sendSensorsCommon(); //公共屬性 arr['view_percentage'] = view_percentage; sensors.track("webViewDepth",arr); } }) } });