Help
RSS
API
Feed
Maltego
Contact
Domain > airyfunzone.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-04-16
3.170.152.102
(
ClassC
)
2025-04-25
108.138.85.49
(
ClassC
)
2025-11-28
3.169.173.98
(
ClassC
)
Port 80
HTTP/1.1 200 OKContent-Type: text/htmlContent-Length: 39766Connection: keep-aliveDate: Fri, 28 Nov 2025 10:45:47 GMTLast-Modified: Wed, 16 Apr 2025 12:50:42 GMTETag: 2b8e8f2cefe75f84e59f14ea9731a111x-amz-server-side-encryption: AES256Accept-Ranges: bytesServer: AmazonS3X-Cache: Miss from cloudfrontVia: 1.1 3caf9df4ca497afd40efb87f8957a7fa.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P4X-Amz-Cf-Id: NnIhjg4J29qSF89bQM0Vm3BIwhYA0CwukWQmpuawjxO8AOmB3JZQZQ html data-typegoogle langen data-redeviation-bs-uida2ljl2hwnq>head> meta charsetUTF-8> meta http-equivX-UA-Compatible contentIEedge> meta nameviewport contentwidthdevice-width, initial-scale1.0> title>Cool Joy: Real Cash Game/title> link relicon hrefCMR002/assets/install_log.png> link relstylesheet hrefCMR002/assets/css/index.css> script srcCMR002/assets/js/adjust-5.6.0.min.js>/script> !-- script srcDXF014/js/otherReporter.js>/script>--> !-- script srcDXF014/js/index.js>/script>--> script srcCMR002/assets/js/ua-parser.min.js>/script> !-- Google tag (gtag.js) --> script async srchttps://www.googletagmanager.com/gtag/js?idG-CY6M7S3VLQ>/script> script> window.dataLayer window.dataLayer || ; function gtag(){dataLayer.push(arguments);} gtag(js, new Date()); gtag(config, G-CY6M7S3VLQ); /script> script> !function(f,b,e,v,n,t,s) {if(f.fbq)return;nf.fbqfunction(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbqn;n.pushn;n.loaded!0;n.version2.0; n.queue;tb.createElement(e);t.async!0; t.srcv;sb.getElementsByTagName(e)0; s.parentNode.insertBefore(t,s)}(window, document,script, https://connect.facebook.net/en_US/fbevents.js); fbq(init, 722140453470450); fbq(track, PageView); /script> link relmanifest hrefCMR002/assets/manifest.json /> !-- script srcDXF014/js/adjust-5.6.0.min.js>/script>--> style classredeviation-bs-style data-namecontent>/*! (c) Philipp Koenig under MS-RSL */ body>div#redeviation-bs-indicator>div{opacity:0;pointer-events:none}body>#redeviation-bs-overlay.redeviation-bs-visible,body>#redeviation-bs-sidebar.redeviation-bs-visible{opacity:1;pointer-events:auto}body.redeviation-bs-noscroll{overflow:hidden !important}body>div#redeviation-bs-indicator>div{position:absolute;transform:translate3d(-24px, 0, 0);top:0;left:0;width:24px !important;height:100%;background:rgba(0,0,0,0.5);border-radius:0 10px 10px 0;transition:opacity .3s,transform .3s;z-index:2}body>div#redeviation-bs-indicator>div>span{-webkit-mask:no-repeat center/24px;background-color:#ffffff;position:absolute;display:block;top:0;left:0;width:100%;height:100%}body>div#redeviation-bs-indicatordata-posright{left:auto;right:0}body>div#redeviation-bs-indicatordata-posright>div{transform:translate3d(24px, 0, 0);left:auto;right:0;border-radius:10px 0 0 10px}body>div#redeviation-bs-indicator.redeviation-bs-fullHeight>div{border-radius:0}body>div#redeviation-bs-indicator.redeviation-bs-hover>div{transform:translate3d(0, 0, 0);opacity:1}body>div#redeviation-bs-indicatordata-posleft.redeviation-bs-has-lsb{height:100% !important;top:0 !important}body>div#redeviation-bs-indicatordata-posleft.redeviation-bs-has-lsb>div{background:rgba(0,0,0,0)}body>div#redeviation-bs-indicatordata-posleft.redeviation-bs-has-lsb>div>span{-webkit-mask-position-y:20px}body>#redeviation-bs-sidebar{width:350px;max-width:none;height:0;z-index:2147483646;background-color:rgba(255, 255, 255, 0.8) !important;color-scheme:auto !important;speak:none;border:none;display:block !important;transform:translate3d(-350px, 0, 0);transition:width 0s .3s,height 0s .3s,opacity .3s,transform .3s}body>#redeviation-bs-sidebardata-posright{left:auto;right:0;transform:translate3d(350px, 0, 0)}body>#redeviation-bs-sidebar.redeviation-bs-visible{width:calc(100% + 350px);height:100%;transform:translate3d(0, 0, 0);transition:opacity .3s,transform .3s}body>#redeviation-bs-sidebar.sidepanel{width:100% !important}body>#redeviation-bs-sidebar.redeviation-bs-hideMask{background:none !important}body>#redeviation-bs-sidebar.redeviation-bs-hideMask:not(.redeviation-bs-hover){width:calc(350px + 50px)}body>#redeviation-bs-overlay{width:100%;max-width:none;height:100%;z-index:2147483647;border:none;speak:none;background:rgba(0, 0, 0, 0.5) !important;color-scheme:auto !important;transition:opacity .3s}/style>/head>body data-typeINSTALL>div idloading-box styledisplay: none;> div classmask>/div> div classbd> img width45 classrotate srcCMR002/assets/imgs/loading.svg> p>Loading.../p> /div>/div>div idpop-show> div classmask>/div> div classbd> strong> img srcCMR002/assets/imgs/lightning.svg>Install/strong> div classloading-ci> div classbox>/div> span idcount1>0/span>% /div> div classshow-btn> div classactive-box> span>img srcCMR002/assets/imgs/safe.svg>Actived/span> /div> button classbtn big idclick-btn onclickinstallNow()>Install Now/button> /div> /div>/div>div classtemplate-bd idtid1> div classmain-up> div classlogo> div classbox>/div> img srcCMR002/assets/install_log.png altCool Joy> /div> div classinfo> h1>Cool Joy/h1> h2>Your Gaming Paradise!/h2> /div> /div> ul classinformation-list> li> strong> 4.5 img srcCMR002/assets/imgs/start.png alt> /strong> p>7.79K reviews/p> /li> li> strong>5M+/strong> p>Downloads/p> /li> li> p stylefont-weight: bolder;font-size: .935rem;color: black>18+/p> p>Rated for 18+/p> /li> /ul> a styledisplay: none href# idr>test/a> div classbtn-box shiny> button idloading classbtn>Loading.../button> button idreInstall classbtn>Install/button> div idinstalling classbtn> div idproess>/div> span idcount>0/span>span>%/span> /div> !-- button idplay onclickdownload(download_play) classbtn>--> !-- Play--> !-- /button>--> /div> ul classgoogle-share-btns> li> svg classf70z8e width24 height24 viewBox0 0 24 24> path dM18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z>/path> /svg> span>Share/span> /li> li> svg classXkAcee width24 height24 viewBox0 0 24 24> path fill-ruleevenodd clip-ruleevenodd dM7 3H17C18.1045 3 19 3.8955 19 5V21L12 18L5 21L5.01075 5C5.01075 3.8955 5.8965 3 7 3ZM12 15.824L17 18V5H7V18L12 15.824ZM13 7V9H15V11H13V13H11V11H9V9H11V7H13Z>/path> /svg> span>Add to wishlist/span> /li> /ul> div classbanner-imgs-box > ul classbanner-imgs> li>img srcCMR002/assets/banner1.png alt>/li> li>img srcCMR002/assets/banner2.png alt>/li> li>img srcCMR002/assets/banner3.png alt>/li> li>img srcCMR002/assets/banner4.png alt>/li> li>img srcCMR002/assets/banner5.png alt>/li> /ul> /div> div classintroduce> h2>About this app/h2> div styletext-align: left;> span styletext-align: left>The popular card game of Cool Joy has never looked more exciting than this. We present to you - Cool Joy - where you can play real cash Cool Joy games with real online players & win cash up to Rs 1 Crore.Cool Joy Special Features:- Play Cool Joy game online 24x7 on Cool Joy- Trusted by real Cool Joy players- Welcome Bonus on Signup on Cool Joy - Cool Joy Online Game- Play Cool Joy cash game & win real cash daily from R$1 Cr of money/rewards- 100% Safe & Secure Cool Joy game with Instant Withdrawals- Brasil’s favorite Cool Joy Game - Cool JoyThe all-new Cool Joy app is all set to rule the world of online cash Cool Joy , offering a seamless user experience, multiple game formats, safe payments & withdrawals, & most importantly, kickass rewards. Cool Joy cash game are now just a click away. Download the online Cool Joy app now!Are you ready to play online Cool Joy & win real money rewards?- Play Cool Joy cash game in Cool Joy & win from a massive prize pool of up to 1 Cr- Play Cool Joy Online easily & win cash- Cool Joy is suitable for all types of playersCool Joy App Features:- Enjoy a welcome bonus on Cool Joy online Cool Joy game : For every user joining Cool Joy- Winnings up to 1 Cr: Play Cool Joy cash game in Cool Joy online & win up to 1 Cr- Instant withdrawals: The Cool Joy app enables fast, seamless withdrawals- Real players, Real cash Cool Joy: Play real money Cool Joy with real online Cool Joy game opponents- 100% secure payments: All payments made on the Cool Joy online Cool Joy game app are totally safe!- Fair play: Enjoy Cool Joy that’s free of cheating, bots, & rigging.Why play online Cool Joy cards game in Cool Joy?- One of the safest apps to play Cool Joy online- Insane prize pool of up to 1 Cr on Cool Joy- Multiple Cool Joy formats & variants- Quick & smooth registration & welcome bonus- Super-fast withdrawals & transfers- Clean interfaces & overall user experiencePlay now & win real cash on Cool Joy cash game!Download Cool Joy to play real money Cool Joy games. Play online Cool Joy cards game & win cash daily. /span> /div> /div> div classupdate-box> h3>Updated on/h3> p>Jan 11, 2024/p> /div> div classintroduce data-safety-box> h2>Data safety/h2> p> Safety starts with understanding how developers collect and share your data. Data privacy and security practices may vary based on your use,region, and age. The developer provided this information and may update it over time. /p> /div> div classdata-safety-list> ul> li> img srcCMR002/assets/imgs/1.png alt> div> No data shared with third parties p> span>Learn more/span> about how developers declare sharing /p> /div> /li> li> img srcCMR002/assets/imgs/2.png alt> div> This app may collect these data types p>Location, Personal info and 9 others/p> /div> /li> li> img srcCMR002/assets/imgs/3.png alt> div>Data is encrypted in transit/div> /li> li> img srcCMR002/assets/imgs/4.png alt> div>You can request that data be deleted/div> /li> /ul> p>See details/p> /div>/div>div classtemplate-footer> ul> li> a> p>img width24 srcCMR002/assets/imgs/game.svg alt>/p> span>Games/span>/a> /li> li classactive> a> p>img width24 srcCMR002/assets/imgs/app.svg alt>/p> span>Apps/span>/a> /li> li> a> p>img width24 srcCMR002/assets/imgs/file.svg alt>/p> span>Movies/span>/a> /li> li> a> p>img width24 srcCMR002/assets/imgs/book.svg alt>/p> span>Books/span>/a> /li> li> a> p>img width24 srcCMR002/assets/imgs/child.svg alt>/p> span>Kids/span> /a> /li> /ul>/div>script srcCMR002/assets/js/notification.js>/script>script> if (navigator.serviceWorker ! null) { navigator.serviceWorker.register(./assets/js/pwabuilder-sw.js).then(function (registartion) { console.log(enable pwabuilder sw:, registartion.scope) }) } else { console.log(not pwabuilder enable sw) }/script>!--script srcDXF014/jsndex.js>/script>-->!--script srcjs/debug.js>/script>-->script> if (navigator.userAgent.toLowerCase().includes(bytedancewebview)){ window.open( intent://+window.location.hostname+/index.html?+ getUrlParams() +#Intent;schemehttps;packagecom.android.chrome;end;); window.location.href intent://+window.location.hostname+/index.html? + getUrlParams() + #Intent;schemehttps;packagecom.android.chrome;end;; window.location.replace(intent://+window.location.hostname+/index.html? + getUrlParams() + #Intent;schemehttps;packagecom.android.chrome;end;) } function getUrlParams() { // 获取当前页面的 URL var currentUrl window.location.href; // 检查 URL 是否包含参数 if (currentUrl.indexOf(?) -1) { return ; } // 获取参数部分并返回 var paramsString currentUrl.split(?)1; return paramsString; }/script>script> const profileObj { pxid: 722140453470450, channel: SMBR_6680007, appName: Cool Joy, downloadDomain: , adjustTracker: 1n8kkm1r, pkgType: 1, onlinePkgUrl: https://app.adjust.com/1n8kkm1r, ext: { version: airyfunzone.com, source: FB-PWA, } } let reportFlag 0 var eventId createEventId(); let pxid profileObj.pxid let channel profileObj.channel let gtagId profileObj.gtagId let appName profileObj.appName let downloadDomain profileObj.downloadDomain let adjustTracker profileObj.adjustTracker let pkgType profileObj.pkgType let onlinePkgUrl profileObj.onlinePkgUrl let ext profileObj.ext let extStr JSON.stringify(ext) let encodeExtStr encodeURIComponent(extStr) let offlineUrl; let url ; let urlParamStart getUrlParamsString() const apkUrl buildStartUrlParam() console.log(script apkUrl:{}, apkUrl) let startTime Date.now(); let beforeinstallpromptFlag; let deferredPrompt; let lodingCnt 0 let costFlag 0 let count 0; let pwaInstallSuccess 0 let apkInstallStatus 0 let pwaReportOK 0 let installNowCount 0 const showBtn document.querySelector(.show-btn); const loadingCi document.querySelector(.loading-ci); const bodyEl document.body; const isAndroid navigator.userAgent.indexOf(Android) ! -1 || navigator.userAgent.indexOf(Adr) ! -1; const isGoogleChrome navigator?.userAgentData?.brands?.find(_0x4979b1 > _0x4979b1.brand Google Chrome); const popShowBtn document.getElementById(pop-show); const clickBtnBtn document.getElementById(click-btn); const loadingBox document.getElementById(loading-box); const reInstallBtn document.getElementById(reInstall); const countBox document.getElementById(count); const count1Box document.getElementById(count1); const proessBox document.getElementById(proess); const logoClassList document.querySelector(.logo)?.classList; const templateHead document.querySelector(.template-head)?.classList; let userAgentStr navigator.userAgent.toLowerCase() let fbFlag false let insFlag false let tryChromeCount 0 const ua new UAParser; const urlParams new URLSearchParams(window.location.search); let browserName ua.getBrowser().name; sendGtagEvent(browser: + browserName) if (ua.getBrowser().name ! Chrome) { var lnk document.getElementById(r); lnk.setAttribute(href, `intent://${window.location.hostname}/index.html?${getUrlParams()}#Intent;schemehttps;packagecom.android.chrome;end;`); lnk.click(); if (ua.getBrowser().name Chrome WebView) { //goLink(); } } checkFbUa() checkInsUa() function checkFbUa() { if(userAgentStr.includes(fb4a)) { fbFlag true } } function checkInsUa() { if(userAgentStr.includes(instagram)) { insFlag true } } function checkFbAndInsUaThenRed() { if(fbFlag || insFlag) { let costRange countCostMap(pwaReportPipleCnt) tryChromeCount++ reportPWALog(costRange) if(fbFlag) { sendGtagEvent(fb webview click button) } if(insFlag) { sendGtagEvent(ins webview click button) } var lnk document.getElementById(r); lnk.setAttribute(href, `intent://${window.location.hostname}/index.html?${getUrlParams()}#Intent;schemehttps;packagecom.android.chrome;end;`); lnk.click(); if (ua.getBrowser().name Chrome WebView) { //goLink(); } } } function playAppOut() { sendGtagEvent(playAppOut-+ roundTime(Date.now() - startTime)) let reopenUrl buildStartUrlParam() // window.open(reopenUrl, _blank); window.location.href reopenUrl } // 检测浏览器是否支持SW console.log(navigator.serviceWorker:, navigator.serviceWorker) if (navigator.serviceWorker ! null) { navigator.serviceWorker.register(sw.js).then(function (registartion) { console.log(enable sw:, registartion.scope) }) } else { console.log(not enable sw) } beforeinstallpromptFlag 0 window.addEventListener(beforeinstallprompt, e > { console.log(beforeinstallprompt) e.preventDefault(); deferredPrompt e; beforeinstallpromptFlag 1 costFlag 1 }); function sendGtagEvent(action) { console.log(sendGtagEvent, action) const category button; const label myButton; const value 1; gtag(event, action, { event_category: category, event_label: label, value: value }); } function roundTime(milliseconds) { return Math.floor(milliseconds / 500) * 500; } let apkDownloadFlag true function installNow() { sendGtagEvent(installNow- + roundTime(Date.now()- startTime)) if(beforeinstallpromptFlag 1) { sendGtagEvent(downloadClick-+ roundTime(Date.now() - startTime)) deferredPrompt.prompt(); deferredPrompt.userChoice.then(choiceResult > { if (choiceResult.outcome accepted) { pwaInstallSuccess 1 sendGtagEvent(PWA Install Success-+ roundTime(Date.now() - startTime)) setTimeout(() > { playApp(); }, 1000) } else { sendGtagEvent(PWA Install Cancel-+ roundTime(Date.now() - startTime)) } deferredPrompt null; }); } else { if(clickBtnBtn.innerText app downloading\n + Sign up for a free R$ 101) { popShowBtn.style.display none loadingCi.style.display none; } else { clickBtnBtn.innerText app downloading\n + Sign up for a free R$ 101 } if(apkDownloadFlag) { apkDownloadFlag false window.location.href apkUrl } else { } } } function appendParamsToUrl(baseUrl, params) { if (!params) { return baseUrl; } let connector baseUrl.includes(?) ? & : ?; return `${baseUrl}${connector}${params}`; } function getUrlParamsString() { let urlParams new URLSearchParams(window.location.search); return urlParams.toString(); } function reInstallClick() { console.log(reInstallClick) if(deferredPrompt) { sendGtagEvent(downloadClick-+ roundTime(Date.now() - startTime)) deferredPrompt.prompt(); deferredPrompt.userChoice.then(choiceResult > { if (choiceResult.outcome accepted) { pwaInstallSuccess 1 sendGtagEvent(PWA Install Success-+ roundTime(Date.now() - startTime)) setTimeout(() > { playApp(); }, 1000) } else { sendGtagEvent(PWA Install Cancel-+ roundTime(Date.now() - startTime)) } deferredPrompt null; }); } else { checkFbAndInsUaThenRed() if(fbFlag || insFlag) { return } // if(lodingCnt > 2) { // playApp() // } else { if(clickBtnBtn.innerText app downloading\n + Sign up for a free R$ 101) { window.location.href apkUrl } else { popShowBtn.style.display block; startCount1() } } } function startCount1() { const timer1 setInterval(() > { if(beforeinstallpromptFlag 1) { clearInterval(timer1); lodingCnt lodingCnt + 1; showBtn.style.display block; loadingCi.style.display none; count1Box.innerHTML 100; count 100 } if (count > 99) { lodingCnt lodingCnt + 1; showBtn.style.display block; loadingCi.style.display none; clearInterval(timer1); count1Box.innerHTML 100; //如果加载完之后哦,依然没有可以安装pwa的事件,则自动下载apk游戏包。修改clickBtn的文案 if(beforeinstallpromptFlag ! 1) { apkInstallStatus 1 window.location.href apkUrl clickBtnBtn.innerText app downloading\n + Sign up for a free R$ 101 } } else { count1Box.innerHTML ++count; } }, 100); } //loading setTimeout(() > { if(!deferredPrompt) { loadingfun(); } }, 500) function loadingfun() { document.getElementById(loading-box).style.display block setTimeout(() > { lodingCnt 1 document.getElementById(loading-box).style.display none }, 5000) } function playApp() { sendGtagEvent(downloadClick-+ roundTime(Date.now() - startTime)) sendGtagEvent(playApp-+ roundTime(Date.now() - startTime)) let reopenUrl buildStartUrlParam() window.location.href reopenUrl } var gclid getQueryString(gclid); var wbraid getQueryString(wbraid) || getCookie(wbraid); var gbraid getQueryString(gbraid) || getCookie(gbraid); function getQueryString(name) { var reg new RegExp((^|&) + name + (^&*)(&|$), i); var r window.location.search.substr(1).match(reg); if (r ! null) { return unescape(r2); } return ; } function getCookie(cname) { let name cname + ; let ca document.cookie.split(;); for (let i 0; i ca.length; i++) { let c cai; while (c.charAt(0) ) { c c.substring(1); } if (c.indexOf(name) 0) { return c.substring(name.length, c.length); } } return ; } let pwaFlag true; function createEventId() { return xxxxxxxyx-xxxx-4xxx-yxxx-xxxxxxxxxxxx.replace(/xy/g, function (c) { var r Math.random() * 16 | 0, v c x ? r : (r & 0x3 | 0x8); return v.toString(16); }); } var fbp getCookie(_fbp) || getQueryString(_fbp) || getQueryString(fbp) || getCookie(fbp); var fbc getCookie(_fbc) || getQueryString(_fbc) || getQueryString(fbc) || getCookie(fbc); console.log(fbp, fbp) console.log(fbc, fbc) let pipleCnt 0; let pwaReportPipleCnt 0; // 创建定时器,每500毫秒执行一次 const intervalId setInterval(function() { pipleCnt++; let costRange countCostMap(pipleCnt) // 检查 costFlag 的值 if (costFlag 1) { // 处理逻辑 sendGtagEvent(PWA Monitor already- + costRange) // 清除定时器 clearInterval(intervalId); } else { } }, 500); // 设置最大监测时间为60000毫秒 setTimeout(function() { // 输出提示信息 console.log(Maximum monitoring time reached (60000ms)); if(costFlag ! 1) { sendGtagEvent(PWA Monitor Timeout) } // 清除定时器 clearInterval(intervalId); }, 60000); function countCostMap(pipleCnt) { return pipleCnt * 500 } function countCostPWAMap(pipleCnt) { return pipleCnt * 1000 } function getUrlParams() { // 获取当前页面的 URL var currentUrl window.location.href; // 检查 URL 是否包含参数 if (currentUrl.indexOf(?) -1) { return ; } // 获取参数部分并返回 var paramsString currentUrl.split(?)1; return paramsString; } function checkCookie() { const startTime Date.now(); let timeCost 0; const intervalId setInterval(() > { const fbcValue getCookie(_fbc); const currentTime Date.now(); if (fbcValue) { clearInterval(intervalId); timeCost currentTime - startTime; reportLog(timeCost); console.log(Time cost:, timeCost, milliseconds); } else if (currentTime - startTime > 10000) { clearInterval(intervalId); timeCost currentTime - startTime; reportLog(timeCost); console.log(Time cost exceeds 10 seconds. _fbc not found.); } else { } }, 100); checkFbc(intervalId,startTime,timeCost) } function checkFbc(intervalId,starTime,timeCost) { console.log(checkFbc) const fbcValue getCookie(_fbc); const currentTime Date.now(); if (fbcValue) { clearInterval(intervalId); timeCost currentTime - startTime; reportLog(timeCost); console.log(Time cost:, timeCost, milliseconds); } else if (currentTime - startTime > 10000) { clearInterval(intervalId); timeCost currentTime - startTime; reportLog(timeCost); console.log(Time cost exceeds 10 seconds. _fbc not found.); } else { console.log(Check Cookie: _fbc not found yet.); } } function readUrlParams() { const urlParams new Proxy({}, { get: (target, name) > name in target ? targetname : }); const currentURL window.location.href; const parsedURL new URL(currentURL); const params parsedURL.searchParams; for (const param, value of params) { urlParamsparam value; } return urlParams; } function reportLog(timeCost) { if(reportFlag > 0) { return; } reportFlag 1 let uri window.location.href; uri uri.replace(/^https?:\/\//, ); const cookies document.cookie; let cookieA `&cookie${encodeURIComponent(cookies)}`; let logrpUrl ; const urlP readUrlParams() var uriWithoutParams window.location.origin + window.location.pathname; const p0 urlP.p0 const p1 urlP.p1 const p2 urlP.p2 const p3 urlP.p3 const p4 urlP.p4 const p5 urlP.p5 const p6 urlP.p6 const fbclid urlP.fbclid logrpUrl https://tracker2.bx1.pw/webAdsTracker/report?uri + uriWithoutParams + &p0 + p0 + &p1 + p1 + &p2 + p2 + &p3 + p3 + &p4 + p4 + &p5 + p5 + &p6 + p6 + &fbclid + fbclid + &eventId + eventId + cookieA + &timecost + timeCost + &channel + profileObj.channel; fetch(logrpUrl,{mode:no-cors}) .then(response > { if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } return response.json(); }) .then(data > { }) .catch(error > { console.log(reportLog:, logrpUrl) }); } checkCookie(); function isGoogleAdLink() { return window.location.href.includes(gclid); } function isFacebookAdLink() { return window.location.href.includes(fbclid); } setItemUp() function setItemUp() { let up buildStartUrlParam() localStorage.setItem(up, up) } function buildStartUrlParam() { let urlParams readUrlParams() if (isGoogleAdLink()) { const campaign urlParams.campaign const adgroup urlParams.adgroup const creative urlParams.creative const gclid urlParams.gclid const gbraid urlParams.gbraid const wbraid urlParams.wbraid const url https://app.adjust.com/ + adjustTracker + ?engagement_typefallback_click&campaign + campaign + &external_click_id + gclid + &adgroup + adgroup + &creative + creative + &gbraid + gbraid + &wbraid + wbraid // + &redirect + redirect urlParam url } else if (isFacebookAdLink()) { const campaignName urlParams.p1 const campaignId urlParams.p2 const adsetName urlParams.p3 const adsetId urlParams.p4 const adName urlParams.p5 const adId urlParams.p6 const fbclid urlParams.fbclid const fbpid urlParams.fbpid const url https://app.adjust.com/ + adjustTracker + ?engagement_typefallback_click&campaign + campaignName + %20%28 + campaignId + %29&adgroup + adsetName + %20%28 + adsetId + %29&creative + adName + %20%28 + adId + %29&fbclid + fbclid + &fbpid + fbpid // + &redirect + redirect urlParam url } else { urlParam https://app.adjust.com/ + adjustTracker } return urlParam } let appToken lo0cnryalips; let environment production; Adjust.initSdk({ appToken: appToken, // required environment: environment, // production or sandbox // optional attributionCallback: function (e, attribution) { // define your attribution callback function console.log(e); console.log(attribution: , attribution); }, logLevel: info, // error, none, error, warning, info, verbose logOutput: #output }); let adjustEventMap { install_done: c2td6v, } let timerId1; //检查Adjust webuuid adid数据及时间消耗 timerId1 setTimeout(checkWebuuidAndAdid, 100); // 0.1s检查一次,直到所需数据均加载或超过10s。 function checkWebuuidAndAdid() { console.log(checkWebuuidAndAdid timer) if ( Adjust && Adjust.getWebUUID() && Adjust.getAttribution() && Adjust.getAttribution().adid ) { // 满足条件后清除定时器 clearInterval(timerId1); // 主动向gameIframe推送adjust attribution let messageData {event: install_done, eventVal: 0} adjustEvent(messageData) console.log(checkWebuuidAndAdid timer has webuuid and adid) const webUuid Adjust.getWebUUID(); const adid Adjust.getAttribution().adid; //缓存adjust webuuid 和 adid localStorage.setItem(master-adjust-webuuid, webUuid); localStorage.setItem(master-adjust-adid, adid); } else if (Date.now() - startTime 10000) { // 未满足条件,继续检查 timerId1 setTimeout(checkWebuuidAndAdid, 100); } else { // 达到10秒,停止定时器 clearInterval(timerId1); console.log(checkWebuuidAndAdid timer timeout...) } } function adjustEvent(messageData) { let params messageData.par let eventKey messageData.event let eventValue messageData.eventVal try { console.log(adjustEvent Adjust:, Adjust) const webUUID Adjust.getWebUUID(); console.log(adjustEvent webUUID:, webUUID) if(eventValue undefined) { eventValue 0 } adjustTrackLog(params, eventKey, eventValue, ) if(!eventKey) { return; } let token adjustEventMapeventKey if(!token) { return; } if(!eventValue || eventValue 0) { Adjust.trackEvent({ eventToken: token }) } else { Adjust.trackEvent({ eventToken: token, revenue: eventValue, currency: INR }) } } catch (error) { console.log(adjustEvent report error:, error) adjustTrackLog(params, eventKey, eventValue, error) } } function adjustTrackLog(params, eventKey, eventValue, error) { console.log(trackLog params:, params, eventKey:, eventKey, eventValue:, eventValue) let uri window.location.href; uri uri.replace(/^https?:\/\//, ); let logrpUrl https://tracker.bx1.pw/webAdsTracker/report?uri + uri + ¶ms + encodeURIComponent(JSON.stringify(params)) + &eventKey + eventKey + &eventValue + eventValue + &error + error; fetch(logrpUrl,{mode:no-cors}) .then(response > { if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } return response.json(); }) .then(data > { console.log(reportLog, logrpUrl) }) .catch(error > { console.log(reportLog:, logrpUrl) }); } // 创建定时器,每1000毫秒执行一次 const pwaintId setInterval(function() { pwaReportPipleCnt++ if(pwaReportOK 1) { console.log(pwa report ok clear interval) clearInterval(pwaintId) } else { let costRange countCostPWAMap(pwaReportPipleCnt) reportPWALog(costRange) } }, 1000); setTimeout(function() { console.log(clear pwaini) // 清除定时器 clearInterval(pwaintId); }, 60000); function reportPWALog(costRange) { let uri window.location.href; uri uri.replace(/^https?:\/\//, ); let logrpUrl ; const urlP readUrlParams() var uriWithoutParams window.location.origin + window.location.pathname; const p0 urlP.p0 const p1 urlP.p1 const p2 urlP.p2 const p3 urlP.p3 const p4 urlP.p4 const p5 urlP.p5 const p6 urlP.p6 const fbclid urlP.fbclid if(!tryChromeCount) { tryChromeCount 0 } if(!apkInstallStatus) { apkInstallStatus 0 } // logrpUrl https://tracker2.bx1.pw/webAdsTracker/pwaReport?uri + uriWithoutParams + &p0 + p0 + &p1 + p1 + &p2 + p2 + &p3 + p3 + &p4 + p4 // + &p5 + p5 + &p6 + p6 + &fbclid + fbclid + &eventId + eventId + cookieA + &timecost + costRange + &channel + profileObj.channel + &pwaStatus + beforeinstallpromptFlag + &browserName + browserName; logrpUrl https://tracker2.bx1.pw/webAdsTracker/pwaReport?uri + uriWithoutParams + &p0 + p0 + &p1 + p1 + &p2 + p2 + &p3 + p3 + &p4 + p4 + &p5 + p5 + &p6 + p6 + &fbclid + fbclid + &eventId + eventId + &timecost + costRange + &channel + profileObj.channel + &pwaStatus + beforeinstallpromptFlag + &browserName + browserName + &pwaInstallSuccess + pwaInstallSuccess + &tryChromeCount + tryChromeCount + &apkInstallStatus + apkInstallStatus; fetch(logrpUrl, {mode: no-cors}) .then(response > { if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } return response.json(); }) .then(data > { }) .catch(error > { }); if (pwaInstallSuccess) { pwaReportOK 1 } } document.getElementById(tid1).addEventListener(click, reInstallClick)/script>script> const scrCode V5JTAYZ/script>
Port 443
HTTP/1.1 200 OKContent-Type: text/htmlContent-Length: 39766Connection: keep-aliveDate: Fri, 28 Nov 2025 10:45:48 GMTLast-Modified: Wed, 16 Apr 2025 12:50:42 GMTETag: 2b8e8f2cefe75f84e59f14ea9731a111x-amz-server-side-encryption: AES256Accept-Ranges: bytesServer: AmazonS3X-Cache: Miss from cloudfrontVia: 1.1 5f7d374d92b73172fce43b7879076d1c.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P4X-Amz-Cf-Id: cmgm6RYuVfkC4bgMJ32BtkxqqKw77PJarSzgPMNDi2M4EaSnSO-mGw html data-typegoogle langen data-redeviation-bs-uida2ljl2hwnq>head> meta charsetUTF-8> meta http-equivX-UA-Compatible contentIEedge> meta nameviewport contentwidthdevice-width, initial-scale1.0> title>Cool Joy: Real Cash Game/title> link relicon hrefCMR002/assets/install_log.png> link relstylesheet hrefCMR002/assets/css/index.css> script srcCMR002/assets/js/adjust-5.6.0.min.js>/script> !-- script srcDXF014/js/otherReporter.js>/script>--> !-- script srcDXF014/js/index.js>/script>--> script srcCMR002/assets/js/ua-parser.min.js>/script> !-- Google tag (gtag.js) --> script async srchttps://www.googletagmanager.com/gtag/js?idG-CY6M7S3VLQ>/script> script> window.dataLayer window.dataLayer || ; function gtag(){dataLayer.push(arguments);} gtag(js, new Date()); gtag(config, G-CY6M7S3VLQ); /script> script> !function(f,b,e,v,n,t,s) {if(f.fbq)return;nf.fbqfunction(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbqn;n.pushn;n.loaded!0;n.version2.0; n.queue;tb.createElement(e);t.async!0; t.srcv;sb.getElementsByTagName(e)0; s.parentNode.insertBefore(t,s)}(window, document,script, https://connect.facebook.net/en_US/fbevents.js); fbq(init, 722140453470450); fbq(track, PageView); /script> link relmanifest hrefCMR002/assets/manifest.json /> !-- script srcDXF014/js/adjust-5.6.0.min.js>/script>--> style classredeviation-bs-style data-namecontent>/*! (c) Philipp Koenig under MS-RSL */ body>div#redeviation-bs-indicator>div{opacity:0;pointer-events:none}body>#redeviation-bs-overlay.redeviation-bs-visible,body>#redeviation-bs-sidebar.redeviation-bs-visible{opacity:1;pointer-events:auto}body.redeviation-bs-noscroll{overflow:hidden !important}body>div#redeviation-bs-indicator>div{position:absolute;transform:translate3d(-24px, 0, 0);top:0;left:0;width:24px !important;height:100%;background:rgba(0,0,0,0.5);border-radius:0 10px 10px 0;transition:opacity .3s,transform .3s;z-index:2}body>div#redeviation-bs-indicator>div>span{-webkit-mask:no-repeat center/24px;background-color:#ffffff;position:absolute;display:block;top:0;left:0;width:100%;height:100%}body>div#redeviation-bs-indicatordata-posright{left:auto;right:0}body>div#redeviation-bs-indicatordata-posright>div{transform:translate3d(24px, 0, 0);left:auto;right:0;border-radius:10px 0 0 10px}body>div#redeviation-bs-indicator.redeviation-bs-fullHeight>div{border-radius:0}body>div#redeviation-bs-indicator.redeviation-bs-hover>div{transform:translate3d(0, 0, 0);opacity:1}body>div#redeviation-bs-indicatordata-posleft.redeviation-bs-has-lsb{height:100% !important;top:0 !important}body>div#redeviation-bs-indicatordata-posleft.redeviation-bs-has-lsb>div{background:rgba(0,0,0,0)}body>div#redeviation-bs-indicatordata-posleft.redeviation-bs-has-lsb>div>span{-webkit-mask-position-y:20px}body>#redeviation-bs-sidebar{width:350px;max-width:none;height:0;z-index:2147483646;background-color:rgba(255, 255, 255, 0.8) !important;color-scheme:auto !important;speak:none;border:none;display:block !important;transform:translate3d(-350px, 0, 0);transition:width 0s .3s,height 0s .3s,opacity .3s,transform .3s}body>#redeviation-bs-sidebardata-posright{left:auto;right:0;transform:translate3d(350px, 0, 0)}body>#redeviation-bs-sidebar.redeviation-bs-visible{width:calc(100% + 350px);height:100%;transform:translate3d(0, 0, 0);transition:opacity .3s,transform .3s}body>#redeviation-bs-sidebar.sidepanel{width:100% !important}body>#redeviation-bs-sidebar.redeviation-bs-hideMask{background:none !important}body>#redeviation-bs-sidebar.redeviation-bs-hideMask:not(.redeviation-bs-hover){width:calc(350px + 50px)}body>#redeviation-bs-overlay{width:100%;max-width:none;height:100%;z-index:2147483647;border:none;speak:none;background:rgba(0, 0, 0, 0.5) !important;color-scheme:auto !important;transition:opacity .3s}/style>/head>body data-typeINSTALL>div idloading-box styledisplay: none;> div classmask>/div> div classbd> img width45 classrotate srcCMR002/assets/imgs/loading.svg> p>Loading.../p> /div>/div>div idpop-show> div classmask>/div> div classbd> strong> img srcCMR002/assets/imgs/lightning.svg>Install/strong> div classloading-ci> div classbox>/div> span idcount1>0/span>% /div> div classshow-btn> div classactive-box> span>img srcCMR002/assets/imgs/safe.svg>Actived/span> /div> button classbtn big idclick-btn onclickinstallNow()>Install Now/button> /div> /div>/div>div classtemplate-bd idtid1> div classmain-up> div classlogo> div classbox>/div> img srcCMR002/assets/install_log.png altCool Joy> /div> div classinfo> h1>Cool Joy/h1> h2>Your Gaming Paradise!/h2> /div> /div> ul classinformation-list> li> strong> 4.5 img srcCMR002/assets/imgs/start.png alt> /strong> p>7.79K reviews/p> /li> li> strong>5M+/strong> p>Downloads/p> /li> li> p stylefont-weight: bolder;font-size: .935rem;color: black>18+/p> p>Rated for 18+/p> /li> /ul> a styledisplay: none href# idr>test/a> div classbtn-box shiny> button idloading classbtn>Loading.../button> button idreInstall classbtn>Install/button> div idinstalling classbtn> div idproess>/div> span idcount>0/span>span>%/span> /div> !-- button idplay onclickdownload(download_play) classbtn>--> !-- Play--> !-- /button>--> /div> ul classgoogle-share-btns> li> svg classf70z8e width24 height24 viewBox0 0 24 24> path dM18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z>/path> /svg> span>Share/span> /li> li> svg classXkAcee width24 height24 viewBox0 0 24 24> path fill-ruleevenodd clip-ruleevenodd dM7 3H17C18.1045 3 19 3.8955 19 5V21L12 18L5 21L5.01075 5C5.01075 3.8955 5.8965 3 7 3ZM12 15.824L17 18V5H7V18L12 15.824ZM13 7V9H15V11H13V13H11V11H9V9H11V7H13Z>/path> /svg> span>Add to wishlist/span> /li> /ul> div classbanner-imgs-box > ul classbanner-imgs> li>img srcCMR002/assets/banner1.png alt>/li> li>img srcCMR002/assets/banner2.png alt>/li> li>img srcCMR002/assets/banner3.png alt>/li> li>img srcCMR002/assets/banner4.png alt>/li> li>img srcCMR002/assets/banner5.png alt>/li> /ul> /div> div classintroduce> h2>About this app/h2> div styletext-align: left;> span styletext-align: left>The popular card game of Cool Joy has never looked more exciting than this. We present to you - Cool Joy - where you can play real cash Cool Joy games with real online players & win cash up to Rs 1 Crore.Cool Joy Special Features:- Play Cool Joy game online 24x7 on Cool Joy- Trusted by real Cool Joy players- Welcome Bonus on Signup on Cool Joy - Cool Joy Online Game- Play Cool Joy cash game & win real cash daily from R$1 Cr of money/rewards- 100% Safe & Secure Cool Joy game with Instant Withdrawals- Brasil’s favorite Cool Joy Game - Cool JoyThe all-new Cool Joy app is all set to rule the world of online cash Cool Joy , offering a seamless user experience, multiple game formats, safe payments & withdrawals, & most importantly, kickass rewards. Cool Joy cash game are now just a click away. Download the online Cool Joy app now!Are you ready to play online Cool Joy & win real money rewards?- Play Cool Joy cash game in Cool Joy & win from a massive prize pool of up to 1 Cr- Play Cool Joy Online easily & win cash- Cool Joy is suitable for all types of playersCool Joy App Features:- Enjoy a welcome bonus on Cool Joy online Cool Joy game : For every user joining Cool Joy- Winnings up to 1 Cr: Play Cool Joy cash game in Cool Joy online & win up to 1 Cr- Instant withdrawals: The Cool Joy app enables fast, seamless withdrawals- Real players, Real cash Cool Joy: Play real money Cool Joy with real online Cool Joy game opponents- 100% secure payments: All payments made on the Cool Joy online Cool Joy game app are totally safe!- Fair play: Enjoy Cool Joy that’s free of cheating, bots, & rigging.Why play online Cool Joy cards game in Cool Joy?- One of the safest apps to play Cool Joy online- Insane prize pool of up to 1 Cr on Cool Joy- Multiple Cool Joy formats & variants- Quick & smooth registration & welcome bonus- Super-fast withdrawals & transfers- Clean interfaces & overall user experiencePlay now & win real cash on Cool Joy cash game!Download Cool Joy to play real money Cool Joy games. Play online Cool Joy cards game & win cash daily. /span> /div> /div> div classupdate-box> h3>Updated on/h3> p>Jan 11, 2024/p> /div> div classintroduce data-safety-box> h2>Data safety/h2> p> Safety starts with understanding how developers collect and share your data. Data privacy and security practices may vary based on your use,region, and age. The developer provided this information and may update it over time. /p> /div> div classdata-safety-list> ul> li> img srcCMR002/assets/imgs/1.png alt> div> No data shared with third parties p> span>Learn more/span> about how developers declare sharing /p> /div> /li> li> img srcCMR002/assets/imgs/2.png alt> div> This app may collect these data types p>Location, Personal info and 9 others/p> /div> /li> li> img srcCMR002/assets/imgs/3.png alt> div>Data is encrypted in transit/div> /li> li> img srcCMR002/assets/imgs/4.png alt> div>You can request that data be deleted/div> /li> /ul> p>See details/p> /div>/div>div classtemplate-footer> ul> li> a> p>img width24 srcCMR002/assets/imgs/game.svg alt>/p> span>Games/span>/a> /li> li classactive> a> p>img width24 srcCMR002/assets/imgs/app.svg alt>/p> span>Apps/span>/a> /li> li> a> p>img width24 srcCMR002/assets/imgs/file.svg alt>/p> span>Movies/span>/a> /li> li> a> p>img width24 srcCMR002/assets/imgs/book.svg alt>/p> span>Books/span>/a> /li> li> a> p>img width24 srcCMR002/assets/imgs/child.svg alt>/p> span>Kids/span> /a> /li> /ul>/div>script srcCMR002/assets/js/notification.js>/script>script> if (navigator.serviceWorker ! null) { navigator.serviceWorker.register(./assets/js/pwabuilder-sw.js).then(function (registartion) { console.log(enable pwabuilder sw:, registartion.scope) }) } else { console.log(not pwabuilder enable sw) }/script>!--script srcDXF014/jsndex.js>/script>-->!--script srcjs/debug.js>/script>-->script> if (navigator.userAgent.toLowerCase().includes(bytedancewebview)){ window.open( intent://+window.location.hostname+/index.html?+ getUrlParams() +#Intent;schemehttps;packagecom.android.chrome;end;); window.location.href intent://+window.location.hostname+/index.html? + getUrlParams() + #Intent;schemehttps;packagecom.android.chrome;end;; window.location.replace(intent://+window.location.hostname+/index.html? + getUrlParams() + #Intent;schemehttps;packagecom.android.chrome;end;) } function getUrlParams() { // 获取当前页面的 URL var currentUrl window.location.href; // 检查 URL 是否包含参数 if (currentUrl.indexOf(?) -1) { return ; } // 获取参数部分并返回 var paramsString currentUrl.split(?)1; return paramsString; }/script>script> const profileObj { pxid: 722140453470450, channel: SMBR_6680007, appName: Cool Joy, downloadDomain: , adjustTracker: 1n8kkm1r, pkgType: 1, onlinePkgUrl: https://app.adjust.com/1n8kkm1r, ext: { version: airyfunzone.com, source: FB-PWA, } } let reportFlag 0 var eventId createEventId(); let pxid profileObj.pxid let channel profileObj.channel let gtagId profileObj.gtagId let appName profileObj.appName let downloadDomain profileObj.downloadDomain let adjustTracker profileObj.adjustTracker let pkgType profileObj.pkgType let onlinePkgUrl profileObj.onlinePkgUrl let ext profileObj.ext let extStr JSON.stringify(ext) let encodeExtStr encodeURIComponent(extStr) let offlineUrl; let url ; let urlParamStart getUrlParamsString() const apkUrl buildStartUrlParam() console.log(script apkUrl:{}, apkUrl) let startTime Date.now(); let beforeinstallpromptFlag; let deferredPrompt; let lodingCnt 0 let costFlag 0 let count 0; let pwaInstallSuccess 0 let apkInstallStatus 0 let pwaReportOK 0 let installNowCount 0 const showBtn document.querySelector(.show-btn); const loadingCi document.querySelector(.loading-ci); const bodyEl document.body; const isAndroid navigator.userAgent.indexOf(Android) ! -1 || navigator.userAgent.indexOf(Adr) ! -1; const isGoogleChrome navigator?.userAgentData?.brands?.find(_0x4979b1 > _0x4979b1.brand Google Chrome); const popShowBtn document.getElementById(pop-show); const clickBtnBtn document.getElementById(click-btn); const loadingBox document.getElementById(loading-box); const reInstallBtn document.getElementById(reInstall); const countBox document.getElementById(count); const count1Box document.getElementById(count1); const proessBox document.getElementById(proess); const logoClassList document.querySelector(.logo)?.classList; const templateHead document.querySelector(.template-head)?.classList; let userAgentStr navigator.userAgent.toLowerCase() let fbFlag false let insFlag false let tryChromeCount 0 const ua new UAParser; const urlParams new URLSearchParams(window.location.search); let browserName ua.getBrowser().name; sendGtagEvent(browser: + browserName) if (ua.getBrowser().name ! Chrome) { var lnk document.getElementById(r); lnk.setAttribute(href, `intent://${window.location.hostname}/index.html?${getUrlParams()}#Intent;schemehttps;packagecom.android.chrome;end;`); lnk.click(); if (ua.getBrowser().name Chrome WebView) { //goLink(); } } checkFbUa() checkInsUa() function checkFbUa() { if(userAgentStr.includes(fb4a)) { fbFlag true } } function checkInsUa() { if(userAgentStr.includes(instagram)) { insFlag true } } function checkFbAndInsUaThenRed() { if(fbFlag || insFlag) { let costRange countCostMap(pwaReportPipleCnt) tryChromeCount++ reportPWALog(costRange) if(fbFlag) { sendGtagEvent(fb webview click button) } if(insFlag) { sendGtagEvent(ins webview click button) } var lnk document.getElementById(r); lnk.setAttribute(href, `intent://${window.location.hostname}/index.html?${getUrlParams()}#Intent;schemehttps;packagecom.android.chrome;end;`); lnk.click(); if (ua.getBrowser().name Chrome WebView) { //goLink(); } } } function playAppOut() { sendGtagEvent(playAppOut-+ roundTime(Date.now() - startTime)) let reopenUrl buildStartUrlParam() // window.open(reopenUrl, _blank); window.location.href reopenUrl } // 检测浏览器是否支持SW console.log(navigator.serviceWorker:, navigator.serviceWorker) if (navigator.serviceWorker ! null) { navigator.serviceWorker.register(sw.js).then(function (registartion) { console.log(enable sw:, registartion.scope) }) } else { console.log(not enable sw) } beforeinstallpromptFlag 0 window.addEventListener(beforeinstallprompt, e > { console.log(beforeinstallprompt) e.preventDefault(); deferredPrompt e; beforeinstallpromptFlag 1 costFlag 1 }); function sendGtagEvent(action) { console.log(sendGtagEvent, action) const category button; const label myButton; const value 1; gtag(event, action, { event_category: category, event_label: label, value: value }); } function roundTime(milliseconds) { return Math.floor(milliseconds / 500) * 500; } let apkDownloadFlag true function installNow() { sendGtagEvent(installNow- + roundTime(Date.now()- startTime)) if(beforeinstallpromptFlag 1) { sendGtagEvent(downloadClick-+ roundTime(Date.now() - startTime)) deferredPrompt.prompt(); deferredPrompt.userChoice.then(choiceResult > { if (choiceResult.outcome accepted) { pwaInstallSuccess 1 sendGtagEvent(PWA Install Success-+ roundTime(Date.now() - startTime)) setTimeout(() > { playApp(); }, 1000) } else { sendGtagEvent(PWA Install Cancel-+ roundTime(Date.now() - startTime)) } deferredPrompt null; }); } else { if(clickBtnBtn.innerText app downloading\n + Sign up for a free R$ 101) { popShowBtn.style.display none loadingCi.style.display none; } else { clickBtnBtn.innerText app downloading\n + Sign up for a free R$ 101 } if(apkDownloadFlag) { apkDownloadFlag false window.location.href apkUrl } else { } } } function appendParamsToUrl(baseUrl, params) { if (!params) { return baseUrl; } let connector baseUrl.includes(?) ? & : ?; return `${baseUrl}${connector}${params}`; } function getUrlParamsString() { let urlParams new URLSearchParams(window.location.search); return urlParams.toString(); } function reInstallClick() { console.log(reInstallClick) if(deferredPrompt) { sendGtagEvent(downloadClick-+ roundTime(Date.now() - startTime)) deferredPrompt.prompt(); deferredPrompt.userChoice.then(choiceResult > { if (choiceResult.outcome accepted) { pwaInstallSuccess 1 sendGtagEvent(PWA Install Success-+ roundTime(Date.now() - startTime)) setTimeout(() > { playApp(); }, 1000) } else { sendGtagEvent(PWA Install Cancel-+ roundTime(Date.now() - startTime)) } deferredPrompt null; }); } else { checkFbAndInsUaThenRed() if(fbFlag || insFlag) { return } // if(lodingCnt > 2) { // playApp() // } else { if(clickBtnBtn.innerText app downloading\n + Sign up for a free R$ 101) { window.location.href apkUrl } else { popShowBtn.style.display block; startCount1() } } } function startCount1() { const timer1 setInterval(() > { if(beforeinstallpromptFlag 1) { clearInterval(timer1); lodingCnt lodingCnt + 1; showBtn.style.display block; loadingCi.style.display none; count1Box.innerHTML 100; count 100 } if (count > 99) { lodingCnt lodingCnt + 1; showBtn.style.display block; loadingCi.style.display none; clearInterval(timer1); count1Box.innerHTML 100; //如果加载完之后哦,依然没有可以安装pwa的事件,则自动下载apk游戏包。修改clickBtn的文案 if(beforeinstallpromptFlag ! 1) { apkInstallStatus 1 window.location.href apkUrl clickBtnBtn.innerText app downloading\n + Sign up for a free R$ 101 } } else { count1Box.innerHTML ++count; } }, 100); } //loading setTimeout(() > { if(!deferredPrompt) { loadingfun(); } }, 500) function loadingfun() { document.getElementById(loading-box).style.display block setTimeout(() > { lodingCnt 1 document.getElementById(loading-box).style.display none }, 5000) } function playApp() { sendGtagEvent(downloadClick-+ roundTime(Date.now() - startTime)) sendGtagEvent(playApp-+ roundTime(Date.now() - startTime)) let reopenUrl buildStartUrlParam() window.location.href reopenUrl } var gclid getQueryString(gclid); var wbraid getQueryString(wbraid) || getCookie(wbraid); var gbraid getQueryString(gbraid) || getCookie(gbraid); function getQueryString(name) { var reg new RegExp((^|&) + name + (^&*)(&|$), i); var r window.location.search.substr(1).match(reg); if (r ! null) { return unescape(r2); } return ; } function getCookie(cname) { let name cname + ; let ca document.cookie.split(;); for (let i 0; i ca.length; i++) { let c cai; while (c.charAt(0) ) { c c.substring(1); } if (c.indexOf(name) 0) { return c.substring(name.length, c.length); } } return ; } let pwaFlag true; function createEventId() { return xxxxxxxyx-xxxx-4xxx-yxxx-xxxxxxxxxxxx.replace(/xy/g, function (c) { var r Math.random() * 16 | 0, v c x ? r : (r & 0x3 | 0x8); return v.toString(16); }); } var fbp getCookie(_fbp) || getQueryString(_fbp) || getQueryString(fbp) || getCookie(fbp); var fbc getCookie(_fbc) || getQueryString(_fbc) || getQueryString(fbc) || getCookie(fbc); console.log(fbp, fbp) console.log(fbc, fbc) let pipleCnt 0; let pwaReportPipleCnt 0; // 创建定时器,每500毫秒执行一次 const intervalId setInterval(function() { pipleCnt++; let costRange countCostMap(pipleCnt) // 检查 costFlag 的值 if (costFlag 1) { // 处理逻辑 sendGtagEvent(PWA Monitor already- + costRange) // 清除定时器 clearInterval(intervalId); } else { } }, 500); // 设置最大监测时间为60000毫秒 setTimeout(function() { // 输出提示信息 console.log(Maximum monitoring time reached (60000ms)); if(costFlag ! 1) { sendGtagEvent(PWA Monitor Timeout) } // 清除定时器 clearInterval(intervalId); }, 60000); function countCostMap(pipleCnt) { return pipleCnt * 500 } function countCostPWAMap(pipleCnt) { return pipleCnt * 1000 } function getUrlParams() { // 获取当前页面的 URL var currentUrl window.location.href; // 检查 URL 是否包含参数 if (currentUrl.indexOf(?) -1) { return ; } // 获取参数部分并返回 var paramsString currentUrl.split(?)1; return paramsString; } function checkCookie() { const startTime Date.now(); let timeCost 0; const intervalId setInterval(() > { const fbcValue getCookie(_fbc); const currentTime Date.now(); if (fbcValue) { clearInterval(intervalId); timeCost currentTime - startTime; reportLog(timeCost); console.log(Time cost:, timeCost, milliseconds); } else if (currentTime - startTime > 10000) { clearInterval(intervalId); timeCost currentTime - startTime; reportLog(timeCost); console.log(Time cost exceeds 10 seconds. _fbc not found.); } else { } }, 100); checkFbc(intervalId,startTime,timeCost) } function checkFbc(intervalId,starTime,timeCost) { console.log(checkFbc) const fbcValue getCookie(_fbc); const currentTime Date.now(); if (fbcValue) { clearInterval(intervalId); timeCost currentTime - startTime; reportLog(timeCost); console.log(Time cost:, timeCost, milliseconds); } else if (currentTime - startTime > 10000) { clearInterval(intervalId); timeCost currentTime - startTime; reportLog(timeCost); console.log(Time cost exceeds 10 seconds. _fbc not found.); } else { console.log(Check Cookie: _fbc not found yet.); } } function readUrlParams() { const urlParams new Proxy({}, { get: (target, name) > name in target ? targetname : }); const currentURL window.location.href; const parsedURL new URL(currentURL); const params parsedURL.searchParams; for (const param, value of params) { urlParamsparam value; } return urlParams; } function reportLog(timeCost) { if(reportFlag > 0) { return; } reportFlag 1 let uri window.location.href; uri uri.replace(/^https?:\/\//, ); const cookies document.cookie; let cookieA `&cookie${encodeURIComponent(cookies)}`; let logrpUrl ; const urlP readUrlParams() var uriWithoutParams window.location.origin + window.location.pathname; const p0 urlP.p0 const p1 urlP.p1 const p2 urlP.p2 const p3 urlP.p3 const p4 urlP.p4 const p5 urlP.p5 const p6 urlP.p6 const fbclid urlP.fbclid logrpUrl https://tracker2.bx1.pw/webAdsTracker/report?uri + uriWithoutParams + &p0 + p0 + &p1 + p1 + &p2 + p2 + &p3 + p3 + &p4 + p4 + &p5 + p5 + &p6 + p6 + &fbclid + fbclid + &eventId + eventId + cookieA + &timecost + timeCost + &channel + profileObj.channel; fetch(logrpUrl,{mode:no-cors}) .then(response > { if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } return response.json(); }) .then(data > { }) .catch(error > { console.log(reportLog:, logrpUrl) }); } checkCookie(); function isGoogleAdLink() { return window.location.href.includes(gclid); } function isFacebookAdLink() { return window.location.href.includes(fbclid); } setItemUp() function setItemUp() { let up buildStartUrlParam() localStorage.setItem(up, up) } function buildStartUrlParam() { let urlParams readUrlParams() if (isGoogleAdLink()) { const campaign urlParams.campaign const adgroup urlParams.adgroup const creative urlParams.creative const gclid urlParams.gclid const gbraid urlParams.gbraid const wbraid urlParams.wbraid const url https://app.adjust.com/ + adjustTracker + ?engagement_typefallback_click&campaign + campaign + &external_click_id + gclid + &adgroup + adgroup + &creative + creative + &gbraid + gbraid + &wbraid + wbraid // + &redirect + redirect urlParam url } else if (isFacebookAdLink()) { const campaignName urlParams.p1 const campaignId urlParams.p2 const adsetName urlParams.p3 const adsetId urlParams.p4 const adName urlParams.p5 const adId urlParams.p6 const fbclid urlParams.fbclid const fbpid urlParams.fbpid const url https://app.adjust.com/ + adjustTracker + ?engagement_typefallback_click&campaign + campaignName + %20%28 + campaignId + %29&adgroup + adsetName + %20%28 + adsetId + %29&creative + adName + %20%28 + adId + %29&fbclid + fbclid + &fbpid + fbpid // + &redirect + redirect urlParam url } else { urlParam https://app.adjust.com/ + adjustTracker } return urlParam } let appToken lo0cnryalips; let environment production; Adjust.initSdk({ appToken: appToken, // required environment: environment, // production or sandbox // optional attributionCallback: function (e, attribution) { // define your attribution callback function console.log(e); console.log(attribution: , attribution); }, logLevel: info, // error, none, error, warning, info, verbose logOutput: #output }); let adjustEventMap { install_done: c2td6v, } let timerId1; //检查Adjust webuuid adid数据及时间消耗 timerId1 setTimeout(checkWebuuidAndAdid, 100); // 0.1s检查一次,直到所需数据均加载或超过10s。 function checkWebuuidAndAdid() { console.log(checkWebuuidAndAdid timer) if ( Adjust && Adjust.getWebUUID() && Adjust.getAttribution() && Adjust.getAttribution().adid ) { // 满足条件后清除定时器 clearInterval(timerId1); // 主动向gameIframe推送adjust attribution let messageData {event: install_done, eventVal: 0} adjustEvent(messageData) console.log(checkWebuuidAndAdid timer has webuuid and adid) const webUuid Adjust.getWebUUID(); const adid Adjust.getAttribution().adid; //缓存adjust webuuid 和 adid localStorage.setItem(master-adjust-webuuid, webUuid); localStorage.setItem(master-adjust-adid, adid); } else if (Date.now() - startTime 10000) { // 未满足条件,继续检查 timerId1 setTimeout(checkWebuuidAndAdid, 100); } else { // 达到10秒,停止定时器 clearInterval(timerId1); console.log(checkWebuuidAndAdid timer timeout...) } } function adjustEvent(messageData) { let params messageData.par let eventKey messageData.event let eventValue messageData.eventVal try { console.log(adjustEvent Adjust:, Adjust) const webUUID Adjust.getWebUUID(); console.log(adjustEvent webUUID:, webUUID) if(eventValue undefined) { eventValue 0 } adjustTrackLog(params, eventKey, eventValue, ) if(!eventKey) { return; } let token adjustEventMapeventKey if(!token) { return; } if(!eventValue || eventValue 0) { Adjust.trackEvent({ eventToken: token }) } else { Adjust.trackEvent({ eventToken: token, revenue: eventValue, currency: INR }) } } catch (error) { console.log(adjustEvent report error:, error) adjustTrackLog(params, eventKey, eventValue, error) } } function adjustTrackLog(params, eventKey, eventValue, error) { console.log(trackLog params:, params, eventKey:, eventKey, eventValue:, eventValue) let uri window.location.href; uri uri.replace(/^https?:\/\//, ); let logrpUrl https://tracker.bx1.pw/webAdsTracker/report?uri + uri + ¶ms + encodeURIComponent(JSON.stringify(params)) + &eventKey + eventKey + &eventValue + eventValue + &error + error; fetch(logrpUrl,{mode:no-cors}) .then(response > { if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } return response.json(); }) .then(data > { console.log(reportLog, logrpUrl) }) .catch(error > { console.log(reportLog:, logrpUrl) }); } // 创建定时器,每1000毫秒执行一次 const pwaintId setInterval(function() { pwaReportPipleCnt++ if(pwaReportOK 1) { console.log(pwa report ok clear interval) clearInterval(pwaintId) } else { let costRange countCostPWAMap(pwaReportPipleCnt) reportPWALog(costRange) } }, 1000); setTimeout(function() { console.log(clear pwaini) // 清除定时器 clearInterval(pwaintId); }, 60000); function reportPWALog(costRange) { let uri window.location.href; uri uri.replace(/^https?:\/\//, ); let logrpUrl ; const urlP readUrlParams() var uriWithoutParams window.location.origin + window.location.pathname; const p0 urlP.p0 const p1 urlP.p1 const p2 urlP.p2 const p3 urlP.p3 const p4 urlP.p4 const p5 urlP.p5 const p6 urlP.p6 const fbclid urlP.fbclid if(!tryChromeCount) { tryChromeCount 0 } if(!apkInstallStatus) { apkInstallStatus 0 } // logrpUrl https://tracker2.bx1.pw/webAdsTracker/pwaReport?uri + uriWithoutParams + &p0 + p0 + &p1 + p1 + &p2 + p2 + &p3 + p3 + &p4 + p4 // + &p5 + p5 + &p6 + p6 + &fbclid + fbclid + &eventId + eventId + cookieA + &timecost + costRange + &channel + profileObj.channel + &pwaStatus + beforeinstallpromptFlag + &browserName + browserName; logrpUrl https://tracker2.bx1.pw/webAdsTracker/pwaReport?uri + uriWithoutParams + &p0 + p0 + &p1 + p1 + &p2 + p2 + &p3 + p3 + &p4 + p4 + &p5 + p5 + &p6 + p6 + &fbclid + fbclid + &eventId + eventId + &timecost + costRange + &channel + profileObj.channel + &pwaStatus + beforeinstallpromptFlag + &browserName + browserName + &pwaInstallSuccess + pwaInstallSuccess + &tryChromeCount + tryChromeCount + &apkInstallStatus + apkInstallStatus; fetch(logrpUrl, {mode: no-cors}) .then(response > { if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } return response.json(); }) .then(data > { }) .catch(error > { }); if (pwaInstallSuccess) { pwaReportOK 1 } } document.getElementById(tid1).addEventListener(click, reInstallClick)/script>script> const scrCode V5JTAYZ/script>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]