(function(w,d,apkButtonEvents,pixelId,pageViewEventId){ var pixelStatus=w.__xaiPixelStatus={configured:!!pixelId,pixelId:pixelId,sdk:pixelId?'loading':'not_configured',availability:pixelId?'checking':'not_configured',pageView:'not_sent',lastEvent:'',updatedAt:Date.now()}; var pixelDebug=false; try{pixelDebug=new URLSearchParams(w.location.search||'').get('xai_pixel_debug')==='1';}catch(e){} function updatePixelStatus(update){Object.keys(update||{}).forEach(function(key){pixelStatus[key]=update[key];});pixelStatus.updatedAt=Date.now();renderPixelDebug();} function metaSdkReady(){return typeof w.fbq==='function'&&typeof w.fbq.callMethod==='function';} function checkMetaSdk(){if(metaSdkReady())updatePixelStatus({sdk:'loaded',availability:pixelStatus.availability==='unavailable'?'unavailable':'loaded'});} function renderPixelDebug(){ if(!pixelDebug||!d.body)return; var panel=d.getElementById('xai-pixel-debug'); if(!panel){panel=d.createElement('div');panel.id='xai-pixel-debug';panel.setAttribute('role','status');panel.style.cssText='position:fixed;right:12px;bottom:12px;z-index:2147483647;width:min(330px,calc(100vw - 24px));box-sizing:border-box;padding:13px 14px;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:#071b18;color:#eafff5;box-shadow:0 16px 42px rgba(0,0,0,.35);font:12px/1.55 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif';d.body.appendChild(panel);} var bad=pixelStatus.availability==='unavailable'||pixelStatus.sdk==='error'; var state=!pixelStatus.configured?'未配置 Pixel ID':pixelStatus.availability==='unavailable'?'Meta 返回 Pixel unavailable':metaSdkReady()?'SDK 已执行,PageView 已排队':pixelStatus.sdk==='error'?'SDK 请求失败,请检查网络或浏览器拦截':pixelStatus.sdk==='not_ready'?'SDK 尚未就绪,请检查控制台与网络请求':'正在检查 Meta SDK'; panel.innerHTML='浏览器 Pixel 调试Pixel ID:'+(pixelStatus.pixelId||'未配置')+'状态:'+state+'此面板仅在网址带 ?xai_pixel_debug=1 时显示。'; } function initializeBrowserPixel(){ if(!pixelId){if(d.readyState==='loading')d.addEventListener('DOMContentLoaded',renderPixelDebug);else renderPixelDebug();return;} var registry=w.__xaiPixelRegistry||(w.__xaiPixelRegistry={initialized:{},pageViews:{}}); var originalWarn=w.console&&typeof w.console.warn==='function'?w.console.warn:null; var wrappedWarn=null; if(originalWarn){wrappedWarn=function(){var message=Array.prototype.join.call(arguments,' ');if(/\[(?:Meta pixel|fbpixel)\]/i.test(message)&&message.indexOf(pixelId)!==-1&&/unavailable/i.test(message))updatePixelStatus({availability:'unavailable'});return originalWarn.apply(w.console,arguments);};w.console.warn=wrappedWarn;} if(typeof w.fbq!=='function'){ !function(f,b,e,v,n,t,s){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;t.onload=function(){if(metaSdkReady())checkMetaSdk();else updatePixelStatus({sdk:'not_ready'});};t.onerror=function(){updatePixelStatus({sdk:'error',availability:pixelStatus.availability==='unavailable'?'unavailable':'unknown'});};s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(w,d,'script','https://connect.facebook.net/en_US/fbevents.js'); }else updatePixelStatus({sdk:metaSdkReady()?'loaded':'present'}); try{ if(!registry.initialized[pixelId]){w.fbq('init',pixelId);registry.initialized[pixelId]=true;} if(!registry.pageViews[pixelId]){if(pageViewEventId)w.fbq('track','PageView',{}, {eventID:pageViewEventId});else w.fbq('track','PageView');registry.pageViews[pixelId]=true;updatePixelStatus({pageView:'queued'});} }catch(e){updatePixelStatus({sdk:'error'});} if(w.setTimeout){[250,1000,3000,6000].forEach(function(delay){w.setTimeout(checkMetaSdk,delay);});w.setTimeout(function(){checkMetaSdk();if(!metaSdkReady())updatePixelStatus({sdk:pixelStatus.sdk==='error'?'error':'not_ready'});if(wrappedWarn&&w.console&&w.console.warn===wrappedWarn)w.console.warn=originalWarn;if(pixelStatus.availability==='checking')updatePixelStatus({availability:metaSdkReady()?'loaded':'unknown'});},12000);} if(d.readyState==='loading')d.addEventListener('DOMContentLoaded',renderPixelDebug);else renderPixelDebug(); } initializeBrowserPixel(); // Upgrade existing same-directory download links without changing their appearance. var signedRoutes={"1":"expires=1793877545\u0026token=e2634b99cfc2a74a6d5d1c6c64226783cb09e380c5a388bee91ed3fedbb8de07","2":"expires=1793877545\u0026token=a2b9b56523a35b58333493b00b3c3c66004fe9923b14d4fe8f75dc4f076999d2"}; var ownScript=d.currentScript; var downloadEndpoint=ownScript?new URL('download.php',ownScript.src):null; var onlineEndpoint=ownScript?new URL('online.php',ownScript.src):null; function onlineHeartbeat(){ if(!onlineEndpoint||d.visibilityState==='hidden'||typeof w.fetch!=='function')return; try{w.fetch(onlineEndpoint.href,{method:'POST',credentials:'same-origin',cache:'no-store',keepalive:true,headers:{'Accept':'application/json'}}).catch(function(){});}catch(e){} } onlineHeartbeat(); if(typeof w.setInterval==='function')w.setInterval(onlineHeartbeat,30000); d.addEventListener('visibilitychange',function(){if(d.visibilityState==='visible')onlineHeartbeat();}); function signDownloadLink(anchor){ if(!downloadEndpoint||!anchor)return; try{var u=new URL(anchor.href,w.location.href);if(u.origin!==downloadEndpoint.origin||u.pathname!==downloadEndpoint.pathname)return; var route=u.searchParams.get('route')||'1';if(!signedRoutes[route])return; var q=new URLSearchParams(signedRoutes[route]);u.searchParams.set('expires',q.get('expires'));u.searchParams.set('token',q.get('token'));anchor.href=u.href; }catch(e){} } function signExisting(){d.querySelectorAll('a[href]').forEach(signDownloadLink);} if(d.readyState==='loading')d.addEventListener('DOMContentLoaded',signExisting);else signExisting(); d.addEventListener('click',function(e){signDownloadLink(e.target&&e.target.closest?e.target.closest('a[href]'):null);},true); function eventFor(node){ for(var current=node;current&¤t!==d;current=current.parentElement){ if(current.hasAttribute&¤t.hasAttribute('data-fb-event')){ var named=(current.getAttribute('data-fb-event')||'').trim().toLowerCase(); if(named==='download')return 'Download'; if(named==='addtocart')return 'AddToCart'; if(named==='subscribe')return 'Subscribe'; return ''; } if(current.tagName==='A'&¤t.href){ try{ var url=new URL(current.href,w.location.href); if(url.origin===w.location.origin&&/(?:^|\/)download\.php$/i.test(url.pathname)){ var routeNumber=Number(url.searchParams.get('route')||'1'); if(routeNumber>=1&&routeNumber<=2)return 'Download'; } if(current.hasAttribute('download')||/\.(apk|zip)$/i.test(url.pathname))return 'Download'; }catch(e){} } } return ''; } function eventsFor(name){ if(name!=='Download')return [name]; var events=['Download'];apkButtonEvents.forEach(function(eventName){if((eventName==='AddToCart'||eventName==='Subscribe')&&events.indexOf(eventName)===-1)events.push(eventName);}); return events; } function eventId(){try{var bytes=new Uint8Array(16);w.crypto.getRandomValues(bytes);return Array.prototype.map.call(bytes,function(value){return value.toString(16).padStart(2,'0');}).join('');}catch(e){return '';}} function eventQueryKey(name){return name==='AddToCart'?'eid_add_to_cart':name==='Subscribe'?'eid_subscribe':'eid';} d.addEventListener('click',function(event){ var name=eventFor(event.target);if(!name)return; var events=eventsFor(name),ids={};events.forEach(function(eventName){ids[eventName]=eventId();}); var anchor=event.target&&event.target.closest?event.target.closest('a[href]'):null; if(name==='Download'&&anchor){try{var url=new URL(anchor.href,w.location.href);if(url.origin===w.location.origin&&/(?:^|\/)download\.php$/i.test(url.pathname)){events.forEach(function(eventName){if(ids[eventName])url.searchParams.set(eventQueryKey(eventName),ids[eventName]);});anchor.href=url.href;}}catch(e){}} if(typeof w.fbq==='function')events.forEach(function(eventName){try{if(eventName==='Download'){if(ids[eventName])w.fbq('trackCustom','Download',{}, {eventID:ids[eventName]});else w.fbq('trackCustom','Download');}else if(ids[eventName])w.fbq('track',eventName,{}, {eventID:ids[eventName]});else w.fbq('track',eventName);updatePixelStatus({lastEvent:eventName});}catch(e){}}); },true); })(window,document,["AddToCart"],"1103434359118332","709442c3586c618b72105fb0ee1af4cd");