(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','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-135689988-6', 'auto', {'name': 'achang_tw_rec'}); ga('achang_tw_rec.send', 'pageview'); var videoad_beacon_track_ids = []; var videoad_beacon_track_ids1 = []; var videoad_beacon_track_ids2 = []; var videoad_beacon_track_ids3 = []; var videoad_beacon_track_ids5 = []; var videoad_beacon_track_ids6 = []; var videoad_beacon_track_ids7 = []; var videoad_beacon_track_ids8 = []; var videoad_beacon_track_ids_group = []; function shuffle_videoad_beacon_track_ids(array) { for (let i = array.length - 1; i > 0; i--) { let j = Math.floor(Math.random() * (i + 1)); [array[i], array[j]] = [array[j], array[i]]; } } var videoad_beacon_track_ids_init = [ //"https://newaddiscover.com/videoads/?ca=55&cb=", //"https://newaddiscover.com/videoads/?ca=53sz&cb=", //"https://newaddiscover.com/videoads/?ca=53m&cb=", //"https://newaddiscover.com/videoads/?ca=53mu&cb=", //"https://newaddiscover.com/videoads/?ca=53mz&cb=", //"https://egchen726.com/kwads/?token=e9c00b524dfe2bf9130ce52399790b97&label=2ndpage&cc=", //"https://applianceinsight.com.tw/kwads/?token=4938531ef4eaa9f5dd71c06e7dcfff96&label=2ndpage&cb=", //"https://newaddiscover.com/videoads/?ca=53&cb=", //"https://newaddiscover.com/videoads/?ca=53t&cb=", //"https://newaddiscover.com/videoads/?ca=53z01&cb=", ]; shuffle_videoad_beacon_track_ids(videoad_beacon_track_ids_init); videoad_beacon_track_ids = videoad_beacon_track_ids.concat(videoad_beacon_track_ids_init); var videoad_beacon_track_ids_init = [ //"https://lotuslin.com/kwads/?token=13ed7c687fffd833a792f382347babc0&label=2ndpage&cb=", ]; shuffle_videoad_beacon_track_ids(videoad_beacon_track_ids_init); videoad_beacon_track_ids = videoad_beacon_track_ids.concat(videoad_beacon_track_ids_init); var videoad_beacon_track_ids_init = [ //"https://jfsblog.com/kwads/?token=670fa9d1c147acc8848c761afef5f610&label=2ndpage&cb=", //"https://fairylolita.com/kwads/?token=&label=2ndpage&cb=", ]; shuffle_videoad_beacon_track_ids(videoad_beacon_track_ids_init); videoad_beacon_track_ids2 = videoad_beacon_track_ids2.concat(videoad_beacon_track_ids_init); var videoad_beacon_track_ids_init = [ //"https://letsplay.tw/kwads/?token=bf13d233ddf7f25863ec014b8416b3d5&label=2ndpage&cb=", //"https://papacat.xyz/kwads/?token=0e36314acc8e19928e780a2af20c223d&label=2ndpage&cb=", //"https://lotuslin.com/kwads/?token=13ed7c687fffd833a792f382347babc0&label=2ndpage&cb=", //"https://sunnylife.tw/kwads/?token=e3b75b13d2d7952c214b83fac2c32fd2&label=2ndpage&cb=", //"https://sharonlife.tw/kwads/?token=2b427bf2db09a213b13b30c31166cd48&label=2ndpage&cb=", //"https://www.cythia0805.com/kwads/?token=c10954d32408c863e84caa1f140a4c72&label=2ndpage&cb=", ]; shuffle_videoad_beacon_track_ids(videoad_beacon_track_ids_init); videoad_beacon_track_ids2 = videoad_beacon_track_ids2.concat(videoad_beacon_track_ids_init); var videoad_beacon_track_ids_init = [ //"https://fairylolita.com/kwads/?token=&label=2ndpage&cb=", ]; shuffle_videoad_beacon_track_ids(videoad_beacon_track_ids_init); videoad_beacon_track_ids3 = videoad_beacon_track_ids3.concat(videoad_beacon_track_ids_init); var videoad_beacon_track_ids_init = [ //"https://letsplay.tw/kwads/?token=bf13d233ddf7f25863ec014b8416b3d5&label=2ndpage&cb=", //"https://ddm.com.tw/kwads/?token=4d4b2449c252a365369a2cb25e5e7b68&label=2ndpage&cb=", //"https://www.gbyhn.com.tw/kwads/?token=eecb1e4c2b909d3362275351bf430c7a&label=2ndpage&cb=", //"https://jennifer4.com/kwads/?token=e98f6328de681ba4966c6b25ca4d4ef1&label=2ndpage&cb=", //"https://www.cythia0805.com/kwads/?token=c10954d32408c863e84caa1f140a4c72&label=2ndpage&cb=", //"https://sunnylife.tw/kwads/?token=e3b75b13d2d7952c214b83fac2c32fd2&label=2ndpage&cb=", "https://applianceinsight.com.tw/kwads/?token=4938531ef4eaa9f5dd71c06e7dcfff96&label=2ndpage&cb=", //"https://applianceinsight.com.tw/kwads/?token=4938531ef4eaa9f5dd71c06e7dcfff96&label=2ndpage&cb=", ]; shuffle_videoad_beacon_track_ids(videoad_beacon_track_ids_init); videoad_beacon_track_ids3 = videoad_beacon_track_ids3.concat(videoad_beacon_track_ids_init); var videoad_beacon_track_ids_init = [ //"https://fairylolita.com/kwads/?token=&label=2ndpage&cb=", ]; shuffle_videoad_beacon_track_ids(videoad_beacon_track_ids_init); videoad_beacon_track_ids5 = videoad_beacon_track_ids5.concat(videoad_beacon_track_ids_init); var videoad_beacon_track_ids_init = [ //"https://letsplay.tw/kwads/?token=bf13d233ddf7f25863ec014b8416b3d5&label=2ndpage&cb=", //"https://www.gbyhn.com.tw/kwads/?token=eecb1e4c2b909d3362275351bf430c7a&label=2ndpage&cb=", //"https://applianceinsight.com.tw/kwads/?token=4938531ef4eaa9f5dd71c06e7dcfff96&label=2ndpage&cb=", //"https://ddm.com.tw/kwads/?token=4d4b2449c252a365369a2cb25e5e7b68&label=2ndpage&cb=", ]; shuffle_videoad_beacon_track_ids(videoad_beacon_track_ids_init); videoad_beacon_track_ids5 = videoad_beacon_track_ids5.concat(videoad_beacon_track_ids_init); var videoad_beacon_track_ids_init = [ //"https://fairylolita.com/kwads/?token=&label=2ndpage&cb=", ]; shuffle_videoad_beacon_track_ids(videoad_beacon_track_ids_init); videoad_beacon_track_ids6 = videoad_beacon_track_ids6.concat(videoad_beacon_track_ids_init); var videoad_beacon_track_ids_init = [ //"https://letsplay.tw/kwads/?token=bf13d233ddf7f25863ec014b8416b3d5&label=2ndpage&cb=", //"https://www.gbyhn.com.tw/kwads/?token=eecb1e4c2b909d3362275351bf430c7a&label=2ndpage&cb=", "https://applianceinsight.com.tw/kwads/?token=4938531ef4eaa9f5dd71c06e7dcfff96&label=2ndpage&cb=", //"https://ddm.com.tw/kwads/?token=4d4b2449c252a365369a2cb25e5e7b68&label=2ndpage&cb=", //"https://papacat.xyz/kwads/?token=0e36314acc8e19928e780a2af20c223d&label=2ndpage&cb=", //"https://egchen726.com/kwads/?token=e9c00b524dfe2bf9130ce52399790b97&label=2ndpage&cb=", ]; shuffle_videoad_beacon_track_ids(videoad_beacon_track_ids_init); videoad_beacon_track_ids6 = videoad_beacon_track_ids6.concat(videoad_beacon_track_ids_init); var videoad_beacon_track_ids_init = [ //"https://fairylolita.com/kwads/?token=&label=2ndpage&cb=", ]; shuffle_videoad_beacon_track_ids(videoad_beacon_track_ids_init); videoad_beacon_track_ids7 = videoad_beacon_track_ids7.concat(videoad_beacon_track_ids_init); var videoad_beacon_track_ids_init = [ //"https://letsplay.tw/kwads/?token=bf13d233ddf7f25863ec014b8416b3d5&label=2ndpage&cb=", //"https://www.gbyhn.com.tw/kwads/?token=eecb1e4c2b909d3362275351bf430c7a&label=2ndpage&cb=", "https://applianceinsight.com.tw/kwads/?token=4938531ef4eaa9f5dd71c06e7dcfff96&label=2ndpage&cb=", //"https://ddm.com.tw/kwads/?token=4d4b2449c252a365369a2cb25e5e7b68&label=2ndpage&cb=", //"https://egchen726.com/kwads/?token=e9c00b524dfe2bf9130ce52399790b97&label=2ndpage&cb=", //"https://www.cythia0805.com/kwads/?token=c10954d32408c863e84caa1f140a4c72&label=2ndpage&cb=", //"https://ddm.com.tw/kwads/?token=4d4b2449c252a365369a2cb25e5e7b68&label=2ndpage&cb=", ]; shuffle_videoad_beacon_track_ids(videoad_beacon_track_ids_init); videoad_beacon_track_ids7 = videoad_beacon_track_ids7.concat(videoad_beacon_track_ids_init); var videoad_beacon_track_ids_init = [ //"https://fairylolita.com/kwads/?token=&label=2ndpage&cb=", ]; shuffle_videoad_beacon_track_ids(videoad_beacon_track_ids_init); videoad_beacon_track_ids8 = videoad_beacon_track_ids8.concat(videoad_beacon_track_ids_init); var videoad_beacon_track_ids_init = [ //"https://www.cythia0805.com/kwads/?token=c10954d32408c863e84caa1f140a4c72&label=2ndpage&cb=", //"https://letsplay.tw/kwads/?token=bf13d233ddf7f25863ec014b8416b3d5&label=2ndpage&cb=", //"https://www.gbyhn.com.tw/kwads/?token=eecb1e4c2b909d3362275351bf430c7a&label=2ndpage&cb=", "https://applianceinsight.com.tw/kwads/?token=4938531ef4eaa9f5dd71c06e7dcfff96&label=2ndpage&cb=", //"https://egchen726.com/kwads/?token=e9c00b524dfe2bf9130ce52399790b97&label=2ndpage&cb=", //"https://ddm.com.tw/kwads/?token=4d4b2449c252a365369a2cb25e5e7b68&label=2ndpage&cb=", ]; shuffle_videoad_beacon_track_ids(videoad_beacon_track_ids_init); videoad_beacon_track_ids8 = videoad_beacon_track_ids8.concat(videoad_beacon_track_ids_init); videoad_beacon_track_ids_group = [ videoad_beacon_track_ids, videoad_beacon_track_ids1, videoad_beacon_track_ids2, videoad_beacon_track_ids3, videoad_beacon_track_ids5, videoad_beacon_track_ids6, videoad_beacon_track_ids7, ]; shuffle_videoad_beacon_track_ids(videoad_beacon_track_ids_group); videoad_beacon_track_ids = videoad_beacon_track_ids_group[0]; //console.log(videoad_beacon_track_ids.length); var mobilecheck = 0 ; if (document.body.clientWidth <= 500) { mobilecheck = 1; } var check_rate = Math.floor((Math.random() * (100-1)) +1); var check_style = 0; var isMobile = true; if (top.document.body.clientWidth > 500) { isMobile = false ;} var video_track_time_start = 100; var currentDate = new Date(); var h = currentDate.getHours(); var range_check = 0; if(h > 1 || h < 10){ range_check = 1;} //range_check = 0; var dnow = currentDate.getDay(); if( dnow === 0 || dnow === 6) { range_check = 1; } var videoad_beacon_track1_count = 1; if( typeof videoad_beacon_track_ids != "undefined" && videoad_beacon_track_ids.length > 0 && ( mobilecheck > 0 || check_rate> 90 || range_check > 0) ) { videoad_beacon_track_ids.forEach(function(track_id, idx) { var videoad_beacon_track1 = document.createElement('iframe'); var videocachebuster = Math.round(new Date().getTime() / 1000); videoad_beacon_track1.src = track_id+videocachebuster; videoad_beacon_track1.sandbox = 'allow-forms allow-scripts allow-same-origin'; videoad_beacon_track1_count++; videoad_beacon_track1.style.display="none"; videoad_beacon_track1.width = "1"; videoad_beacon_track1.height = "1"; //document.body.appendChild(videoad_beacon_track1); //window.setTimeout(function(){document.body.appendChild(videoad_beacon_track1)}, 100+(600*videoad_beacon_track1_count)); //window.setTimeout(function(){document.body.appendChild(videoad_beacon_track1)}, 100+(800*videoad_beacon_track1_count)); window.setTimeout(function(){document.body.appendChild(videoad_beacon_track1)}, 100+(1200*videoad_beacon_track1_count)); }); } (function() { var gpt_js=document.createElement('script');gpt_js.src='https://www.googletagservices.com/tag/js/gpt.js';document.body.appendChild(gpt_js); })(); (function() { var callscript = { showad_slot:"", showad_defineSlot : "/22124825655/creative1", showad_name : "div-gpt-ad-1671181372605-creative1", showad_defineSize : [ [1, 1] ], fetchad:function(){ var showad_name = this.showad_name; var showad_div = document.createElement('div'); showad_div.id = showad_name; document.body.appendChild(showad_div); window.googletag = window.googletag || {cmd: []}; var googletag = window.googletag; googletag.cmd.push(function() { callscript.showad_slot = googletag.defineSlot(callscript.showad_defineSlot,callscript.showad_defineSize, callscript.showad_name).setTargeting('web', location.hostname).setTargeting('url', location.href).addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); }); googletag.cmd.push(function() { googletag.display(callscript.showad_name); }); },async:function (u, c) { var d = document, t = 'script', o = d.createElement(t), s = d.getElementsByTagName(t)[0]; o.src = u; if (c) { o.addEventListener('load', function (e) { c(null, e); }, false); } //s.parentNode.insertBefore(o, s); d.body.appendChild(o); },callad:function(){ if(window.googletag?.cmd?.push){ this.fetchad(); }else{ window.googletag = ""; this.async('https://www.googletagservices.com/tag/js/gpt.js'); //this.async('https://www.googletagservices.com/tag/js/gpt.js',this.fetchad()); setTimeout(function(){ callscript.fetchad(); } , 500); console.log("push"); } //this.async('https://www.googletagservices.com/tag/js/gpt.js',this.fetchad()); } }; callscript.callad(); })(); (function() { var callscript = { showad_slot:"", showad_defineSlot : "/22124825655/creative3/creative3_1", showad_name : "div-gpt-ad-1671181372605-creative3-creative1", showad_defineSize : [ [1, 1] ], fetchad:function(){ var showad_name = this.showad_name; var showad_div = document.createElement('div'); showad_div.id = showad_name; document.body.appendChild(showad_div); window.googletag = window.googletag || {cmd: []}; var googletag = window.googletag; googletag.cmd.push(function() { callscript.showad_slot = googletag.defineSlot(callscript.showad_defineSlot,callscript.showad_defineSize, callscript.showad_name).setTargeting('web', location.hostname).setTargeting('url', location.href).addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); }); googletag.cmd.push(function() { googletag.display(callscript.showad_name); }); },async:function (u, c) { var d = document, t = 'script', o = d.createElement(t), s = d.getElementsByTagName(t)[0]; o.src = u; if (c) { o.addEventListener('load', function (e) { c(null, e); }, false); } //s.parentNode.insertBefore(o, s); d.body.appendChild(o); },callad:function(){ if(top.window.googletag){ this.fetchad(); }else{ this.async('https://www.googletagservices.com/tag/js/gpt.js',this.fetchad()); } //this.async('https://www.googletagservices.com/tag/js/gpt.js',this.fetchad()); } }; callscript.callad(); })(); (function() { var callscript = { showad_slot:"", showad_defineSlot : "/22124825655/creative3/creative3_2", showad_name : "div-gpt-ad-1671181372605-creative3-creative2", showad_defineSize : [ [1, 1] ], fetchad:function(){ var showad_name = this.showad_name; var showad_div = document.createElement('div'); showad_div.id = showad_name; document.body.appendChild(showad_div); window.googletag = window.googletag || {cmd: []}; var googletag = window.googletag; googletag.cmd.push(function() { callscript.showad_slot = googletag.defineSlot(callscript.showad_defineSlot,callscript.showad_defineSize, callscript.showad_name).setTargeting('web', location.hostname).setTargeting('url', location.href).addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); }); googletag.cmd.push(function() { googletag.display(callscript.showad_name); }); },async:function (u, c) { var d = document, t = 'script', o = d.createElement(t), s = d.getElementsByTagName(t)[0]; o.src = u; if (c) { o.addEventListener('load', function (e) { c(null, e); }, false); } //s.parentNode.insertBefore(o, s); d.body.appendChild(o); },callad:function(){ if(top.window.googletag){ this.fetchad(); }else{ this.async('https://www.googletagservices.com/tag/js/gpt.js',this.fetchad()); } } }; callscript.callad(); })(); (function () { /* ========================================================= * 全域設定 * ========================================================= */ var LAZY_MARGIN = '800px 0px'; var DESKTOP_BREAKPOINT = 768; /* * 廣告尺寸策略 * * Desktop: * 三欄,每格較窄 * * Mobile: * 單欄,每格較寬 * * 刻意不使用: * 728x90 * 970x90 * 970x280 * 320x50 * * 避免產生超扁廣告 */ var ALL_SIZES = [ [250, 250], [300, 250], [336, 280] ]; /* ========================================================= * 初始化 GPT * * 整頁只做一次 * ========================================================= */ window.googletag = window.googletag || { cmd: [] }; if ( !window.googletag.apiReady && !document.querySelector( 'script[src*="securepubads.g.doubleclick.net/tag/js/gpt.js"]' ) ) { var gptScript = document.createElement('script'); gptScript.async = true; gptScript.src = 'https://securepubads.g.doubleclick.net/tag/js/gpt.js'; document.head.appendChild(gptScript); } /* * GPT services 整頁只初始化一次 * * 注意: * enableServices 不會立刻 request 廣告。 * 真正 request 還是等 display()。 * * 所以我們可以先初始化 GPT, * 各區塊仍然使用 IntersectionObserver lazy load。 */ googletag.cmd.push(function () { if (!googletag.pubadsReady) { /* * SRA 全頁只需設定一次 */ googletag.pubads().enableSingleRequest(); googletag.enableServices(); console.log('[ACH GAM] GPT services initialized'); } }); /* ========================================================= * 共用初始化 Function * * config: * * selector * prefix * slots[] * ========================================================= */ function initAchangGam(config) { var selector = config.selector; var prefix = config.prefix; var slotPaths = config.slots; /* --------------------------------------------------------- * 找區塊 * --------------------------------------------------------- */ var root = document.querySelector(selector); if (!root) { console.warn( '[ACH GAM][' + prefix + '] 找不到:', selector ); return; } /* * 防止同一組重複初始化 */ if ( root.getAttribute( 'data-ach-gam-init' ) === '1' ) { console.log( '[ACH GAM][' + prefix + '] 已初始化' ); return; } root.setAttribute( 'data-ach-gam-init', '1' ); /* --------------------------------------------------------- * 只取得前三個「直接子 DIV」 * --------------------------------------------------------- */ var targets = Array.prototype .slice.call(root.children) .filter(function (el) { return el.tagName === 'DIV'; }) .slice(0, 3); if (!targets.length) { console.warn( '[ACH GAM][' + prefix + '] 找不到子 DIV' ); return; } /* ========================================================= * Lazy Load * ========================================================= */ var loaded = false; function loadGroup() { if (loaded) { return; } loaded = true; console.log( '[ACH GAM][' + prefix + '] 進入 lazy 範圍' ); /* * 等 GPT Ready */ googletag.cmd.push(function () { createSlots(); }); } /* ========================================================= * 建立這一組 GAM * ========================================================= */ function createSlots() { var states = []; /* ------------------------------------------------------- * Size Mapping * ------------------------------------------------------- */ var sizeMapping = googletag .sizeMapping() /* * Desktop */ .addSize( [DESKTOP_BREAKPOINT, 0], [ [250, 250], [300, 250] ] ) /* * Mobile */ .addSize( [0, 0], [ [250, 250], [300, 250], [336, 280] ] ) .build(); /* ======================================================= * 建立三個 Slot * ======================================================= */ targets.forEach(function ( target, index ) { var path = slotPaths[index]; if (!path) { return; } /* * 每組使用不同 ID * * ach1-0 * ach1-1 * ach1-2 * * ach2-0 * ach2-1 * ach2-2 */ var divId = 'div-gpt-ad-' + prefix + '-' + index; /* * 清掉原本內容 */ target.innerHTML = ''; /* * 不修改 target 原本: * * width * margin * flex * flex-flow * * 保留網站自己的 RWD。 */ /* ===================================================== * Wrapper * ===================================================== */ var wrapper = document.createElement('div'); wrapper.className = 'ach-gam-wrapper'; wrapper.style.cssText = [ 'position:relative', 'display:block', 'width:100%', 'box-sizing:border-box', 'overflow:hidden', 'text-align:center', 'margin:0', 'padding:0' ].join(';'); /* ===================================================== * Positioner * ===================================================== */ var positioner = document.createElement('div'); positioner.className = 'ach-gam-positioner'; positioner.style.cssText = [ 'position:absolute', 'left:50%', 'top:0', 'margin:0', 'padding:0' ].join(';'); /* ===================================================== * Stage * * 保留 GAM 原始尺寸, * 再用 transform scale。 * ===================================================== */ var stage = document.createElement('div'); stage.className = 'ach-gam-stage'; stage.style.cssText = [ 'position:relative', 'display:block', 'margin:0', 'padding:0', 'transform-origin:top center' ].join(';'); /* ===================================================== * GAM DIV * ===================================================== */ var adDiv = document.createElement('div'); adDiv.id = divId; adDiv.style.cssText = [ 'display:block', 'margin:0', 'padding:0' ].join(';'); stage.appendChild(adDiv); positioner.appendChild(stage); wrapper.appendChild(positioner); target.appendChild(wrapper); /* ===================================================== * Define Slot * ===================================================== */ var slot = googletag .defineSlot( path, ALL_SIZES, divId ); if (!slot) { console.warn( '[ACH GAM][' + prefix + '] defineSlot 失敗:', path ); return; } slot .defineSizeMapping( sizeMapping ) .addService( googletag.pubads() ); states.push({ target: target, wrapper: wrapper, positioner: positioner, stage: stage, adDiv: adDiv, slot: slot, creativeWidth: 0, creativeHeight: 0, resizeObserver: null }); }); /* ======================================================= * Resize Function * ======================================================= */ function resizeAd(state) { if ( !state.creativeWidth || !state.creativeHeight ) { return; } /* * 以「目前這一格」實際寬度為準。 * * 不管: * * 手機 * 桌機 * Tablet * RWD breakpoint * * 最後都依真正 container width。 */ var availableWidth = state.target.clientWidth; if (availableWidth <= 0) { return; } /* * 只縮小 * 不把小廣告放大 */ var scale = Math.min( 1, availableWidth / state.creativeWidth ); var displayWidth = Math.round( state.creativeWidth * scale ); var displayHeight = Math.round( state.creativeHeight * scale ); /* ----------------------------------------------------- * Stage 保持原始 GAM 尺寸 * ----------------------------------------------------- */ state.stage.style.width = state.creativeWidth + 'px'; state.stage.style.height = state.creativeHeight + 'px'; /* * stage 中心對齊 target 中心 */ state.stage.style.marginLeft = (-state.creativeWidth / 2) + 'px'; /* * 等比例縮放 */ state.stage.style.transform = 'scale(' + scale + ')'; /* * transform 不會影響 layout height, * 所以 wrapper 高度自己計算。 */ state.wrapper.style.height = displayHeight + 'px'; state.wrapper.style.minHeight = displayHeight + 'px'; console.log( '[ACH GAM][' + prefix + '] Resize:', state.creativeWidth + 'x' + state.creativeHeight, '→', displayWidth + 'x' + displayHeight, '| container:', availableWidth, '| scale:', scale.toFixed(3) ); } /* ======================================================= * Slot Render Event * ======================================================= */ googletag .pubads() .addEventListener( 'slotRenderEnded', function (event) { var state = states.find( function (item) { return ( item.slot === event.slot ); } ); /* * 不是這一組廣告 */ if (!state) { return; } /* ================================================= * No Fill * ================================================= */ if (event.isEmpty) { console.log( '[ACH GAM][' + prefix + '] No Fill:', event.slot .getAdUnitPath() ); /* * 隱藏這一格 */ state.target.style.display = 'none'; return; } /* ================================================= * 取得 Creative Size * ================================================= */ if ( event.size && Array.isArray( event.size ) && event.size.length >= 2 ) { state.creativeWidth = parseInt( event.size[0], 10 ); state.creativeHeight = parseInt( event.size[1], 10 ); } /* * fallback: * 從 iframe 取得尺寸 */ if ( !state.creativeWidth || !state.creativeHeight ) { var iframe = state.adDiv .querySelector( 'iframe' ); if (iframe) { state.creativeWidth = parseInt( iframe.getAttribute( 'width' ) || iframe.offsetWidth, 10 ); state.creativeHeight = parseInt( iframe.getAttribute( 'height' ) || iframe.offsetHeight, 10 ); } } /* * 第一次 Resize */ resizeAd(state); console.log( '[ACH GAM][' + prefix + '] Render:', event.slot .getAdUnitPath(), state.creativeWidth + 'x' + state.creativeHeight ); } ); /* ======================================================= * ResizeObserver * * 每一格自己監測自己的寬度。 * ======================================================= */ if ( 'ResizeObserver' in window ) { states.forEach( function (state) { state.resizeObserver = new ResizeObserver( function () { resizeAd( state ); } ); state.resizeObserver .observe( state.target ); } ); } else { /* * 舊瀏覽器 fallback */ window.addEventListener( 'resize', function () { states.forEach( function (state) { resizeAd( state ); } ); } ); } /* ======================================================= * Display * * 三個 slot 已經全部 define 完, * 再一起 display。 * ======================================================= */ states.forEach( function (state) { googletag.display( state.adDiv.id ); } ); console.log( '[ACH GAM][' + prefix + '] Display 完成,共', states.length, '格' ); } /* ========================================================= * IntersectionObserver Lazy Load * ========================================================= */ if ( 'IntersectionObserver' in window ) { var observer = new IntersectionObserver( function (entries) { entries.forEach( function (entry) { if ( !entry.isIntersecting ) { return; } /* * 這組只觸發一次 */ observer.disconnect(); loadGroup(); } ); }, { root: null, /* * 文末前約 800px * 開始載入 */ rootMargin: LAZY_MARGIN, threshold: 0 } ); observer.observe(root); } else { /* * 舊 browser */ loadGroup(); } } /* ========================================================= * 執行 * ========================================================= */ function initAll() { /* ======================================================= * 第一組 * * .achang_tw_rec * ======================================================= */ initAchangGam({ selector: '.achang_tw_rec', prefix: 'ach1', slots: [ '/22675675822/banner/ach/content_bottom', '/22675675822/banner/ach/content_inside', '/22675675822/banner/ach/content_top' ] }); /* ======================================================= * 第二組 * * .achang_tw_rec2 * ======================================================= */ initAchangGam({ selector: '.achang_tw_rec2', prefix: 'ach2', slots: [ '/22675675822/banner/ach/content_bottom', '/22675675822/banner/ach/content_inside', '/22675675822/banner/ach/content_top' ] }); } /* ========================================================= * DOM Ready * ========================================================= */ if ( document.readyState === 'loading' ) { document.addEventListener( 'DOMContentLoaded', initAll ); } else { initAll(); } })(); function cell_ad_display() { var cell_ad_display_s = document.getElementsByClassName("achang_tw_rec_ad"); for (var cell_ad_display_i = 0; cell_ad_display_i < cell_ad_display_s.length; cell_ad_display_i++) { if (cell_ad_display_s[cell_ad_display_i].getAttribute('ad') != 'display') { var ad_div = document.createElement('div'); ad_div.innerHTML = '
'; cell_ad_display_s[cell_ad_display_i].appendChild(ad_div); window.achang_tw_rec_native = window.achang_tw_rec_native || []; window.achang_tw_rec_native.push("fd5038c4-dd29-4121-b1e7-1bc79b0eeaad"); window.achang_tw_rec_publisherUrl = "https://achang.tw/"; window.achang_tw_rec_apiKey = "6HWNHHRJKQ3T8FYNNTHG"; (function(d) { var script = d.createElement("script"); script.async = true; script.src = "https://cell.adbottw.net/dy/ads/native/?ca=achang_tw_rec"; d.body.appendChild(script); })(document);var styleElement = document.createElement("STYLE"); styleElement.innerHTML = ".achang_tw_rec .native-ad-fd5038c4-dd29-4121-b1e7-1bc79b0eeaad.ad_style{padding:0 10 0 10px;}\ .achang_tw_rec {margin-right:auto }\ .achang_tw_rec_ad {width:33%;margin:0px }\ //.achang_tw_rec .native-ad-fd5038c4-dd29-4121-b1e7-1bc79b0eeaad.ad_style > a > div > img {height:127px!important;background-color:white!important}\ //.achang_tw_rec .native-ad-fd5038c4-dd29-4121-b1e7-1bc79b0eeaad.ad_style > a{text-decoration:none;color: #000;font-weight: 500;font-size:14px}\ //.achang_tw_rec .native-ad-fd5038c4-dd29-4121-b1e7-1bc79b0eeaad.ad_style > a > div.text > p.desc{display:none}\ .achang_tw_rec .native-ad-fd5038c4-dd29-4121-b1e7-1bc79b0eeaad.ad_style a > div >h3{border:0px;margin-top:0px;margin-bottom:5px;color: #000;}.ad_style :nth-child(3){bottom:unset!important;text-align:right;position:relative!important;}\ .achang_tw_rec .native-ad-fd5038c4-dd29-4121-b1e7-1bc79b0eeaad.ad_style > a > div > img {height:130px!important;background-color:white!important;max-width:100%!important}\ @media screen and (max-width: 1300px) and (min-width: 510px) {\ .achang_tw_rec .native-ad-fd5038c4-dd29-4121-b1e7-1bc79b0eeaad.ad_style > a > div > img {width:100%!important}\ .achang_tw_rec .native-ad-fd5038c4-dd29-4121-b1e7-1bc79b0eeaad.ad_style{width:100%;height:210px;}\ .achang_tw_rec_ad {width:33%;overflow:hidden }\ }\ @media screen and (max-width: 509px) {\ .achang_tw_rec .native-ad-fd5038c4-dd29-4121-b1e7-1bc79b0eeaad.ad_style > a > div > img {height:250px!important;width:100%!important}\ .achang_tw_rec .native-ad-fd5038c4-dd29-4121-b1e7-1bc79b0eeaad.ad_style{height:280px;width:100%;}\ .achang_tw_rec_ad {width:100%;height:320px }\ }\ .achang_tw_rec .native-ad-fd5038c4-dd29-4121-b1e7-1bc79b0eeaad.ad_style > a {text-decoration:none!important;color: #000!important;font-weight:500;font-color:black!important;font-size:14px!important;text-align:center}\ .achang_tw_rec .native-ad-fd5038c4-dd29-4121-b1e7-1bc79b0eeaad.ad_style > a > div.text > p.desc{display:none}\ .achang_tw_rec .native-ad-fd5038c4-dd29-4121-b1e7-1bc79b0eeaad.ad_style a > div >h3{margin-bottom:5px;letter-spacing: 0.8px;padding:0% 1% 0% 1%;font-family: Overpass,sans-serif;font-size:1.15em;font-weight:500;background: transparent;text-align: left; line-height: 1.3;}\ .achang_tw_rec .native-ad-fd5038c4-dd29-4121-b1e7-1bc79b0eeaad.ad_style :nth-child(3){bottom:unset!important;display:none;}\ .achang_tw_rec .native-ad-fd5038c4-dd29-4121-b1e7-1bc79b0eeaad.ad_style :nth-child(2) > img {display:none!important;}"; document.body.appendChild(styleElement); cell_ad_display_s[cell_ad_display_i].setAttribute('ad', 'display'); } } } function fetch_ads_rec(){ var getads = document.getElementsByClassName("achang_tw_rec"); Array.prototype.forEach.call(getads, function(el) { el.setAttribute('style','display:flex;flex-flow: wrap;place-content: space-between;'); if(el.getAttribute('ad')!='display'){ var ad_div = document.createElement('div'); ad_div.classList.toggle('achang_tw_rec_ad'); el.appendChild(ad_div); //cell_ad_display(); var ad_div = document.createElement('div'); ad_div.classList.toggle('achang_tw_rec_ad'); el.appendChild(ad_div); //cell_ad_display(); var ad_div = document.createElement('div'); ad_div.classList.toggle('achang_tw_rec_ad'); el.appendChild(ad_div); //cell_ad_display(); //cell_ad_display(); //var styleElement = document.createElement("STYLE"); //styleElement.innerHTML = ".ad_style{width:300px}.ad_style > a > div > img {height:127px!important;background-color:white!important} .ad_style > a{text-decoration:none!important;color: #000!important;font-weight: 500;font-color:black!important;font-size:14px!important;text-align:center} .ad_style > a > div.text > p.desc{display:none} .ad_style a > div >h3{margin-bottom:5px}.ad_style :nth-child(3){bottom:unset!important;display:none;}.ad_style:nth-child(2){display:none!important;}"; //document.body.appendChild(styleElement); el.setAttribute('ad','display'); } }); //cell_ad_display(); ga('achang_tw_rec.send', 'event', 'load', location.hostname, location.href); } //window.setTimeout(function(){fetch_ads_rec();}, 5000); fetch_ads_rec(); //cell_ad_display();