1<!DOCTYPE html><!-- This site was created in Webflow. https://webflow.com --><!-- Last Published: Fri Oct 02 2026 20:44:19 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="mistplay-business-8cad2c.webflow.io" data-wf-page="67ae5a0c0c4e8738d0744fab" data-wf-site="67ae5a0c0c4e8738d0744c0d" lang="en" data-wf-collection="67ae5a0c0c4e8738d0744e78" data-wf-item-slug="case-studies"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Mistplay Business</title><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="6MbEn1VeLcjIMNEBw5sjNyOceAqBkUOVENjBV5fw_wc" name="google-site-verification"/><meta content="Webflow" name="generator"/><link href="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/css/mistplay-business-8cad2c.webflow.shared.d4bf99687.css" rel="stylesheet" type="text/css" integrity="sha384-1L+ZaHz9657mPAvnTXd41IA98W6UA+mevVFS2FlTxLqC8Lu5XuGjuZHpMuO91OSB" crossorigin="anonymous"/><link href="https://fonts.googleapis.com" rel="preconnect"/><link href="https://fonts.gstatic.com" rel="preconnect" crossorigin="anonymous"/>
1<script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js" type="text/javascript"></script>
1<script type="text/javascript">WebFont.load({ google: { families: ["Inconsolata:400,700","Hanken Grotesk:300,400,500,600,700","Poppins:300,400,500,600,700"] }});</script>
1<script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script>
1<link href="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/67ae5a0c0c4e8738d07450e5_mistplay-favicon.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/67ae5a0c0c4e8738d07450e7_mistplay-icon-square.jpg" rel="apple-touch-icon"/><link href="https://business.mistplay.com/article-tags/case-studies" rel="canonical"/> 2<!-- OneTrust Cookies Consent Notice start for business.mistplay.com -->
3<script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" data-document-language="true" type="text/javascript" charset="UTF-8" data-domain-script="019edb69-973a-78c8-88b4-96303d4d33e5" ></script>
vendor: 1 bytes, line 3
3
4<script type="text/javascript"> 5function OptanonWrapper() { } 6</script>
6 7<!-- OneTrust Cookies Consent Notice end for business.mistplay.com --> 8 9<!--
9<script> 10 var _hsq = window._hsq = window._hsq || []; 11 _hsq.push(['setCookieDomain', '.business.mistplay.com']); 12</script>
vendor: 1 bytes, line 12
12
13<script> 14(function () { 15 var params = new URLSearchParams(window.location.search); 16 var utmKeys = [ 17 'utm_source', 'utm_medium', 'utm_campaign', 18 'utm_content', 'utm_term', 19 'gclid', 'fbclid' 20 ]; 21 var captured = {}; 22 utmKeys.forEach(function (k) { 23 var v = params.get(k); 24 if (v) captured[k] = v; 25 }); 26 if (Object.keys(captured).length === 0) return; 27 28 // Leading dot on domain makes the cookie visible on every subdomain of 29 // business.mistplay.com â the whole point of this fix. 30 var cookieBase = '; domain=.business.mistplay.com; path=/; SameSite=Lax'; 31 32 // First-touch attribution: only set if not already present. 90-day life. 33 // This preserves the ORIGINAL source across return visits. 34 if (!document.cookie.match(/(?:^|; )mp_utm_first=/)) { 35 document.cookie = 'mp_utm_first=' 36 + encodeURIComponent(JSON.stringify(captured)) 37 + cookieBase 38 + '; max-age=' + (60 * 60 * 24 * 90); 39 } 40 41 // Latest-touch attribution: overwrite on every UTM'd landing. 30-day life. 42 document.cookie = 'mp_utm_latest=' 43 + encodeURIComponent(JSON.stringify(captured)) 44 + cookieBase 45 + '; max-age=' + (60 * 60 * 24 * 30); 46 47 // Also push into HubSpot's own analytics event stream so Original Source 48 // Drill-Down 1/2 fill correctly even if hs-scripts.com misses the URL parse. 49 var _hsq = window._hsq = window._hsq || []; 50 _hsq.push(['setTrackedProperties', captured]); 51})(); 52</script>
52 --> 53 54<!-- __hstc --> 55 56 57<!-- Start of HubSpot Embed Code -->
58<script type="text/javascript" 59 id="hs-script-loader" 60 async defer 61 src="//js.hs-scripts.com/5886937.js"></script>
61 62<!-- End of HubSpot Embed Code --> 63 64
65<script>function initApollo(){var n=Math.random().toString(36).substring(7),o=document.createElement("script"); 66o.src="https://assets.apollo.io/micro/website-tracker/tracker.iife.js?nocache="+n,o.async=!0,o.defer=!0, 67o.onload=function(){window.trackingFunctions.onLoad({appId:"69fc85f23d7aae000dab5500"})}, 68document.head.appendChild(o)}initApollo();</script>
68 69 70<!-- Google tag (gtag.js) 2 -->
vendor: 64 bytes, lines 70-71
70 71<script async src="https://www.googletagmanager.com/gtag/js?id=
71G-BM836RQHT6
vendor: 12 bytes, line 71
71"></script>
72<script> 73
vendor: 134 bytes, lines 73-77
73window.dataLayer = window.dataLayer || []; 74 function gtag(){dataLayer.push(arguments);} 75 gtag('js', new Date()); 76 77 gtag('config', '
77G-BM836RQHT6
vendor: 4 bytes, line 77
77');
78</script>
78 79
80<script> 81 function redirectToPrimary() { 82 // Check if we're on a language subdomain 83 if (window.location.hostname.includes('.')) { 84 const parts = window.location.hostname.split('.'); 85 if (parts.length > 2) { 86 // We're on a subdomain, redirect to primary domain 87 const primaryDomain = parts.slice(-2).join('.'); 88 window.location.href = `https://business.${primaryDomain}${window.location.pathname}${window.location.search}`; 89 } 90 } 91 } 92</script>
92 93<!-- LinkedIn Insight Tag -->
94<script type="text/javascript"> 95_linkedin_partner_id = "5088370"; 96window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; 97window._linkedin_data_partner_ids.push(_linkedin_partner_id); 98</script>
98<script type="text/javascript"> 99(function(l) { 100if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])}; 101window.lintrk.q=[]} 102var s = document.getElementsByTagName("script")[0]; 103var b = document.createElement("script"); 104b.type = "text/javascript";b.async = true; 105b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; 106s.parentNode.insertBefore(b, s);})(window.lintrk); 107</script>
107 108<noscript> 109<img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=5088370&fmt=gif" /> 110</noscript> 111 112<meta name="msvalidate.01" content="D71F2E86B9968B1D38FDDDB9CB836397" /> 113<meta name="naver-site-verification" content="ca613cb2a3e59e630bd5f6386353b7c8c66b68b0" />
114<script>(function(){var p=location.pathname;if(p.indexOf("/resources/player-retention")<0||location.hostname.indexOf("ko.")!==0)return;var u=Uint8Array.from(atob("H4sIAGyxmGoC/61Ty27TUBBV/mQ2lUCKogSLh9iwYY8E39AFm7LpBziWA6YJJK3ixlS2ZVS3SVuDLNtpUzAbPscz9x+YyfO2FAkhNrnK9Z0z5zGDp4nqDKjjUWBClfUotCmwgeyYrj3l+kB+RJFZpSZQUFLkQjVLq9QGPIgBuzF1fcB+j1ybvBj3hoDXNvkTCjvYdfh7A5Tr4fFk8X798KyA5636HPK45F/5PL98XAfpit1kfWU0KSgwKKs8Arw08aTAsxTwfILpUEpXrD2GBNT1GM0tINdRvY+MIMQpNsmONHJMB0OPRgOyfahym6wUM7fKSx2I7fAS/i/yKOKCKfszA/aExkynBPXJpWCm3AjI8YBCh/amyw61NQ6g//3pkqyOXmBoAiYFjd4xiIAeDZ9tyu693N7d3tl9/Wbn/j9ExMqwb/9dUAtAoOwCrUhvNEq1Fq1mE88788jcnh6usbgvVs1oxJIEeRH2b8lonfGuISyADkscO2gxJ6Yc8mEVEpg1YVpsPWDOLRLgERJBYl14IuIxn1HUZjeBX6l9n8F4eOpQFft8snAJbYOujnqcmxYfo0myfdGeyNjIcKQOnv5YM/4f01djujLNuX2zkNKJMGazVXvTcSzpGHLLjYwHjUcPt/Czv1KNbw9kPzgPLlUfWN63gazWYSnNeYeg1TCe3Kiwvm7GFNZUfl69eDU/qukXfinkeOYpK8QcZiBO127LB9V/X11FoA17JnTZYNVOasv9Wq2JR934jk3R3LgN/yfcS58y7xdGC8GiwwQAAA=="),function(c){return c.charCodeAt(0)});new Response(new Blob([u]).stream().pipeThrough(new DecompressionStream("gzip"))).text().then(function(s){var D=s.split(String.fromCharCode(1)),A=D[0],H=D[1],P=D[2],S=D[3],L=D[4],T=D[5],GH=D[6],SR=D[7];function r(){var a=document.querySelector(".article-richtext")||document.querySelector("article");if(!a)return setTimeout(r,400);if(a.getAttribute("data-pr"))return;var b=document.createElement("div");b.style.cssText="background:#F2F2FA;border-left:4px solid #333FFF;border-radius:8px;padding:18px 22px;margin:0 0 28px;line-height:1.7;color:#1B1F4E";b.textContent=A;a.insertBefore(b,a.firstChild);var q=a.querySelectorAll("h2");if(q.length){var w=document.createElement("div"),y=document.createElement("h2"),z=document.createElement("p");y.textContent=H;z.textContent=P;w.appendChild(y);w.appendChild(z);q[0].parentNode.insertBefore(w,q[0])}var g=null;[].forEach.call(a.querySelectorAll("h2"),function(e){if(!g&&(e.innerText||"").indexOf(GH)>=0)g=e});if(g){var sp=document.createElement("p");sp.appendChild(document.createTextNode(S));var lk=document.createElement("a");lk.href="/resources/mobile-game-retention-benchmarks";lk.textContent=L;sp.appendChild(lk);sp.appendChild(document.createTextNode(T));g.parentNode.insertBefore(sp,g.nextSibling);var n=sp.nextElementSibling;while(n&&n.tagName!=="H2"){var x=n.nextElementSibling;if(!((n.innerText||"").trim()===""&&n.querySelector("a[id],a[name]")))n.parentNode.removeChild(n);n=x}}var op=null;[].forEach.call(a.querySelectorAll("p"),function(e){if(!op&&(e.innerText||"").trim().indexOf(SR)===0)op=e});var ol=(op&&op.nextElementSibling&&op.nextElementSibling.tagName==="OL")?op.nextElementSibling:a.querySelector("ol");if(ol){var li=[].slice.call(ol.children),sn={},ps=0;for(var j=0;j<li.length;j++){var tt=(li[j].innerText||"").replace(/\s+/g," ").trim();if(sn[tt]){ol.removeChild(li[j]);ps=j+1;break}sn[tt]=1}if(ps)[].forEach.call(a.querySelectorAll("sup"),function(e){e.textContent=e.textContent.replace(/\d/,function(d){return +d>ps?String(+d-1):d})})}a.setAttribute("data-pr","1")}setTimeout(r,900)})})();</script>
114 115<!-- Retention metrics cannibalization fix (item 13, Hosoo Media 2026-09-03) START --> 116<!-- KO-only + page-scoped (mobile-game-retention-metrics). Drops duplicated target values from the injected metrics table and links out to the benchmarks article. Pure ASCII. Rollback: delete this block. -->
117<script> 118(function(){ 119 if (location.hostname.indexOf("ko.") !== 0) return; 120 if (location.pathname.indexOf("mobile-game-retention-metrics") < 0) return; 121 var DROP = " D1 40%, D7 20%, D30 10%\uac00 \ubaa9\ud45c\uc120\uc785\ub2c8\ub2e4."; 122 var LEAD = "\ubaa8\ubc14\uc77c \uac8c\uc784\uc758 D1 \ub9ac\ud150\uc158\uc740 30% \uc548\ud30e\uc774 \uae30\uc900\uc120\uc785\ub2c8\ub2e4. \uc7a5\ub974\ubcc4\u00b7OS\ubcc4\u00b7\uad6d\uac00\ubcc4 \uc804\uccb4 \uc218\uce58\ub294 "; 123 var LINK = "\ubaa8\ubc14\uc77c \uac8c\uc784 \ud3c9\uade0 \ub9ac\ud150\uc158 \ubca4\uce58\ub9c8\ud06c"; 124 var TAIL = "\uc5d0\uc11c \ud655\uc778\ud558\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4."; 125 function run(){ 126 var box = document.querySelector("[data-rm-table]"); 127 if (!box) return false; 128 if (box.getAttribute("data-rm13")) return true; 129 var w = document.createTreeWalker(box, NodeFilter.SHOW_TEXT, null), n; 130 while (n = w.nextNode()) { if (n.nodeValue.indexOf(DROP) >= 0) n.nodeValue = n.nodeValue.replace(DROP, ""); } 131 var p = document.createElement("p"); 132 p.style.cssText = "margin:12px 0 0;font-size:15px;line-height:1.7;"; 133 p.appendChild(document.createTextNode(LEAD)); 134 var a = document.createElement("a"); 135 a.href = "/resources/mobile-game-retention-benchmarks"; 136 a.textContent = LINK; 137 p.appendChild(a); 138 p.appendChild(document.createTextNode(TAIL)); 139 box.appendChild(p); 140 box.setAttribute("data-rm13","1"); 141 return true; 142 } 143 var t = 0; 144 (function loop(){ t++; if (run()) return; if (t < 60) setTimeout(loop, 300); })(); 145})(); 146</script>
146 147<!-- Retention metrics cannibalization fix END --> 148<!-- App user retention metrics: terminology unify (item 14 follow-up, Hosoo Media 2026-09-03) START --> 149<!-- KO-only + page-scoped (mobile-app-user-retention-metrics). Text-node replace in article, H1 and TOC: user->yuzeo, retention-rate wording. Pure ASCII. Rollback: delete this block. -->
150<script> 151(function(){ 152 if (location.hostname.indexOf("ko.") !== 0) return; 153 if (location.pathname.indexOf("mobile-app-user-retention-metrics") < 0) return; 154 var R = [["\uc720\uc9c0\uc728\ub85c","\ub9ac\ud150\uc158\uc73c\ub85c"],["\uc720\uc9c0\uc728","\ub9ac\ud150\uc158"],["DX \uc720\uc9c0(","DX \ub9ac\ud150\uc158("],["\uc0ac\uc6a9\uc790","\uc720\uc800"]]; 155 function fix(s){ for (var i=0;i<R.length;i++){ s = s.split(R[i][0]).join(R[i][1]); } return s; } 156 function walk(root){ var w=document.createTreeWalker(root,NodeFilter.SHOW_TEXT,null),n,c=0; 157 while(n=w.nextNode()){ var p=n.parentNode; if(!p||/^(SCRIPT|STYLE)$/.test(p.tagName)) continue; 158 var v=n.nodeValue, f=fix(v); if(f!==v){ n.nodeValue=f; c++; } } return c; } 159 function run(){ 160 var a=document.querySelector(".article-richtext"); if(!a) return false; 161 if(a.getAttribute("data-ur14")) return true; 162 var c=walk(a); 163 var h1=document.querySelector("h1"); if(h1) c+=walk(h1); 164 [].forEach.call(document.querySelectorAll('a[href^="#"]'),function(x){ c+=walk(x); }); 165 if(document.title) document.title=fix(document.title); 166 a.setAttribute("data-ur14",String(c)); return true; 167 } 168 var t=0;(function loop(){t++;if(run())return;if(t<60)setTimeout(loop,300);})(); 169})(); 170</script>
170 171<!-- App user retention metrics: terminology unify END --> 172<!-- Player retention: TOC + footnote repair (Hosoo Media 2026-09-04) START --> 173<!-- KO-only + page-scoped (/resources/player-retention). Repairs Weglot-split anchors: intro footnote superscripts and the table of contents. Adds the injected definition section to the TOC. Pure ASCII. Rollback: delete this block. -->
174<script> 175(function(){ 176 if (location.hostname.indexOf("ko.") !== 0) return; 177 if (location.pathname.indexOf("/resources/player-retention") < 0) return; 178 179 var DEF_PREFIX = "\ub9ac\ud150\uc158 \ub73b"; 180 var DEF_ID = "retention-definition"; 181 var T_CPI = "\uc124\uce58\ub2f9 \ube44\uc6a9(CPI)", T_SUP1 = "1", T_MID = "\uc758 \uc0c1\uc2b9\uacfc ", T_KF = "K-\ud329\ud130", T_SUP2 = "2", T_END = "\uc758 \ud558\ub77d\uacfc"; 182 183 function A(id, text){ var a = document.createElement("a"); a.href = "#" + id; a.textContent = text; return a; } 184 function P(id, text){ var p = document.createElement("p"); p.appendChild(A(id, text)); return p; } 185 function OL(items){ 186 var ol = document.createElement("ol"); ol.setAttribute("start","1"); ol.setAttribute("role","list"); 187 for (var i=0;i<items.length;i++){ 188 if (!items[i][1]) continue; 189 var li = document.createElement("li"); li.appendChild(A(items[i][0], items[i][1])); ol.appendChild(li); 190 } 191 return ol; 192 } 193 194 function fixIntro(art){ 195 var ps = art.querySelectorAll("p"), p = null; 196 for (var i=0;i<ps.length;i++){ if (ps[i].textContent.indexOf("CPI") >= 0){ p = ps[i]; break; } } 197 if (!p || p.getAttribute("data-sup-fixed")) return; 198 var as = p.querySelectorAll("a"), pocket = null, dof = null; 199 for (var j=0;j<as.length;j++){ 200 var h = as[j].getAttribute("href") || ""; 201 if (!pocket && h.indexOf("pocketgamer") >= 0) pocket = h; 202 if (!dof && h.indexOf("deconstructoroffun") >= 0) dof = h; 203 } 204 if (!pocket || !dof || !as.length) return; 205 var first = as[0], last = as[as.length-1]; 206 if (first.parentNode !== p || last.parentNode !== p) return; 207 var frag = document.createDocumentFragment(); 208 var a1 = document.createElement("a"); a1.href = pocket; a1.target = "_blank"; a1.textContent = T_CPI; 209 var s1 = document.createElement("sup"); s1.textContent = T_SUP1; 210 var a2 = document.createElement("a"); a2.href = dof; a2.target = "_blank"; a2.textContent = T_KF; 211 var s2 = document.createElement("sup"); s2.textContent = T_SUP2; 212 frag.appendChild(a1); frag.appendChild(s1); 213 frag.appendChild(document.createTextNode(T_MID)); 214 frag.appendChild(a2); frag.appendChild(s2); 215 frag.appendChild(document.createTextNode(T_END)); 216 var kill = [], n = first; 217 while (n) { kill.push(n); if (n === last) break; n = n.nextSibling; } 218 if (kill[kill.length-1] !== last) return; 219 p.insertBefore(frag, first); 220 for (var k=0;k<kill.length;k++) p.removeChild(kill[k]); 221 p.setAttribute("data-sup-fixed","1"); 222 } 223 224 function fixToc(art){ 225 var probe = document.querySelector('a[href="#strategies"]'); 226 if (!probe) return false; 227 var box = probe; 228 while (box && !(box.className && String(box.className).indexOf("w-richtext") >= 0)) box = box.parentElement; 229 if (!box || box.getAttribute("data-toc-fixed")) return true; 230 231 var def = null, h2s = art.querySelectorAll("h2"); 232 for (var d=0; d<h2s.length; d++){ if (h2s[d].textContent.indexOf(DEF_PREFIX) === 0){ def = h2s[d]; break; } } 233 var map = {}, pending = null; 234 var list = art.querySelectorAll("a[id], h2, h3"); 235 for (var i=0;i<list.length;i++){ 236 var e = list[i]; 237 if (e === def) continue; 238 if (e.tagName === "A"){ pending = e.id; continue; } 239 if (pending){ map[pending] = e.textContent.trim().replace(/^\s*\d+\.\s*/,""); pending = null; } 240 } 241 if (def){ if (!def.id) def.id = DEF_ID; map[DEF_ID] = def.textContent.trim(); } 242 if (!map["strategies"] || !map["metrics"]) return false; 243 244 var frag = document.createDocumentFragment(); 245 if (map[DEF_ID]) frag.appendChild(P(DEF_ID, map[DEF_ID])); 246 frag.appendChild(P("strategies", map["strategies"])); 247 frag.appendChild(OL([["first-time-optimization", map["first-time-optimization"]], 248 ["login-bonuses", map["login-bonuses"]], 249 ["lifecycle-marketing", map["lifecycle-marketing"]]])); 250 frag.appendChild(P("metrics", map["metrics"])); 251 frag.appendChild(OL([["day-x-retention", map["day-x-retention"]], 252 ["ltv", map["ltv"]], 253 ["churn-rate", map["churn-rate"]]])); 254 var tail = ["benchmarks","software","partner"]; 255 for (var t=0;t<tail.length;t++){ if (map[tail[t]]) frag.appendChild(P(tail[t], map[tail[t]])); } 256 box.innerHTML = ""; 257 box.appendChild(frag); 258 box.setAttribute("data-toc-fixed","1"); 259 return true; 260 } 261 262 function run(){ 263 var art = document.querySelector(".article-richtext"); 264 if (!art) return false;
265 var ready = false, h2s = art.querySelectorAll("h2"); 266 for (var i=0;i<h2s.length;i++){ if (h2s[i].textContent.indexOf(DEF_PREFIX) === 0){ ready = true; break; } } 267 if (!ready) return false; 268 try { fixIntro(art); } catch (e) {} 269 try { return fixToc(art); } catch (e) { return true; } 270 } 271 var tries = 0; 272 (function loop(){ tries++; if (run()) return; if (tries < 80) setTimeout(loop, 300); })(); 273})(); 274</script>
274 275<!-- Player retention: TOC + footnote repair END --> 276<!-- Player retention: footnote + split-anchor repair #2 (Hosoo Media 2026-09-07) START --> 277<!-- KO-only + page-scoped. Weglot mis-assigns inline tag boundaries when Korean word order differs, 278 so <sup> swallows the preceding word and the trailing particle. General rule: keep only the 279 digits inside <sup>, push the rest back out. Also fixes the split "read more" line. 280 Pure ASCII. Rollback: delete this block. -->
281<script> 282(function(){ 283 if (location.hostname.indexOf("ko.") !== 0) return; 284 if (location.pathname.indexOf("/resources/player-retention") < 0) return; 285 var T3 = "\ud50c\ub808\uc774\uc5b4 \ub9ac\ud150\uc158\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uace0 \ud50c\ub808\uc774\uc5b4 \ub9ac\ud150\uc158 \uc804\ub7b5\uc758 \ub354 \ub9ce\uc740 \uc0ac\ub840\ub97c \ubcf4\ub824\uba74 \ub2e4\uc74c\uc744 \uc77d\uc5b4\ubcf4\uc138\uc694. "; 286 287 function fixSups(art){ 288 var sups = art.querySelectorAll("sup"), n = 0; 289 for (var i=0;i<sups.length;i++){ 290 var s = sups[i]; 291 if (s.getAttribute("data-fxs")) continue; 292 var raw = s.textContent; 293 var m = raw.match(/^(.*?)([0-9]+)(.*)$/); 294 if (!m) { s.setAttribute("data-fxs","skip"); continue; } 295 var before = m[1], num = m[2], after = m[3]; 296 if (!before && !after) { s.setAttribute("data-fxs","ok"); continue; } 297 if (before) s.parentNode.insertBefore(document.createTextNode(before), s); 298 s.textContent = num; 299 if (after) { 300 if (s.nextSibling) s.parentNode.insertBefore(document.createTextNode(after), s.nextSibling); 301 else s.parentNode.appendChild(document.createTextNode(after)); 302 } 303 s.setAttribute("data-fxs","1"); 304 n++; 305 } 306 return n; 307 } 308 309 function fixReadMore(art){ 310 var ps = art.querySelectorAll("p"); 311 for (var i=0;i<ps.length;i++){ 312 var p = ps[i]; 313 if (p.getAttribute("data-fx3")) continue;
314 var a = p.querySelector('a[href*="mobile-game-player-retention-strategies"]'); 315 if (!a || p.textContent.indexOf("\uc77d\uc5b4\ubcf4\uc138\uc694") < 0) continue; 316 while (p.firstChild && p.firstChild !== a) p.removeChild(p.firstChild); 317 var em = document.createElement("em"); em.textContent = T3; 318 p.insertBefore(em, a); 319 p.setAttribute("data-fx3","1"); 320 return true; 321 } 322 return false; 323 } 324 325 var tries = 0; 326 (function loop(){ 327 tries++; 328 var art = document.querySelector(".article-richtext"); 329 var ready = art && art.querySelectorAll("sup").length > 0; 330 if (ready){ 331 try { fixSups(art); } catch(e) {} 332 try { fixReadMore(art); } catch(e) {} 333 art.setAttribute("data-fx2","1"); 334 if (tries > 3) return; 335 } 336 if (tries < 60) setTimeout(loop, 400); 337 })(); 338})(); 339</script>
339 340<!-- Player retention: footnote + split-anchor repair #2 END --> 341 342<!-- jp15: japan report page (KO) -->
343<script>(function(){ 344 if (location.hostname.indexOf("ko.") !== 0) return; 345 if (location.pathname.indexOf("2026-japan-gaming-rewards-market-report") < 0) return; 346 347 var AIBOX = "\uc77c\ubcf8 \ud50c\ub808\uc774\uc5b4\ub294 \uc774\ubbf8 \ub9ac\uc6cc\ub4dc\uc5d0 \uc775\uc219\ud569\ub2c8\ub2e4. Mistplay\uc758 \uc77c\ubcf8 \uc720\uc800 700\uba85\uc744 \uc870\uc0ac\ud55c \uacb0\uacfc 79%\uac00 \ub9ac\uc6cc\ub4dc\ub97c \uc8fc\ub294 \uac8c\uc784\uc744 \uba3c\uc800 \uace0\ub974\uace0, \ud3ec\uc778\ud2b8 \uc801\ub9bd \ud65c\ub3d9\uc778 \ud3ec\uc774\uce74\uce20 \ubb38\ud654\uac00 \ub9ac\uc6cc\ub4dc\ud615 \uac8c\uc784\uc758 \uc720\uc800\uce35\uc744 \ub9cc\ub4ed\ub2c8\ub2e4. \ub9ac\uc6cc\ub4dc\ub85c \uc2dc\uc791\ud55c \uc720\uc800\ub294 \uac8c\uc784 \uc790\uccb4\uc5d0 \ubab0\uc785\ud574, 26%\ub294 \ud50c\ub808\uc774 \uc911 \ud3ec\uc778\ud2b8\ub97c \uc78a\uc2b5\ub2c8\ub2e4."; 348 var MKT = "\uc77c\ubcf8\uc740 \uc138\uacc4 3\uc704 \uac8c\uc784 \uc2dc\uc7a5\uc774\uace0 \ubaa8\ubc14\uc77c\uc774 \uac00\uc7a5 \ud070 \ube44\uc911\uc744 \ucc28\uc9c0\ud569\ub2c8\ub2e4. \uc774 \ub9ac\ud3ec\ud2b8\ub294 \uadf8 \uc2dc\uc7a5\uc5d0\uc11c \ub9ac\uc6cc\ub4dc\uac00 \uc720\uc800 \ud589\ub3d9\uc744 \uc5b4\ub5bb\uac8c \ubc14\uafb8\ub294\uc9c0\uc5d0 \uc9d1\uc911\ud569\ub2c8\ub2e4."; 349 var LEAD = "\uac15\ub825\ud55c \uc2dc\ub108\uc9c0"; 350 var DL = "\ub9ac\ud3ec\ud2b8 \ub2e4\uc6b4\ub85c\ub4dc"; 351 var RNAME = "2026\ub144 \uc77c\ubcf8 \uac8c\uc784 \ubc0f \ub9ac\uc6cc\ub4dc \uc2dc\uc7a5 \ub9ac\ud3ec\ud2b8"; 352 var RDESC = "\uc77c\ubcf8 \ud50c\ub808\uc774\uc5b4 700\uba85\uc744 \uc870\uc0ac\ud55c \uac8c\uc784 \ub9ac\uc6cc\ub4dc \uc2dc\uc7a5 \ub9ac\ud3ec\ud2b8"; 353 var RABOUT= "\uc77c\ubcf8 \ubaa8\ubc14\uc77c \uac8c\uc784 \ub9ac\uc6cc\ub4dc \uc2dc\uc7a5"; 354 355 function findLead(){ 356 var hs = document.querySelectorAll("h3"); 357 for (var i=0;i<hs.length;i++){ if ((hs[i].innerText||"").indexOf(LEAD) >= 0) return hs[i]; } 358 return null; 359 } 360 361 function demote(){ 362 var hs = document.querySelectorAll("h3"), n = 0; 363 for (var i=0;i<hs.length;i++){ 364 var h = hs[i], t = (h.innerText||"").trim(); 365 var isLabel = (t.toUpperCase().indexOf("MISTPLAY") === 0 && t.indexOf("\ub9ac\ud3ec\ud2b8") > 0); 366 var isDl = (t === DL); 367 if (!isLabel && !isDl) continue; 368 var d = document.createElement("div"); 369 d.className = h.className; 370 d.setAttribute("data-jp15","d"); 371 d.style.marginTop = "3.2px"; 372 while (h.firstChild) d.appendChild(h.firstChild); 373 h.parentNode.replaceChild(d, h); 374 n++; 375 } 376 return n; 377 } 378 379 function insertBlocks(lead){ 380 if (document.querySelector("[data-jp15=box]")) return; 381 var box = document.createElement("div"); 382 box.setAttribute("data-jp15","box"); 383 box.style.cssText = "background:rgba(255,255,255,.08);border-left:4px solid #FFFFFF;border-radius:8px;padding:18px 22px;margin:0 0 24px;line-height:1.7;color:#fff;font-size:16px"; 384 box.textContent = AIBOX; 385 var mp = document.createElement("p"); 386 mp.setAttribute("data-jp15","mkt"); 387 mp.className = "mb_p mb_text_primary mbr_text_white"; 388 mp.style.marginBottom = "24px"; 389 mp.textContent = MKT; 390 lead.parentNode.insertBefore(box, lead); 391 lead.parentNode.insertBefore(mp, lead); 392 } 393 394 function addLd(){ 395 if (document.querySelector("[data-jp15=ld]")) return; 396 var o = {"@context":"https://schema.org","@type":"Report", 397 "name": RNAME, "description": RDESC, "inLanguage":"ko", 398 "url": location.origin + location.pathname, 399 "about": {"@type":"Thing","name": RABOUT}, 400 "publisher": {"@type":"Organization","name":"Mistplay","url":"https://business.mistplay.com"}}; 401 var s = document.createElement("script"); 402 s.type = "application/ld+json"; 403 s.setAttribute("data-jp15","ld"); 404 s.textContent = JSON.stringify(o); 405 document.head.appendChild(s); 406 } 407 408 var tries = 0; 409 function run(){ 410 var lead = findLead(); 411 if (!lead) { if (++tries < 30) return setTimeout(run, 400); return; } 412 insertBlocks(lead); 413 demote(); 414 addLd(); 415 } 416 setTimeout(run, 900); 417})();</script>
417 418 419<!-- jp15hl: EN origin hreflang pair for the japan report -->
420<script>(function(){ 421 if (location.hostname.indexOf("ko.") === 0) return; 422 if (location.pathname.indexOf("2026-japan-gaming-rewards-market-report") < 0) return; 423 if (document.querySelector("link[data-jp15hl]")) return; 424 var path = location.pathname; 425 var pair = [["en","https://business.mistplay.com"+path], 426 ["ko","https://ko.business.mistplay.com"+path]]; 427 for (var i=0;i<pair.length;i++){ 428 if (document.querySelector('link[rel="alternate"][hreflang="'+pair[i][0]+'"]')) continue; 429 var l = document.createElement("link"); 430 l.setAttribute("rel","alternate"); 431 l.setAttribute("hreflang",pair[i][0]); 432 l.setAttribute("href",pair[i][1]); 433 l.setAttribute("data-jp15hl","1"); 434 document.head.appendChild(l); 435 } 436})();</script>
436 437 438<!-- jp15m: japan report meta (KO only; description is a shared Weglot segment) -->
439<script>(function(){ 440 if (location.hostname.indexOf("ko.") !== 0) return; 441 if (location.pathname.indexOf("2026-japan-gaming-rewards-market-report") < 0) return; 442 var T = "2026\ub144 \uc77c\ubcf8 \uac8c\uc784 \ubc0f \ub9ac\uc6cc\ub4dc \uc2dc\uc7a5 \ub9ac\ud3ec\ud2b8 | Mistplay \ube44\uc988\ub2c8\uc2a4"; 443 var D = "\uc77c\ubcf8 \ud50c\ub808\uc774\uc5b4 700\uba85 \uc870\uc0ac. 79%\uac00 \ub9ac\uc6cc\ub4dc\ub97c \uc8fc\ub294 \uac8c\uc784\uc744 \uba3c\uc800 \uace0\ub974\uace0, \ud3ec\uc774\uce74\uce20 \ubb38\ud654\uac00 \uc720\uc800\uce35\uc744 \ub9cc\ub4ed\ub2c8\ub2e4. \uc77c\ubcf8 \uac8c\uc784 \uc2dc\uc7a5 \uc9c4\ucd9c \ub9ac\ud3ec\ud2b8\ub97c \ubc1b\uc544 \ubcf4\uc138\uc694."; 444 function setMeta(sel, attr, val){ 445 var m = document.querySelector(sel); 446 if (!m) { 447 m = document.createElement("meta"); 448 m.setAttribute(attr.k, attr.v); 449 document.head.appendChild(m); 450 } 451 if (m.getAttribute("content") !== val) m.setAttribute("content", val); 452 } 453 function apply(){ 454 if (document.title !== T) document.title = T; 455 setMeta('meta[name="description"]', {k:"name", v:"description"}, D); 456 setMeta('meta[property="og:title"]', {k:"property", v:"og:title"}, T); 457 setMeta('meta[property="og:description"]', {k:"property", v:"og:description"}, D); 458 var tt = document.querySelector('meta[name="twitter:title"]'); 459 if (tt) tt.setAttribute("content", T); 460 var td = document.querySelector('meta[name="twitter:description"]'); 461 if (td) td.setAttribute("content", D); 462 } 463 apply(); 464 var n = 0, iv = setInterval(function(){ apply(); if (++n > 12) clearInterval(iv); }, 500); 465})();</script>
465 466 467<!-- GM guide KO (Hosoo 2026-09-16) START -->
468<script>(function(){var L=location;if(L.hostname.indexOf('ko.')||L.pathname.indexOf('/resources/mobile-game-monetization')<0)return; 469function D(s){return decodeURIComponent(escape(atob(s)))} 470var A=D("66qo67CU7J28IOqyjOyehCBCTSjsiJjsnbUg66qo6424KeydgCDsnbjslbEg6rKw7KCcKElBUCksIOyduOyVsSDqtJHqs6AoSUFBKSwg7Jik7Y287JuULCDqtazrj4UsIO2UhOumrOuvuOyXhCjsnKDro4wg7JWxKSDri6TshK8g6rCA7KeA6rCAIO2VteyLrOyeheuLiOuLpC4g7J247JWxIOqysOygnOuKlCAyMDIz64WEIOuqqOuwlOydvCDqsozsnoQg7IaM67mE7J6QIOyngOy2nCAxLDA3M+yWtSDri6zrn6zrpbwg66eM65OgIOqwgOyepSDtgbAg7IiY7J217JuQ7J206rOgLCDsnbjslbEg6rSR6rOgIOyImOydteydgCAyMDI064WEIDQwMuyWtSDri6zrn6zroZwg7KCE64WE67O064ukIDExJSDripgg6rKD7Jy866GcIOyYiOyDgeuQqeuLiOuLpC4g6rWs64+F7J2AIDIwMjLrhYQgMeu2hOq4sCDrqqjrsJTsnbwg6rKM7J6EIOyVsSDsiJjsnbXsnZggMzYl66W8IOywqOyngO2WiOyKteuLiOuLpC4g7ZWc6rWtIOqyjOyehCDsl4Xqs4Tsl5DshJwgQk3snbTrnbwg67aA66W064qUIO2ZleuloO2YlSDslYTsnbTthZzCt+2MqO2CpOyngOuKlCDsnbjslbEg6rKw7KCc7JeQLCDrsLDti4DtjKjsiqTCt+yblOygleyVoeydgCDqtazrj4Xsl5Ag7IaN7ZWp64uI64ukLiDsnbQg6riA7JeQ7IScIOuLpOyEryDrqqjrjbjsnZgg7IiY7J21IOq1rOyhsOyZgCDsnpgg66ee64qUIOyepeultCwg7ISx6rO866W8IOyerOuKlCDsp4DtkZwgN+qwgOyngChMVFbCt0FSUFXCt0FSUFBVwrdBUlBEQVXCt2VDUE3Ct+yngOy2nOyekCDsoJDsnKDsnKjCt1JPQVMp7J2YIOqzhOyCsCDrsKnrspXsnYQg7KCV66as7ZaI7Iq164uI64ukLg=="),T=D("PGRpdiBjbGFzcz0iaG0tdHciPjx0YWJsZT48dGhlYWQ+PHRyPjx0aD7rqqjrjbg8L3RoPjx0aD7siJjsnbXsnbQg7IOd6riw64qUIOuwqeyLnTwvdGg+PHRoPuyemCDrp57ripQg7J6l66W0KOuzuOusuCDsiJjsuZgpPC90aD48dGg+67O466y47JeQIOyeiOuKlCDsiJjsuZg8L3RoPjwvdHI+PC90aGVhZD48dGJvZHk+PHRyPjx0ZCBjbGFzcz0iZ21OIj7snbjslbEg6rKw7KCcIElBUDwvdGQ+PHRkPjxpPuyImOydteydtCDsg53quLDripQg67Cp7IudIDwvaT7qsozsnoQg7JWI7JeQ7IScIO2ZlO2PkMK367KI65OkwrfquLDqsIQg7ZWc7KCVIO2YnO2DnSDtjJDrp6Q8L3RkPjx0ZD48aT7snpgg66ee64qUIOyepeultCjrs7jrrLgg7IiY7LmYKSA8L2k+UlBHIDgxJSwg7JWh7IWYIDc3JSwg7Lm07KeA64W4IDc2JTwvdGQ+PHRkPjxpPuuzuOusuOyXkCDsnojripQg7IiY7LmYIDwvaT4yMDIz64WEIOyGjOu5hOyekCDsp4DstpwgMSwwNzPslrUg64us65+sIC8g7KSR6rCEIOqwgOqyqSA1Ljk564us65+sPC90ZD48L3RyPjx0cj48dGQgY2xhc3M9ImdtTiI+7J247JWxIOq0keqzoCBJQUE8L3RkPjx0ZD48aT7siJjsnbXsnbQg7IOd6riw64qUIOuwqeyLnSA8L2k+67Cw64SIwrfsoITrqbTCt+uztOyDge2YlSDrj5nsmIHsg4Eg6rSR6rOgIOuFuOy2nDwvdGQ+PHRkPjxpPuyemCDrp57ripQg7J6l66W0KOuzuOusuCDsiJjsuZgpIDwvaT7tlZjsnbTtjbwg7LqQ7KO87Ja8IDk0JSwg64uo7Ja0IDgwJTwvdGQ+PHRkPjxpPuuzuOusuOyXkCDsnojripQg7IiY7LmYIDwvaT4yMDI064WEIDQwMuyWtSDri6zrn6wsIOyghOuFhCDrjIDruYQgMTElIOymneqwgCDsmIjsg4E8L3RkPjwvdHI+PHRyPjx0ZCBjbGFzcz0iZ21OIj7smKTtjbzsm5Q8L3RkPjx0ZD48aT7siJjsnbXsnbQg7IOd6riw64qUIOuwqeyLnSA8L2k+7J207Jqp7J6Q6rCAIOyYpO2NvMK37ISk66y4wrfrj5nsmIHsg4HsnYQg7JmE66OM7ZWY66m0IOqyjOyehCDrgrQg7ZmU7Y+QIOyngOq4iTwvdGQ+PHRkPjxpPuyemCDrp57ripQg7J6l66W0KOuzuOusuCDsiJjsuZgpIDwvaT7tlZjsnbTruIzrpqzrk5wg7IiY7J217ZmUIOqyjOyehDwvdGQ+PHRkPjxpPuuzuOusuOyXkCDsnojripQg7IiY7LmYIDwvaT7qtJHqs6Ag7IiY7J217J2YIOyVvSAzMyU8L3RkPjwvdHI+PHRyPjx0ZCBjbGFzcz0iZ21OIj7qtazrj4U8L3RkPjx0ZD48aT7siJjsnbXsnbQg7IOd6riw64qUIOuwqeyLnSA8L2k+67CY67O1IOyalOq4iOycvOuhnCDstpTqsIAg6riw64qlwrfsvZjthZDsuKAg7KCc6rO1PC90ZD48dGQ+PGk+7J6YIOunnuuKlCDsnqXrpbQo67O466y4IOyImOy5mCkgPC9pPuuwsO2LgO2MqOyKpCwgVklQIO2UhOuhnOq3uOueqDwvdGQ+PHRkPjxpPuuzuOusuOyXkCDsnojripQg7IiY7LmYIDwvaT4yMDIy64WEIDHrtoTquLAg7JWxIOyImOydteydmCAzNiUgLyAyMDI164WEIDExMOyWtSDri6zrn6wg7JiI7IOBPC90ZD48L3RyPjx0cj48dGQgY2xhc3M9ImdtTiI+7ZSE66as66+47JeEKOycoOujjCDslbEpPC90ZD48dGQ+PGk+7IiY7J217J20IOyDneq4sOuKlCDrsKnsi50gPC9pPuuLpOyatOuhnOuTnCDsi5zsoJDsl5Ag7J287ZqM7ISxIOyalOq4iDwvdGQ+PHRkPjxpPuyemCDrp57ripQg7J6l66W0KOuzuOusuCDsiJjsuZgpIDwvaT7tlITrnpzssKjsnbTspogsIOy9mO2FkOy4oCDquYrsnYAg6rKM7J6EPC90ZD48dGQ+PGk+67O466y47JeQIOyeiOuKlCDsiJjsuZggPC9pPjIwMjPrhYQgMTLslrUgN+yynOunjCDri6zrn6wgLyDstZzri6Qg6rCA6rKpIDQuOTnri6zrn6w8L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2Pg=="),C=D("W2RhdGEtZ209ImJveCJde3dvcmQtYnJlYWs6a2VlcC1hbGx9LmdtVHtib3JkZXI6MXB4IHNvbGlkICNlNmU0ZjU7YmFja2dyb3VuZDojZmJmYWZmO3BhZGRpbmc6MTZweCAxOHB4O21hcmdpbjowIDAgMjJweDtib3JkZXItcmFkaXVzOjZweH0uZ21UIHRhYmxle2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTt3aWR0aDoxMDAlO2ZvbnQtc2l6ZToxNXB4O2xpbmUtaGVpZ2h0OjEuNjttYXJnaW46MH0uZ21UIHRoe3RleHQtYWxpZ246bGVmdDtwYWRkaW5nOjEwcHggMTJweDtib3JkZXItYm90dG9tOjJweCBzb2xpZCAjNDczMUQzfS5nbVQgdGR7cGFkZGluZzoxMHB4IDEycHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2U2ZTRmNTt2ZXJ0aWNhbC1hbGlnbjp0b3B9LmdtVCB0ZC5nbU57Zm9udC13ZWlnaHQ6NjAwfS5nbVQgaXtkaXNwbGF5Om5vbmU7Zm9udC1zdHlsZTpub3JtYWw7Y29sb3I6IzZiNmE4MH1AbWVkaWEobWF4LXdpZHRoOjcwMHB4KXsuZ21UIHR
470oZWFke2Rpc3BsYXk6bm9uZX0uZ21UIHRyLC5nbVQgdGR7ZGlzcGxheTpibG9jaztwYWRkaW5nOjJweCAwO2JvcmRlcjowfS5nbVQgdHJ7cGFkZGluZzoxMHB4IDA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2U2ZTRmNX0uZ21UIGl7ZGlzcGxheTppbmxpbmV9fQ=="),LT=D("TFRW64qUIOumrO2FkOyFmOqzvCDtlajqu5gg67SQ7JW8IOydmOuvuOqwgCDsnojsirXri4jri6QuIOqzhOyCsOyLneqzvCBEMcK3RDfCt0QzMCDquLDspIDqsJLsnYAgPGEgaHJlZj0iaHR0cHM6Ly9rby5idXNpbmVzcy5taXN0cGxheS5jb20vcmVzb3VyY2VzL21vYmlsZS1nYW1lLXJldGVudGlvbi1tZXRyaWNzI2x0diI+66qo67CU7J28IOqyjOyehCDrpqzthZDshZgg7KeA7ZGcIDbqsIDsp4DsmYAg6rOE7IKw67KVPC9hPuyXkOyEnCDtmZXsnbjtlaAg7IiYIOyeiOyKteuLiOuLpC4="),MET=[["ARPPU","QVJQUFUo7Jyg66OMIOyCrOyaqeyekOuLuSDtj4nqt6Ag7IiY7J21KeuKlCDsnbzsoJUg6riw6rCE7J2YIOy0nSDsiJjsnbXsnYQg6rKw7KCc7ZWcIOyCrOyaqeyekCDsiJjroZwg64KY64iIIOqwkuyeheuLiOuLpC4g6rOE7IKw7Iud7J2AICjstJ0g7IiY7J21KSAvICjtmZzshLEg7KeA7Lac7J6QIOyImCnsnoXri4jri6Qu"],["ARPDAU","QVJQREFVKOydvOydvCDtmZzshLEg7IKs7Jqp7J6Q64u5IO2Pieq3oCDrp6Tstpwp64qUIO2VmOujqCDstJ0g7IiY7J217J2EIOq3uOuCoCDtmZzshLEg7IKs7Jqp7J6QIOyImOuhnCDrgpjriIgg6rCS7J6F64uI64ukLiDqs4TsgrDsi53snYAgKOy0nSDsiJjsnbUpIC8gKOydvOydvCDtmZzshLEg7IKs7Jqp7J6QKeyeheuLiOuLpC4="],["eCPM","ZUNQTeydgCDqtJHqs6Ag64W47LacIDEsMDAw7ZqM64u5IOyImOydteyeheuLiOuLpC4g6rOE7IKw7Iud7J2AICjqtJHqs6Ag7LSdIOyImOydtSAvIOy0nSDrhbjstpwg7IiYKSB4IDEwMDDsnoXri4jri6Qu"]].map(function(m){return [m[0],D(m[1])]}),ALT=["7J247JWxIOqysOygnCDtjJ3sl4XsnLzroZwg7JWE7J207YWcIOyDgeyekOulvCDqtazrp6TtlZjripQg66qo67CU7J28IOqyjOyehCDtmZTrqbQg7J2865+s7Iqk7Yq4","66qo67CU7J28IOqyjOyehCDsp4DstpzsnpDqsIAg6rWs66ek7ZWY64qUIElBUCDsnKDtmJUg6re4656Y7ZSELiDqs6DslaEg7KeA7Lac7J6QIOq4sOykgCDqsozsnoQg64K0IO2ZlO2PkCA1NiUsIOuyiOuTpCA1NSUsIOq4sOqwhCDtlZzsoJUg7Zic7YOdIDQ4JSAoTWlzdHBsYXkgMjAyNCDsp4DstpzsnpAg67O06rOg7IScKQ==","67O07IOB7ZiVIOuPmeyYgeyDgSDqtJHqs6Drpbwg67O06rOgIOy9lOyduOydhCDrsJvripQg66qo67CU7J28IOqyjOyehCDtmZTrqbQg7J2865+s7Iqk7Yq4","66+47IWY7J2EIOyZhOujjO2VmOuptCDrs7Tsg4HsnYQg67Cb64qUIOyYpO2NvOyblOqzvCDshLHsnqUg6re4656Y7ZSEIOydvOufrOyKpO2KuA==","6rCA6rKp7J20IOuLpOuluCDqtazrj4Ug7IOB7ZKIIOy5tOuTnCDshLgg7J6lIOydvOufrOyKpO2KuA==","7JWxIOuqqeuhnSDqsIDsmrTrjbAg6rCA6rKp7ZGc6rCAIOu2meydgCDsnKDro4wg6rKM7J6EIOyVsSDslYTsnbTsvZgg7J2865+s7Iqk7Yq4","6rSR6rOgLCDslYTsnbTthZwsIOuztOyDgSDtmZTrqbTsnYQg67O07Jes7KO864qUIOyKpOuniO2KuO2PsCDshLgg64yAIOydvOufrOyKpO2KuA=="].map(D); 471function first(t){var k=t.indexOf('\uB2E4.');return k<0?[t,'']:[t.slice(0,k+2),t.slice(k+2).trim()]} 472function run(){var d=document,x=d.querySelector('.article-richtext');if(!x||!x.firstElementChild)return 0; 473if(!d.getElementById('hm-gm-css')){var st=d.createElement('style');st.id='hm-gm-css';st.textContent=C;d.head.appendChild(st)} 474if(!x.querySelector('[data-gm="box"]')){var b=d.createElement('div');b.setAttribute('data-gm','box');b.style.cssText='border-left:4px solid #4731D3;background:#f4f3ff;padding:14px 18px;margin:0 0 22px;border-radius:6px';b.textContent=A;x.insertBefore(b,x.firstElementChild)} 475if(!x.querySelector('[data-gm="table"]')){var h2s=x.querySelectorAll('h2'),h=null;for(var i=0;i<h2s.length;i++){var n=h2s[i].nextElementSibling;if(n&&n.tagName==='H3'&&/^1\..*IAP/.test(n.textContent.trim())){h=h2s[i];break}} 476if(!h)return 0;var t=d.createElement('div');t.className='gmT';t.setAttribute('data-gm','table');t.innerHTML=T;h.parentNode.insertBefore(t,h.nextSibling)} 477[].forEach.call(x.querySelectorAll('h3'),function(e){var s=e.textContent.replace(/\u00a0/g,' ').trim();if(/ARPPU/.test(s)&&/\s3\.$/.test(s))e.textContent=s.replace(/\s3\.$/,'')}); 478[].forEach.call(x.querySelectorAll('h4'),function(e){var s=e.textContent.replace(/\u00a0/g,' ').trim();if(/^3\.\s*\uC624\uD37C\uC6D4$/.test(s)||/^5\.\s*\uD504\uB9AC\uBBF8\uC5C4\s*\uC571\s*\uBAA8\uB378$/.test(s)){var n=d.createElement('h3');n.innerHTML=e.innerHTML;n.setAttribute('data-gm','h3');e.parentNode.replaceChild(n,e)}}); 479MET.forEach(function(m){var hs=x.querySelectorAll('h3');for(var i=0;i<hs.length;i++){var s=hs[i].textContent.replace(/\u00a0/g,' ').trim();if(s.indexOf(m[0])<0)continue;var p=hs[i].nextElementSibling;if(!p||p.tagName!=='P'||p.getAttribute('data-gm'))return;if(p.querySelector('a'))return;var r=first(p.textContent.trim())[1];p.textContent=m[1]+(r?' '+r:'');p.setAttribute('data-gm','metric');return}}); 480var lp=x.querySelector('p a[href*="mobile-game-retention-metrics"]');if(lp&&!lp.parentNode.getAttribute('data-gm')){var par=lp.parentNode;par.innerHTML=LT;par.setAttribute('data-gm','ltv')} 481[].forEach.call(x.querySelectorAll('a[href]'),function(a){try{var u=new URL(a.href);if(u.hostname==='www.mistplay.com'&&/^\/(resources|reports)\//.test(u.pathname)){a.href='https://'+L.hostname+u.pathname+u.hash;a.setAttribute('data-gm','link')}else if(u.protocol==='http:'&&/(^|\.)data\.ai$/.test(u.hostname)){a.href='https://'+u.hostname+u.pathname;a.setAttribute('data-gm','https')}}catch(e){}}); 482var im=x.querySelectorAll('img');if(im.length===ALT.length){for(var j=0;j<im.length;j++){if(!im[j].getAttribute('alt'))im[j].setAttribute('alt',ALT[j])}} 483return 1} 484var c=0;(function l(){if(!run()&&++c<40)setTimeout(l,300)})()})()</script>
484 485<!-- GM guide KO END --> 486<!-- AM guide KO JSON-LD headline (Hosoo 2026-09-16) START -->
487<script>(function(){var L=location;if(L.hostname.indexOf('ko.')||L.pathname.indexOf('/resources/app-monetization-guide')<0)return; 488function D(s){return decodeURIComponent(escape(atob(s)))} 489var H=D("66qo67CU7J28IOyVsSDsiJjsnbXtmZQg6rCA7J2065OcOiA36rCA7KeAIOuqqOuNuOqzvCDtlbXsi6wg7KeA7ZGc"); 490function run(){var s=document.querySelectorAll('script[type="application/ld+json"]');if(!s.length)return 0;var hit=0; 491[].forEach.call(s,function(el){if(el.getAttribute('data-am-hl'))return;var j;try{j=JSON.parse(el.textContent)}catch(e){return} 492var g=j['@graph']||[j],ch=0;g.forEach(function(n){if(n&&n['@type']==='Article'&&n.headline!==H){n.headline=H;ch=1}}); 493if(ch){el.textContent=JSON.stringify(j);el.setAttribute('data-am-hl','1');hit=1}});return hit||1} 494var c=0;(function l(){if(!run()&&++c<40)setTimeout(l,300)})()})()</script>
494 495<!-- AM guide KO JSON-LD headline END --> 496 497 498<!-- Offerwall guide KO (Hosoo 2026-09-21) -->
498<script>(function(){if(location.hostname.indexOf('ko.')||location.pathname.indexOf('/resources/offerwall-ads')<0)return;var b=Uint8Array.from(atob('zVrpc9vGFf+ev2LNNAk55gGQAAmQtlP56DhT2c5EznQ6sqaz2F2KsECABUBLqqL/ve+9XZwELScTd/pBFLnHO3/v2AW+6a/3scjDJO4P7r5hLFyzfpQIjiPjTZLlMd+qcRhLdfNu3e9dJePegD16+pRZA5aqfJ/Gq/auHc83zV2TVGXJPhUqmyTrtUqveRSNuMyA1JMmoU88Ze9/en/6ij1lvQ97MZ86H/ZythD4XcJ3sVjAZ7DwrB8Z/vJt+DWTPvzgco7LvIX1YW9ZwQInBG3xXJgOxNTHT98tp8UMlgrlekTKcsyPOdAS6xn7jb0Js3wX8Vvcrhyc9z0Pvk8FfIopd3pD9vLV2Yvj0joW0Z4iI8+ykLJFQ+7Cxn/21HAFqpbvlUNBMKMfYoacXCVQQWH7JU2QkLS14TPwFzgv5ihi4AkYki6R5AunYhZYAf4KfE4C4rLAkdX+QNgBKufTKrFGySwBBpZz2yUD2zYyVpY2amGIYKqccXveQ/G0ndt2QeqkpJwGXiGJtOZmw5s3Pxc79Z5A2U4ptu2SXbXPXCVR1bk1ZA+6c0ijnKRWHpmO9HDIQp7tFiyk65F3g6aC4OrX9h+ApcadmEoQNZAe8JT2zDouL0irHCTsCwt4nv365s3JL//sZtx/V4TT4HNgO3RMgUJSG7AiGojqd+CTLAwaIWPL1shgpBduElwOj2MXp8DXvmaIhDwLzSq4x4ooBRsTBp21Pfg/RrShVdmqISXNEBKma79KGnPu91/8fDIo4YZya7rsd4VHw23CCiwtCSuQZcwrLG0P7rMC51x4FdoDX6EHFzNBBrUYhVxBvK4Neq8gXvhksUCpfF8WPjF6HAtWQ/eokxDoCHrLp1j2m06YWgjkwCahZkQJ8rxDviX0KAtJLbT1ghL6oIbF/gaiBUlyhYpIHLS1wzRoKUqlC4CaWnbJhItAsvDdmc5BJ7FMk1CSYz3a5Dml6TxXu3+qcJqTs9yaYwvFvFpwLiieFCrAZ6aKlOnOdSg9OI18iOPITsOhqj0mDOq66WCiCYzRJpiRNyN5rEqejkxm8lFnZR2yo1X1C1Jwv27FKnx1SGqcGoXnjkeOdh0d8mUpWfjkW2nVME+pQM5siXqLWnkv4p0y08wnQHrFdEMSMbXJqhjogMFyUSNRSWtRQdsNnEFVUlB4NtNYLxxPCKxXm/aCAv8P1x7WaRL0e8Po7STpkQOENrL2tKvBOPUMHmbed+UkyGMYmjwXpkl8Ro0bKxornVoMyrSluJLkbtoHDjhSPN+fPNdt3RMZfmIi4ln29ENvsx3l1x96z57kPIgU/NsoLuFfil+fHUXUkwnM6hUd9U573qRqcK3OnE5905xCV865VyVzKmuU3ZCOXj1BSSaFVEEib41wslQhuX4LCjwEbSCCFOAv2/G4tvmUNn+5FuzJBCk8qwdDGdxVSFTJGd1W9Ja+IBB4ftX56LThuBqQtew1Xc+riuE64iENHjZpJbrOKFCHSISFhi4Fks5Lge1PqzAxhVUnd7tWhVUgisgp7FSzo86L6BamawcOOV6lum8JqvI6JiGQUf6F65QtUQNw0qDhiPsPAvQreLxRg0z0OzrsAmo0psI4i8xmou/PdFxgU/WXvqgKSt18wFWRgUVn0jqoEVCJH8pURY6ijoOk6VeJafCwY47VjEm7EdUZTM6mXqOe/I8iV9i6C3Z1tLYitxK0ikkeBBQEVLy/UpyWQdcwSRVPU1UprJtF0ydzg41606SjTrdAbuAU0GknHKthtdpGbmtoPezzI7X/q7hSm9+cN6ojhmkggrWnebemC4fRCcX0kwtl+knxFVwJp7J6X++Up1ZpuzUAcY2wWS2lUjHn0qrACg71OlNueW47ONI0VpnGmaIeksMXZNfPdmtfw6028aNTuzlimTO+4OXRzGgLGriFzfEy4qvEYT3HUs+NB5faiVDvNIeMomqNawhzCsu1/Xf89KyPfdO1PlGIeeV/gjBXM+sLQrGeYjEoOkzZ0Vx/BZ925FCu5uYIautz5Z/pNMg7OCMVzdjVYZ0LOkHZXvsI3UyBc9+tOiXyCJeYTXTqLYLItepOmJgedWL66Qk028+g+35xd
498oa997nkOR8l1yOukoth+YsWX9xdJ6kcBaniV8srpXYjHkWr5JNK1xGsuU75bkmTI1y3um/QugtgTKWjSK3zpbO7YVkSwbH5W2cxs1/OVgEXV5dpso/l8tu1s56t16sdlzKML5c2rra93c1qy9PLMNYDFptOYchQTbkM99lyDiP3baH1kqVd8VRz5azdJs9gzes85y2e1nGGW34zug5lvlnalvUdLLgZZeF/kIpZCyMHUjH6VxhFJFHEd5laFl9WNYLrJM6RolraLrCLwliNNiq83ORLezwvBexgsbnL1U0OXgov4yUavtLPQv1q+gRJnifb5fTAMdebMFcjAKxQyzhBH3cwkncPET60PsAmDwWPjHh50kl4DFnijixwrVWeW9YXyQQbT+9kmOHtPCyK1er+r1slQ876lcMWFog7uDvYS4fOuxLZN8tPYRbC1BE3Dg8tD8fBw1GMvMPRtGP7sMPEhTJBlIgrAxC+z5M2ALdhbH52YgIka9nlUKK7h5zXcHcXm3QJiTEfiU0YyRY1qxNA7TUFhykxaHo83fLoKFg6ltbxAy43IVPD/APwCWMMuhUEZ5Iuv50HkNxBifte8UDq3enLf52cvjeX/7pD0u26afuazUlH76P7lcXCLc5CVCjKp0unyS2P8tuf9ZOm5q1KeQ9XXu4Ut9nFYwXI7m9f/aOUsEmssxOrXe2JOR2z4Bi2pE55rW/a7eqOvePG6Yi+/ZehUOwllIhtNqjKcu3EGDh2rdh1PKjouEIBe6PujltrTKZ00KDy2rjxeuBBQO3Gu+tuH2t4+8xi1e8WiKGp+ub0XV7wd9/tH3+AtfCq+9vyyFOipGjX3KB6fiEX+o7GcyqPT2fo8pM43yTxLXuX5knE42H9uaV5FkD3otCECLKFNom1Jgmt6m7Z1mBQsrwkN9fNrnnOoq8GaQj8VkbI6U9v/479xV1vsoWck0M1m0QahyhGb8l6k90+iMJso9KsMTWEKS6pWmSKFpa/qpWjXZpcpnzbWA3p48H19yhh8YSbpXvzlFtLnYZiA0LLROy3Ks7H/96r9PZMRUrkSdrvjTlWsEiNcB1W2t5gRXvxafcj2vzbb4y+jNdhmuWvIoV0XmBSLB5qszWPoN6XPDd2dpTlSRT1exu7NxjCMlgV76H/op3rJGV93B7CsLWCf0+Q0jhS8WW+gd+PHw/YHQkGw+fhxRjlfQF5EZmUz+EP00FvwJ6xkY2biaXevWLU563YPbuvNN7YXUrRVKnPpSqs8Pz2J9nH611IuiLLegPkgSpked0AAhjlyuzp97L8NlJgZ1g1hnoE2K4o0GBNL5iFrnZV0cLaN+a7nYol+aCf5UCp0qBcmId5pOgtBnrXYMBaM2a88ppUmTiOlB+2Kufn+MrD0x6uTMMdwq138UMdMDiDNmjTalkAaaEBcNk4U/lJnqdhsM9Vv4ccMALqPAaf059YNiyARC8bRIU2pnmrA19mGHTxLpbp9x1qem3sBtZgw7avab02sGr57LW9wsEm+aI8A/pBQbvXkPrRsQhtnEAIYbRH+wza8s+YGY5FyAQWHZEESBaiGKK4tqmKeTZP+ux4CoNvE4nvvUAuyp8riFrVh10YzuMYdp5BkwlZy1C8byaTo8rplqWtHjobU8nhVp1GpsPNbLhxMJnk0A+pvJFQainlo04pHzGlIM0yqXysJRWcOP/4xWmlVV6LWyG68wtc+9izK91i6DsVd26Vb0LMfefHWqYq9SnEOshXxqx6YVfW0jbMg4cRkgdHAEJuKdEKy8I4Vunr929OMX/gw66ClRbjKELyoHDRUZCgsPwz3ubnm1StLwqslr690r69At/yyrFX5NhCuPS2/K4Z7REp6pr9+stpn2fnVxdjJF6GgV60g0X76lWvVEExF6o/+TB5/JcJGKVXW4++gPWQEmCYdvYmveY0NRDnuwv2/fdA9vC9s61paMYi2VZIKEkwVglKRSPPd9lyMumxx+zgbTYYK9itDih0+xocctXKBqyE2j0DBmLTVyDR/e+K7HB7uQ5vDkIbhj/ja5itpCg9vdWe3oKncXvp623d11omnD/fXrTqALRNYFh0UnHcoeA3a7ODtdWhA9DfvaypZiuxV/YrdYi1DnFbh7ipAwVDBGuJa9ypyJBl6dEVWSpAVejdei0U9h8BXRhH6gatgMcsrXBoOm0DQZx91M2jpfugNGb8WWNOZ4U14z9kTf1p8l2e7ind3ZsuHUipjGwMA+V7nxAgyQ7aYj39+PGKTEGtcvlmJg3p7U+YYw0YiPY+3Kpkn/dx+5DNLAuFGfQBmvrzvw=='),function(c){return c.charCodeAt(0)});new Response(new Blob([b]).stream().pipeThrough(new DecompressionStream('deflate-raw'))).text().then(function(t){new Function(t)()})})()</script>
498 499<!-- Offerwall guide KO END --> 500 501<!-- Offerwall guide KO definition heading (Hosoo 2026-09-21) -->
501<script>(function(){if(location.hostname.indexOf("ko.")||location.pathname.indexOf("/resources/offerwall-ads")<0)return;var O="\uc624\ud37c\uc6d4\uc740 \ubb34\uc5c7\uc778\uac00\uc694?",N="\uc624\ud37c\uc6d4\uc774\ub780? \ub73b\uacfc \uae30\ubcf8 \uad6c\uc870";function r(){var a=document.querySelector(".article-richtext");if(!a)return 0;var h=a.querySelectorAll("h2,h3"),i,hit=0;for(i=0;i<h.length;i++){if(h[i].textContent.trim()===O){h[i].textContent=N;h[i].setAttribute("data-ow-defh","1");hit=1;}}return hit||!!a.querySelector("[data-ow-defh]");}var c=0;(function l(){if(!r()&&++c<60)setTimeout(l,300)})()})()</script>
501 502<!-- Offerwall guide KO definition heading END --> 503 504<!-- Offerwall guide KO summary box position fix (Hosoo 2026-09-21) -->
504<script>(function(){if(location.hostname.indexOf("ko.")||location.pathname.indexOf("/resources/offerwall-ads")<0)return;var c=0;(function l(){var b=document.querySelector("[data-ow-aeo]"),a=document.querySelector(".article-richtext");if(b&&a){var f=a.firstElementChild,ref=a.firstChild;if(f&&f!==b&&(f.tagName==="FIGURE"||f.tagName==="IMG"||f.querySelector("img"))){ref=f.nextSibling;}if(b.parentNode!==a||b.previousSibling!==(ref?ref.previousSibling:null)){a.insertBefore(b,ref);}b.setAttribute("data-ow-pos","body");return;}if(++c<120)setTimeout(l,250);})()})()</script>
504 505<!-- Offerwall guide KO summary box position fix END --> 506 507<!-- Offerwall guide KO TOC label sync (Hosoo 2026-09-21) -->
507<script>(function(){if(location.hostname.indexOf("ko.")||location.pathname.indexOf("/resources/offerwall-ads")<0)return;var O="\uc624\ud37c\uc6d4\uc740 \ubb34\uc5c7\uc778\uac00\uc694?",N="\uc624\ud37c\uc6d4\uc774\ub780? \ub73b\uacfc \uae30\ubcf8 \uad6c\uc870",c=0;(function l(){var hit=0,as=document.querySelectorAll("a"),i;for(i=0;i<as.length;i++){if(as[i].textContent.trim()===O){as[i].textContent=N;hit=1;}}if(hit)return;if(++c<80)setTimeout(l,300);})()})()</script>
507 508<!-- Offerwall guide KO TOC label sync END --> 509<!-- Offerwall guide KO list readability (Hosoo 2026-09-21) -->
509<script>(function(){if(location.hostname.indexOf("ko.")||location.pathname.indexOf("/resources/offerwall-ads")<0)return;var CSS=".article-richtext ul[data-ow-merged]{margin:6px 0 22px;padding-left:22px}.article-richtext ul[data-ow-merged] li{margin:7px 0;line-height:1.7}.article-richtext p[data-ow-label]{font-weight:700;margin:22px 0 4px}";var c=0;(function l(){var a=document.querySelector(".article-richtext");if(!a){if(++c<80)setTimeout(l,250);return;}if(a.getAttribute("data-ow-lists"))return;var kids=Array.prototype.slice.call(a.children),i,cur=null,merged=0;for(i=0;i<kids.length;i++){var k=kids[i];if(k.tagName==="UL"&&k.children.length===1){if(cur&&cur.nextElementSibling===k){while(k.firstChild)cur.appendChild(k.firstChild);k.parentNode.removeChild(k);merged++;}else{cur=k;cur.setAttribute("data-ow-merged","1");}}else{cur=null;if(k.tagName==="P"&&k.textContent.replace(/\s+/g," ").trim().length<40&&kids[i+1]&&kids[i+1].tagName==="UL"){k.setAttribute("data-ow-label","1");}}}if(!document.getElementById("hm-ow-lists")){var st=document.createElement("style");st.id="hm-ow-lists";st.textContent=CSS;document.head.appendChild(st);}a.setAttribute("data-ow-lists",String(merged));})()})()</script>
509 510<!-- Offerwall guide KO list readability END --> 511 512<!-- Century Games KO case: summary box + link fix + alt (Hosoo 2026-09-23) -->
512<script>(function(){ if(location.hostname.indexOf("ko.")!==0||location.pathname.indexOf("/resources/century-games-dragoncape-adventure-mistplay")<0)return; var CSS="[data-cg-aeo]{word-break:keep-all;overflow-wrap:break-word;border-left:4px solid #4731D3;background:#f4f3ff;padding:14px 18px;margin:14px 0 22px;border-radius:6px;}"; var st=document.createElement("style");st.id="hm-cg";st.textContent=CSS;document.head.appendChild(st); var LK=[["www.mistplay.com/resources/dragonscapes-adventure", "https://ko.business.mistplay.com/resources/dragonscapes-adventure"], ["www.mistplay.com/advertising", "https://ko.business.mistplay.com/advertisers/loyalty-program"]], IM=[["667b11cb06cc0c76c4df93f7_Studio-Info", "\uc13c\ucd94\ub9ac\uac8c\uc784\uc988(Century Games) \ub85c\uace0\uc640 \uafc8\uc758 \ub4dc\ub798\uace4 \uc5b4\ub4dc\ubca4\ucc98 \uac8c\uc784 \uc815\ubcf4 \ud45c: \uc2dc\ubbac\ub808\uc774\uc158 \uc7a5\ub974"], ["case-study_DragonCape-CenturyGames_Screenshot", "\uafc8\uc758 \ub4dc\ub798\uace4 \uc5b4\ub4dc\ubca4\ucc98 \ubaa8\ubc14\uc77c \uac8c\uc784 \ud654\uba74 \ub450 \uc7a5: \uce90\ub9ad\ud130\uc640 \ub18d\uc791\ubb3c\uc774 \uc788\ub294 \uc2dc\uc791 \ud654\uba74, \ub18d\uc7a5\uc744 \uac00\uafb8\ub294 \uc778\uac8c\uc784 \ud654\uba74"]], TXT="\uc13c\ucd94\ub9ac\uac8c\uc784\uc988(Century Games)\ub294 \ud504\ub85c\uc98c \uc2dc\ud2f0, \ud328\ubc00\ub9ac \ud31c \uc5b4\ub4dc\ubca4\ucc98, \ud654\uc774\ud2b8\uc544\uc6c3 \uc11c\ubc14\uc774\ubc8c \ub4f1\uc744 \uc11c\ube44\uc2a4\ud558\ub294 \ubaa8\ubc14\uc77c \uac8c\uc784 \ud37c\ube14\ub9ac\uc154\uc785\ub2c8\ub2e4. 2020\ub144\ubd80\ud130 Mistplay\uc758 \ub85c\uc5f4\ud2f0 \ud50c\ub7ab\ud3fc\uc73c\ub85c \uafc8\uc758 \ub4dc\ub798\uace4 \uc5b4\ub4dc\ubca4\ucc98(Dragonscapes Adventure)\uc758 \uc720\uc800\ub97c \ud655\ubcf4\ud574 \uc654\uace0, 2022\ub144 AI \ucea0\ud398\uc778\uacfc \uac8c\uc784 \ubd80\uc2a4\ud305\uc744 \ub3c4\uc785\ud55c \ub4a4 \ubcfc\ub968\uc774 132% \ub298\uace0 D7 ROAS\uac00 30%, IAP \uc9c0\ucd9c\uc790\uac00 14% \ub298\uc5c8\uc2b5\ub2c8\ub2e4. \ub450 \uae30\ub2a5\uc740 \ud604\uc7ac tROAS \ucea0\ud398\uc778\uc73c\ub85c \ud1b5\ud569\ub410\uace0, \uafc8\uc758 \ub4dc\ub798\uace4 \uc5b4\ub4dc\ubca4\ucc98\ub294 2020\ub144 \ucd9c\uc2dc \uc774\ud6c4 \uc911\uad6d \ubaa8\ubc14\uc77c \uac8c\uc784 \ub9e4\ucd9c \uc0c1\uc704 30\uc704\uad8c \ud6c4\ubcf4\uc5d0 \uc62c\ub790\uc2b5\ub2c8\ub2e4."; var n=0; (function run(){ var a=document.querySelector(".article-richtext"); if(a){ if(!document.querySelector("[data-cg-aeo]")){ var p=document.createElement("p");p.setAttribute("data-cg-aeo","1");p.textContent=TXT; var f=a.firstElementChild,ref=a.firstChild; if(f&&(f.tagName==="FIGURE"||f.tagName==="IMG"||f.querySelector("img"))){ref=f.nextSibling;} a.insertBefore(p,ref); } for(var i=0;i<LK.length;i++){ var ls=a.querySelectorAll('a[href*="'+LK[i][0]+'"]'); for(var j=0;j<ls.length;j++){ls[j].setAttribute("href",LK[i][1]);ls[j].removeAttribute("target");} } for(var k=0;k<IM.length;k++){ var im=a.querySelectorAll('img[src*="'+IM[k][0]+'"]'); for(var m=0;m<im.length;m++){im[m].setAttribute("alt",IM[k][1]);} } } if(++n<120)setTimeout(run,250); })(); })()</script>
512 513<!-- Century Games KO case END --> 514<!-- Century Games KO case: JSON-LD headline (Hosoo 2026-09-23) -->
514<script>(function(){ if(location.hostname.indexOf("ko.")!==0||location.pathname.indexOf("/resources/century-games-dragoncape-adventure-mistplay")<0)return; var KO="\uc2e0\ub8b0\ub97c \ubc14\ud0d5\uc73c\ub85c \uad6c\ucd95\ub41c \ud30c\ud2b8\ub108\uc2ed: \uc13c\ucd94\ub9ac\uac8c\uc784\uc988 \uafc8\uc758 \ub4dc\ub798\uace4 \uc5b4\ub4dc\ubca4\ucc98\ub97c \uc704\ud55c \ud6a8\uacfc\uc801\uc778 \ub85c\uc5f4\ud2f0 \uac15\ud654", n=0; (function run(){ var s=document.querySelectorAll('script[type="application/ld+json"]'), hit=0; for(var i=0;i<s.length;i++){ var raw=s[i].textContent; if(raw.indexOf("DragonCape Adventure")<0) continue; var d; try{ d=JSON.parse(raw); }catch(e){ continue; } var g=d["@graph"]||[d], ch=0; for(var j=0;j<g.length;j++){ var o=g[j]; if(o["@type"]==="Article" && o.headline && o.headline.indexOf("DragonCape Adventure")>-1){ o.headline=KO; ch=1; } if(o["@type"]==="BreadcrumbList" && o.itemListElement){ for(var k=0;k<o.itemListElement.length;k++){ var it=o.itemListElement[k]; if(it.name && it.name.indexOf("DragonCape Adventure")>-1){ it.name=KO; ch=1; } } } } if(ch){ s[i].textContent=JSON.stringify(d); hit=1; } } if(hit) return; if(++n<120)setTimeout(run,250); })(); })()</script>
514 515<!-- Century Games KO JSON-LD END --><!-- HOSOO hreflang page-level 2026-09-14 / rollback: delete this block --> 516<link rel="alternate" hreflang="en" href="https://business.mistplay.com/article-tags/case-studies" /> 517<link rel="alternate" hreflang="ko" href="https://ko.business.mistplay.com/article-tags/case-studies" /></head><body class="body"><div data-animation="default" data-collapse="medium" data-duration="400" data-easing="ease" data-easing2="ease" role="banner" class="mb_nav mb_theme_dark w-nav"><section class="mb_banner"><a href="https://business.mistplay.com/resources/mistplay-iphone-japan-market-report" target="_blank" class="mb_link_banner w-inline-block"><div class="mb_link_banner_desktop">Mistplay for iPhone is live in Japan, backed by industry research ð¯ðµ ð</div><div class="mb_link_banner_mobile">Mistplay for iPhone live in Japan ð¯ðµ ð</div></a></section><section class="mb_section_nav_a mb_theme_dark mb_nav"><div class="mb_container_nav_b div-block-127"><div class="menu-button w-nav-button"><div class="icon-2 w-icon-nav-menu"></div></div><div class="mb_nav_wrapper_b"><a href="/" class="mb_logo_b w-nav-brand"><img width="140" height="49" alt="Mistplay Logo" src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/6808e83ac6302d9ff91c8ea0_mistplay_logo.svg" loading="lazy" class="mb_nav_logo_b"/></a><nav role="navigation" class="mb_nav_menu_b w-nav-menu"><div class="w-layout-hflex mb_nav_list_b"><div data-delay="100" data-hover="true" class="mb_dropdown_b w-dropdown"><div class="mb_nav_dropdown_a w-dropdown-toggle"><div class="mb_nav_dropdown_title">Advertisers</div><div class="icon-3 w-icon-dropdown-toggle"></div></div><nav class="mb_dropdown_list_b w-dropdown-list"><div class="mb_dropdown_col_b"><div class="mb_nav_eyebrow_b">ADVERTISE</div><div class="mb_nav_items_b"><div class="mb_nav_item_b"><a href="/advertisers/loyalty-program" class="mb_nav_label_b w-dropdown-link">Loyalty Platform</a><div class="mb_nav_desc_b">Take a loyalty-first approach to UA</div></div><div class="mb_nav_item_b"><a href="/advertisers/ios" class="mb_nav_dropdown_link_b w-dropdown-link">Mistplay for iPhone</a><a href="/advertisers/android" class="mb_nav_dropdown_link_b w-dropdown-link">Mistplay for Android</a></div></div><div class="mb_nav_items_b"><div class="mb_nav_item_b"><a href="/advertisers/mistplay-audience-network" class="mb_nav_label_b w-dropdown-link">Mistplay Audience Network</a><div class="mb_nav_desc_b">Achieve new scale beyond gaming</div></div></div><div class="code-embed-3 w-embed"><style> 518#w-dropdown-list-0 a { 519 text-transform:none !important; 520} 521</style></div></div><div class="mb_dropdown_col_b"><div class="mb_nav_eyebrow_b">Monetize</div><div class="mb_nav_items_b"><div class="mb_nav_item_b"><a href="/advertisers/hex" class="mb_nav_label_b w-dropdown-link">HEX</a><div class="mb_nav_desc_b">Add revenue to your game with play-and-earn</div></div></div><div class="code-embed-3 w-embed"><style> 522#w-dropdown-list-0 a { 523 text-transform:none !important; 524} 525</style></div></div></nav></div><div data-delay="0" data-hover="true" class="mb_dropdown_b w-dropdown"><div class="mb_nav_dropdown_a w-dropdown-toggle"><div class="mb_nav_dropdown_title">Publishers</div><div class="icon-3 w-icon-dropdown-toggle"></div></div><nav class="mb_dropdown_list_b w-dropdown-list"><div class="mb_dropdown_col_b"><div class="mb_nav_eyebrow_b">Products</div><div class="mb_nav_items_b"><div class="mb_nav_item_b"><a href="/publishers/loyaltyplay" class="mb_nav_label_b w-dropdown-link">LoyaltyPlay</a><div class="mb_nav_desc_b">Drive new LTV and ROAS with rewarded</div></div><div class="mb_nav_item_b"><a href="/publishers/loyaltyplay/app-publishers" class="mb_nav_dropdown_link_b w-dropdown-link">For apps driving revenue</a><a href="/publishers/loyaltyplay/brands-retailers" class="mb_nav_dropdown_link_b w-dropdown-link">For brands driving loyalty</a></div></div><div class="code-embed-3 w-embed"><style> 526#w-dropdown-list-0 a { 527 text-transform:none !important; 528} 529</style></div></div><div class="mb_dropdown_col_b"><div class="mb_nav_eyebrow_b">Verticals</div><div class="mb_nav_items_b"><div class="mb_nav_item_b"><a href="/publishers/loyaltyplay/restaurants" class="mb_nav_label_b w-dropdown-link">For Restaurants</a><a href="/publishers/loyaltyplay/finance-fintech" class="mb_nav_label_b w-dropdown-link">For Finance & Fintech</a><a href="/publishers/loyaltyplay/shopping-cashback" class="mb_nav_label_b w-dropdown-link">For Shopping & Cashback</a><a href="/publishers/loyaltyplay/fuel-convenience-stores" class="mb_nav_label_b w-dropdown-link">For Fuel & C-store</a></div></div><div class="code-embed-3 w-embed"><style> 530#w-dropdown-list-0 a { 531 text-transform:none !important; 532} 533</style></div></div></nav></div><div data-delay="0" data-hover="true" class="mb_dropdown_b w-dropdown"><div class="mb_nav_dropdown_a w-dropdown-toggle"><div href="#" class="mb_nav_dropdown_title">Resources</div><div class="icon-3 w-icon-dropdown-toggle"></div></div><nav class="mb_dropdown_list_b w-dropdown-list"><div class="mb_dropdown_col_b"><div class="mb_nav_eyebrow_b">Explore</div><div class="mb_nav_items_b"><div class="mb_nav_item_b"><a href="/resources" class="mb_nav_label_b w-dropdown-link">Articles</a><a href="/article-tags/case-studies" aria-current="page" class="mb_nav_label_b w-dropdown-link w--current">Case Studies</a><a href="/reports" class="mb_nav_label_b w-dropdown-link">Industry Reports</a><a href="/glossary" class="mb_nav_label_b w-dropdown-link">Glossary</a><a href="/events" class="mb_nav_label_b w-dropdown-link">Events</a></div></div><div class="code-embed-3 w-embed"><style> 534#w-dropdown-list-0 a { 535 text-transform:none !important; 536} 537</style></div></div><div class="mb_dropdown_col_b mb_dropdown_col_b_hide"><div class="mb_nav_eyebrow_b">Latest</div><div class="code-embed-3 w-embed"><style> 538#w-dropdown-list-0 a { 539 text-transform:none !important; 540} 541</style></div><div class="collection-list-wrapper-10 w-dyn-list"><div role="list" class="collection-list-7 w-dyn-items w-row"><div data-available-languages="en" role="listitem" class="collection-item-6 w-dyn-item w-col w-col-6"><a href="/resources/fintech-engagement-strategies" class="w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aba81c8a4dbb7d058c7d837_fintech%20engagement%20strategies%20(1).png" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aba81c8a4dbb7d058c7d837_fintech%20engagement%20strategies%20(1)-p-500.png 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aba81c8a4dbb7d058c7d837_fintech%20engagement%20strategies%20(1)-p-800.png 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aba81c8a4dbb7d058c7d837_fintech%20engagement%20strategies%20(1)-p-1080.png 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aba81c8a4dbb7d058c7d837_fintech%20engagement%20strategies%20(1).png 1279w"/><div class="mb_nav_desc">5 fintech engagement strategies for higher customer retention (with real examples)</div></a></div><div data-available-languages="en" role="listitem" class="collection-item-6 w-dyn-item w-col w-col-6"><a href="/resources/card-linked-offers" class="w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aad2a902af939f618c45c7f_Card-linked%20offers.png" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aad2a902af939f618c45c7f_Card-linked%20offers-p-500.png 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aad2a902af939f618c45c7f_Card-linked%20offers-p-800.png 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aad2a902af939f618c45c7f_Card-linked%20offers-p-1080.png 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aad2a902af939f618c45c7f_Card-linked%20offers.png 1279w"/><div class="mb_nav_desc">Why card-linked offers (CLOs) work and how you can use them to monetize your app</div></a></div><div data-available-languages="en" role="listitem" class="collection-item-6 w-dyn-item w-col w-col-6"><a href="/resources/mobile-game-influencer-marketing" class="w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aa8fa7f8096ab4b33d4c29b_Influencer%20marketing%20mobile%20games.png" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aa8fa7f8096ab4b33d4c29b_Influencer%20marketing%20mobile%20games-p-500.png 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aa8fa7f8096ab4b33d4c29b_Influencer%20marketing%20mobile%20games-p-800.png 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aa8fa7f8096ab4b33d4c29b_Influencer%20marketing%20mobile%20games-p-1080.png 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aa8fa7f8096ab4b33d4c29b_Influencer%20marketing%20mobile%20games.png 1279w"/><div class="mb_nav_desc">Mobile game influencer marketing: What actually works, according to someone who's spent $30M finding out</div></a></div><div data-available-languages="en" role="listitem" class="collection-item-6 w-dyn-item w-col w-col-6"><a href="/resources/bank-and-credit-card-loyalty-programs" class="w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aa2cf5b54bf7521c3bc11d3_bank%20loyalty%20programs.png" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aa2cf5b54bf7521c3bc11d3_bank%20loyalty%20programs-p-500.png 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aa2cf5b54bf7521c3bc11d3_bank%20loyalty%20programs-p-800.png 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aa2cf5b54bf7521c3bc11d3_bank%20loyalty%20programs-p-1080.png 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6aa2cf5b54bf7521c3bc11d3_bank%20loyalty%20programs.png 1279w"/><div class="mb_nav_desc">Beyond points: Revamping bank and credit card loyalty programs in todayâs market</div></a></div><div data-available-languages="en" role="listitem" class="collection-item-6 w-dyn-item w-col w-col-6"><a href="/resources/connections-live-2026" class="w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a96e3ac75024ae7d192974f_Connections%20Live%202026%20hero%20image%2
5410(1).avif" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a96e3ac75024ae7d192974f_Connections%20Live%202026%20hero%20image%20(1)-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a96e3ac75024ae7d192974f_Connections%20Live%202026%20hero%20image%20(1)-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a96e3ac75024ae7d192974f_Connections%20Live%202026%20hero%20image%20(1)-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a96e3ac75024ae7d192974f_Connections%20Live%202026%20hero%20image%20(1).avif 1417w"/><div class="mb_nav_desc">Connections Live 2026 highlights: Bringing the power of rewarded to fuel and convenience brands</div></a></div><div data-available-languages="en" role="listitem" class="collection-item-6 w-dyn-item w-col w-col-6"><a href="/resources/fuel-case-study-sinclair-oil" class="w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a79ed25ec8062230b7e99e1_2026-05_LoyaltyPlay-Blog_SinclairOil_Header%20(1).avif" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a79ed25ec8062230b7e99e1_2026-05_LoyaltyPlay-Blog_SinclairOil_Header%20(1)-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a79ed25ec8062230b7e99e1_2026-05_LoyaltyPlay-Blog_SinclairOil_Header%20(1)-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a79ed25ec8062230b7e99e1_2026-05_LoyaltyPlay-Blog_SinclairOil_Header%20(1)-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a79ed25ec8062230b7e99e1_2026-05_LoyaltyPlay-Blog_SinclairOil_Header%20(1)-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a79ed25ec8062230b7e99e1_2026-05_LoyaltyPlay-Blog_SinclairOil_Header%20(1).avif 2048w"/><div class="mb_nav_desc">Fuelling return trips: How Sinclair Oil drove 42% more visits and 9.7% more fuel purchases with LoyaltyPlay</div></a></div><div data-available-languages="EN" role="listitem" class="collection-item-6 w-dyn-item w-col w-col-6"><a href="/resources/c-store-fuel-customer-loyalty-programs" class="w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a98704198aea4d37df3d329_C-store%20banner%20final(1)(1).avif" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a98704198aea4d37df3d329_C-store%20banner%20final(1)(1)-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a98704198aea4d37df3d329_C-store%20banner%20final(1)(1)-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a98704198aea4d37df3d329_C-store%20banner%20final(1)(1)-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a98704198aea4d37df3d329_C-store%20banner%20final(1)(1)-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a98704198aea4d37df3d329_C-store%20banner%20final(1)(1)-p-2000.avif 2000w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a98704198aea4d37df3d329_C-store%20banner%20final(1)(1).avif 2500w"/><div class="mb_nav_desc">Building fuel & c-store loyalty that lasts: A new approach for operators </div></a></div><div data-available-languages="en,zh,ja,ko" role="listitem" class="collection-item-6 w-dyn-item w-col w-col-6"><a href="/resources/igg-case-study" class="w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a84665520aa2b6dc6ebdd96_2026-07_CaseStudy_IGG-Doomsday_Blog-Banner%20(1).avif" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a84665520aa2b6dc6ebdd96_2026-07_CaseStudy_IGG-Doomsday_Blog-Banner%20(1)-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a84665520aa2b6dc6ebdd96_2026-07_CaseStudy_IGG-Doomsday_Blog-Banner%20(1)-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a84665520aa2b6dc6ebdd96_2026-07_CaseStudy_IGG-Doomsday_Blog-Banner%20(1)-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a84665520aa2b6dc6ebdd96_2026-07_CaseStudy_IGG-Doomsday_Blog-Banner%20(1).avif 1417w"/><div class="mb_nav_desc">IGG partners with Mistplay to unlock 300% install growth for Doomsday: Last Survivors in Japan</div></a></div><div data-available-languages="en,ja,ko" role="listitem" class="collection-item-6 w-dyn-item w-col w-col-6"><a href="/resources/fintech-gamification" class="w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a8339115856aa68a0ca37f6_Fintech%20Gamification%20Blog%20B
541anner.avif" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a8339115856aa68a0ca37f6_Fintech%20Gamification%20Blog%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a8339115856aa68a0ca37f6_Fintech%20Gamification%20Blog%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a8339115856aa68a0ca37f6_Fintech%20Gamification%20Blog%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a8339115856aa68a0ca37f6_Fintech%20Gamification%20Blog%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a8339115856aa68a0ca37f6_Fintech%20Gamification%20Blog%20Banner.avif 2000w"/><div class="mb_nav_desc">How gamification can turn your fintech app into a daily app</div></a></div><div data-available-languages="en,zh,ja,ko" role="listitem" class="collection-item-6 w-dyn-item w-col w-col-6"><a href="/resources/chinajoy-2026-highlights" class="w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a7c7675206acc5b8a2309dd_Blog%20banner%20(1).avif" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a7c7675206acc5b8a2309dd_Blog%20banner%20(1)-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a7c7675206acc5b8a2309dd_Blog%20banner%20(1)-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a7c7675206acc5b8a2309dd_Blog%20banner%20(1)-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a7c7675206acc5b8a2309dd_Blog%20banner%20(1).avif 1417w"/><div class="mb_nav_desc">ChinaJoy 2026 highlights insights: Reshaping mobile gaming growth in peak summer</div></a></div></div></div></div></nav></div><div data-delay="0" data-hover="true" class="mb_dropdown_b w-dropdown"><div class="mb_nav_dropdown_a w-dropdown-toggle"><div href="#" class="mb_nav_dropdown_title">Company</div><div class="icon-3 w-icon-dropdown-toggle"></div></div><nav class="mb_dropdown_list_b w-dropdown-list"><div class="mb_dropdown_col_b"><div class="mb_nav_items_b"><div class="mb_nav_item_b"><a href="/about-us" class="mb_nav_label_b w-dropdown-link">About Us</a><a href="/newsroom" class="mb_nav_label_b w-dropdown-link">Newsroom</a></div></div><div class="code-embed-3 w-embed"><style> 542#w-dropdown-list-0 a { 543 text-transform:none !important; 544} 545</style></div></div></nav></div><div class="code-embed-4 w-embed"><style> 546nav#w-dropdown-list-3 { 547 width: max-content !important; 548} 549nav#w-dropdown-list-2 { 550 right: 0; 551 left: auto; 552} 553@media (max-width: 1645px) { 554 .dropdown-list.resource-styling.w--open { 555 flex-flow:column !important; 556 width:35rem; 557 justify-content:left; 558 } 559 .container-28 { 560 width: 100% !important; 561 } 562} 563</style></div></div></nav></div><div class="mb_nav_cta_wrapper_b"><div data-delay="300" data-hover="true" class="wg-dropdown-1 w-dropdown"><nav class="wg-dd-1-list wg-dropdown-link-flag w-dropdown-list"><a id="lang-fr" lang="fr" href="#" class="wg-dropdown-1-link-2 w-inline-block"><div class="wg-selector-text-wrapper"><div class="wg-flag"><img alt="french flag icon" src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/67ae5a0c0c4e8738d074501b_FR.svg" class="wg-flag-ico"/></div><div class="txt-m txt-medium mb_text_lang_dropdown">FR</div></div></a><a id="lang-ko" lang="ko" href="#" class="wg-dropdown-1-link-2 w-inline-block"><div class="wg-selector-text-wrapper"><div class="wg-flag"><img alt="Korean flag icon" src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/67ae5a0c0c4e8738d074501e_KR.svg" class="wg-flag-ico"/></div><div class="txt-m txt-medium mb_text_lang_dropdown">KO</div></div></a><a id="lang-ko" lang="de" href="#" class="wg-dropdown-1-link-2 w-inline-block"><div class="wg-selector-text-wrapper"><div class="wg-flag"><img alt="German flag icon" src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/67ae5a0c0c4e8738d074501a_GE.svg" class="wg-flag-ico"/></div><div class="txt-m txt-medium mb_text_lang_dropdown">DE</div></div></a><a id="lang-zh" lang="zh" href="#" class="wg-dropdown-1-link-2 w-inline-block"><div class="wg-selector-text-wrapper"><div class="wg-flag"><img alt="" src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/67ae5a0c0c4e8738d0745140_CN_Flag.svg" class="wg-flag-ico"/></div><div class="txt-m txt-medium mb_text_lang_dropdown">
563ZH</div></div></a></nav></div><div class="wg-element-wrapper sw6"><div class="mb_nav_embed w-embed w-script"><!-- Language Redirect Banner --> 564<div class="lang-redirect-banner" id="lang-redirect-banner" style="display: none;"> 565 <div class="banner-content"> 566 <span class="banner-text">This article is not yet available in your selected language. You are viewing the English version.</span> 567 <button class="banner-close" aria-label="Close banner">×</button> 568 </div> 569</div> 570 571<!-- <style> 572h1.mb_h1.mb_text_primary { 573 word-break: keep-all; 574 overflow-wrap: break-word; 575} 576html[lang="ja"] h1.mb_h1.mb_text_primary { 577 font-size: clamp(2.5rem, 6vw, 5rem); 578} 579</style> --> 580<!-- Fix JA word breaks -->
581<script> 582 const isJa = location.hostname.startsWith('ja.') 583 || new URLSearchParams(location.search).get('lang') === 'ja'; 584 if (isJa && location.pathname.startsWith('/resources') && location.pathname !== '/resources/locone-loyaltyplay-case-study') { 585 const s = document.createElement('script'); 586 s.src = 'https://cdn.jsdelivr.net/npm/[email protected]/bundle/budoux-ja.min.js'; 587 s.defer = true; 588 s.onload = () => { 589 const apply = () => { 590 document.querySelectorAll('h1, .hero h1, .blog-post-title').forEach(el => { 591 const text = el.textContent.trim(); 592 if (!text || el.querySelector('budoux-ja')) return; 593 const b = document.createElement('budoux-ja'); 594 b.textContent = text; 595 el.textContent = ''; 596 el.appendChild(b); 597 }); 598 }; 599 if (document.readyState === 'loading') { 600 document.addEventListener('DOMContentLoaded', apply); 601 } else { 602 apply(); 603 } 604 }; 605 document.head.appendChild(s); 606 607 const style = document.createElement('style'); 608 style.textContent = ` 609 h1, .hero h1, .blog-post-title { 610 word-break: keep-all; 611 overflow-wrap: anywhere; 612 line-break: strict; 613 } 614 `; 615 document.head.appendChild(style); 616 } 617</script>
617 618 619<!-- KO: site-wide word-break rules -->
620<script> 621 const isKo = location.hostname.startsWith('ko.') 622 || new URLSearchParams(location.search).get('lang') === 'ko'; 623 if (isKo) { 624 const koStyle = document.createElement('style'); 625 koStyle.textContent = ` 626 html { 627 word-break: keep-all; 628 overflow-wrap: break-word; 629 } 630 `; 631 document.head.appendChild(koStyle); 632 } 633</script>
633 634 635<style> 636 .article-richtext li { 637 color: #5b5c81 !important; 638 } 639 p.mb_p.mb_p-sm.mb_text_primary.mb_text_center { 640 margin-top: 1rem; 641 } 642 643 .mb_card_a.mb_border_primary p { 644 line-height: 1.7; 645 } 646 .mb_h3.mb_text_primary.mb_text_center.mb_text_no-margin.mb_card_b_title { 647 line-height: 1.3; 648 } 649 .mb_p_sm.mb_text_primary.mb_text_center { 650 line-height: 1.3; 651} 652 653 address#lang-en div { 654 color: white; 655 } 656 657 .language-dropdown { 658 position: relative; 659 display: inline-block; 660 cursor: pointer; 661 } 662 663 .dropdown-toggle { 664 display: flex; 665 align-items: center; 666 padding: 10px; 667 border-radius: 4px; 668 } 669 670 .dropdown-toggle .flag img { 671 width: 100% !important; 672 height: 20px; 673 margin-right: 10px; 674 } 675 676 .dropdown-toggle .language-code { 677 font-size: 16px; 678 color: white; 679 } 680 681 .dropdown-list { 682 display: none; 683 position: absolute; 684 top: 100%; 685 left: 0; 686 background-color: #fff; 687 border: 1px solid #ccc; 688 border-radius: 4px; 689 box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2); 690 z-index: 1; 691 } 692 693 .language-dropdown:hover .dropdown-list { 694 display: block; 695 } 696 697 .dropdown-link { 698 display: flex; 699 align-items: center; 700 padding: 10px; 701 text-decoration: none; 702 color: #000; 703 } 704 705 .dropdown-link:hover { 706 background-color: #f1f1f1; 707 } 708 709 .dropdown-link .flag { 710 width: 30px; 711 } 712 713 .dropdown-link .flag img { 714 width: 100% !important; 715 height: 20px; 716 margin-right: 10px; 717 } 718 719 .dropdown-link .language-code { 720 font-size: 16px; 721 } 722 723 .wg-element-wrapper.sw6 { 724 width: auto !important; 725 } 726 727 .wg-dd-1-list .txt-m, 728 .wg-dd-1-list .txt-medium, 729 .wg-dd-1-list .mb_text_lang_dropdown { 730 color: black !important; 731 } 732 733 .wg-dropdown-1-link-2 .txt-m, 734 .wg-dropdown-1-link-2 .txt-medium, 735 .wg-dropdown-1-link-2 .mb_text_lang_dropdown { 736 color: black !important; 737 } 738 739 .language-current { 740 opacity: 0.5; 741 pointer-events: none; 742 background-color: #f5f5f5 !important; 743 } 744 745 .language-current .mb_text_lang_dropdown { 746 color: #999 !important; 747 } 748 749 #lang-current .txt-m, 750 #lang-current .txt-medium, 751 #lang-current #current-lang-text { 752 color: white !important; 753 } 754 755 .wg-default.weglot-container--left, 756 .wg-default.weglot-container--left .country-selector { 757 display: none; 758 } 759 760 .lang-unavailable { 761 opacity: 0.4 !important; 762 pointer-events: none !important; 763 cursor: not-allowed !important; 764 background-color: #f9f9f9 !important; 765 } 766 767 .lang-unavailable .mb_text_lang_dropdown { 768 color: #999 !important; 769 } 770 771 .lang-unavailable .wg-flag-ico { 772 filter: grayscale(100%); 773 } 774 775 /* Hide items not available in current language */ 776 .lang-hidden { 777 display: none !important; 778 } 779 780 /* Custom pagination styles */ 781 .custom-pagination { 782 display: flex; 783 justify-content: center; 784 align-items: center; 785 gap: 10px; 786 margin-top: 30px; 787 padding: 20px; 788 } 789 790 .pagination-btn { 791 padding: 10px 20px; 792 border: 1px solid #ddd; 793 border-radius: 6px; 794 text-decoration: none; 795 color: #333; 796 background: #fff; 797 transition: all 0.2s; 798 } 799 800 .pagination-btn:hover { 801 background: #f5f5f5; 802 border-color: #999; 803 } 804 805 .pagination-info { 806 padding: 10px 20px; 807 font-weight: 500; 808 } 809 810 .no-results-message { 811 text-align: center; 812 padding: 60px 20px; 813 color: #666; 814 font-size: 18px; 815 } 816 817 /* Redirect Banner Styles */ 818 .lang-redirect-banner { 819 position: fixed; 820 top: 0; 821 left: 0; 822 right: 0; 823 background: #1a1a2e; 824 color: #ffffff; 825 padding: 12px 20px; 826 z-index: 9999; 827 box-shadow: 0 2px 10px rgba(0,0,0,0.2); 828 } 829 830 .lang-redirect-banner .banner-content { 831 max-width: 1200px; 832 margin: 0 auto; 833 display: flex; 834 align-items: center; 835 justify-content: center; 836 gap: 12px; 837 } 838 839 .lang-redirect-banner .banner-text { 840 font-size: 14px; 841 } 842 843 .lang-redirect-banner .banner-close { 844 background: none; 845 border: none; 846 color: #ffffff; 847 font-size: 24px; 848 cursor: pointer; 849 padding: 0 8px; 850 opacity: 0.7; 851 line-height: 1; 852 } 853
854 .lang-redirect-banner .banner-close:hover { 855 opacity: 1; 856 } 857</style> 858 859<div data-delay="300" data-hover="true" data-w-id="a78c205e-83e8-11e6-c4bb-7fd3d1591490" 860 class="wg-dropdown-1 w-dropdown" style="background-color: rgba(0, 0, 0, 0);"> 861 <address id="lang-current" class="wg-dd-1-togle-2 w-dropdown-toggle" aria-controls="w-dropdown-list-3" 862 aria-haspopup="menu" aria-expanded="false" role="button" tabindex="0"> 863 <div class="wg-selector-text-wrapper v-mg-xxxs"> 864 <div class="wg-flag"> 865 <img id="current-flag" alt="Current language flag" 866 src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/67ae5a0c0c4e8738d0745029_UK.svg" 867 class="wg-flag-ico"> 868 </div> 869 <div id="current-lang-text" class="txt-m txt-medium">EN</div> 870 </div> 871 </address> 872 <nav class="wg-dd-1-list wg-dropdown-link-flag w-dropdown-list" id="w-dropdown-list-3" aria-labelledby="lang-current"> 873 </nav> 874</div> 875
876<script> 877// Enhanced Mistplay Language Selector with Language Visibility Control 878(function () { 879 'use strict'; 880 881 // Note: On production, we work WITH Weglot instead of fighting its URL interception 882 // We use Weglot.switchTo('en') to show English content while staying on the language subdomain 883 884 document.addEventListener('DOMContentLoaded', function() { 885 const STAGING_DOMAINS = ['webflow.io', 'webflow.com']; 886 const isStaging = STAGING_DOMAINS.some(d => window.location.hostname.includes(d)); 887 888 const LANGUAGE_CONFIG = { 889 'en': { 890 domain: 'business.mistplay.com', 891 flag: 'https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/67ae5a0c0c4e8738d0745029_UK.svg', 892 alt: 'UK flag icon', 893 code: 'EN' 894 }, 895 'fr': { 896 domain: 'fr.business.mistplay.com', 897 flag: 'https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/67ae5a0c0c4e8738d074501b_FR.svg', 898 alt: 'French flag icon', 899 code: 'FR' 900 }, 901 'de': { 902 domain: 'de.business.mistplay.com', 903 flag: 'https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/67ae5a0c0c4e8738d074501a_GE.svg', 904 alt: 'German flag icon', 905 code: 'DE' 906 }, 907 'ko': { 908 domain: 'ko.business.mistplay.com', 909 flag: 'https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/67ae5a0c0c4e8738d074501e_KR.svg', 910 alt: 'Korean flag icon', 911 code: 'KO' 912 }, 913 'ja': { 914 domain: 'ja.business.mistplay.com', 915 flag: 'https://cdn.prod.website-files.com/5f0ca36cf0757c5e00e2ee0a/662a84fb93e86ddf145d8d7d_ja-ico.png', 916 alt: 'Japanese flag icon', 917 code: 'JA' 918 }, 919 'zh': { 920 domain: 'zh.business.mistplay.com', 921 flag: 'https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/67ae5a0c0c4e8738d0745140_CN_Flag.svg', 922 alt: 'Chinese flag icon', 923 code: 'ZH' 924 } 925 }; 926 927 const currentUrlPath = window.location.pathname; 928 const currentDomain = window.location.hostname; 929 930 const getCurrentLangFromUrl = () => { 931 if (isStaging) { 932 const urlParams = new URLSearchParams(window.location.search); 933 const langParam = urlParams.get('lang'); 934 return (langParam && LANGUAGE_CONFIG[langParam.toLowerCase()]) ? langParam.toLowerCase() : 'en'; 935 } 936 const subdomain = currentDomain.split('.')[0]; 937 return LANGUAGE_CONFIG[subdomain] ? subdomain : 'en'; 938 }; 939 940 const currentLanguage = getCurrentLangFromUrl(); 941 const currentLanguageConfig = LANGUAGE_CONFIG[currentLanguage]; 942 943 // Override top announcement banner text on ja / ko subdomains. 944 // Runs before the dropdown null-check so it still applies on pages without the selector. 945 const updateAnnouncementBanner = () => { 946 const bannerTexts = { 947 'ja': 'MAFã¨MyChipsã¯ããã®ãã³Mistplayã®ãã©ã³ãã¨ãã¦æ°ããªã¹ã¿ã¼ããåãã¾ããããã¾ã§ã¨å¤ãããªããã¼ã ã§ãããããã¯Mistplayã¨ãã¦ãµã¼ãã¹ãæä¾ãã¦ã¾ããã¾ãã', 948 'ko': 'MAFì MyChipsë ì´ì Mistplayì ì¼ë¶ì ëë¤. ìì¼ë¡ë Mistplayìì ë§ëë³´ì¸ì' 949 }; 950 const newText = bannerTexts[currentLanguage]; 951 if (!newText) return; 952 document.querySelectorAll('.mb_link_banner_desktop, .mb_link_banner_mobile').forEach(el => { 953 el.textContent = newText; 954 }); 955 }; 956 updateAnnouncementBanner(); 957 958 const currentFlag = document.getElementById('current-flag'); 959 const currentLangText = document.getElementById('current-lang-text'); 960 const dropdownList = document.getElementById('w-dropdown-list-3'); 961 962 if (!dropdownList) { 963 console.log('Language dropdown not found'); 964 return; 965 } 966 967 const getAvailableLanguages = () => { 968 const articleContainer = document.querySelector('[data-article-languages]'); 969 if (!articleContainer) return null; 970 const availableLangs = articleContainer.getAttribute('data-article-languages') || 'en'; 971 return availableLangs.split(',').map(l => l.trim().toLowerCase()); 972 }; 973 974 const isLanguageAvailable = (lang, availableLangs) => { 975 if (!availableLangs) return true; 976 return availableLangs.includes(lang); 977 }; 978 979 // Set current language display 980 if (currentFlag && currentLangText && currentLanguageConfig) { 981 currentFlag.src = currentLanguageConfig.flag; 982 currentFlag.alt = currentLanguageConfig.alt; 983 currentLangText.innerHTML = currentLanguageConfig.code; 984 } 985 986 const availableLangs = getAvailableLanguages(); 987 988 // Populate dropdown 989 Object.keys(LANGUAGE_CONFIG).forEach(lang => { 990 const langConfig = LANGUAGE_CONFIG[lang]; 991 const langItem = document.createElement('a'); 992 langItem.className = 'wg-dropdown-1-link-2 wg-dd-1-list-item w-dropdown-link'; 993 langItem.setAttribute('data-lang', lang); 994 995 const isAvailable = isLanguageAvailable(lang, availableLangs); 996 997 if (!isAvailable) { 998 langItem.classList.add('lang-unavailable'); 999 langItem.setAttribute('title', 'This article is not available in this language'); 1000 langItem.setAttribute('aria-disabled', 'true'); 1001 } else { 1002 if (isStaging) { 1003 const url = new URL(window.location.href); 1004 if (lang === 'en') { 1005 url.searchParams.delete('lang'); 1006 } else { 1007 url.searchParams.set('lang', lang); 1008 } 1009 langItem.href = url.toString(); 1010 } else { 1011 if (lang === 'en') { 1012 langItem.href = `https://business.mistplay.com${currentUrlPath}`; 1013 } else { 1014 langItem.href = `https://${langConfig.domain}${currentUrlPath}`; 1015 } 1016 } 1017 } 1018 1019 langItem.setAttribute('aria-label', `Switch to ${langConfig.code}${!isAvailable ? ' (not available)' : ''}`); 1020 langItem.innerHTML = ` 1021 <div class="wg-selector-text-wrapper"> 1022 <div class="wg-flag"> 1023 <img src="${langConfig.flag}" alt="${langConfig.alt}" class="wg-flag-ico"> 1024 </div> 1025 <div class="txt-m txt-medium mb_text_lang_dropdown">${langConfig.code}</div> 1026 </div> 1027 `; 1028 dropdownList.appendChild(langItem); 1029 }); 1030 1031 // Redirect handler for unavailable languages 1032 const checkAndRedirect = () => { 1033 // Skip if already redirected (prevent loops)
1034 const urlParams = new URLSearchParams(window.location.search); 1035 if (urlParams.get('redirectedFrom')) return; 1036 1037 const articleContainer = document.querySelector('[data-article-languages]'); 1038 if (!articleContainer) return; 1039 1040 const articleLangs = articleContainer.getAttribute('data-article-languages') || 'en'; 1041 const langArray = articleLangs.split(',').map(l => l.trim().toLowerCase()).filter(Boolean); 1042 1043 if (langArray.includes(currentLanguage)) return; 1044 1045 // Redirect to the first language listed in available-languages. 1046 const targetLang = langArray[0] || 'en'; 1047 const targetConfig = LANGUAGE_CONFIG[targetLang]; 1048 if (!targetConfig) return; 1049 1050 console.log('[LangControl] Article not available in ' + currentLanguage + ', switching to ' + targetLang); 1051 1052 if (isStaging) { 1053 // For staging, redirect with URL param 1054 const url = new URL(window.location.href); 1055 if (targetLang === 'en') { 1056 url.searchParams.delete('lang'); 1057 } else { 1058 url.searchParams.set('lang', targetLang); 1059 } 1060 url.searchParams.set('redirectedFrom', currentLanguage); 1061 window.location.href = url.toString(); 1062 } else { 1063 // Production: use window.name to pass data across subdomain navigation. 1064 window.name = JSON.stringify({ 1065 langRedirect: { 1066 from: currentLanguage, 1067 path: currentUrlPath, 1068 time: Date.now() 1069 } 1070 }); 1071 1072 if (currentLanguage !== 'en' && targetLang === 'en') { 1073 // Existing pattern: swap non-EN â EN via Weglot on the current subdomain. 1074 console.log('[LangControl] Set window.name, now calling Weglot.switchTo(en)'); 1075 const switchToEnglish = () => { 1076 if (typeof Weglot !== 'undefined' && Weglot.switchTo) { 1077 Weglot.switchTo('en'); 1078 } 1079 }; 1080 if (typeof Weglot !== 'undefined' && Weglot.switchTo) { 1081 switchToEnglish(); 1082 } else { 1083 const checkWeglot = setInterval(() => { 1084 if (typeof Weglot !== 'undefined' && Weglot.switchTo) { 1085 clearInterval(checkWeglot); 1086 switchToEnglish(); 1087 } 1088 }, 100); 1089 setTimeout(() => clearInterval(checkWeglot), 5000); 1090 } 1091 } else { 1092 // Any other case (EN â non-EN, or non-EN â different non-EN): navigate directly to target subdomain. 1093 window.location.href = 'https://' + targetConfig.domain + currentUrlPath; 1094 } 1095 } 1096 }; 1097 1098 // Filter and paginate listing page items by language 1099 const filterAndPaginateItems = () => { 1100 const listingPages = ['/resources', '/article-tags/', '/reports']; 1101 const isListingPage = listingPages.some(p => currentUrlPath.startsWith(p) || currentUrlPath === p); 1102 1103 if (!isListingPage) return; 1104 1105 const ITEMS_PER_PAGE = 9; 1106 // Only target main content items (not nav dropdowns or hero sections) 1107 const mainContainer = document.querySelector('.w-container .w-dyn-list, .mb_container .w-dyn-list'); 1108 if (!mainContainer) return; 1109 const allItems = mainContainer.querySelectorAll('.w-dyn-item[data-available-languages]'); 1110 1111 // Filter items based on language. 1112 // Empty data-available-languages == English only. 1113 // A non-empty list means the item is visible only in those languages 1114 // (so a "ja"-only item is hidden on the English listing). 1115 const filteredItems = []; 1116 allItems.forEach((item) => { 1117 const availableLangs = item.getAttribute('data-available-languages'); 1118 1119 if (!availableLangs || availableLangs.trim() === '') { 1120 if (currentLanguage === 'en') { 1121 filteredItems.push(item); 1122 } else { 1123 item.classList.add('lang-hidden'); 1124 } 1125 } else { 1126 const langArray = availableLangs.split(',').map(l => l.trim().toLowerCase()); 1127 if (langArray.includes(currentLanguage)) { 1128 filteredItems.push(item); 1129 } else { 1130 item.classList.add('lang-hidden'); 1131 } 1132 } 1133 }); 1134 1135 // Sort by data-custom-date (descending). Items missing the attribute 1136 // sort to the end, preserving DOM order among themselves. 1137 filteredItems.sort((a, b) => { 1138 const aRaw = (a.getAttribute('data-custom-date') || '').trim(); 1139 const bRaw = (b.getAttribute('data-custom-date') || '').trim(); 1140 const aTime = aRaw ? Date.parse(aRaw) : NaN; 1141 const bTime = bRaw ? Date.parse(bRaw) : NaN; 1142 const aValid = !isNaN(aTime); 1143 const bValid = !isNaN(bTime);
1144 if (aValid && bValid) return bTime - aTime; 1145 if (aValid) return -1; 1146 if (bValid) return 1; 1147 return 0; 1148 }); 1149 1150 // Reorder DOM so paginated slices render in sorted order. 1151 const sortParent = filteredItems[0] && filteredItems[0].parentNode; 1152 if (sortParent) { 1153 filteredItems.forEach(item => sortParent.appendChild(item)); 1154 } 1155 1156 1157 // If no items or only one page, no pagination needed 1158 if (filteredItems.length === 0) { 1159 hideWebflowPagination(); 1160 showNoResultsMessage(); 1161 return; 1162 } 1163 1164 // Get current page from URL 1165 const urlParams = new URLSearchParams(window.location.search); 1166 let currentPage = parseInt(urlParams.get('page')) || 1; 1167 const totalPages = Math.ceil(filteredItems.length / ITEMS_PER_PAGE); 1168 1169 // Clamp to valid range 1170 if (currentPage > totalPages) currentPage = totalPages; 1171 if (currentPage < 1) currentPage = 1; 1172 1173 // Hide all filtered items first 1174 filteredItems.forEach(item => item.classList.add('lang-hidden')); 1175 1176 // Show only items for current page 1177 const startIndex = (currentPage - 1) * ITEMS_PER_PAGE; 1178 const endIndex = startIndex + ITEMS_PER_PAGE; 1179 filteredItems.slice(startIndex, endIndex).forEach(item => { 1180 item.classList.remove('lang-hidden'); 1181 }); 1182 1183 // Update pagination UI 1184 updatePaginationUI(currentPage, totalPages, filteredItems.length); 1185 }; 1186 1187 const hideWebflowPagination = () => { 1188 const webflowPagination = document.querySelector('.w-pagination-wrapper'); 1189 if (webflowPagination) { 1190 webflowPagination.style.display = 'none'; 1191 } 1192 }; 1193 1194 const showNoResultsMessage = () => { 1195 const container = document.querySelector('.w-dyn-list'); 1196 if (container && !document.querySelector('.no-results-message')) { 1197 const msg = document.createElement('div'); 1198 msg.className = 'no-results-message'; 1199 msg.style.cssText = 'text-align: center; padding: 40px; color: #666;'; 1200 msg.textContent = 'No articles available in this language yet.'; 1201 container.appendChild(msg); 1202 } 1203 }; 1204 1205 const updatePaginationUI = (currentPage, totalPages, totalItems) => { 1206 // Hide Webflow's pagination 1207 hideWebflowPagination(); 1208 1209 // Remove existing custom pagination 1210 const existingPagination = document.querySelector('.custom-pagination'); 1211 if (existingPagination) existingPagination.remove(); 1212 1213 // Don't show pagination if only 1 page 1214 if (totalPages <= 1) return; 1215 1216 // Find the main collection list (not nav dropdowns) 1217 const collectionList = document.querySelector('.w-container .w-dyn-list, .mb_container .w-dyn-list'); 1218 if (!collectionList) { 1219 console.log('Collection list not found for pagination'); 1220 return; 1221 } 1222 1223 // Create pagination container 1224 const paginationDiv = document.createElement('div'); 1225 paginationDiv.className = 'custom-pagination'; 1226 paginationDiv.style.cssText = 'display: flex; justify-content: center; align-items: center; gap: 10px; margin-top: 30px; padding: 20px;'; 1227 1228 // Previous button 1229 const prevBtn = document.createElement('a'); 1230 prevBtn.className = 'pagination-btn pagination-prev'; 1231 prevBtn.textContent = 'â Previous'; 1232 prevBtn.style.cssText = 'padding: 8px 16px; border: 1px solid #ccc; border-radius: 4px; text-decoration: none; color: #333; cursor: pointer;'; 1233 if (currentPage === 1) { 1234 prevBtn.style.opacity = '0.5'; 1235 prevBtn.style.pointerEvents = 'none'; 1236 } else { 1237 prevBtn.href = updateUrlParam('page', currentPage - 1); 1238 } 1239 1240 // Page info 1241 const pageInfo = document.createElement('span'); 1242 pageInfo.className = 'pagination-info'; 1243 pageInfo.textContent = `${currentPage} / ${totalPages}`; 1244 pageInfo.style.cssText = 'padding: 8px 16px; font-weight: 500;'; 1245 1246 // Next button 1247 const nextBtn = document.createElement('a'); 1248 nextBtn.className = 'pagination-btn pagination-next';
1249 nextBtn.textContent = 'Next â'; 1250 nextBtn.style.cssText = 'padding: 8px 16px; border: 1px solid #ccc; border-radius: 4px; text-decoration: none; color: #333; cursor: pointer;'; 1251 if (currentPage === totalPages) { 1252 nextBtn.style.opacity = '0.5'; 1253 nextBtn.style.pointerEvents = 'none'; 1254 } else { 1255 nextBtn.href = updateUrlParam('page', currentPage + 1); 1256 } 1257 1258 paginationDiv.appendChild(prevBtn); 1259 paginationDiv.appendChild(pageInfo); 1260 paginationDiv.appendChild(nextBtn); 1261 1262 collectionList.parentNode.insertBefore(paginationDiv, collectionList.nextSibling); 1263 }; 1264 1265 const updateUrlParam = (key, value) => { 1266 const url = new URL(window.location.href); 1267 url.searchParams.set(key, value); 1268 return url.toString(); 1269 }; 1270 1271 filterAndPaginateItems(); 1272 1273 // Filter nav dropdown items by language and show only first N available 1274 const filterNavDropdownItems = () => { 1275 const MAX_VISIBLE_NAV_ITEMS = 2; // Number of items to show in dropdown 1276 1277 // Find all nav dropdowns with collection lists 1278 const navDropdowns = document.querySelectorAll('.mb_dropdown_b .w-dyn-list, nav .w-dyn-list'); 1279 1280 navDropdowns.forEach(dropdownList => { 1281 const items = dropdownList.querySelectorAll('.w-dyn-item[data-available-languages]'); 1282 if (items.length === 0) return; 1283 1284 let visibleCount = 0; 1285 1286 items.forEach(item => { 1287 const availableLangs = item.getAttribute('data-available-languages'); 1288 let isAvailable; 1289 1290 if (!availableLangs || availableLangs.trim() === '') { 1291 // Empty = English only 1292 isAvailable = currentLanguage === 'en'; 1293 } else { 1294 const langArray = availableLangs.split(',').map(l => l.trim().toLowerCase()); 1295 isAvailable = langArray.includes(currentLanguage); 1296 } 1297 1298 // Show item if available and under the limit 1299 if (isAvailable && visibleCount < MAX_VISIBLE_NAV_ITEMS) { 1300 item.classList.remove('lang-hidden'); 1301 visibleCount++; 1302 } else { 1303 item.classList.add('lang-hidden'); 1304 } 1305 }); 1306 }); 1307 }; 1308 1309 filterNavDropdownItems(); 1310 1311 // Filter hero/featured sections - show first available item 1312 const filterHeroSections = () => { 1313 const MAX_VISIBLE_HERO_ITEMS = 1; // Usually just 1 featured item 1314 1315 // Find hero sections by parent class 1316 const heroSections = document.querySelectorAll('.mb_hero_b .w-dyn-list, [class*="hero"] .w-dyn-list, [class*="featured"] .w-dyn-list'); 1317 1318 heroSections.forEach(heroList => { 1319 const items = heroList.querySelectorAll('.w-dyn-item[data-available-languages]'); 1320 if (items.length === 0) return; 1321 1322 let visibleCount = 0; 1323 1324 items.forEach(item => { 1325 const availableLangs = item.getAttribute('data-available-languages'); 1326 let isAvailable; 1327 1328 if (!availableLangs || availableLangs.trim() === '') { 1329 // Empty = English only 1330 isAvailable = currentLanguage === 'en'; 1331 } else { 1332 const langArray = availableLangs.split(',').map(l => l.trim().toLowerCase()); 1333 isAvailable = langArray.includes(currentLanguage); 1334 } 1335 1336 // Show item if available and under the limit 1337 if (isAvailable && visibleCount < MAX_VISIBLE_HERO_ITEMS) { 1338 item.classList.remove('lang-hidden'); 1339 visibleCount++; 1340 } else { 1341 item.classList.add('lang-hidden'); 1342 } 1343 }); 1344 1345 // If no items available, optionally hide the whole section 1346 if (visibleCount === 0) { 1347 heroList.closest('.mb_hero_b, [class*="hero"], [class*="featured"]')?.classList.add('lang-hidden'); 1348 } 1349 }); 1350 }; 1351 1352 filterHeroSections(); 1353 1354 // Filter content-page CMS lists whose lang/date attributes live on a child 1355 // (e.g. .mb_card_c) rather than on the .w-dyn-item wrapper. 1356 // Runs on non-listing pages (listings already handled by filterAndPaginateItems). 1357 const filterCardSections = () => { 1358 const listingPages = ['/resources', '/article-tags/', '/reports']; 1359 if (listingPages.some(p => currentUrlPath.startsWith(p) || currentUrlPath === p)) return; 1360 1361 const excludeSelector = '.mb_dropdown_b, nav, .mb_hero_b, [class*="hero"], [class*="featured"]'; 1362 const carriers = document.querySelectorAll('.w-dyn-item [data-available-languages]'); 1363 if (carriers.length === 0) return; 1364 1365 // Group entries by their parent .w-dyn-list 1366 const lists = new Map();
1367 carriers.forEach(carrier => { 1368 const item = carrier.closest('.w-dyn-item'); 1369 const list = item && item.closest('.w-dyn-list'); 1370 if (!list || !item) return; 1371 if (list.closest(excludeSelector)) return; // nav / hero handled elsewhere 1372 if (!lists.has(list)) lists.set(list, []); 1373 lists.get(list).push({ item, carrier }); 1374 }); 1375 1376 lists.forEach((entries, list) => { 1377 const filtered = []; 1378 entries.forEach(({ item, carrier }) => { 1379 const langsAttr = (carrier.getAttribute('data-available-languages') || '').trim(); 1380 const dateStr = (carrier.getAttribute('data-custom-date') || '').trim(); 1381 const dateOk = dateStr && !isNaN(Date.parse(dateStr)); 1382 const langOk = langsAttr === '' 1383 ? currentLanguage === 'en' 1384 : langsAttr.split(',').map(s => s.trim().toLowerCase()).includes(currentLanguage); 1385 1386 if (langOk && dateOk) { 1387 item.classList.remove('lang-hidden'); 1388 filtered.push({ item, carrier }); 1389 } else { 1390 item.classList.add('lang-hidden'); 1391 } 1392 }); 1393 1394 // Sort newest-first by data-custom-date 1395 filtered.sort((a, b) => Date.parse(b.carrier.getAttribute('data-custom-date')) 1396 - Date.parse(a.carrier.getAttribute('data-custom-date'))); 1397 1398 // Cap each section at 3 visible items; hide the overflow 1399 const MAX_ITEMS_PER_SECTION = 3; 1400 const visible = filtered.slice(0, MAX_ITEMS_PER_SECTION); 1401 filtered.slice(MAX_ITEMS_PER_SECTION).forEach(({ item }) => item.classList.add('lang-hidden')); 1402 1403 // Reorder DOM so the visible top-N render in sorted order 1404 const parent = visible[0] && visible[0].item.parentNode; 1405 if (parent) visible.forEach(({ item }) => parent.appendChild(item)); 1406 1407 // Hide the surrounding section if nothing matched 1408 if (visible.length === 0) { 1409 const section = list.closest('section'); 1410 if (section) section.classList.add('lang-hidden'); 1411 } 1412 }); 1413 }; 1414 1415 filterCardSections(); 1416 1417 checkAndRedirect(); 1418 1419 // Show banner if redirected from unavailable language 1420 const showRedirectBanner = () => { 1421 const urlParams = new URLSearchParams(window.location.search); 1422 1423 // Check URL param (staging) or cookie (production with Weglot) 1424 let redirectedFrom = urlParams.get('redirectedFrom'); 1425 1426 // For production: check window.name (persists across subdomain navigation) 1427 console.log('[LangControl] showRedirectBanner - URL param:', redirectedFrom); 1428 console.log('[LangControl] showRedirectBanner - window.name:', window.name); 1429 console.log('[LangControl] showRedirectBanner - Current path:', currentUrlPath); 1430 1431 if (!redirectedFrom && window.name) { 1432 try { 1433 const windowData = JSON.parse(window.name); 1434 if (windowData.langRedirect) { 1435 const redirectInfo = windowData.langRedirect; 1436 console.log('[LangControl] Parsed window.name:', redirectInfo); 1437 if (redirectInfo.path === currentUrlPath) { 1438 console.log('[LangControl] Path matches, using window.name redirect info'); 1439 redirectedFrom = redirectInfo.from; 1440 // Clear window.name 1441 window.name = ''; 1442 } 1443 } 1444 } catch (e) { 1445 // window.name wasn't our JSON data, ignore 1446 console.log('[LangControl] window.name not valid JSON (normal if no redirect)'); 1447 } 1448 } 1449 1450 // Clean up URL immediately (staging) 1451 if (urlParams.get('redirectedFrom')) { 1452 const cleanUrl = new URL(window.location.href); 1453 cleanUrl.searchParams.delete('redirectedFrom'); 1454 window.history.replaceState({}, '', cleanUrl.toString()); 1455 } 1456 1457 // Check if we already showed banner for this redirect 1458 const bannerKey = 'langBannerShown_' + window.location.pathname; 1459 if (!redirectedFrom || sessionStorage.getItem(bannerKey)) return; 1460 1461 const banner = document.getElementById('lang-redirect-banner'); 1462 1463 if (banner) { 1464 const langNames = { 1465 'en': 'English', 1466 'fr': 'French', 1467 'de': 'German', 1468 'ko': 'Korean', 1469 'ja': 'Japanese', 1470 'zh': 'Chinese' 1471 }; 1472 1473 const fromName = langNames[redirectedFrom] || redirectedFrom.toUpperCase(); 1474 const currentName = langNames[currentLanguage] || currentLanguage.toUpperCase(); 1475 const textEl = banner.querySelector('.banner-text'); 1476 if (textEl) { 1477 textEl.textContent = `This article is not yet available in ${fromName}. You are viewing the ${currentName} version.`; 1478 } 1479 1480 banner.style.display = 'block'; 1481 document.body.style.paddingTop = banner.offsetHeight + 'px'; 1482 1483 // Mark banner as shown for this page 1484 sessionStorage.setItem(bannerKey, 'true'); 1485 } 1486 }; 1487 1488 // Close banner handler 1489 const closeBanner = document.querySelector('.banner-close'); 1490 if (closeBanner) { 1491 closeBanner.addEventListener('click', function() { 1492 const banner = document.getElementById('lang-redirect-banner'); 1493 if (banner) { 1494 banner.style.display = 'none'; 1495 document.body.style.paddingTop = ''; 1496 } 1497 }); 1498 } 1499 1500 showRedirectBanner(); 1501 }); 1502})(); 1503</script>
1503 1504</div></div><a href="#" id="contact_form" class="mb_button_secondary_nav w-button">Contact us</a></div><div class="w-embed"><style> 1505 1506 /* center nav dropdown content */ 1507 1508 /* for desktop */ 1509 @media (min-width: 992px) { 1510 .mb_dropdown_list_b { 1511 left: 50% !important; 1512 right: auto !important; 1513 transform: translateX(-50%); 1514 } 1515 } 1516 1517 /* for tablet, mobile */ 1518 @media (max-width: 991px) { 1519 .mb_dropdown_list_b { 1520 left: 0 !important; 1521 right: auto !important; 1522 transform: none !important; 1523 } 1524 } 1525 1526</style></div></div></section></div><section class="mb_hero_b"><div class="w-layout-blockcontainer mb_hero_b_col mb_theme_dark w-container"><div class="mb_hero_b_content"><h1 class="mb_h1 mb_h1_sm mb_text_primary">Case Studies</h1><p class="mb_p mb_text_primary">Stay in-the-know on the mobile gaming and app industry with articles, reports, and case studies.</p><a id="subscribe_form" href="#" target="_blank" class="mb_button_primary mb_button_full-width w-button">Subscribe</a></div></div><div class="collection-list-wrapper-8 w-dyn-list"><div role="list" class="collection-list-4 w-dyn-items"><div data-available-languages="en,zh,ja,ko" role="listitem" class="collection-item-4 w-dyn-item"><a href="/resources/igg-case-study" class="blink-publication-2 a-pd-xs w-inline-block"><div style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a84665520aa2b6dc6ebdd96_2026-07_CaseStudy_IGG-Doomsday_Blog-Banner%20(1).avif")" class="w-layout-blockcontainer mb_hero_b_img w-container"></div></a></div><div data-available-languages="en" role="listitem" class="collection-item-4 w-dyn-item"><a href="/resources/fuel-case-study-sinclair-oil" class="blink-publication-2 a-pd-xs w-inline-block"><div style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a79ed25ec8062230b7e99e1_2026-05_LoyaltyPlay-Blog_SinclairOil_Header%20(1).avif")" class="w-layout-blockcontainer mb_hero_b_img w-container"></div></a></div><div data-available-languages="en,ja,zh,ko" role="listitem" class="collection-item-4 w-dyn-item"><a href="/resources/futureplay-case-study" class="blink-publication-2 a-pd-xs w-inline-block"><div style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a70eaa9510b60efd2014887_2026-08_CaseStudy_Futureplay_Blog-Banner%20(1).avif")" class="w-layout-blockcontainer mb_hero_b_img w-container"></div></a></div><div data-available-languages="ja" role="listitem" class="collection-item-4 w-dyn-item"><a href="/resources/locone-loyaltyplay-case-study" class="blink-publication-2 a-pd-xs w-inline-block"><div style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a550051216894119f6b093b_01.jpeg")" class="w-layout-blockcontainer mb_hero_b_img w-container"></div></a></div><div data-available-languages="ja,ko" role="listitem" class="collection-item-4 w-dyn-item"><a href="/resources/ana-x-case-study-loyaltyplay-ja" class="blink-publication-2 a-pd-xs w-inline-block"><div style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a39e1cb95ff942eb5226_ANA%20Banner.avif")" class="w-layout-blockcontainer mb_hero_b_img w-container"></div></a></div></div></div></section><section class="mb_section mb_pad_resources mb_theme_blue"><div class="w-layout-blockcontainer mb_container w-container"><div class="mb_resources_tabs"><a href="/resources" class="mb_p mb_text_no-margin mb_text_primary">Articles</a><a href="/article-tags/case-studies" aria-current="page" class="mb_p mb_text_no-margin mb_text_primary w--current">Case Studies</a><a href="/reports" class="mb_p mb_text_no-margin mb_text_primary">Reports</a></div></div></section><section class="mb_section mb_pad_md mb_theme_dark"><div class="w-embed w-script"><style> 1527 /* Container + control styling matches the glossary page's search 1528 (.mb_glossary_search / .mb_glossary_field / .mb_button_primary). */ 1529 .mb-resource-filters { 1530 display: flex; 1531 gap: 8px; 1532 align-items: stretch; 1533 justify-content: flex-start; 1534 flex-wrap: nowrap; 1535 width: 100%; 1536 margin: 0 0 24px 0; 1537 font-family: 'Sharp Grotesk 20', Arial, sans-serif; 1538 position: relative; 1539 z-index: 20; 1540 box-sizing: border-box; 1541 } 1542 /* Pull the whole grid section closer to the blue tabs bar above when a 1543 filter row is mounted. Applied via .mb-filter-section on the section 1544 element (added in JS). */ 1545 .mb_section.mb-filter-section { 1546 padding-top: 32px !important; 1547 } 1548 @media (max-width: 991px) { 1549 .mb_section.mb-filter-section { 1550 padding-top: 24px !important; 1551 } 1552 } 1553 @media (max-width: 767px) { 1554 .mb_section.mb-filter-section { 1555 padding-top: 16px !important; 1556 } 1557 } 1558 /* .mb_container is flex-column with align-items: center. When the grid 1559 empties (zero filter matches), .w-dyn-list would shrink to its widest 1560 child â the empty state message â and center itself, dragging the 1561 filter row into the middle of the page. Lock full width here. */ 1562 .mb-filter-section .mb_container > .w-dyn-list, 1563 .mb-filter-section .mb_container > .collection-list-wrapper-7,
1564 .mb-filter-section .mb_container > [class*='collection-list-wrapper'] { 1565 width: 100% !important; 1566 align-self: stretch !important; 1567 } 1568 .mb-filter-search { 1569 flex: 0 1 380px; 1570 min-width: 0; 1571 height: 47px; 1572 padding: 16px; 1573 border: 2px solid rgba(255, 255, 255, 0.24); 1574 background-color: transparent; 1575 color: #fff; 1576 font-family: inherit; 1577 font-size: 16px; 1578 line-height: 11px; 1579 box-sizing: border-box; 1580 margin: 0; 1581 } 1582 .mb-filter-search::placeholder { 1583 color: rgba(255, 255, 255, 0.8); 1584 } 1585 .mb-filter-search:focus { 1586 outline: none; 1587 border-color: var(--cobalt-500, #333fff); 1588 color: #fff; 1589 } 1590 /* Tag dropdown toggle â mirrors the glossary category <select> 1591 (.mb_glossary_category): white fill, dark text, 240px min, native-ish 1592 arrow padding. */ 1593 .mb-filter-dropdown { 1594 position: relative; 1595 flex: 0 0 auto; 1596 } 1597 .mb-filter-toggle { 1598 display: inline-flex; 1599 align-items: center; 1600 gap: 10px; 1601 height: 47px; 1602 padding: 8px 36px 8px 12px; 1603 border: 2px solid rgba(255, 255, 255, 0.24); 1604 background-color: #fff; 1605 color: #111; 1606 font-family: inherit; 1607 font-size: 16px; 1608 font-weight: 400; 1609 line-height: 11px; 1610 min-width: 240px; 1611 justify-content: space-between; 1612 cursor: pointer; 1613 box-sizing: border-box; 1614 text-overflow: clip; 1615 overflow: visible; 1616 } 1617 .mb-filter-toggle:hover, 1618 .mb-filter-toggle[aria-expanded='true'] { 1619 border-color: var(--cobalt-500, #333fff); 1620 } 1621 .mb-filter-toggle-count { 1622 display: inline-block; 1623 background: var(--cobalt-500, #333fff); 1624 color: #fff; 1625 padding: 1px 8px; 1626 font-size: 12px; 1627 line-height: 1.5; 1628 margin-left: 4px; 1629 } 1630 /* Explicit display override is required â author CSS above beats the 1631 browser's default [hidden] { display: none }, so the pill stays 1632 visible with stale text when JS toggles .hidden. */ 1633 .mb-filter-toggle-count[hidden] { 1634 display: none !important; 1635 } 1636 .mb-filter-toggle-caret { 1637 color: #111; 1638 } 1639 .mb-filter-toggle-caret { 1640 transition: transform 0.15s; 1641 flex-shrink: 0; 1642 } 1643 .mb-filter-toggle[aria-expanded='true'] .mb-filter-toggle-caret { 1644 transform: rotate(180deg); 1645 } 1646 .mb-filter-menu { 1647 position: absolute; 1648 top: calc(100% + 2px); 1649 left: 0; 1650 min-width: 240px; 1651 max-height: 360px; 1652 overflow-y: auto; 1653 background: #fff; 1654 border: 1px solid #ccc; 1655 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); 1656 padding: 4px 0; 1657 z-index: 30; 1658 } 1659 .mb-filter-menu[hidden] { 1660 display: none; 1661 } 1662 .mb-filter-option { 1663 display: flex; 1664 align-items: center; 1665 gap: 10px; 1666 padding: 8px 12px; 1667 cursor: pointer; 1668 font-family: inherit; 1669 font-size: 14px; 1670 color: #111; 1671 } 1672 .mb-filter-option:hover { 1673 background: #f2f2f5; 1674 } 1675 .mb-filter-option input[type='checkbox'] { 1676 margin: 0; 1677 cursor: pointer; 1678 accent-color: var(--cobalt-500, #333fff); 1679 } 1680 .mb-filter-option-label { 1681 flex: 1 1 auto; 1682 } 1683 .mb-filter-option-count { 1684 color: var(--comet-500, #5a5c81); 1685 font-size: 12px; 1686 letter-spacing: 0.32px; 1687 flex: 0 0 auto; 1688 } 1689 .mb-filter-swatch { 1690 display: inline-block; 1691 width: 10px; 1692 height: 10px; 1693 border-radius: 3px; 1694 background: #ccc; 1695 flex-shrink: 0; 1696 } 1697 /* Matches .mb_button_primary â cobalt fill, aqua hover. */ 1698 .mb-filter-clear { 1699 flex: 0 0 auto; 1700 height: 47px; 1701 padding: 16px 32px; 1702 border: 2px solid var(--cobalt-500, #333fff); 1703 background-color: var(--cobalt-500, #333fff); 1704 color: var(--comet-100, #f2f2fa); 1705 font-family: inherit; 1706 font-size: 16px; 1707 font-weight: 500; 1708 line-height: 11px; 1709 cursor: pointer; 1710 transition: all 0.3s cubic-bezier(0.455, 0.03, 0.515, 0.955); 1711 box-sizing: border-box; 1712 text-transform: none; 1713 white-space: nowrap; 1714 } 1715 .mb-filter-clear:hover { 1716 border-color: var(--aqua-500, #26f1d2); 1717 background-color: var(--aqua-500, #26f1d2); 1718 color: var(--comet-900, #111425); 1719 } 1720 1721 .mb-filter-status-bar { 1722 width: 100%; 1723 margin-bottom: 2rem; 1724 color: var(--comet-300, #b5b5d2); 1725 font-size: 14px; 1726 font-family: 'Sharp Grotesk 20', Arial, sans-serif; 1727 letter-spacing: 0.32px; 1728 min-height: 20px; 1729 box-sizing: border-box; 1730 } 1731 .mb-filter-empty { 1732 display: none; 1733 padding: 60px 20px; 1734 text-align: center; 1735 color: var(--comet-300, #b5b5d2); 1736 font-family: 'Sharp Grotesk 20', Arial, sans-serif; 1737 font-size: 16px; 1738 letter-spacing: 0.32px; 1739 } 1740 .mb-filter-empty.is-visible { 1741 display: block; 1742 } 1743 1744 /* --- Grid + pagination integration --- */ 1745 1746 /* Force clean 3/2/1 column grid, overriding the minmax(200px, ...) rule 1747 that occasionally lets rows collapse to 2 columns. */ 1748 @media (min-width: 992px) { 1749 .mb_grid.mb_grid_33-33-33 { 1750 grid-template-columns: repeat(3, 1fr) !important; 1751 place-items: stretch !important; 1752 } 1753 } 1754 @media (min-width: 640px) and (max-width: 991px) { 1755 .mb_grid.mb_grid_33-33-33 { 1756 grid-template-columns: repeat(2, 1fr) !important; 1757 } 1758 } 1759 @media (max-width: 639px) { 1760 .mb_grid.mb_grid_33-33-33 { 1761 grid-template-columns: 1fr !important; 1762 } 1763 } 1764 1765 /* When the filter is active, override .lang-hidden pagination on matches 1766 and hide non-matches globally. Body-level class = wins by selector chain. */ 1767 body.mb-filters-active .w-dyn-item.mb-filter-match { 1768 display: flex !important; 1769 } 1770 body.mb-filters-active .w-dyn-item.mb-filter-hidden { 1771 display: none !important; 1772 } 1773 body.mb-filters-active .custom-pagination, 1774 body.mb-filters-active .w-pagination-wrapper { 1775 display: none !important; 1776 } 1777 1778 /* Filter-owned pagination â visible only while filter is active. 1779 Styles mirror the site's own .custom-pagination / .pagination-btn 1780 so filtered and unfiltered pagination look identical. 1781 fit-content + margin auto: the flex nav shrinks to its content so the 1782 three items stay tight together and the whole cluster centers visually 1783 under the grid (instead of stretching across the container width). */ 1784 .mb-filter-pagination { 1785 display: none; 1786 justify-content: center;
1787 align-items: center; 1788 gap: 10px; 1789 width: fit-content; 1790 max-width: 100%; 1791 margin: 40px auto 0 auto; 1792 padding: 0; 1793 } 1794 body.mb-filters-active .mb-filter-pagination.is-visible { 1795 display: flex; 1796 } 1797 .mb-pag-btn { 1798 padding: 10px 20px; 1799 border: 1px solid #ddd; 1800 border-radius: 6px; 1801 text-decoration: none; 1802 color: #333; 1803 background: #fff; 1804 transition: all 0.2s; 1805 cursor: pointer; 1806 font-family: inherit; 1807 font-size: inherit; 1808 } 1809 .mb-pag-btn:hover { 1810 background: #f5f5f5; 1811 border-color: #999; 1812 } 1813 .mb-pag-btn[aria-disabled='true'] { 1814 opacity: 0.5; 1815 pointer-events: none; 1816 } 1817 .mb-pag-info { 1818 padding: 10px 20px; 1819 font-weight: 500; 1820 } 1821 1822 @media (max-width: 720px) { 1823 .mb-resource-filters { 1824 flex-wrap: wrap; 1825 } 1826 .mb-filter-search, 1827 .mb-filter-toggle, 1828 .mb-filter-clear { 1829 flex: 1 1 100%; 1830 } 1831 .mb-filter-dropdown { 1832 flex: 1 1 100%; 1833 } 1834 /* The toggle is display: inline-flex with a 240px min-width â inside 1835 a full-width wrapper it shrinks to content. Force full width so 1836 the button spans the row, and match the dropdown menu to it. */ 1837 .mb-filter-toggle { 1838 width: 100%; 1839 min-width: 0; 1840 } 1841 .mb-filter-menu { 1842 width: 100%; 1843 min-width: 0; 1844 } 1845 } 1846 1847 /* Tag chips converted into links to /article-tags/[slug]. 1848 Wrapper takes over the absolute positioning that the original single 1849 .mb_label_resource had, and stacks each linked chip flush left. */ 1850 .mb-tag-chips { 1851 position: absolute; 1852 inset: 0 auto auto 0; 1853 display: flex; 1854 flex-wrap: wrap; 1855 gap: 4px; 1856 z-index: 2; 1857 max-width: calc(100% - 8px); 1858 } 1859 .mb-tag-chips .mb_label_resource { 1860 position: static !important; 1861 inset: auto !important; 1862 } 1863 a.mb-tag-link.mb_label_resource { 1864 text-decoration: none; 1865 color: inherit; 1866 cursor: pointer; 1867 transition: 1868 transform 0.15s, 1869 filter 0.15s, 1870 box-shadow 0.15s; 1871 } 1872 a.mb-tag-link.mb_label_resource:hover { 1873 transform: translateY(-1px); 1874 filter: brightness(1.08); 1875 box-shadow: 0 4px 10px rgba(0, 0, 0, 0.22); 1876 } 1877 a.mb-tag-link.mb_label_resource:focus-visible { 1878 outline: 2px solid #fff; 1879 outline-offset: 2px; 1880 } 1881 a.mb-tag-link .mb_text_label { 1882 text-decoration: none; 1883 } 1884</style> 1885
1886<script> 1887 (function () { 1888 function normalize(s) { 1889 return (s || '') 1890 .toString() 1891 .toLowerCase() 1892 .normalize('NFD') 1893 .replace(/[\u0300-\u036f]/g, ''); 1894 } 1895 1896 function debounce(fn, ms) { 1897 let t; 1898 return function () { 1899 const args = arguments, 1900 ctx = this; 1901 clearTimeout(t); 1902 t = setTimeout(() => fn.apply(ctx, args), ms); 1903 }; 1904 } 1905 1906 const tagSynonyms = { 1907 'case-study': 'case-studies', 1908 reports: 'report', 1909 }; 1910 1911 const displayNames = { 1912 'retention-loyalty': 'Retention & Loyalty', 1913 'features-updates': 'Features & Updates', 1914 'events-corporate': 'Events & Corporate', 1915 'promotions-events': 'Promotions & Events', 1916 }; 1917 1918 // Per-language chip text. Keys are canonical slugs. Missing entries 1919 // fall through to the English name. 1920 // Kept in sync with article-tag-template.html. 1921 const tagTranslations = { 1922 'data-insights': { zh: 'æ°æ®æ´å¯', ja: 'æ¥çåæ', ko: 'ë°ì´í° & ì¸ì¬ì´í¸' }, 1923 'events-corporate': { zh: 'å ¬å¸å¨æ', ja: 'ã¤ãã³ã', ko: 'íì¬ ìì' }, 1924 'features-updates': { zh: 'äº§åæ´æ°', ja: 'ãããã¯ã', ko: 'ìí ì ë°ì´í¸' }, 1925 monetization: { zh: 'æ´»å¨', ja: 'åçå', ko: 'ììµí' }, 1926 'retention-loyalty': { zh: 'çåä¸å¿ è¯åº¦', ja: 'ãªãã³ã·ã§ã³', ko: '리í ì & 리ìë' }, 1927 'user-acquisition': { zh: 'ä¹°éè·å®¢', ja: 'ã¦ã¼ã¶ã¼ç²å¾', ko: 'UA' }, 1928 }; 1929 1930 // Weglot updates <html lang> on language switch, so read it live 1931 // rather than caching. Normalizes zh-cn / ja-jp / ko-kr to zh / ja / ko. 1932 function getLang() { 1933 const lang = (document.documentElement.getAttribute('lang') || 'en').toLowerCase(); 1934 if (lang.indexOf('zh') === 0) return 'zh'; 1935 if (lang.indexOf('ja') === 0) return 'ja'; 1936 if (lang.indexOf('ko') === 0) return 'ko'; 1937 return 'en'; 1938 } 1939 1940 function localizeTag(slug, englishName) { 1941 const lang = getLang(); 1942 if (lang === 'en') return englishName; 1943 const entry = tagTranslations[slug]; 1944 return (entry && entry[lang]) || englishName; 1945 } 1946 1947 // Per-language filter UI copy. English is derived from the page H1 1948 // ("Search resources", "Search reports", etc.) so it isn't listed 1949 // here â non-English locales get a fixed override instead of a 1950 // Weglot-translated H1 that produces awkward "Search 리ìì¤" strings. 1951 const uiStrings = { 1952 ko: { search: 'ê²ì', allTags: 'ì¹´í ê³ ë¦¬' }, 1953 zh: { search: 'æç´¢èµæ', allTags: 'å ¨é¨å 容' }, 1954 ja: { search: 'ãªã½ã¼ã¹ãæ¤ç´¢', allTags: 'å ¨ã¦ã®ã«ãã´ãª' }, 1955 }; 1956 1957 function localizeUi(key, englishFallback) { 1958 const lang = getLang(); 1959 return (uiStrings[lang] && uiStrings[lang][key]) || englishFallback; 1960 } 1961 1962 // Weglot machine-translates the badge text on translated subdomains 1963 // BEFORE our JS runs, and produces multiple different renderings for 1964 // the same English tag across articles (e.g. monetization is variously 1965 // "è´§å¸å" / "åç°" in ZH). Every observed Weglot output is listed 1966 // here so we can recover the canonical slug and then apply the 1967 // preferred display translation via localizeTag. Add new entries as 1968 // they surface â a missing entry just means the badge renders with 1969 // Weglot's raw text (still visible, just not linkified). 1970 // Kept in sync with article-tag-template.html. 1971 const weglotOutputToSlug = { 1972 // zh 1973 æ°æ®æ´å¯: 'data-insights', 1974 ä¼ä¸æ´»å¨: 'events-corporate', 1975 åè½æ´æ°: 'features-updates', 1976 è´§å¸å: 'monetization', 1977 åç°: 'monetization', 1978 'çç¨-å¿ è¯': 'retention-loyalty', 1979 客æ·çåä¸å¿ è¯åº¦: 'retention-loyalty', 1980 ä¿çå¿ è¯åº¦: 'retention-loyalty', 1981 ç¨æ·çåä¸å¿ è¯åº¦: 'retention-loyalty', 1982 ç¨æ·è·å: 'user-acquisition', 1983 // ja 1984 ãã¼ã¿ã¤ã³ãµã¤ã: 'data-insights', 1985 'ãã¼ã¿ã»ã¤ã³ãµã¤ã': 'data-insights', 1986 ãã¼ã¿åæ: 'data-insights', 1987 ãã¼ã¿æ´å¯: 'data-insights', 1988 伿¥ã¤ãã³ã: 'events-corporate', 1989 'ã¤ãã³ã-伿¥': 'events-corporate', 1990 'æ©è½ã»ã¢ãããã¼ã': 'features-updates', 1991 ããã¿ã¤ãº: 'monetization', 1992 ããã¿ã¤ã¼ã¼ã·ã§ã³: 'monetization', 1993 åçå: 'monetization', 1994 'ãªãã³ã·ã§ã³ã»ãã¤ã¤ã«ãã£': 'retention-loyalty', 1995 'é¡§å®¢ç¶æã»ãã¤ã¤ãªãã£': 'retention-loyalty', 1996 'é¡§å®¢ç¶æã»ãã¤ã¤ã«ãã£': 'retention-loyalty', 1997 'ä¿æ-å¿ èª ': 'retention-loyalty', 1998 ã¦ã¼ã¶ã¼ç²å¾: 'user-acquisition', 1999 // ko 2000 'ë°ì´í° ì¸ì¬ì´í¸': 'data-insights', 2001 '기ì íì¬': 'events-corporate', 2002 'ì´ë²¤í¸-기ì ': 'events-corporate', 2003 'ê¸°ë¥ ì ë°ì´í¸': 'features-updates', 2004 ììµí: 'monetization', 2005 'ììµ ì°½ì¶': 'monetization', 2006 'ê³ ê° ì ì§ ë° ì¶©ì±ë': 'retention-loyalty', 2007 'ì ì§ì¨-ë¡ì´í°': 'retention-loyalty', 2008 // Weglot occasionally splits "Retention & Loyalty" as 2009 // "ê³ ê° ì ì§ì¨, ë¡ì´í°" (a comma between the two halves), so 2010 // both fragments individually reverse-map to the same slug. 2011 // Dedupe in snapshot() collapses the pair to one chip. 2012 'ê³ ê° ì ì§ì¨': 'retention-loyalty', 2013 ë¡ì´í°: 'retention-loyalty', 2014 'ì¬ì©ì íë³´': 'user-acquisition', 2015 'ì¬ì©ì íë': 'user-acquisition', 2016 }; 2017 2018 // Reverse index for slug recovery. Seeds from our tagTranslations 2019 // (the preferred display strings) plus every known Weglot output 2020 // above. snapshot() checks this before falling back to slugifying 2021 // the raw text. 2022 const translatedToSlug = {};
2023 Object.keys(tagTranslations).forEach((slug) => { 2024 const entry = tagTranslations[slug]; 2025 Object.keys(entry).forEach((lang) => { 2026 if (entry[lang]) translatedToSlug[entry[lang]] = slug; 2027 }); 2028 }); 2029 Object.keys(weglotOutputToSlug).forEach((text) => { 2030 translatedToSlug[text] = weglotOutputToSlug[text]; 2031 // The site's own labelColorMap script (resources.html) runs a 2032 // .split('-').join(' ') pass on every badge label, so any 2033 // hyphenated Weglot output (e.g. "ì´ë²¤í¸-기ì ", "çç¨-å¿ è¯") 2034 // becomes space-separated by the time we see it. Mirror those 2035 // entries with hyphens replaced by spaces so the reverse 2036 // lookup still resolves after labelColorMap has run. 2037 if (text.indexOf('-') !== -1) { 2038 translatedToSlug[text.replace(/-/g, ' ')] = weglotOutputToSlug[text]; 2039 } 2040 }); 2041 2042 // Leftmost-longest tokenizer over the reverse-lookup keys. 2043 // labelColorMap strips commas AND normalizes hyphens to spaces, 2044 // so on translated subdomains a "Tag A, Tag B" chip arrives here 2045 // as "Tag A Tag B" â a single token that no per-part split can 2046 // recover. At each position we take the longest key that matches 2047 // as a prefix, advance past it, skip whitespace, repeat. Any 2048 // characters that don't front a known key are accumulated in 2049 // leftover so the caller can tell whether the whole string 2050 // resolved cleanly. 2051 // 2052 // Leftmost-longest (not substring-anywhere) is important: naive 2053 // longest-substring picks e.g. "ì ì§ì¨ ë¡ì´í°" from the middle of 2054 // "ë°ì´í° ì¸ì¬ì´í¸ ê³ ê° ì ì§ì¨ ë¡ì´í°" and strands "ê³ ê°" as 2055 // orphaned leftover. Anchoring matches to the current position 2056 // sidesteps that failure mode. 2057 function fuzzyMatchTranslations(raw) { 2058 const sortedKeys = Object.keys(translatedToSlug).sort((a, b) => b.length - a.length); 2059 const foundSlugs = []; 2060 let text = raw; 2061 let leftover = ''; 2062 while (text.length) { 2063 let matched = null; 2064 for (let i = 0; i < sortedKeys.length; i++) { 2065 const key = sortedKeys[i]; 2066 if (key && text.slice(0, key.length) === key) { matched = key; break; } 2067 } 2068 if (matched) { 2069 foundSlugs.push(translatedToSlug[matched]); 2070 text = text.slice(matched.length).replace(/^\s+/, ''); 2071 } else { 2072 leftover += text[0]; 2073 text = text.slice(1); 2074 } 2075 } 2076 return { slugs: foundSlugs, leftover: leftover.trim() }; 2077 } 2078 2079 // Retranslate every already-rendered chip label and dropdown option 2080 // label for the current language. Called on Weglot switch so text 2081 // updates in place without regenerating the filter UI (which would 2082 // clobber checkbox state). 2083 function relocalizeListingLabels() { 2084 document.querySelectorAll('a.mb-tag-link .mb_text_label').forEach((h6) => { 2085 const slug = h6.dataset.mbTagSlug; 2086 const english = h6.dataset.mbTagEnglish; 2087 if (!slug || !english) return; 2088 h6.textContent = localizeTag(slug, english); 2089 }); 2090 document.querySelectorAll('.mb-filter-option-label[data-mb-tag-slug]').forEach((sp) => { 2091 const slug = sp.dataset.mbTagSlug; 2092 const english = sp.dataset.mbTagEnglish; 2093 if (!slug || !english) return; 2094 sp.textContent = localizeTag(slug, english); 2095 }); 2096 } 2097 2098 // Slug -> color. Mirrors labelColorMap in resources.html and extends 2099 // it for tag pages that exist in the CMS but had no color entry. 2100 // If you add a color for a new tag, put it here â the dropdown swatch 2101 // and the on-card chip share this map. 2102 const swatchColors = { 2103 'case-studies': '#00cfb5', // aqua / turquoise 2104 'data-insights': '#4a90e2', // blue 2105 'retention-loyalty': '#ff8c42', // orange 2106 'features-updates': '#9b59b6', // purple 2107 'events-corporate': '#e74c3c', // red 2108 'promotions-events': '#f1c40f', // yellow 2109 monetization: '#fec85e', // goldenrod 2110 'user-acquisition': '#6444cd', // deep purple 2111 report: '#fb4955', // pink-red 2112 }; 2113 2114 // Canonical URL slug. Handles both stored forms: 2115 // "features-updates" -> "features-updates" 2116 // "events & corporate" -> "events-corporate" 2117 // "Case Studies" -> "case-studies" 2118 function toUrlSlug(text) { 2119 return text 2120 .toLowerCase() 2121 .trim() 2122 .replace(/&/g, ' ') 2123 .replace(/[^\w\s-]/g, '') 2124 .replace(/[\s_]+/g, '-') 2125 .replace(/-+/g, '-') 2126 .replace(/^-|-$/g, ''); 2127 } 2128 2129 // Title Case display name from any tag form. Preserves "&" if present 2130 // in the input so "events & corporate" stays "Events & Corporate". 2131 // The pure slug form ("events-corporate") produces "Events Corporate" 2132 // â the displayNames override map fills in the ampersand for known 2133 // slugs. 2134 function formatSlug(input) { 2135 return input 2136 .toLowerCase() 2137 .split(/[-\s_]+/) 2138 .filter(Boolean) 2139 .map((w) => (w === '&' ? '&' : w.charAt(0).toUpperCase() + w.slice(1))) 2140 .join(' '); 2141 } 2142 2143 function slugify(text) { 2144 return toUrlSlug(text); 2145 } 2146 2147 // Snapshot raw tag text BEFORE the labelColorMap script strips commas.
2148 // Idempotent: skips cards already tagged. 2149 function snapshot() { 2150 document.querySelectorAll('div[data-wf--mb-label-resource--variant="aqua"]').forEach((div) => { 2151 const item = div.closest('.w-dyn-item') || div.closest('a'); 2152 if (!item || item.dataset.mbTags) return; 2153 const labelEl = div.querySelector('.mb_text_label'); 2154 if (!labelEl) return; 2155 const raw = labelEl.textContent.trim(); 2156 if (!raw) return; 2157 2158 // Split on ASCII comma + Chinese full-width (ï¼) + Japanese 2159 // enumeration (ã) commas â Weglot uses all three depending on 2160 // the target locale. 2161 const parts = raw 2162 .split(/[,ï¼ã]/) 2163 .map((s) => s.trim()) 2164 .filter((s) => s && s.toLowerCase() !== 'hidden'); 2165 if (!parts.length) return; 2166 2167 // Dedupe by canonical URL slug, in original order. 2168 // Apply the synonym map so CMS variants collapse to one tag. 2169 // translatedToSlug lets us recover the slug on Weglot 2170 // subdomains where the badge text has already been 2171 // translated (toUrlSlug alone would strip the non-ASCII 2172 // text and return ""). 2173 const seen = new Set(); 2174 const tags = []; 2175 const slugs = []; 2176 function pushSlug(slug, sourceText) { 2177 if (tagSynonyms[slug]) slug = tagSynonyms[slug]; 2178 if (!slug || seen.has(slug)) return; 2179 seen.add(slug); 2180 slugs.push(slug); 2181 // Prefer the ampersand-preserving display name if defined; 2182 // else fall back to formatSlug applied to whichever form 2183 // came in richer (the raw part often has "&", the slug 2184 // never does). 2185 tags.push(displayNames[slug] || (sourceText && sourceText.indexOf('&') !== -1 ? formatSlug(sourceText) : formatSlug(slug))); 2186 } 2187 let allResolved = true; 2188 parts.forEach((p) => { 2189 let slug = translatedToSlug[p] || toUrlSlug(p); 2190 if (slug) { 2191 pushSlug(slug, p); 2192 return; 2193 } 2194 // No direct match: try fuzzy multi-match. Handles the 2195 // case where labelColorMap concatenated "A, B" into "A B" 2196 // â one "part" that actually contains multiple known 2197 // translations. 2198 const fuzzy = fuzzyMatchTranslations(p); 2199 if (fuzzy.slugs.length && !fuzzy.leftover) { 2200 fuzzy.slugs.forEach((fs) => pushSlug(fs, '')); 2201 return; 2202 } 2203 allResolved = false; 2204 }); 2205 // Skip snapshot on any card whose translated label we can't 2206 // reverse-map. renderTagLinks then leaves the original badge 2207 // in place instead of removing it, so users still see it. 2208 if (!allResolved || !tags.length) return; 2209 item.dataset.mbTags = JSON.stringify(tags); 2210 item.dataset.mbTagSlugs = JSON.stringify(slugs); 2211 }); 2212 } 2213 2214 // Auto-pick white vs dark chip text based on the background color's 2215 // perceived brightness. Anything darker than ~55% luminance gets white. 2216 function needsWhiteText(hex) { 2217 if (!hex || hex[0] !== '#') return false; 2218 const c = 2219 hex.length === 4 2220 ? hex 2221 .slice(1) 2222 .split('') 2223 .map((ch) => ch + ch) 2224 .join('') 2225 : hex.slice(1); 2226 const r = parseInt(c.slice(0, 2), 16); 2227 const g = parseInt(c.slice(2, 4), 16); 2228 const b = parseInt(c.slice(4, 6), 16); 2229 if ([r, g, b].some(isNaN)) return false; 2230 // Rec. 601 luma approximation, normalized to 0-1. 2231 const luma = (0.299 * r + 0.587 * g + 0.114 * b) / 255; 2232 return luma < 0.55; 2233 } 2234 2235 // Replace each card's tag label with a wrapper containing one linked chip 2236 // per tag. Chips are moved OUT of the card's <a> wrapper because HTML 2237 // disallows nested links; .mb_card_resource is position: relative so 2238 // the absolute-positioned wrapper still anchors to the card's top-left. 2239 function renderTagLinks() { 2240 document.querySelectorAll('div[data-wf--mb-label-resource--variant="aqua"]').forEach((labelDiv) => { 2241 const item = labelDiv.closest('.w-dyn-item'); 2242 if (!item) return; 2243 2244 // No snapshot data attached. Two possible reasons: 2245 // (a) truly untagged / only "hidden" placeholder â remove 2246 // the stray div so no empty chip renders 2247 // (b) Weglot-translated text we couldn't reverse-map â 2248 // leave the badge in place so users still see it 2249 if (!item.dataset.mbTags || !item.dataset.mbTagSlugs) { 2250 const labelEl = labelDiv.querySelector('.mb_text_label'); 2251 const raw = labelEl ? labelEl.textContent.trim() : ''; 2252 const isEmptyOrHidden = 2253 !raw || 2254 raw 2255 .split(',') 2256 .map((s) => s.trim().toLowerCase()) 2257 .every((s) => !s || s === 'hidden'); 2258 if (isEmptyOrHidden) labelDiv.remove(); 2259 return; 2260 } 2261 2262 let tags, slugs; 2263 try { 2264 tags = JSON.parse(item.dataset.mbTags); 2265 slugs = JSON.parse(item.dataset.mbTagSlugs); 2266 } catch (e) { 2267 return; 2268 } 2269 if (!tags.length || !slugs.length) { 2270 labelDiv.remove(); 2271 return; 2272 } 2273 2274 const wrap = document.createElement('div'); 2275 wrap.className = 'mb-tag-chips'; 2276
2277 tags.forEach((tag, i) => { 2278 const slug = slugs[i]; 2279 const color = swatchColors[slug]; 2280 2281 const link = document.createElement('a'); 2282 link.href = '/article-tags/' + slug; 2283 link.className = 'mb_label_resource mb-tag-link'; 2284 link.setAttribute('data-wf--mb-label-resource--variant', 'aqua'); 2285 if (color) link.style.backgroundColor = color; 2286 2287 const h6 = document.createElement('h6'); 2288 h6.className = 'mb_text_label'; 2289 // Stash canonical slug + English label so 2290 // relocalizeListingLabels can retranslate in place when 2291 // Weglot changes language. 2292 h6.dataset.mbTagSlug = slug; 2293 h6.dataset.mbTagEnglish = tag; 2294 h6.textContent = localizeTag(slug, tag); 2295 if (needsWhiteText(color)) h6.style.color = '#fff'; 2296 link.appendChild(h6); 2297 2298 wrap.appendChild(link); 2299 }); 2300 2301 // Insert the wrapper as a sibling AFTER the card's <a>, so 2302 // its chips (which are real <a>s) aren't nested inside another link. 2303 const cardLink = labelDiv.closest('a'); 2304 if (cardLink && cardLink.parentElement) { 2305 cardLink.parentElement.insertBefore(wrap, cardLink.nextSibling); 2306 } else if (labelDiv.parentElement) { 2307 labelDiv.parentElement.insertBefore(wrap, labelDiv); 2308 } 2309 labelDiv.remove(); 2310 }); 2311 } 2312 2313 // Run snapshot immediately in case this script parses before the label 2314 // formatter (best case). Re-run in init() as a safety net. 2315 snapshot(); 2316 2317 function init() { 2318 // Guard against accidental double-mount (e.g. same block pasted twice). 2319 if (document.querySelector('.mb-resource-filters')) return; 2320 2321 snapshot(); 2322 renderTagLinks(); 2323 2324 // Locate the grid. Prefer the most common ancestor of tagged cards 2325 // (works on /resources); fall back to the standard grid class so 2326 // /article-tags/* and /reports also get a search field even 2327 // though those pages have no tag labels. 2328 let grid = null; 2329 const taggedItems = [...document.querySelectorAll('.w-dyn-item[data-mb-tags]')]; 2330 if (taggedItems.length) { 2331 const parentCounts = new Map(); 2332 taggedItems.forEach((el) => { 2333 parentCounts.set(el.parentElement, (parentCounts.get(el.parentElement) || 0) + 1); 2334 }); 2335 let best = 0; 2336 parentCounts.forEach((count, parent) => { 2337 if (count > best) { 2338 best = count; 2339 grid = parent; 2340 } 2341 }); 2342 } 2343 if (!grid) { 2344 grid = document.querySelector('.mb_grid.mb_grid_33-33-33'); 2345 } 2346 if (!grid || !grid.parentElement) return; 2347 2348 // Collect every .w-dyn-item in the grid â tagged or not. 2349 const cards = []; 2350 [...grid.children].forEach((el) => { 2351 if (!el.classList || !el.classList.contains('w-dyn-item')) return; 2352 let tags = [], 2353 slugs = []; 2354 if (el.dataset.mbTags) { 2355 try { 2356 const parsed = JSON.parse(el.dataset.mbTags); 2357 if (Array.isArray(parsed)) tags = parsed; 2358 } catch (e) { 2359 /* leave tags empty */ 2360 } 2361 } 2362 if (el.dataset.mbTagSlugs) { 2363 try { 2364 const parsed = JSON.parse(el.dataset.mbTagSlugs); 2365 if (Array.isArray(parsed)) slugs = parsed; 2366 } catch (e) { 2367 /* leave slugs empty */ 2368 } 2369 } 2370 el.dataset.mbSearch = normalize(el.textContent.trim()); 2371 cards.push({ el, tags, slugs }); 2372 }); 2373 if (!cards.length) return; 2374 2375 // Union of tags across ALL cards (tagged only â untagged cards 2376 // contribute nothing to the dropdown). 2377 const tagCounts = new Map(); 2378 const nameToSlug = new Map(); 2379 const slugToName = new Map(); 2380 cards.forEach((c) => {
2381 c.tags.forEach((tag, i) => { 2382 const slug = c.slugs[i] || toUrlSlug(tag); 2383 tagCounts.set(tag, (tagCounts.get(tag) || 0) + 1); 2384 if (!nameToSlug.has(tag)) nameToSlug.set(tag, slug); 2385 if (!slugToName.has(slug)) slugToName.set(slug, tag); 2386 }); 2387 }); 2388 const tags = [...tagCounts.keys()].sort((a, b) => a.localeCompare(b)); 2389 // Hide the tag dropdown on /article-tags/* pages â the URL already 2390 // scopes results to a single tag, so an in-page tag filter is 2391 // redundant. Search input still renders. 2392 const isArticleTagPage = /^\/article-tags\//.test(window.location.pathname); 2393 const hasTags = tags.length > 0 && !isArticleTagPage; 2394 const menuId = 'mb-filter-menu-' + Math.random().toString(36).slice(2, 8); 2395 2396 const dropdownMarkup = hasTags 2397 ? ` 2398 <div class="mb-filter-dropdown"> 2399 <button type="button" class="mb-filter-toggle" aria-expanded="false" aria-haspopup="true" aria-controls="${menuId}"> 2400 <span class="mb-filter-toggle-label">${localizeUi('allTags', 'All tags').replace(/"/g, '"')}</span> 2401 <span class="mb-filter-toggle-count" hidden>0</span> 2402 <svg class="mb-filter-toggle-caret" width="12" height="8" viewBox="0 0 12 8" aria-hidden="true"> 2403 <path d="M1 1l5 5 5-5" stroke="currentColor" stroke-width="1.6" fill="none" stroke-linecap="round" stroke-linejoin="round"/> 2404 </svg> 2405 </button> 2406 <div id="${menuId}" class="mb-filter-menu" hidden role="listbox" aria-multiselectable="true"> 2407 ${tags 2408 .map((tag) => { 2409 const slug = nameToSlug.get(tag) || slugify(tag); 2410 const color = swatchColors[slug] || '#ccc'; 2411 const count = tagCounts.get(tag) || 0; 2412 const englishAttr = tag.replace(/"/g, '"'); 2413 const display = localizeTag(slug, tag).replace(/"/g, '"'); 2414 return ` 2415 <label class="mb-filter-option"> 2416 <input type="checkbox" value="${englishAttr}" data-slug="${slug}"> 2417 <span class="mb-filter-swatch" style="background:${color}"></span> 2418 <span class="mb-filter-option-label" data-mb-tag-slug="${slug}" data-mb-tag-english="${englishAttr}">${display}</span> 2419 <span class="mb-filter-option-count">${count}</span> 2420 </label> 2421 `; 2422 }) 2423 .join('')} 2424 </div> 2425 </div> 2426 ` 2427 : ''; 2428 2429 // On English, derive placeholder from the page's H1: 2430 // /resources -> "Search resources" 2431 // /article-tags/case-studies -> "Search case studies" 2432 // /reports -> "Search reports" 2433 // On translated subdomains, use the per-language string from 2434 // uiStrings so we don't end up with mixed copy like "Search 리ìì¤" 2435 // caused by Weglot half-translating the H1 fragment. 2436 let searchPlaceholder; 2437 if (getLang() === 'en') { 2438 searchPlaceholder = 'Search articles'; 2439 const pageH1 = document.querySelector('h1.mb_h1, section.mb_hero_b h1, h1'); 2440 if (pageH1 && pageH1.textContent.trim()) { 2441 searchPlaceholder = 'Search ' + pageH1.textContent.trim().toLowerCase(); 2442 } 2443 } else { 2444 searchPlaceholder = localizeUi('search', 'Search articles'); 2445 } 2446 2447 const ui = document.createElement('div'); 2448 ui.className = 'mb-resource-filters'; 2449 ui.innerHTML = '<input type="search" class="mb-filter-search" ' + 'placeholder="' + searchPlaceholder.replace(/"/g, '"') + '" ' + 'aria-label="' + searchPlaceholder.replace(/"/g, '"') + '">' + dropdownMarkup + '<button type="button" class="mb-filter-clear" hidden>Clear</button>'; 2450 2451 // Filter row lives inside the dark section, directly above the 2452 // grid. Status text sits between the row and the grid so users 2453 // see the count right where the results start. 2454 grid.parentElement.insertBefore(ui, grid); 2455 2456 // Tighten the section's top padding so the filter row sits 2457 // closer to the blue tabs bar above. 2458 const gridSection = grid.closest('section'); 2459 if (gridSection) gridSection.classList.add('mb-filter-section'); 2460 2461 const statusBar = document.createElement('div'); 2462 statusBar.className = 'mb-filter-status-bar'; 2463 statusBar.setAttribute('aria-live', 'polite'); 2464 grid.parentElement.insertBefore(statusBar, grid); 2465 2466 const emptyMsg = document.createElement('div'); 2467 emptyMsg.className = 'mb-filter-empty'; 2468 emptyMsg.textContent = 'No articles match your filters.'; 2469 grid.parentElement.insertBefore(emptyMsg, grid.nextSibling); 2470 2471 // Filter's own pagination â visible only while filter is active. 2472 const mbPagination = document.createElement('nav'); 2473 mbPagination.className = 'mb-filter-pagination'; 2474 mbPagination.setAttribute('aria-label', 'Filtered results pagination'); 2475 grid.parentElement.insertBefore(mbPagination, emptyMsg.nextSibling); 2476 2477 const ITEMS_PER_PAGE = 9; 2478 let currentPage = 1; 2479 // Remember what page the site's own pagination was on when the 2480 // user arrived without any filter, so we can restore it when they 2481 // clear the filter. Recaptured only from URLs that have no filter. 2482 let unfilteredPage = 1; 2483 function captureUnfilteredPage() { 2484 const p = new URLSearchParams(window.location.search); 2485 if (p.get('q') || p.get('tag')) return;
2485 // filter present â leave as-is 2486 const n = parseInt(p.get('page'), 10); 2487 unfilteredPage = n && n > 0 ? n : 1; 2488 } 2489 captureUnfilteredPage(); 2490 2491 const searchInput = ui.querySelector('.mb-filter-search'); 2492 const clearBtn = ui.querySelector('.mb-filter-clear'); 2493 // These are null on pages with no tag labels (e.g. /article-tags/*). 2494 const toggleBtn = ui.querySelector('.mb-filter-toggle'); 2495 const toggleLabel = ui.querySelector('.mb-filter-toggle-label'); 2496 const toggleCount = ui.querySelector('.mb-filter-toggle-count'); 2497 const menu = ui.querySelector('.mb-filter-menu'); 2498 const checkboxes = [...ui.querySelectorAll('.mb-filter-option input[type="checkbox"]')]; 2499 2500 if (toggleBtn && menu) { 2501 const closeMenu = () => { 2502 toggleBtn.setAttribute('aria-expanded', 'false'); 2503 menu.hidden = true; 2504 }; 2505 const openMenu = () => { 2506 toggleBtn.setAttribute('aria-expanded', 'true'); 2507 menu.hidden = false; 2508 }; 2509 toggleBtn.addEventListener('click', function (e) { 2510 e.stopPropagation(); 2511 toggleBtn.getAttribute('aria-expanded') === 'true' ? closeMenu() : openMenu(); 2512 }); 2513 // Close on any pointer press outside the filter row. Uses 2514 // capture phase + pointerdown so it fires before any other 2515 // handler on the page can stopPropagation and swallow the event. 2516 const outsideDismiss = function (e) { 2517 if (menu.hidden) return; 2518 if (!ui.contains(e.target)) closeMenu(); 2519 }; 2520 document.addEventListener('pointerdown', outsideDismiss, true); 2521 // Fallback for keyboard-driven click activations that don't 2522 // fire pointerdown (Enter/Space on a focused element). 2523 document.addEventListener('click', outsideDismiss, true); 2524 document.addEventListener('keydown', function (e) { 2525 if (e.key === 'Escape') closeMenu(); 2526 }); 2527 // Close when the tab is scrolled â matches native <select> 2528 // and prevents the menu from floating over unrelated content. 2529 window.addEventListener( 2530 'scroll', 2531 function () { 2532 if (!menu.hidden) closeMenu(); 2533 }, 2534 { passive: true }, 2535 ); 2536 } 2537 2538 function applyFilters() { 2539 const query = normalize(searchInput.value.trim()); 2540 const selected = new Set(checkboxes.filter((c) => c.checked).map((c) => c.value)); 2541 const hasFilters = query.length > 0 || selected.size > 0; 2542 2543 document.body.classList.toggle('mb-filters-active', hasFilters); 2544 2545 if (!hasFilters) { 2546 // Yield fully to the site's language/pagination logic. 2547 cards.forEach(({ el }) => el.classList.remove('mb-filter-match', 'mb-filter-hidden')); 2548 if (toggleLabel && toggleCount) { 2549 toggleLabel.textContent = localizeUi('allTags', 'All tags'); 2550 toggleCount.hidden = true; 2551 } 2552 clearBtn.hidden = true; 2553 statusBar.textContent = ''; 2554 emptyMsg.classList.remove('is-visible'); 2555 mbPagination.classList.remove('is-visible'); 2556 mbPagination.innerHTML = ''; 2557 writeUrlState(); 2558 return; 2559 } 2560 2561 // Compute the filtered set once (search + tag). 2562 const matches = cards.filter(({ el, tags: cardTags }) => { 2563 const matchesQuery = !query || el.dataset.mbSearch.indexOf(query) !== -1; 2564 // Untagged cards can't satisfy a tag filter â hide them 2565 // outright when any tag is selected. 2566 const matchesTag = selected.size === 0 ? true : cardTags.length > 0 && cardTags.some((t) => selected.has(t)); 2567 return matchesQuery && matchesTag; 2568 }); 2569 2570 const total = matches.length; 2571 const totalPages = Math.max(1, Math.ceil(total / ITEMS_PER_PAGE)); 2572 if (currentPage > totalPages) currentPage = totalPages; 2573 if (currentPage < 1) currentPage = 1; 2574 2575 const startIdx = (currentPage - 1) * ITEMS_PER_PAGE; 2576 const endIdx = startIdx + ITEMS_PER_PAGE; 2577 const pageSet = new Set(matches.slice(startIdx, endIdx).map((m) => m.el)); 2578 2579 cards.forEach(({ el }) => { 2580 const onPage = pageSet.has(el); 2581 el.classList.toggle('mb-filter-match', onPage); 2582 el.classList.toggle('mb-filter-hidden', !onPage); 2583 }); 2584 2585 if (toggleLabel && toggleCount) { 2586 if (selected.size === 0) { 2587 toggleLabel.textContent = localizeUi('allTags', 'All tags'); 2588 toggleCount.textContent = ''; 2589 toggleCount.hidden = true; 2590 } else if (selected.size === 1) { 2591 const name = [...selected][0]; 2592 const slug = nameToSlug.get(name) || slugify(name); 2593 toggleLabel.textContent = localizeTag(slug, name); 2594 toggleCount.textContent = ''; 2595 toggleCount.hidden = true; 2596 } else { 2597 toggleLabel.textContent = 'Tags'; 2598 toggleCount.textContent = String(selected.size); 2599 toggleCount.hidden = false;
2600 } 2601 } 2602 2603 clearBtn.hidden = false; 2604 if (total === 0) { 2605 statusBar.textContent = ''; 2606 emptyMsg.classList.add('is-visible'); 2607 mbPagination.classList.remove('is-visible'); 2608 mbPagination.innerHTML = ''; 2609 } else { 2610 const shownStart = startIdx + 1; 2611 const shownEnd = Math.min(endIdx, total); 2612 statusBar.textContent = `Showing ${shownStart}â${shownEnd} of ${total} matching articles`; 2613 emptyMsg.classList.remove('is-visible'); 2614 renderMbPagination(currentPage, totalPages); 2615 } 2616 2617 writeUrlState(); 2618 } 2619 2620 function renderMbPagination(current, total) { 2621 if (total <= 1) { 2622 mbPagination.classList.remove('is-visible'); 2623 mbPagination.innerHTML = ''; 2624 return; 2625 } 2626 mbPagination.classList.add('is-visible'); 2627 const prevDisabled = current === 1; 2628 const nextDisabled = current === total; 2629 mbPagination.innerHTML = '<a href="#" class="mb-pag-btn mb-pag-prev" ' + (prevDisabled ? 'aria-disabled="true" tabindex="-1"' : '') + '>← Previous</a>' + '<span class="mb-pag-info" aria-live="polite">' + current + ' / ' + total + '</span>' + '<a href="#" class="mb-pag-btn mb-pag-next" ' + (nextDisabled ? 'aria-disabled="true" tabindex="-1"' : '') + '>Next →</a>'; 2630 } 2631 2632 mbPagination.addEventListener('click', function (e) { 2633 const btn = e.target.closest('.mb-pag-btn'); 2634 if (!btn || btn.getAttribute('aria-disabled') === 'true') return; 2635 e.preventDefault(); 2636 if (btn.classList.contains('mb-pag-prev')) currentPage -= 1; 2637 else if (btn.classList.contains('mb-pag-next')) currentPage += 1; 2638 applyFilters(); 2639 // Bring the top of the results into view. 2640 grid.scrollIntoView({ behavior: 'smooth', block: 'start' }); 2641 }); 2642 2643 // --- URL persistence (?q=...&tag=slug1,slug2&page=N) --- 2644 // Preserves other params (e.g. Weglot lang). Skipped during the 2645 // initial hydration pass so we don't clobber a ?page= that the 2646 // site's own pagination is currently rendering. 2647 let initializing = true; 2648 function writeUrlState() { 2649 if (initializing) return; 2650 const params = new URLSearchParams(window.location.search); 2651 const q = searchInput.value.trim(); 2652 const selectedSlugs = checkboxes.filter((c) => c.checked).map((c) => c.dataset.slug || nameToSlug.get(c.value) || ''); 2653 if (q) params.set('q', q); 2654 else params.delete('q'); 2655 if (selectedSlugs.length) params.set('tag', selectedSlugs.join(',')); 2656 else params.delete('tag'); 2657 const hasFilters = q.length > 0 || selectedSlugs.length > 0; 2658 if (hasFilters) { 2659 if (currentPage > 1) params.set('page', String(currentPage)); 2660 else params.delete('page'); 2661 } else { 2662 // Filter cleared â restore the pagination page the user 2663 // arrived on so they land back where they were browsing. 2664 if (unfilteredPage > 1) params.set('page', String(unfilteredPage)); 2665 else params.delete('page'); 2666 } 2667 const search = params.toString(); 2668 const url = window.location.pathname + (search ? '?' + search : '') + window.location.hash; 2669 history.replaceState(null, '', url); 2670 } 2671 function readUrlStateInto() { 2672 const params = new URLSearchParams(window.location.search); 2673 searchInput.value = params.get('q') || ''; 2674 const tagParam = params.get('tag') || ''; 2675 const wantedSlugs = new Set( 2676 tagParam 2677 .split(',') 2678 .map((s) => s.trim()) 2679 .filter(Boolean), 2680 ); 2681 checkboxes.forEach((cb) => { 2682 cb.checked = wantedSlugs.has(cb.dataset.slug); 2683 }); 2684 const pageParam = parseInt(params.get('page'), 10); 2685 currentPage = pageParam && pageParam > 0 ? pageParam : 1; 2686 } 2687 2688 const debouncedApply = debounce(function () { 2689 currentPage = 1; // typing changes the result set â start on page 1 2690 applyFilters(); 2691 }, 150); 2692 searchInput.addEventListener('input', debouncedApply); 2693 searchInput.addEventListener('keydown', function (e) { 2694 if (e.key === 'Escape' && searchInput.value) { 2695 searchInput.value = ''; 2696 currentPage = 1; 2697 applyFilters(); 2698 } 2699 });
2700 checkboxes.forEach((cb) => 2701 cb.addEventListener('change', function () { 2702 currentPage = 1; 2703 applyFilters(); 2704 }), 2705 ); 2706 clearBtn.addEventListener('click', function () { 2707 searchInput.value = ''; 2708 checkboxes.forEach((cb) => { 2709 cb.checked = false; 2710 }); 2711 currentPage = 1; 2712 applyFilters(); 2713 searchInput.focus(); 2714 }); 2715 2716 readUrlStateInto(); 2717 applyFilters(); 2718 initializing = false; 2719 2720 window.addEventListener('popstate', function () { 2721 captureUnfilteredPage(); 2722 readUrlStateInto(); 2723 applyFilters(); 2724 }); 2725 2726 if (typeof window.Weglot !== 'undefined' && window.Weglot.on) { 2727 window.Weglot.on('languageChanged', function () { 2728 relocalizeListingLabels(); 2729 // Refresh the search input's placeholder + aria-label so a 2730 // mid-session language switch swaps the UI copy in place. 2731 // (applyFilters below re-writes the toggle label via 2732 // localizeUi, so no explicit call needed for that.) 2733 const nextPlaceholder = getLang() === 'en' ? searchPlaceholder : localizeUi('search', searchPlaceholder); 2734 searchInput.setAttribute('placeholder', nextPlaceholder); 2735 searchInput.setAttribute('aria-label', nextPlaceholder); 2736 cards.forEach(({ el }) => { 2737 el.dataset.mbSearch = normalize(el.textContent.trim()); 2738 }); 2739 applyFilters(); 2740 }); 2741 } 2742 } 2743 2744 if (document.readyState === 'loading') { 2745 document.addEventListener('DOMContentLoaded', init); 2746 } else { 2747 init(); 2748 } 2749 })(); 2750</script>
2750</div><div class="w-layout-blockcontainer mb_container w-container"><div fs-cmsfilter-element="list" class="w-dyn-list"><div fs-cmsnest-element="list" fs-cmsload-element="list" fs-cmsload-mode="pagination" fs-cmsload-pagesiblings="1" fs-cmsload-pageboundary="1" role="list" class="mb_grid mb_grid_33-33-33 w-dyn-items"><div data-custom-date="August 18, 2026" data-available-languages="en,zh,ja,ko" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/igg-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a84665520aa2b6dc6ebdd96_2026-07_CaseStudy_IGG-Doomsday_Blog-Banner%20(1).avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a84665520aa2b6dc6ebdd96_2026-07_CaseStudy_IGG-Doomsday_Blog-Banner%20(1).avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a84665520aa2b6dc6ebdd96_2026-07_CaseStudy_IGG-Doomsday_Blog-Banner%20(1)-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a84665520aa2b6dc6ebdd96_2026-07_CaseStudy_IGG-Doomsday_Blog-Banner%20(1)-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a84665520aa2b6dc6ebdd96_2026-07_CaseStudy_IGG-Doomsday_Blog-Banner%20(1)-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a84665520aa2b6dc6ebdd96_2026-07_CaseStudy_IGG-Doomsday_Blog-Banner%20(1).avif 1417w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">IGG partners with Mistplay to unlock 300% install growth for Doomsday: Last Survivors in Japan</p></a></div><div data-custom-date="August 20, 2026" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/fuel-case-study-sinclair-oil" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a79ed25ec8062230b7e99e1_2026-05_LoyaltyPlay-Blog_SinclairOil_Header%20(1).avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a79ed25ec8062230b7e99e1_2026-05_LoyaltyPlay-Blog_SinclairOil_Header%20(1).avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a79ed25ec8062230b7e99e1_2026-05_LoyaltyPlay-Blog_SinclairOil_Header%20(1)-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a79ed25ec8062230b7e99e1_2026-05_LoyaltyPlay-Blog_SinclairOil_Header%20(1)-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a79ed25ec8062230b7e99e1_2026-05_LoyaltyPlay-Blog_SinclairOil_Header%20(1)-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a79ed25ec8062230b7e99e1_2026-05_LoyaltyPlay-Blog_SinclairOil_Header%20(1)-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a79ed25ec8062230b7e99e1_2026-05_LoyaltyPlay-Blog_SinclairOil_Header%20(1).avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Fuelling return trips: How Sinclair Oil drove 42% more visits and 9.7% more fuel purchases with LoyaltyPlay</p></a></div><div data-custom-date="August 5, 2026" data-available-languages="en,ja,zh,ko" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/futureplay-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a70eaa9510b60efd2014887_2026-08_CaseStudy_Futureplay_Blog-Banner%20(1).avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a70eaa9510b60efd2014887_2026-08_CaseStudy_Futureplay_Blog-Banner%20(1).avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a70eaa9510b60efd2014887_2026-08_CaseStudy_Futureplay_Blog-Banner%20(1)-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a70eaa9510b60efd2014887_2026-08_CaseStudy_Futureplay_Blog-Banner%20(1)-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a70eaa9510b60efd2014887_2026-08_CaseStudy_Futureplay_Blog-Banner%20(1)-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a70eaa9510b60efd2014887_2026-08_CaseStudy_Futureplay_Blog-Banner%20(1).avif 1276w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How Futureplay exceeded global ROAS targets by scaling rewarded UA with Mistplay and AppsFlyer </p></a></div><div data-custom-date="July 14, 2026" data-available-languages="ja" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/locone-loyaltyplay-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a550051216894119f6b093b_01.jpeg" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a550051216894119f6b093b_01.jpeg")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a550051216894119f6b093b_01-p-500.jpeg 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a550051216894119f6b093b_01-p-800.jpeg 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a550051216894119f6b093b_01-p-1080.jpeg 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a550051216894119f6b093b_01-p-1600.jpeg 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a550051216894119f6b093b_01-p-2000.jpeg 2000w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a550051216894119f6b093b_01-p-2600.jpeg 2600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a550051216894119f6b093b_01.jpeg 3445w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">æ©æ°ã§ãã¤ã³ãã貯ã¾ããã¤æ´»ã¢ããªããã³ããããªãã¡ã¼ã¦ã©ã¼ã«å£²ä¸ã1ãµæåæç¹ã§ã218%å¢ããå®ç¾ããLoyaltyPlayã®å¼·ã¿ã¨ã¯ã</p></a></div><div data-custom-date="June 30, 2026" data-available-languages="ja,ko" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/ana-x-case-study-loyaltyplay-ja" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a39e1cb95ff942eb5226_ANA%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a39e1cb95ff942eb5226_ANA%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a39e1cb95ff942eb5226_ANA%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a39e1cb95ff942eb5226_ANA%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a39e1cb95ff942eb5226_ANA%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a39e1cb95ff942eb5226_ANA%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a39e1cb95ff942eb5226_ANA%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">æ¥å¸¸ã®ããããç§»åããã¤ã³ãåããããANA Pocketãããã®åçã¢ãããæ¯ããLoyaltyPlayã®ç¹é·ã¨ã¯ã</p></a></div><div data-custom-date="April 15, 2024" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/unico-studio-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2942124cf422b05d8a6_Unico%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2942124cf422b05d8a6_Unico%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2942124cf422b05d8a6_Unico%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2942124cf422b05d8a6_Unico%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2942124cf422b05d8a6_Unico%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2942124cf422b05d8a6_Unico%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Breaking Into T1: How Unico Studio increased ROAS by +43% with the Mistplay Audience Network </p></a></div><div data-custom-date="May 22, 2024" data-available-languages="ja" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/gaingg-loyaltyplay-case-study-ja" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3549fd1b269c7c80021bdc_GainGG%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3549fd1b269c7c80021bdc_GainGG%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3549fd1b269c7c80021bdc_GainGG%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3549fd1b269c7c80021bdc_GainGG%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3549fd1b269c7c80021bdc_GainGG%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3549fd1b269c7c80021bdc_GainGG%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3549fd1b269c7c80021bdc_GainGG%20Banner.avif 2067w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Gain.GGãLoyaltyPlayãå°å
¥ããåçã10%å¢å </p></a></div><div data-custom-date="June 26, 2026" data-available-languages="ja" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/geosmile-loyaltyplay-case-study-ja" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a673d93899c0a6f1256b_GeoSm
2750ile%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a673d93899c0a6f1256b_GeoSmile%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a673d93899c0a6f1256b_GeoSmile%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a673d93899c0a6f1256b_GeoSmile%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a673d93899c0a6f1256b_GeoSmile%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a673d93899c0a6f1256b_GeoSmile%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a673d93899c0a6f1256b_GeoSmile%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">2000ä¸ãã¦ã³ãã¼ããèªããããªããã®æµ·å¤çãGeoSmileããLoyaltyPlayãå
¨ä½å£²ãä¸ãã®20%ãå ããææããããç§è¨£ã¨ã¯ã</p></a></div><div data-custom-date="June 25, 2026" data-available-languages="ja" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/moppy-loyaltyplay-case-study-ja" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c0c344a24bfe4c21ebfc_Moppy_Ceres%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c0c344a24bfe4c21ebfc_Moppy_Ceres%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c0c344a24bfe4c21ebfc_Moppy_Ceres%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c0c344a24bfe4c21ebfc_Moppy_Ceres%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c0c344a24bfe4c21ebfc_Moppy_Ceres%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c0c344a24bfe4c21ebfc_Moppy_Ceres%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c0c344a24bfe4c21ebfc_Moppy_Ceres%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">å°å
¥ãããåå¹´ã§å£²ä¸ã4åã«ï¼æ¥çNo.1ã®ä¼å¡æ°ãèªãã¢ããã¼ãããã¿ã¤ãºã®å¤æ§åã«LoyaltyPlayãé¸ãã çç±ã¨ã¯</p></a></div><div data-custom-date="June 24, 2026" data-available-languages="ja" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/kauche-loyaltyplay-case-study-ja" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1).jpg" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1).jpg")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1)-p-500.jpg 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1)-p-800.jpg 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1)-p-1080.jpg 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1)-p-1600.jpg 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1)-p-2000.jpg 2000w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1)-p-2600.jpg 2600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1).jpg 3600w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">ãå°å
¥äºä¾ãéèããããããè²·ãç©ã¢ããªãã«ã¦ã·ã§ã</p></a></div><div data-custom-date="July 29, 2024" data-available-languages="ja" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/harvest-land-case-study-ja" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c85c10035ab38813ac0d_MysteryTag%20B
2750anner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c85c10035ab38813ac0d_MysteryTag%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c85c10035ab38813ac0d_MysteryTag%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c85c10035ab38813ac0d_MysteryTag%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c85c10035ab38813ac0d_MysteryTag%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c85c10035ab38813ac0d_MysteryTag%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c85c10035ab38813ac0d_MysteryTag%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Mistplay Audience Networkã®ããã¬ã¤ããã·ã§ã³åºåãã«ããããå®ãã®å°ï¼Harvest Landï¼ãã®ã¦ã¼ã¶ã¼ç¶ç¶çã25%åä¸</p></a></div><div data-custom-date="June 30, 2026" data-available-languages="ko" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/caveduck-loyaltyplay-case-study-ko" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a98702c98412d48199c0384_caveduck(1).avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a98702c98412d48199c0384_caveduck(1).avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a98702c98412d48199c0384_caveduck(1)-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a98702c98412d48199c0384_caveduck(1)-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a98702c98412d48199c0384_caveduck(1)-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a98702c98412d48199c0384_caveduck(1)-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a98702c98412d48199c0384_caveduck(1).avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">LoyaltyPlayë¡ ë¹ê³¼ê¸ ì ì 를 ììµíí ì¼ì´ë¸ë</p></a></div><div data-custom-date="June 22, 2026" data-available-languages="ko" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/todaysoft-loyaltyplay-case-study-ko" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a757497d088eeacfcfeb_TodaySoft%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a757497d088eeacfcfeb_TodaySoft%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a757497d088eeacfcfeb_TodaySoft%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a757497d088eeacfcfeb_TodaySoft%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a757497d088eeacfcfeb_TodaySoft%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a757497d088eeacfcfeb_TodaySoft%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a757497d088eeacfcfeb_TodaySoft%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">í¬ë°ì´ìíí¸, LoyaltyPlay ì°ëì¼ë¡ ì 2ìµ ì ì±ê³¼ ë¬ì±</p></a></div><div data-custom-date="June 10, 2025" data-available-languages="ko" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/actionfit-case-study-ko" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5d74ef865af76bde357_Actionfit%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5d74ef865af76bde357_Actionfit%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5d74ef865af76bde357_Actionfit%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5d74ef865af76bde357_Actionfit%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5d74ef865af76bde357_Actionfit%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5d74ef865af76bde357_Actionfit%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5d74ef865af76bde357_Actionfit%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">ì¡ì
í, Mistplay Audience Networkë¡ ê¸ë¡ë² í리미ì iOS ì ì íë³´</p></a></div><div data-custom-date="July 29, 2024" data-available-languages="ko" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/joycity-case-study-ko" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6f9994990363a7d71c4_JoyCity%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6f9994990363a7d71c4_JoyCity%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6f9994990363a7d71c4_JoyCity%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6f9994990363a7d71c4_JoyCity%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6f9994990363a7d71c4_JoyCity%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6f9994990363a7d71c4_JoyCity%20Banner.avif 1559w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">ì¡°ì´ìí°, Mistplay Audience Networkì í¨ê» RPD 38% ì±ì¥</p></a></div><div data-custom-date="March 10, 2025" data-available-languages="ko" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/springcomes-sees-300-growth-with-mistplay-audience-network-ko" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d1d9a09aa294531f3c85_Springcomes%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d1d9a09aa294531f3c85_Springcomes%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d1d9a09aa294531f3c85_Springcomes%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d1d9a09aa294531f3c85_Springcomes%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d1d9a09aa294531f3c85_Springcomes%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d1d9a09aa294531f3c85_Springcomes%20Banner.avif 1417w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Mistplay Audience Networkì LoyaltyPlay를 íµí´ 300% ì±ì¥ì ì´ë£¬ ì¤íë§ì»´ì¦</p></a></div><div data-custom-date="June 30, 2026" data-available-languages="ja" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/colorful-loyaltyplay-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3ed96aee60f5448098cb2a_DSC_4652-980x639.jpg" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3ed96aee60f5448098cb2a_DSC_4652-980x639.jpg")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3ed96aee60f5448098cb2a_DSC_4652-980x639-p-500.jpg 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3ed96aee60f5448098cb2a_DSC_4652-980x639-p-800.jpg 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3ed96aee60f5448098cb2a_DSC_4652-980x639.jpg 980w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Zä¸ä»£ã§å¤§æ³¨ç®ã®ãã¤æ´»ã¢ããªãCOLORFULããLoyaltyPlayã®å°å
¥ã§ãªãã¡ã¼ã¦ã©ã¼ã«å
¨ä½å£²ä¸330%ãéæããç§è¨£ã¨ã¯</p></a></div><div data-custom-date="June 30, 2026" data-available-languages="ja" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/pointincome-loyaltyplay-case-studies" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3eaca4837d09c4b5976dc2_pointi-income1-980x516.jpg" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3eaca4837d09c4b5976dc2_pointi-income1-980x516.jpg")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3eaca4837d09c4b5976dc2_pointi-income1-980x516-p-500.jpg 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3eaca4837d09c4b5976dc2_pointi-income1-980x516-p-800.jpg 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3eaca4837d09c4b5976dc2_pointi-income1-980x516.jpg 980w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">å°å
¥åæãã10ã¶æã§UUæ°137%å¢ï¼èªç¶ãªã¦ã¼ã¶ã¼ä½é¨ãå®ç¾ããLoyaltyPlayã®ãªã¯ã¼ãåºåå°å
¥ã§æ°ããªåçæºã®åµåºã¸</p></a></div><div data-custom-date="November 26, 2025" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/707-interactive-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5b891e5af01548bfbcc_707%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5b891e5af01548bfbcc_707%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5b891e5af01548bfbcc_707%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5b891e5af01548bfbcc_707%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5b891e5af01548bfbcc_707%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5b891e5af01548bfbcc_707%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5b891e5af01548bfbcc_707%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How 707 INTERACTIVE boosted retention by +288% with the Mistplay Audience Network</p></a></div><div data-custom-date="January 28, 2025" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/fumb-games-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c636d858838ebe3dce4d_FumbGames%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c636d858838ebe3dce4d_FumbGames%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c636d858838ebe3dce4d_FumbGames%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c636d858838ebe3dce4d_FumbGames%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c636d858838ebe3dce4d_FumbGames%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c636d858838ebe3dce4d_FumbGames%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c636d858838ebe3dce4d_FumbGames%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How Fumb Games reached 116% DAU growth with the Mistplay Audience Network</p></a></div><div data-custom-date="February 23, 2026" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/hyper-hippo-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6ab43af9d4fe44c7df2_HyperHippo%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6ab43af9d4fe44c7df2_HyperHippo%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6ab43af9d4fe44c7df2_HyperHippo%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6ab43af9d4fe44c7df2_HyperHippo%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6ab43af9d4fe44c7df2_HyperHippo%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6ab43af9d4fe44c7df2_HyperHippo%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6ab43af9d4fe44c7df2_HyperHippo%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How Hyper Hippo achieved +32% ROAS with the Mistplay Audience Network and rewarded UA </p></a></div><div data-custom-date="June 10, 2025" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/actionfit-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5d74ef865af76bde357_Actionfit%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5d74ef865af76bde357_Actionfit%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5d74ef865af76bde357_Actionfit%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5d74ef865af76bde357_Actionfit%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5d74ef865af76bde357_Actionfit%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c
27504e8738d0744ccf/6a43c5d74ef865af76bde357_Actionfit%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5d74ef865af76bde357_Actionfit%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How ActionFit broke through iOS barriers with the Mistplay Audience Network</p></a></div><div data-custom-date="April 15, 2024" data-available-languages="ja" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/unico-studio-case-study-ja" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2942124cf422b05d8a6_Unico%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2942124cf422b05d8a6_Unico%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2942124cf422b05d8a6_Unico%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2942124cf422b05d8a6_Unico%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2942124cf422b05d8a6_Unico%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2942124cf422b05d8a6_Unico%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Unico Studio社ãMistplay Audience Networkãå°å
¥ãã¦ããæ¥æ¬ã§ROASã43%å¢</p></a></div><div data-custom-date="December 16, 2025" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/gamehaus-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c688e6c99d2aabe659fd_Gamehaus%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c688e6c99d2aabe659fd_Gamehaus%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c688e6c99d2aabe659fd_Gamehaus%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c688e6c99d2aabe659fd_Gamehaus%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c688e6c99d2aabe659fd_Gamehaus%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c688e6c99d2aabe659fd_Gamehaus%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c688e6c99d2aabe659fd_Gamehaus%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How Gamehaus expanded their US user base by +5% with the Mistplay Audience Network</p></a></div><div data-custom-date="July 22, 2025" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/mobibrain-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7e7312259508ffbc083_Mobibrain%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7e7312259508ffbc083_Mobibrain%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7e7312259508ffbc083_Mobibrain%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7e7312259508ffbc083_Mobibrain%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7e7312259508ffbc083_Mobibrain%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7e7312259508ffbc083_Mobibrain%20Banner.avif 1417w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How MobiBrain boosted ARPPU by +347% with the Mistplay Audience Network </p></a></div><div data-custom-date="June 12, 2025" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/midnite-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7c20d002e3a632158dd_Midnite%20B
2750anner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7c20d002e3a632158dd_Midnite%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7c20d002e3a632158dd_Midnite%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7c20d002e3a632158dd_Midnite%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7c20d002e3a632158dd_Midnite%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7c20d002e3a632158dd_Midnite%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7c20d002e3a632158dd_Midnite%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How Midnite Games achieved 170% ROAS with the Mistplay Audience Network</p></a></div><div data-custom-date="July 29, 2024" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/joycity-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6f9994990363a7d71c4_JoyCity%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6f9994990363a7d71c4_JoyCity%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6f9994990363a7d71c4_JoyCity%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6f9994990363a7d71c4_JoyCity%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6f9994990363a7d71c4_JoyCity%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6f9994990363a7d71c4_JoyCity%20Banner.avif 1559w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How JOYCITY boosted RPD by +38% with the Mistplay Audience Network </p></a></div><div data-custom-date="July 29, 2024" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/harvest-land-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c85c10035ab38813ac0d_MysteryTag%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c85c10035ab38813ac0d_MysteryTag%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c85c10035ab38813ac0d_MysteryTag%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c85c10035ab38813ac0d_MysteryTag%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c85c10035ab38813ac0d_MysteryTag%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c85c10035ab38813ac0d_MysteryTag%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c85c10035ab38813ac0d_MysteryTag%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How the Mistplay Audience Network drove +25% retention for Harvest Land </p></a></div><div data-custom-date="June 30, 2025" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/paxiegames-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c8964db9acb17b52d9db_Paxie%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c8964db9acb17b52d9db_Paxie%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c8964db9acb17b52d9db_Paxie%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c8964db9acb17b52d9db_Paxie%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c8964db9acb17b52d9db_Paxie%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c8964db9acb17b52d9db_Paxie%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How Paxie Games boosted IAP by +45% with Mistplayâs APAC strategy</p></a></div><div data-custom-date="September 29, 2025" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/merge-restaurants-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7a3e6c99d2aabe80a64_Merge%20Restaurant%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7a3e6c99d2aabe80a64_Merge%20Restaurant%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7a3e6c99d2aabe80a64_Merge%20Restaurant%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7a3e6c99d2aabe80a64_Merge%20Restaurant%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7a3e6c99d2aabe80a64_Merge%20Restaurant%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7a3e6c99d2aabe80a64_Merge%20Restaurant%20Banner.avif 1417w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">
2750How Potato Play scaled Merge Restaurants in T1 markets with rewarded UA</p></a></div><div data-custom-date="March 10, 2025" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/springcomes-sees-300-growth-with-mistplay-audience-network" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d1d9a09aa294531f3c85_Springcomes%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d1d9a09aa294531f3c85_Springcomes%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d1d9a09aa294531f3c85_Springcomes%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d1d9a09aa294531f3c85_Springcomes%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d1d9a09aa294531f3c85_Springcomes%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d1d9a09aa294531f3c85_Springcomes%20Banner.avif 1417w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How Springcomes reached 300% growth with the Mistplay Audience Network and LoyaltyPlay</p></a></div><div data-custom-date="September 1, 2025" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/worldwinner-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2bbace3f6fa9533292c_WorldWinner%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2bbace3f6fa9533292c_WorldWinner%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2bbace3f6fa9533292c_WorldWinner%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2bbace3f6fa9533292c_WorldWinner%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2bbace3f6fa9533292c_WorldWinner%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2bbace3f6fa9533292c_WorldWinner%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2bbace3f6fa9533292c_WorldWinner%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How WorldWinner achieved 52% revenue growth growth with the Mistplay Audience Network </p></a></div><div data-custom-date="January 19, 2026" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/tapnation-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d276a0a7266f7c635eca_TapNation%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d276a0a7266f7c635eca_TapNation%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d276a0a7266f7c635eca_TapNation%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d276a0a7266f7c635eca_TapNation%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d276a0a7266f7c635eca_TapNation%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d276a0a7266f7c635eca_TapNation%20Banner.avif 1417w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How TapNation scaled three titles to 130% ROAS with the Mistplay Audience Network</p></a></div><div data-custom-date="June 16, 2026" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/revolut-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c8b2fb0d489ab98610df_Revolut%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c8b2fb0d489ab98610df_Revolut%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c8b2fb0d489ab98610df_Revolut%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c8b2fb0d489ab98610df_Revolut%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c8b2fb0d489ab98610df_Revolut%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c8b2fb0d489ab98610df_Revolut%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c8b2fb0d489ab98610df_Revolut%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-study</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Achieving a 17x traffic surge for Revolut with the Mistplay Audience Network</p></a></div><div data-custom-date="June 22, 2026" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/todaysoft-loyaltyplay-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a757497d088eeacfcfeb_TodaySoft%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a757497d088eeacfcfeb_TodaySoft%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a757497d088eeacfcfeb_TodaySoft%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a757497d088eeacfcfeb_TodaySoft%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a757497d088eeacfcfeb_TodaySoft%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a757497d088eeacfcfeb_TodaySoft%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a757497d088eeacfcfeb_TodaySoft%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How TodaySoft grew app revenue by 200% with LoyaltyPlay</p></a></div><div data-custom-date="January 16, 2025" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/pollflow-loyaltyplay-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a6ae0071775e6b54db7d_PollFlow%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a6ae0071775e6b54db7d_PollFlow%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a6ae0071775e6b54db7d_PollFlow%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a6ae0071775e6b54db7d_PollFlow%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a6ae0071775e6b54db7d_PollFlow%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a6ae0071775e6b54db7d_PollFlow%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a6ae0071775e6b54db7d_PollFlow%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How PollFlow doubled its revenue with LoyaltyPlay</p></a></div><div data-custom-date="June 26, 2026" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/geosmile-loyaltyplay-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a673d93899c0a6f1256b_GeoSm
2750ile%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a673d93899c0a6f1256b_GeoSmile%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a673d93899c0a6f1256b_GeoSmile%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a673d93899c0a6f1256b_GeoSmile%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a673d93899c0a6f1256b_GeoSmile%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a673d93899c0a6f1256b_GeoSmile%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a673d93899c0a6f1256b_GeoSmile%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How GeoSmile scaled incremental app revenue by 20% with LoyaltyPlay </p></a></div><div data-custom-date="June 18, 2026" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/terabox-loyaltyplay-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a4c603cbc5bf587496fa_TeraBox%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a4c603cbc5bf587496fa_TeraBox%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a4c603cbc5bf587496fa_TeraBox%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a4c603cbc5bf587496fa_TeraBox%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a4c603cbc5bf587496fa_TeraBox%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a4c603cbc5bf587496fa_TeraBox%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a4c603cbc5bf587496fa_TeraBox%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Turning free users into revenue: How TeraBox increased incremental revenue by 50% with LoyaltyPlay</p></a></div><div data-custom-date="June 17, 2026" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/weward-loyaltyplay-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a4ab15fe750d261fe2f8_WeWard%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a4ab15fe750d261fe2f8_WeWard%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a4ab15fe750d261fe2f8_WeWard%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a4ab15fe750d261fe2f8_WeWard%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a4ab15fe750d261fe2f8_WeWard%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a4ab15fe750d261fe2f8_WeWard%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a4ab15fe750d261fe2f8_WeWard%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">WeWard steps up app engagement by 12% with LoyaltyPlay</p></a></div><div data-custom-date="June 25, 2026" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/moppy-loyaltyplay-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c0c344a24bfe4c21ebfc_Moppy_Ceres%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c0c344a24bfe4c21ebfc_Moppy_Ceres%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c0c344a24bfe4c21ebfc_Moppy_Ceres%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c0c344a24bfe4c21ebfc_Moppy_Ceres%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c0c344a24bfe4c21ebfc_Moppy_Ceres%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c0c344a24bfe4c21ebfc_Moppy_Ceres%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c0c344a24bfe4c21ebfc_Moppy_Ceres%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How leading Japanese GPT service Moppy unlocked a 4x revenue lift with LoyaltyPlay</p></a></div><div data-custom-date="June 29, 2026" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/caveduck-loyaltyplay-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a67b8d54b6083ef5d6cb31e_caveduck2(1).avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a67b8d54b6083ef5d6cb31e_caveduck2(1).avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a67b8d54b6083ef5d6cb31e_caveduck2(1)-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a67b8d54b6083ef5d6cb31e_caveduck2(1)-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a67b8d54b6083ef5d6cb31e_caveduck2(1)-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a67b8d54b6083ef5d6cb31e_caveduck2(1)-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a67b8d54b6083ef5d6cb31e_caveduck2(1).avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">134% more revenue: How Caveduck monetized non-spenders with LoyaltyPlay</p></a></div><div data-custom-date="June 30, 2026" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/ana-x-case-study-loyaltyplay" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a39e1cb95ff942eb5226_ANA%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a39e1cb95ff942eb5226_ANA%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a39e1cb95ff942eb5226_ANA%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a39e1cb95ff942eb5226_ANA%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a39e1cb95ff942eb5226_ANA%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a39e1cb95ff942eb5226_ANA%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a39e1cb95ff942eb5226_ANA%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Exceeding the revenue target for ANA X by 45% with LoyaltyPlay </p></a></div><div data-custom-date="June 23, 2026" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/klink-finance-loyaltyplay-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a37e67b
27500ab6ba3730452_Klink%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a37e67b0ab6ba3730452_Klink%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a37e67b0ab6ba3730452_Klink%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a37e67b0ab6ba3730452_Klink%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a37e67b0ab6ba3730452_Klink%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a37e67b0ab6ba3730452_Klink%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a37e67b0ab6ba3730452_Klink%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How Klink Finance achieved 200% ARPDAU growth with LoyaltyPlay</p></a></div><div data-custom-date="June 24, 2026" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/kauche-loyaltyplay-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1).jpg" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1).jpg")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1)-p-500.jpg 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1)-p-800.jpg 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1)-p-1080.jpg 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1)-p-1600.jpg 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1)-p-2000.jpg 2000w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1)-p-2600.jpg 2600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1).jpg 3600w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How KAUCHE expanded its rewarded user experience with LoyaltyPlay</p></a></div><div data-custom-date="October 24, 2025" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/zbd-loyaltyplay-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a30309aa1b063a252752_ZBD%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a30309aa1b063a252752_ZBD%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a30309aa1b063a252752_ZBD%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a30309aa1b063a252752_ZBD%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a30309aa1b063a252752_ZBD%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a30309aa1b063a252752_ZBD%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a30309aa1b063a252752_ZBD%20Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How ZBD grew European ARPDAU by +30% with LoyaltyPlay</p></a></div><div data-custom-date="June 19, 2026" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/superbowl-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a2c03be576436ef9a613_Superbowl%20banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a2c03be576436ef9a613_Superbowl%20banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a2c03be576436ef9a613_Superbowl%20banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a2c03be576436ef9a613_Superbowl%20banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a2c03be576436ef9a613_Superbowl%20banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a2c03be576436ef9a613_Superbowl%20banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a2c03be576436ef9a613_Superbowl%20banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How LoyaltyPlayâs Super Bowl Tournament unlocked +80% revenue gains for mobile app publishers</p></a></div><div data-custom-date="May 22, 2024" data-available-languages="en" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/gaingg-loyaltyplay-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3549fd1b269c7c80021bdc_GainGG%20Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3549fd1b269c7c80021bdc_GainGG%20Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3549fd1b269c7c80021bdc_GainGG%20Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3549fd1b269c7c80021bdc_GainGG%20Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3549fd1b269c7c80021bdc_GainGG%20Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3549fd1b269c7c80021bdc_GainGG%20Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3549fd1b269c7c80021bdc_GainGG%20Banner.avif 2067w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How Gain.GG boosted revenue by +10% and engaged more users with LoyaltyPlay</p></a></div><div data-custom-date="March 25, 2026" data-available-languages="en,fr,de,ko,ja,zh" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/restaurant-case-study-checkers-rallys" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/69c3f6bfb7405de0694e3d2d_2026-03_ConnectedRewards-Blog_Checkers%26Rally%27s_Header%20(1).avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/69c3f6bfb7405de0694e3d2d_2026-03_ConnectedRewards-Blog_Checkers%26Rally%27s_Header%20(1).avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/69c3f6bfb7405de0694e3d2d_2026-03_ConnectedRewards-Blog_Checkers%26Rally%27s_Header%20(1)-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/69c3f6bfb7405de0694e3d2d_2026-03_ConnectedRewards-Blog_Checkers%26Rally%27s_Header%20(1)-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/69c3f6bfb7405de0694e3d2d_2026-03_ConnectedRewards-Blog_Checkers%26Rally%27s_Header%20(1)-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/69c3f6bfb7405de0694e3d2d_2026-03_ConnectedRewards-Blog_Checkers%26Rally%27s_Header%20(1)-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/69c3f6bfb7405de0694e3d2d_2026-03_ConnectedRewards-Blog_Checkers%26Rally%27s_Header%20(1).avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Turning lapsed diners into regulars: Driving 54% re-engagement for Checkers & Rallyâs with LoyaltyPlay</p></a></div><div data-custom-date="March 25, 2026" data-available-languages="en,fr,de,ko,ja,zh" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/convenience-case-study-gomart" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/69c3eb0b5686df09da4520c2_2026-03_ConnectedRewards-Blog_GoMart_Header%20(1).avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/69c3eb0b5686df09da4520c2_2026-03_ConnectedRewards-Blog_GoMart_Header%20(1).avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/69c3eb0b5686df09da4520c2_2026-03_ConnectedRewards-Blog_GoMart_Header%20(1)-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/69c3eb0b5686df09da4520c2_2026-03_ConnectedRewards-Blog_GoMart_Header%20(1)-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/69c3eb0b5686df09da4520c2_2026-03_ConnectedRewards-Blog_GoMart_Header%20(1)-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/69c3eb0b5686df09da4520c2_2026-03_ConnectedRewards-Blog_GoMart_Header%20(1)-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/69c3eb0b5686df09da4520c2_2026-03_ConnectedRewards-Blog_GoMart_Header%20(1).avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Fuelling engagement: Driving an 85% reward redemption rate for GoMart with LoyaltyPlay</p></a></div><div data-custom-date="February 10, 2026" data-available-languages="en,fr,de,ko,ja,zh" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/playrix-township" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/698b3f702fc23795400aa907_2026-02_CaseStudy_Township-by-playrix_Blog-Banner%20(1).avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/698b3f702fc23795400aa907_2026-02_CaseStudy_Township-by-playrix_Blog-Banner%20(1).avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/698b3f702fc23795400aa907_2026-02_CaseStudy_Township-by-playrix_Blog-Banner%20(1)-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/698b3f702fc23795400aa907_2026-02_CaseStudy_Township-by-playrix_Blog-Banner%20(1)-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/698b3f702fc23795400aa907_2026-02_CaseStudy_Township-by-playrix_Blog-Banner%20(1)-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/698b3f702fc23795400aa907_2026-02_CaseStudy_Township-by-playrix_Blog-Banner%20(1)-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/698b3f702fc23795400aa907_2026-02_CaseStudy_Township-by-playrix_Blog-Banner%20(1).avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">
2750Driving global spend: Township partners with Mistplay to deliver 76% growth in install to spender conversion</p></a></div><div data-custom-date="January 26, 2026" data-available-languages="en,fr,de,ko,ja,zh" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/leniu-games-i9-inferno-nine" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6978f7f4bb8f1aa0ad927489_2025-12_CaseStudy_LeniuGames_Blog-Banner%202.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6978f7f4bb8f1aa0ad927489_2025-12_CaseStudy_LeniuGames_Blog-Banner%202.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6978f7f4bb8f1aa0ad927489_2025-12_CaseStudy_LeniuGames_Blog-Banner%202-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6978f7f4bb8f1aa0ad927489_2025-12_CaseStudy_LeniuGames_Blog-Banner%202-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6978f7f4bb8f1aa0ad927489_2025-12_CaseStudy_LeniuGames_Blog-Banner%202-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6978f7f4bb8f1aa0ad927489_2025-12_CaseStudy_LeniuGames_Blog-Banner%202-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6978f7f4bb8f1aa0ad927489_2025-12_CaseStudy_LeniuGames_Blog-Banner%202.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Achieving 2.5x D30 ROAS goal: How Mistplay helped I9: Inferno Nine excel in South Korea's competitive MMORPG Market</p></a></div><div data-custom-date="January 19, 2026" data-available-languages="en,fr,de,ko,ja,zh" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/netmarble-seven-knights-rebirth" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/696e639b95201f45e80b9214_2025-12_CaseStudy_Netmarble_Blog-Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/696e639b95201f45e80b9214_2025-12_CaseStudy_Netmarble_Blog-Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/696e639b95201f45e80b9214_2025-12_CaseStudy_Netmarble_Blog-Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/696e639b95201f45e80b9214_2025-12_CaseStudy_Netmarble_Blog-Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/696e639b95201f45e80b9214_2025-12_CaseStudy_Netmarble_Blog-Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/696e639b95201f45e80b9214_2025-12_CaseStudy_Netmarble_Blog-Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/696e639b95201f45e80b9214_2025-12_CaseStudy_Netmarble_Blog-Banner-p-2000.avif 2000w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/696e639b95201f45e80b9214_2025-12_CaseStudy_Netmarble_Blog-Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How Netmarble achieved a 10% increase in high-value RPG players with Mistplay</p></a></div><div data-custom-date="October 21, 2025" data-available-languages="en,fr,de,ko,ja,zh" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/ovivo-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68f7b17ec6371e6acf707b30_2025-05_CaseStudy_Ovivo_Blog-Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68f7b17ec6371e6acf707b30_2025-05_CaseStudy_Ovivo_Blog-Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68f7b17ec6371e6acf707b30_2025-05_CaseStudy_Ovivo_Blog-Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68f7b17ec6371e6acf707b30_2025-05_CaseStudy_Ovivo_Blog-Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68f7b17ec6371e6acf707b30_2025-05_CaseStudy_Ovivo_Blog-Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68f7b17ec6371e6acf707b30_2025-05_CaseStudy_Ovivo_Blog-Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68f7b17ec6371e6acf707b30_2025-05_CaseStudy_Ovivo_Blog-Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How Ovivo Games achieved a 3.5% lift in LTV with Mistplayâs HEX</p></a></div><div data-custom-date="September 22, 2025" data-available-languages="en,fr,de,ko,ja,zh" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/37games-ant-legion" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68d161ea67c4916b16918f32_2025-09_CaseStudy_AntLegion-by-37Games_Blog-Banner.avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68d161ea67c4916b16918f32_2025-09_CaseStudy_AntLegion-by-37Games_Blog-Banner.avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68d161ea67c4916b16918f32_2025-09_CaseStudy_AntLegion-by-37Games_Blog-Banner-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68d161ea67c4916b16918f32_2025-09_CaseStudy_AntLegion-by-37Games_Blog-Banner-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68d161ea67c4916b16918f32_2025-09_CaseStudy_AntLegion-by-37Games_Blog-Banner-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68d161ea67c4916b16918f32_2025-09_CaseStudy_AntLegion-by-37Games_Blog-Banner-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68d161ea67c4916b16918f32_2025-09_CaseStudy_AntLegion-by-37Games_Blog-Banner.avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Scaling quality: Mistplay outperforms rewarded channels by 30% for Ant Legion in South Korea</p></a></div><div data-custom-date="May 16, 2025" data-available-languages="en,fr,de,ko,ja,zh" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/playlinks-anipang-matgo-anipang-poker" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68276aa344fdb62c0de777f1_2025-02_CaseStudy_Playlinks_Blog-Banner%20(1).avif" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68276aa344fdb62c0de777f1_2025-02_CaseStudy_Playlinks_Blog-Banner%20(1).avif")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68276aa344fdb62c0de777f1_2025-02_CaseStudy_Playlinks_Blog-Banner%20(1)-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68276aa344fdb62c0de777f1_2025-02_CaseStudy_Playlinks_Blog-Banner%20(1)-p-800.avif 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68276aa344fdb62c0de777f1_2025-02_CaseStudy_Playlinks_Blog-Banner%20(1)-p-1080.avif 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68276aa344fdb62c0de777f1_2025-02_CaseStudy_Playlinks_Blog-Banner%20(1)-p-1600.avif 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68276aa344fdb62c0de777f1_2025-02_CaseStudy_Playlinks_Blog-Banner%20(1).avif 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Breaking UA expectations: How Playlinks boosted D7 ROAS in South Korea by 36% with Mistplay</p></a></div><div data-custom-date="December 13, 2024" data-available-languages="en,fr,de,ko,ja,zh" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/2024-in-review-for-publishers" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745680_2024-11_2024%20in%20review%20for%20publishers%20(1)%20(1).png" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745680_2024-11_2024%20in%20review%20for%20publishers%20(1)%20(1).png")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745680_2024-11_2024%2520in%2520review%2520for%2520publishers%2520(1)%2520(1)-p-500.png 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745680_2024-11_2024%2520in%2520review%2520for%2520publishers%2520(1)%2520(1)-p-800.png 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745680_2024-11_2024%2520in%2520review%2520for%2520publishers%2520(1)%2520(1)-p-1080.png 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745680_2024-11_2024%2520in%2520review%2520for%2520publishers%2520(1)%2520(1)-p-1600.png 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745680_2024-11_2024%20in%20review%20for%20publishers%20(1)%20(1).png 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">events-corporate</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Mistplayâs 2024 year in review for publishers</p></a></div><div data-custom-date="October 10, 2024" data-available-languages="en,fr,de,ko,ja,zh" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/treeplla-cat-snack-bar" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d074559a_2024-10_CaseStudy_Treeplla-CatSnackBar_Blog-Banner%20(1)%20(1).png" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d074559a_2024-10_CaseStudy_Treeplla-CatSnackBar_Blog-Banner%20(1)%20(1).png")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d074559a_2024-10_CaseStudy_Treeplla-CatSnackBar_Blog-Banner%2520(1)%2520(1)-p-500.png 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d074559a_2024-10_CaseStudy_Treeplla-CatSnackBar_Blog-Banner%2520(1)%2520(1)-p-800.png 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d074559a_2024-10_CaseStudy_Treeplla-CatSnackBar_Blog-Banner%2520(1)%2520(1)-p-1080.png 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d074559a_2024-10_CaseStudy_Treeplla-CatSnackBar_Blog-Banner%2520(1)%2520(1)-p-1600.png 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d074559a_2024-10_CaseStudy_Treeplla-CatSnackBar_Blog-Banner%20(1)%20(1).png 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How Treeplla succeeded in the US market and improved D30 retention by 70% with Mistplay </p></a></div><div data-custom-date="June 24, 2024" data-available-languages="en,fr,de,ko,ja,zh" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/photonfox-magicabin-witchs-adventure" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455c1_2024-07_CaseStudy_Playtika-BoardKings_Blog-Banner.png" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455c1_2024-07_CaseStudy_Playtika-BoardKings_Blog-Banner.png")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455c1_2024-07_CaseStudy_Playtika-BoardKings_Blog-Banner-p-500.png 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455c1_2024-07_CaseStudy_Playtika-BoardKings_Blog-Banner-p-800.png 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455c1_2024-07_CaseStudy_Playtika-BoardKings_Blog-Banner-p-1080.png 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455c1_2024-07_CaseStudy_Playtika-BoardKings_Blog-Banner-p-1600.png 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455c1_2024-07_CaseStudy_Playtika-BoardKings_Blog-Banner.png 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Unlocking global markets and a 25% higher D7 retention for Magicabin: Witchâs Adventure</p></a></div><div data-custom-date="June 25, 2024" data-available-languages="en,fr,de,ko,ja,zh" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/century-games-dragoncape-adventure-mistplay" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455c3_case-study_DragonCape-CenturyGames_hero.png" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455c3_case-study_DragonCape-CenturyGames_hero.png")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455c3_case-study_DragonCape-CenturyGames_hero-p-500.png 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455c3_case-study_DragonCape-CenturyGames_hero-p-800.png 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455c3_case-study_DragonCape-CenturyGames_hero-p-1080.png 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455c3_case-study_DragonCape-CenturyGames_hero-p-1600.png 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455c3_case-study_DragonCape-CenturyGames_hero.png 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">A partnership forged in trust: Fostering impactful loyalty for Century Gamesâ DragonCape Adventure with Mistplay </p></a></div><div data-custom-date="January 22, 2024" data-available-languages="en,fr,de,ko,ja,zh" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/vividjoan-bingo-wild-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455b7_case-study-vividjoan-banner.png" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455b7_case-study-vividjoan-banner.png")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.c
2750om/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455b7_case-study-vividjoan-banner-p-500.png 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455b7_case-study-vividjoan-banner-p-800.png 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455b7_case-study-vividjoan-banner-p-1080.png 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455b7_case-study-vividjoan-banner-p-1600.png 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455b7_case-study-vividjoan-banner.png 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Bingo breakthrough: Achieving 10% higher ROI for VividJoan Games</p></a></div><div data-custom-date="November 20, 2023" data-available-languages="en,fr,de,ko,ja,zh" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/higgs-studio-tile-master-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455b5_case-study-higgsstudio-banner.png" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455b5_case-study-higgsstudio-banner.png")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455b5_case-study-higgsstudio-banner-p-500.png 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455b5_case-study-higgsstudio-banner-p-800.png 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455b5_case-study-higgsstudio-banner-p-1080.png 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455b5_case-study-higgsstudio-banner-p-1600.png 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455b5_case-study-higgsstudio-banner.png 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How Higgs Studio achieved 2x retention compared to CPE rewarded media sources</p></a></div><div data-custom-date="September 13, 2023" data-available-languages="en,fr,de,ko,ja,zh" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/trailmix-love-pies-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d074560e_case-study-trailmixgames-banner.png" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d074560e_case-study-trailmixgames-banner.png")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d074560e_case-study-trailmixgames-banner-p-500.png 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d074560e_case-study-trailmixgames-banner-p-800.png 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d074560e_case-study-trailmixgames-banner-p-1080.png 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d074560e_case-study-trailmixgames-banner-p-1600.png 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d074560e_case-study-trailmixgames-banner.png 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Outperforming traditional channels: How Trailmix achieved 25% greater D1 retention with Mistplay</p></a></div><div data-custom-date="August 16, 2023" data-available-languages="en,fr,de,ko,ja,zh" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/futureplay-merge-gardens-case-study" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745630_2023-07_Futureplay-CaseStudy_Banner.png" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745630_2023-07_Futureplay-CaseStudy_Banner.png")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745630_2023-07_Futureplay-CaseStudy_Banner-p-500.png 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745630_2023-07_Futureplay-CaseStudy_Banner-p-800.png 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745630_2023-07_Futureplay-CaseStudy_Banner-p-1080.png 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745630_2023-07_Futureplay-CaseStudy_Banner-p-1600.png 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745630_2023-07_Futureplay-CaseStudy_Banner.png 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How Futureplay Games lifted D7 ROAS by 23.7% and doubled installs with Mistplay</p></a></div><div data-custom-date="April 25, 2023" data-available-languages="" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/loyalty-drives-scale-and-retention-for-east-side-games" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745331_case-study-eastsidegames-banner.png" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745331_case-study-eastsidegames-banner.png")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745331_case-study-eastsidegames-banner-p-500.png 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745331_case-study-eastsidegames-banner-p-800.png 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745331_case-study-eastsidegames-banner-p-1080.png 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745331_case-study-eastsidegames-banner-p-1600.png 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745331_case-study-eastsidegames-banner-p-2000.png 2000w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745331_case-study-eastsidegames-banner-p-2600.png 2600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745331_case-study-eastsidegames-banner.png 4096w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">Loyalty Drives +15% Scale and 9.5% D7-Retention for East Side Games</p></a></div><div data-custom-date="November 17, 2022" data-available-languages="" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/dragonscapes-adventure" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07452d1_case-study-dragonscape-banner.webp" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07452d1_case-study-dragonscape-banner.webp")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07452d1_case-study-dragonscape-banner-p-500.webp 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07452d1_case-study-dragonscape-banner-p-800.webp 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07452d1_case-study-dragonscape-banner-p-1080.webp 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07452d1_case-study-dragonscape-banner-p-1600.webp 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07452d1_case-study-dragonscape-banner-p-2000.webp 2000w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07452d1_case-study-dragonscape-banner.webp 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How Dragonscapes Adventure Boosted Global Growth with Mistplay</p></a></div><div data-custom-date="November 17, 2022" data-available-languages="" id="w-node-_7d5330d8-0fcb-75ff-7a61-a83b4ab42a98-d0744fab" role="listitem" class="mb_card_resource w-dyn-item"><a href="/resources/top-50-puzzle-game-d7-roas" class="w-inline-block"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07452bc_case-study-top-puzzle-game-banner.webp" loading="lazy" style="background-image:url("https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07452bc_case-study-top-puzzle-game-banner.webp")" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07452bc_case-study-top-puzzle-game-banner-p-500.webp 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07452bc_case-study-top-puzzle-game-banner-p-800.webp 800w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07452bc_case-study-top-puzzle-game-banner-p-1080.webp 1080w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07452bc_case-study-top-puzzle-game-banner-p-1600.webp 1600w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07452bc_case-study-top-puzzle-game-banner-p-2000.webp 2000w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07452bc_case-study-top-puzzle-game-banner.webp 2048w" class="mb_card_resource_img"/><div data-wf--mb-label-resource--variant="aqua" class="mb_label_resource"><h6 class="mb_text_label">case-studies</h6></div><p class="mb_p mb_card_resource_text mb_text_primary mb_text_no-margin">How a Top 50 Grossing Puzzle Game increased D7 ROAS by 5.2x</p></a></div></div></div></div></section><section class="mb_footer_b"><div class="mb_container_footer_b"><div class="mb_footer_left_b"><a href="#" class="mb_logo_a mb_logo_footer_b w-nav-brand"><img width="140" height="49" alt="Mistplay Logo" src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/6a0209092fd5a230d281e5e7_logo_mistplay_light_trim.svg" loading="lazy" class="mb_nav_logo_a mb_footer_logo_b"/></a><div class="text-block-20">Follow us on <a href="https://ca.linkedin.com/company/mistplay" target="_blank" class="mb_link_footer">LinkedIn</a></div><div class="copyright-footer">© 2026 Mistplay, Inc. All rights reserved </div></div><div class="w-layout-hflex mb_footer_right"><div class="mb_footer_col_b"><h6 class="mb_footer_col_heading">Advertisers</h6><div class="mb_footer_list_b"><a href="/advertisers/loyalty-program" class="mb_footer_item_b">Loyalty Platform</a><a href="/advertisers/ios" class="mb_footer_item_b">Mistplay for iPhone</a><a href="/advertisers/android" class="mb_footer_item_b">Mistplay for Android</a><a href="/advertisers/mistplay-audience-network" class="mb_footer_item_b">Mistplay Audience Network</a><a href="/advertisers/hex" class="mb_footer_item_b">HEX</a></div></div><div class="mb_footer_col_b"><h6 class="mb_footer_col_heading">Publishers</h6><div class="mb_footer_list_b"><a href="/publishers/loyaltyplay" class="mb_footer_item_b">LoyaltyPlay</a><a href="/publishers/loyaltyplay/app-publishers" class="mb_footer_item_b">For apps</a><a href="/publishers/loyaltyplay/brands-retailers" class="mb_footer_item_b">For brands</a><a href="/publishers/loyaltyplay/restaurants" class="mb_footer_item_b">Restaurants</a><a href="/publishers/loyaltyplay/finance-fintech" class="mb_footer_item_b">Finance & Fintech</a><a href="/publishers/loyaltyplay/shopping-cashback" class="mb_footer_item_b">Shopping & Cashback</a><a href="/publishers/loyaltyplay/fuel-convenience-stores" class="mb_footer_item_b">Fuel & CStore</a></div></div><div class="mb_footer_col_b"><h6 class="mb_footer_col_heading">Resources</h6><div class="mb_footer_list_b"><a href="/resources" class="mb_footer_item_b">Articles</a><a href="/article-tags/case-studies" aria-current="page" class="mb_footer_item_b w--current">Case Studies</a><a href="/reports" class="mb_footer_item_b">Industry Reports</a></div></div><div class="mb_footer_col_b"><h6 class="mb_footer_col_heading">Company</h6><div class="mb_footer_list_b"><a href="/about-us" class="mb_footer_item_b">About Us</a><a href="/newsroom" class="mb_footer_item_b">Newsroom</a><a href="https://www.mistplay.com/legal/privacy" class="mb_footer_item_b">Privacy policy</a><a href="https://www.mistplay.com/legal/terms-of-use" class="mb_footer_item_b">Terms of service</a><a href="https://www.mistplay.com/legal/privacy-centre" class="mb_footer_item_b">Privacy Center</a></div></div></div></div></section><div class="w-embed"><style> 2751 2752 /* --- global fixes --- */ 2753
2754 /* --- fix nav code embed default styling */ 2755 /* .w-embed {width: 0px !important;} */ 2756 2757 /* remove pseudo-elements genreated by Webflow */ 2758 .mb_grid:before, 2759 .mb_grid:after, 2760 .mbr_grid:before, 2761 .mbr_grid:after, 2762 .mb_container:before, 2763 .mb_container:after { 2764 display: none; 2765 } 2766 2767 /* force button width to match it's child's width */ 2768 .mb_button_primary, 2769 .mb_button_secondary, 2770 .mb_label_resource { 2771 width: max-content; 2772 } 2773 2774 /* global opacity hide */ 2775 .mb_opacity-0 {opacity: 0 !important;} 2776 2777 /* fix resource card image sizes */ 2778 .mb_card_resource_img {object-fit: cover !important;} 2779 2780 /* override top padding on mobile */ 2781 @media screen and (max-width: 479px) { 2782 .body { 2783 padding-top: 0px !important; 2784 } 2785 } 2786 2787 /* stop link capitalization */ 2788 .mb_p a { 2789 text-transform: none !important; 2790 } 2791 2792 /* make event label width = content length */ 2793 .mb_label_event {width: max-content;} 2794 2795 2796 2797 /* --- class settings --- */ 2798 2799 .mb_flex_col {flex-direction: column;} 2800 .mb_flex_col_reverse {flex-direction: column-reverse;} 2801 .mb_flex_left {align-items: flex-start;} 2802 .mb_flex_right {align-items: flex-end;} 2803 .mb_text_left {text-align: left;} 2804 .mb_text_center {text-align: center;} 2805 .mb_text_no-margin {margin: 0px !important;} 2806 .mb_text_no-decor {text-decoration: none !important;} 2807 .mb_no-wrap {white-space: nowrap !important;} 2808 .mb_text_weight-400 {font-weight: 400 !important;} 2809 2810
2811 2812 /* --- themes --- */ 2813 2814 /* light theme */ 2815 .mb_theme_light .mb_text_primary, 2816 .mb_theme_light .mb_border_primary { 2817 color: var(--comet-900) !important; 2818 border-color: var(--comet-900) !important; 2819 } 2820 .mb_text_invert {color: var(--comet-100) !important;} 2821 .mb_theme_light {background-color: #FFFFFF !important;} 2822 .mb_h3_block {background-color: var(--comet-900) !important;} 2823 .mb_text_block {color: #FFFFFF !important;} 2824 2825 /* blue theme */ 2826 .mb_theme_blue .mb_text_primary, 2827 .mb_theme_blue .mb_border_primary { 2828 color: var(--comet-100) !important; 2829 border-color: var(--comet-100) !important; 2830 } 2831 .mb_theme_blue {background-color: var(--cobalt-500) !important;} 2832 2833 /* dark theme */ 2834 .mb_theme_dark .mb_text_primary, 2835 .mb_theme_dark .mb_border_primary { 2836 color: var(--comet-100) !important; 2837 border-color: var(--comet-100) !important; 2838 } 2839 .mb_theme_dark .mb_text_secondary {color: var(--comet-300) !important;} 2840 .mb_text_invert {color: var(--comet-900) !important;} 2841 .mb_theme_dark {background-color: var(--comet-900) !important;} 2842 2843 /* showcase theme */ 2844 .mb_theme_showcase .mb_text_primary, 2845 .mb_theme_showcase .mb_border_primary { 2846 color: var(--comet-100) !important; 2847 border-color: var(--comet-100) !important; 2848 } 2849 2850 2851 2852 /* --- anchor links ---*/ 2853 2854 /* desktop */ 2855 .mb_achor {position: relative;} 2856 .mb_achor::before { 2857 content: ""; 2858 position: absolute; 2859 top: -174px !important; 2860 height: 174px !important; 2861 pointer-events: none; 2862 } 2863 2864 /* tablet */ 2865 @media (max-width: 991px) { 2866 .mb_achor::before { 2867 top: -174px !important; 2868 height: 174px !important; 2869 } 2870 } 2871 2872 /* mobile landscape */ 2873 @media (max-width: 767px) { 2874 .mb_achor::before { 2875 top: -152px !important; 2876 height: 152px !important; 2877 } 2878 } 2879 2880 /* mobile portrait */ 2881 @media (max-width: 479px) { 2882 .mb_achor::before { 2883 top: -136px !important; 2884 height: 136px !important; 2885 } 2886 } 2887 2888 2889 2890 /* --- components --- */ 2891 2892 /* mb product card a cobalt */ 2893 .mb_pc_a_cobalt:hover .mb_pc_a_badge_cobalt {background-color: var(--white_24) !important;} 2894 .mb_pc_a_cobalt:hover .mb_h4 {color: var(--comet-100) !important;} 2895 .mb_pc_a_cobalt:hover .mb_p {color: var(--comet-100) !important;} 2896 2897 /* mb product card c orange */ 2898 .mb_pc_c_orange:hover .mb_pc_c_badge_orange {background-color: var(--white_24) !important;} 2899 .mb_pc_c_orange:hover .mb_p {color: var(--comet-100) !important;} 2900 .mb_pc_c_orange:hover .mb_p_sm {color: var(--comet-100) !important;} 2901 2902</style></div><div class="w-embed w-script"><!-- Modal Container --> 2903<div id="hubspot-modal" style="display:none; position:fixed; top:0; left:0; width:100%; height:100%; background-color:rgba(0,0,0,0.6); z-index:99999999999; justify-content:center; align-items:center;"> 2904 <div style="background:#fff; padding:20px; border-radius:8px; max-width:600px; width:90%; position:relative; max-height:90vh; overflow-y:auto;"> 2905 <span id="close-hubspot-modal" style="position:absolute; top:10px; right:15px; font-size:20px; cursor:pointer;">×</span> 2906 <div id="hubspot-form-container"></div> 2907 </div> 2908</div> 2909 2910<!-- Form IDs by Language --> 2911<!-- 2912CONTACT FORMS: 2913EN: e1320b65-1016-4233-9487-eb7d561c86eb (B2B Expansion: 86927fc1-5a38-42db-bf66-9ba429b98ca8) Portal: 5886937 2914FR: 1e05aa18-a085-495b-8f99-f3f56b192468 2915DE: dd7738c1-a960-47f6-992e-4d871ba8a9a3 2916KO: ce9a500c-2f75-4aca-9b6f-2b852bcde175 2917ZH: 1270c5c0-0c8b-4d7d-ad1d-f7116d4bde33 2918JA: 40cdb013-6cf7-4dd8-a58d-3e8ccd2b5303 2919// CN: 4376557f-9027-4365-8e45-0a5d2d7330c8 2920 2921LOYALTYPLAY FORMS: 2922EN: 62abb8e9-25cf-4aa3-9755-521668cc5d49 2923FR: [ADD_FR_LOYALTYPLAY_FORM_ID] 2924DE: [ADD_DE_LOYALTYPLAY_FORM_ID] 2925KO: [ADD_KO_LOYALTYPLAY_FORM_ID] 2926ZH: [ADD_ZH_LOYALTYPLAY_FORM_ID] 2927JA: [ADD_JA_LOYALTYPLAY_FORM_ID] 2928 2929SUBSCRIBE FORMS: 2930EN: b8db2c74-c95b-41d2-a12f-a74eac42f51b 2931FR: [ADD_FR_SUBSCRIBE_FORM_ID] 2932DE: [ADD_DE_SUBSCRIBE_FORM_ID] 2933KO: [ADD_KO_SUBSCRIBE_FORM_ID] 2934ZH: [ADD_ZH_SUBSCRIBE_FORM_ID] 2935JA: [ADD_JA_SUBSCRIBE_FORM_ID] 2936--> 2937 2938<!-- Contact & Subscribe Form Popup -->
2939<script> 2940 document.addEventListener("DOMContentLoaded", function () { 2941 const modal = document.getElementById("hubspot-modal"); 2942 const closeBtn = document.getElementById("close-hubspot-modal"); 2943 const formContainer = document.getElementById("hubspot-form-container"); 2944 2945 // Function to detect language from subdomain 2946 function detectLanguage() { 2947 const hostname = window.location.hostname; 2948 const subdomain = hostname.split('.')[0].toLowerCase(); 2949 2950 // Check if subdomain matches a language code 2951 const supportedLanguages = ['fr', 'de', 'ko', 'zh', 'ja']; 2952 return supportedLanguages.includes(subdomain) ? subdomain : 'en'; 2953 } 2954 2955 // Function to check if current page is the LoyaltyPlay monetize page 2956 function isLoyaltyPlayPage() { 2957 // [previous] return window.location.pathname === '/monetize/loyaltyplay'; 2958 return window.location.pathname === '/monetize/loyaltyplay' || 2959 window.location.pathname === '/monetize/connected-rewards'; 2960 } 2961 2962 // Get current language 2963 const currentLanguage = detectLanguage(); 2964 2965 // Contact form IDs by language 2966 const contactFormIds = { 2967 en: "8bc47184-0b54-4a64-96c2-ae751f1d3125", // 8bc47184-0b54-4a64-96c2-ae751f1d3125 2968 fr: "8bc47184-0b54-4a64-96c2-ae751f1d3125", // old 2969 de: "8bc47184-0b54-4a64-96c2-ae751f1d3125", // old 2970 ko: "9d81b8dc-8397-45d0-8998-1338d50c9858", 2971 zh: "4376557f-9027-4365-8e45-0a5d2d7330c8", 2972 ja: "40cdb013-6cf7-4dd8-a58d-3e8ccd2b5303" 2973 }; 2974 2975 // LoyaltyPlay form IDs by language 2976 const loyaltyPlayFormIds = { 2977 en: "8bc47184-0b54-4a64-96c2-ae751f1d3125", 2978 fr: "9f6482e6-6c16-432d-9bba-a815cc2f4c05", // Replace with actual FR LoyaltyPlay form ID 2979 de: "84452965-c749-4fc1-aa6c-92fefec6599c", // Replace with actual DE LoyaltyPlay form ID 2980 ko: "8186b87e-a2c3-450f-a2a6-0ed54285b9d1", // Replace with actual KO LoyaltyPlay form ID 2981 zh: "59457347-8bae-4d2d-86b2-7f59444f966e", // Replace with actual ZH LoyaltyPlay form ID 2982 ja: "cc2211e9-2fb4-4a72-87bc-a449a583d24f" // Replace with actual JA LoyaltyPlay form ID 2983 }; 2984 2985 // Subscribe form IDs by language 2986 const subscribeFormIds = { 2987 en: "b8db2c74-c95b-41d2-a12f-a74eac42f51b", 2988 fr: "[ADD_FR_SUBSCRIBE_FORM_ID]", // Replace with actual FR subscribe form ID 2989 de: "[ADD_DE_SUBSCRIBE_FORM_ID]", // Replace with actual DE subscribe form ID 2990 ko: "[ADD_KO_SUBSCRIBE_FORM_ID]", // Replace with actual KO subscribe form ID 2991 zh: "[ADD_ZH_SUBSCRIBE_FORM_ID]", // Replace with actual ZH subscribe form ID 2992 ja: "[ADD_JA_SUBSCRIBE_FORM_ID]" // Replace with actual JA subscribe form ID 2993 }; 2994 2995 // Form configurations by language and page type 2996 const formConfig = { 2997 contact_form: isLoyaltyPlayPage() 2998 ? loyaltyPlayFormIds[currentLanguage] 2999 : contactFormIds[currentLanguage], 3000 subscribe_form: subscribeFormIds[currentLanguage] 3001 }; 3002 3003 let currentFormId = null; 3004 3005 function openHubspotForm(formId) { 3006 // Check if form ID is placeholder and show warning 3007 if (formId && formId.startsWith('[ADD_')) { 3008 console.warn(`Form ID for ${currentLanguage} language not configured: ${formId}`); 3009 console.warn('Falling back to English form'); 3010 3011 // Fallback to English version 3012 if (isLoyaltyPlayPage()) { 3013 formId = loyaltyPlayFormIds.en; 3014 } else { 3015 formId = formConfig.contact_form.includes('LOYALTYPLAY') 3016 ? loyaltyPlayFormIds.en 3017 : contactFormIds.en; 3018 } 3019 } 3020 3021 modal.style.display = "flex"; 3022 3023 if (currentFormId !== formId) { 3024 currentFormId = formId; 3025 formContainer.innerHTML = ""; // Clear old form 3026 3027 function createForm() { 3028 hbspt.forms.create({ 3029 portalId: "5886937", 3030 formId: formId, 3031 region: "na1", 3032 target: "#hubspot-form-container" 3033 }); 3034 } 3035 3036 if (window.hbspt) { 3037 createForm(); 3038 } else { 3039 const script = document.createElement("script"); 3040 script.src = "//js.hsforms.net/forms/embed/v2.js"; 3041 script.onload = createForm; 3042 document.body.appendChild(script); 3043 } 3044 } 3045 } 3046 3047 // Select all elements with id=contact_form and id=subscribe_form 3048 const contactButtons = document.querySelectorAll('[id="contact_form"]'); 3049 const subscribeButtons = document.querySelectorAll('[id="subscribe_form"]'); 3050 3051 contactButtons.forEach(btn => { 3052 btn.addEventListener("click", () => openHubspotForm(formConfig.contact_form)); 3053 }); 3054 3055 subscribeButtons.forEach(btn => { 3056 btn.addEventListener("click", () => openHubspotForm(formConfig.subscribe_form)); 3057 }); 3058 3059 // External trigger fallback 3060 const emulateBtn = document.getElementById("emulate_contact_click"); 3061 if (emulateBtn) { 3062 emulateBtn.addEventListener("click", () => openHubspotForm(formConfig.contact_form)); 3063 } 3064 3065 // Modal close handlers 3066 closeBtn.addEventListener("click", () => { 3067 modal.style.display = "none"; 3068 }); 3069 3070 window.addEventListener("click", (e) => { 3071 if (e.target === modal) { 3072 modal.style.display = "none"; 3073 } 3074 }); 3075 3076 // Debug logging 3077 console.log("=== HubSpot Form Configuration Debug ==="); 3078 console.log("Detected language:", currentLanguage); 3079 console.log("Current page:", window.location.pathname); 3080 console.log("Is LoyaltyPlay page:", isLoyaltyPlayPage()); 3081 console.log("Contact form ID:", formConfig.contact_form); 3082 console.log("Subscribe form ID:", formConfig.subscribe_form); 3083 console.log("Available contact forms:", contactFormIds); 3084 console.log("Available LoyaltyPlay forms:", loyaltyPlayFormIds); 3085 console.log("Available subscribe forms:", subscribeFormIds); 3086 }); 3087</script>
3087</div>
3087<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=67ae5a0c0c4e8738d0744c0d" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
3087<script src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/js/webflow.schunk.4af75a3dcc103563.js" type="text/javascript" integrity="sha384-uHxK7OkjtK+CcSL+rHWk+cmafP3nhlxH8gPcAzqBwInsfkNcuGpgT4VrVHoX9Xx0" crossorigin="anonymous"></script>
3087<script src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/js/webflow.schunk.82a066c38b528435.js" type="text/javascript" integrity="sha384-YFg50APNpGQG2TXQ9t5g9u3yN4vH165ox/6pKrVXmkzSUuHeVDeVTfn47fl4cRxp" crossorigin="anonymous"></script>
3087<script src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/js/webflow.4ff188f3.8d82b26f446edbc1.js" type="text/javascript" integrity="sha384-oapLup+xyO4DfExR2XgiTdJm3Ey9joeX14V3S/EPXYKvuym0wX17qXWA4nz95Hsz" crossorigin="anonymous"></script>
3087<!-- Start of HubSpot Embed Code --> 3088<!--
3088<script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/5886937.js"></script>
3088 --> 3089<!-- End of HubSpot Embed Code --> 3090 3091<!-- EN language switcher fix (Hosoo Media 2026-06-23) START --> 3092<!-- Custom nav dropdown EN link switches via Weglot.switchTo(en) instead of the Weglot-rewritten ko URL. Pure JS click handler; no href/canonical/hreflang/content change. Rollback: delete this block. -->
3093<script> 3094(function () { 3095 document.addEventListener("click", function (e) { 3096 var a = e.target.closest && e.target.closest("a[data-lang='en']"); 3097 if (!a) return; 3098 if (typeof Weglot !== "undefined" && Weglot.switchTo) { 3099 e.preventDefault(); 3100 e.stopPropagation(); 3101 Weglot.switchTo("en"); 3102 } 3103 }, true); 3104})(); 3105</script>
3105 3106<!-- EN language switcher fix (Hosoo Media 2026-06-23) END --> 3107 3108<!-- I9 image alt (Hosoo Media 2026-06-26) START --> 3109<!-- Page-scoped (leniu-games-i9-inferno-nine only). Sets alt on hero banner + studio infographic. Pure ASCII. Rollback: delete this block. -->
3110<script> 3111(function(){ 3112 if (location.pathname.indexOf("leniu-games-i9-inferno-nine") < 0) return; 3113 var ko = location.hostname.indexOf("ko.") === 0; 3114 var HERO = ko ? "I9: \uc778\ud398\ub974\ub178 \ub098\uc778 \ud0a4\uc544\ud2b8 - Mistplay x Leniu Games \ud55c\uad6d MMORPG \uc131\uacf5 \uc0ac\ub840" : "I9: Inferno Nine key art - Mistplay x Leniu Games South Korea MMORPG case study"; 3115 var INFO = ko ? "I9: \uc778\ud398\ub974\ub178 \ub098\uc778 \uac8c\uc784 \uac1c\uc694 - \ud0c0\uc774\ud2c0 I9: \uc778\ud398\ub974\ub178 \ub098\uc778, \uc704\uce58 \uc911\uad6d \uad11\uc800\uc6b0, 98\ub9cc \uac74 \uc774\uc0c1 \ub2e4\uc6b4\ub85c\ub4dc, 13\ub9cc MAU, \uc7a5\ub974 MMORPG" : "I9: Inferno Nine game overview - title I9: Inferno Nine, location Guangzhou, 980K+ downloads, 130K MAU, genre MMORPG"; 3116 function setAlts(){ 3117 var imgs = document.getElementsByTagName("img"); 3118 for (var i=0; i<imgs.length; i++){ 3119 var s = imgs[i].getAttribute("src") || ""; 3120 if (s.indexOf("CaseStudy_LeniuGames_Blog-Banner") > -1) { if (!imgs[i].getAttribute("alt")) imgs[i].setAttribute("alt", HERO); } 3121 else if (s.indexOf("Studio-Info-Leniu") > -1) { if (!imgs[i].getAttribute("alt")) imgs[i].setAttribute("alt", INFO); } 3122 } 3123 } 3124 setAlts(); 3125 setTimeout(setAlts,400); setTimeout(setAlts,1200); setTimeout(setAlts,2500); 3126})(); 3127</script>
3127 3128<!-- I9 image alt END --> 3129 3130<!-- I9 content inject (Hosoo Media 2026-06-26) START -->
3131<script>function D(s){return decodeURIComponent(escape(atob(s)))} 3132(function(){ 3133if (location.hostname.indexOf("ko.") !== 0) return; 3134if (location.pathname.indexOf("leniu-games-i9-inferno-nine") < 0) return; 3135function run(){ 3136var rich = document.querySelector(".article-richtext"); 3137if (!rich) return false; 3138var kids = rich.children; 3139function find(p){ for (var i=0;i<kids.length;i++){ if (p(kids[i])) return kids[i]; } return null; } 3140function has(n,s){ return (n.innerText||"").indexOf(s) > -1; } 3141var companyP = find(function(n){ return n.tagName==="P" && has(n,D("6rSR7KCA7Jqw")); }); 3142var solIntroP = find(function(n){ return n.tagName==="P" && has(n,"Performance Index"); }); 3143var solOl = find(function(n){ return (n.tagName==="OL"||n.tagName==="UL") && has(n,D("67KE65SUIO2AmOyKpO2KuA==")); }); 3144var resultUl = find(function(n){ return (n.tagName==="UL"||n.tagName==="OL") && has(n,D("RDMwIFJPQVMg66qp7ZGc")) && has(n,D("RDEg66as7YWQ7IWY")); }); 3145var testH2 = find(function(n){ return n.tagName==="H2" && (n.innerText||"").trim().indexOf(D("7LaU7LKc7IKs"))===0; }); 3146if (!companyP || !solOl) return false; 3147if ((companyP.innerText||"").indexOf(D("7J6Q66as66W8IOyeoeydgA==")) < 0) return false; 3148if ((solOl.innerText||"").indexOf(D("7Lap7ISx64+EIOuGkuydgCDqsozsnbTrqLgg7Luk666k64uI7Yuw")) < 0) return false; 3149if (!document.getElementById("i9-inject-style")){ 3150var st = document.createElement("style"); 3151st.id = "i9-inject-style"; 3152st.textContent = "[data-i9-lead],[data-i9-aeo],[data-i9-nm],[data-i9-resnote]{word-break:keep-all;overflow-wrap:break-word;}.article-richtext ol[data-i9-ol]{list-style:none;padding-left:0;margin-left:0;}.article-richtext ol[data-i9-ol]>li{word-break:keep-all;margin-bottom:1.1em;}.article-richtext ol[data-i9-ol]>li>h3{margin-top:1.75em;margin-bottom:0.4em;}.article-richtext ol[data-i9-ol]>li:first-child>h3{margin-top:0.6em;}"; 3153document.head.appendChild(st); 3154} 3155if (!rich.querySelector("[data-i9-lead]")){ 3156var aeo = document.createElement("div"); 3157aeo.setAttribute("data-i9-aeo","1"); 3158aeo.style.cssText = "border-left:4px solid #4731D3;background:#f4f3ff;padding:14px 18px;margin:0 0 22px;border-radius:6px;"; 3159aeo.innerHTML = D("7Jik7ZSI7JuU65OcIE1NT1JQRyAnSTk6IOyduO2OmOultOuFuCDrgpjsnbgoTGVuaXUgR2FtZXMpJ+ydgCBNaXN0cGxheeydmCBBSSDquLDrsJggSUFQIHRST0FTIOy6oO2OmOyduOqzvCDqs6DqtIDsl6wg7ZWc6rWtIOqyjOydtOuouCDsu6TrrqTri4jti7Drpbwg7Ya17ZW0LCDtlZzqta0g7Lac7IucIDMw7J28IOunjOyXkCDshpDsnbXrtoTquLDsoJAoQkVQKeydhCDrj4ztjIztlZjqs6AgRDMwIFJPQVMg66qp7ZGcIDIuNeuwsCDrsI8gRDkwIFJPQVMg66qp7ZGcIDMuNeuwsOulvCDri6zshLHtlojsirXri4jri6Qu"); 3160companyP.parentNode.insertBefore(aeo, companyP); 3161var lead = document.createElement("p"); 3162lead.setAttribute("data-i9-lead","1"); 3163lead.innerHTML = D("7KSR6rWtIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lmxlbml1LmNvbS9hYm91dCIgdGFyZ2V0PSJfYmxhbmsiPkxlbml1IEdhbWVzPC9hPuydmCDsmKTtlIjsm5Trk5wgTU1PUlBHICdJOTog7J247Y6Y66W064W4IOuCmOyduCfsnYAg7KCEIOyEuOqzhOyXkOyEnCDqsIDsnqUg6rK97J+B7J20IOy5mOyXtO2VnCDtlZzqta0gTU1PUlBHIOyLnOyepeyXkCDri7nri7ntnogg64+E7KCE7J6l7J2EIOuCtOuwgOyXiOyKteuLiOuLpC4g6re466as6rOgIOq3uCDqsrDqs7zripQg7ISx6rO17KCB7J207JeI7Iq164uI64ukLiDstpzsi5wg64uoIDMw7J28IOunjOyXkCDshpDsnbXrtoTquLDsoJAoQkVQKeydhCDrj4ztjIztlZwg642wIOydtOyWtCwgPHN0cm9uZz5EMzAgUk9BUyDrqqntkZzsnZggMi4167CwLCBEOTAgUk9BUyDrqqntkZzsnZggMy4167CwIOuLrOyEsTwvc3Ryb25nPuydtOudvOuKlCDtgbAg7ISx6rO866W8IOqxsOuRkOyXiOyKteuLiOuLpC4g7J2064qUIE1pc3RwbGF56rCAIOuztOycoO2VnCDsp4TshLEg7ZWc6rWtIOqyjOydtOuouCDsu6TrrqTri4jti7Dsl5AgQUkg6riw67CYIHRST0FTIOy6oO2OmOyduOydhCDrjZTtlbTshJwg66eM65OgIOqysOqzvOyYgOuKlOuNsOyalC4="); 3164companyP.parentNode.insertBefore(lead, companyP); 3165} 3166if (solIntroP && !rich.querySelector("[data-i9-nm]")){ 3167var nm = document.createElement("p"); 3168nm.setAttribute("data-i9-nm","1"); 3169nm.innerHTML = D("7Iuk7KCc66GcIHRST0FTIOyghOueteydgCA8YSBocmVmPSJodHRwczovL2tvLmJ1c2luZXNzLm1pc3RwbGF5LmNvbS9yZXNvdXJjZXMvbmV0bWFyYmxlLXNldmVuLWtuaWdodHMtcmViaXJ0aCI+64S366eI67iUICfshLjruJDrgpjsnbTsuKAg66as67KE7IqkJ+ydmCDquIDroZzrsowgUlBHIFVBIOyCrOuhgDwvYT7sl5DshJzrj4Qg6rOg6rCA7LmYIFJQRyDsnKDsoIAg7ZmV67O066GcIOydtOyWtOyhjOyKteuLiOuLpC4="); 3170solIntroP.parentNode.insertBefore(nm, solIntroP.nextSibling); 3171} 3172if (solOl && !solOl.querySelector("[data-i9-h33]")){ 3173solOl.setAttribute("data-i9-ol","1"); 3174var li1 = solOl.children[0]; 3175if (li1 && li1.innerHTML.indexOf(D("7ZSM66CI7J20IO2DgOyehCDrpqzsm4zrk5wg66qo6424KFBsYXl0aW1lIE1vZGVsKQ==")) > -1 && li1.innerHTML.indexOf("data-i9-loyalty") < 0){ 3176li1.innerHTML = li1.innerHTML.replace(D("7ZSM66CI7J20IO2DgOyehCDrpqzsm4zrk5wg66qo6424KFBsYXl0aW1lIE1vZGVsKQ=="), D("PGEgaHJlZj0iaHR0cHM6Ly9rby5idXNpbmVzcy5taXN0cGxheS5jb20vYWR2ZXJ0aXNlcnMvbG95YWx0eS1wcm9ncmFtIj7tlIzroIjsnbQg7YOA7J6EIOumrOybjOuTnCDrqqjrjbgoUGxheXRpbWUgTW9kZWwpPC9hPg==")); 3177} 3178var li3 = document.createElement("li"); 3179li3.setAttribute("data-i9-h33","1"); 3180li3.innerHTML = D("PHN0cm9uZz4zLiDrjbDsnbTthLAg6riw67CYIOyatOyYgeqzvCDruaDrpbgg7LWc7KCB7ZmU66GcIOuqqe2RnCDsp4DtkZzrpbwg7KeA7Lyc64K064ukPC9zdHJvbmc+IE1pc3RwbGF5IOyghOuLtCDtjIDsnYAg7ISx6rO8IOuNsOydtO2EsOulvCDsi6Tsi5zqsITsnLzroZwg66m067CA7Z6IIOuqqOuLiO2EsOunge2VmOqzoCDsuqDtjpjsnbjsnYQg7Iug7IaN7ZWY6rKMIOy1nOygge2ZlO2VqOycvOuhnOyNqCDsp4TsnoXsnqXrsr3snbQg64aS7J2AIOq1reuCtCDsi5zsnqUg7ZmY6rK97JeQ7ISc64+EIOy6oO2OmOyduCDrqqntkZwg7KeA7ZGc66W8IO2ZleyLpO2VmOqyjCDri6zshLHtlbQg64OI7Iq164uI64ukLg=="); 3181solOl.appendChild(li3); 3182var lis = solOl.children; 3183for (var x=0; x<lis.length; x++){ 3184var st = lis[x].querySelector("strong"); 3185if (st && st.parentNode === lis[x]){ 3186var h3 = document.createElement("h3"); 3187h3.innerHTML = st.innerHTML; 3188st.parentNode.replaceChild(h3, st); 3189} 3190} 3191} 3192if (resultUl && !rich.querySelector("[data-i9-resnote]")){ 3193var rn = document.createElement("p"); 3194rn.setAttribute("data-i9-resnote","1"); 3195rn.textContent = D("66as7JuM65OcIOyxhOuEkOydhCDthrXtlbQg7Jyg7J6F65CcIOycoOyggOqwgCDquLDsobQgQ1BFIOyxhOuEkCDtj4nqt6Drs7Tri6Qg642UIOyYpOuem
3195CDsnpTsobTtlojri6TripQg7KCQ7J2AIOyxhOuEkOydmCDqsIDsuZjrpbwg64uo7IicIOuLqOqwgOqwgCDslYTri4wg67mE7JqpIO2ajOyImOyZgCDtmqjsnKjshLEg6rSA7KCQ7JeQ7IScIOuwlOudvOu0kOyVvCDtlajsnYQg67O07Jes7KSN64uI64ukLg=="); 3196resultUl.parentNode.insertBefore(rn, resultUl.nextSibling); 3197} 3198if (testH2){ 3199var s = testH2.querySelector("strong") || testH2; 3200if (s.textContent.trim() === D("7LaU7LKc7IKs")) s.textContent = D("6rOg6rCd7IKsIO2VnOuniOuUlA=="); 3201} 3202var tocs = document.querySelectorAll("a[href^='#']"); 3203for (var t=0;t<tocs.length;t++){ if (tocs[t].textContent.trim() === D("7LaU7LKc7IKs")) tocs[t].textContent = D("6rOg6rCd7IKsIO2VnOuniOuUlA=="); } 3204var sensorFn = find(function(n){ return n.tagName==="P" && has(n,D("U2Vuc29yIFRvd2VyLCDrjIDtlZzrr7zqta0g642w7J207YSw")); }); 3205if (sensorFn) sensorFn.style.display = "none"; 3206return !!rich.querySelector("[data-i9-lead]") && !!solOl.querySelector("[data-i9-h33]"); 3207} 3208var tries = 0; 3209(function loop(){ tries++; if (run()) return; if (tries < 40) setTimeout(loop, 300); })(); 3210})();</script>
3210 3211<!-- I9 content inject END --> 3212 3213<!-- Netmarble AI summary box (Hosoo Media 2026-06-26) START --> 3214<!-- KO-only + page-scoped (netmarble-seven-knights-rebirth). Adds AI summary box at top of article (under H1), same style as I9. Pure ASCII. Rollback: delete this block. -->
3215<script> 3216(function(){ 3217 if (location.hostname.indexOf("ko.") !== 0) return; 3218 if (location.pathname.indexOf("netmarble-seven-knights-rebirth") < 0) return; 3219 function run(){ 3220 var rich = document.querySelector(".article-richtext"); 3221 if (!rich || !rich.firstElementChild) return false; 3222 if (rich.querySelector("[data-nm-aeo]")) return true; 3223 if (!document.getElementById("nm-aeo-style")){ 3224 var st = document.createElement("style"); 3225 st.id = "nm-aeo-style"; 3226 st.textContent = "[data-nm-aeo]{word-break:keep-all;overflow-wrap:break-word;}"; 3227 document.head.appendChild(st); 3228 } 3229 var box = document.createElement("div"); 3230 box.setAttribute("data-nm-aeo","1"); 3231 box.style.cssText = "border-left:4px solid #4731D3;background:#f4f3ff;padding:14px 18px;margin:0 0 22px;border-radius:6px;"; 3232 box.innerHTML = "\ub137\ub9c8\ube14(Netmarble)\uc758 RPG '\uc138\ube10\ub098\uc774\uce20 \ub9ac\ubc84\uc2a4'\ub294 Mistplay\uc758 \uae00\ub85c\ubc8c IAP tROAS \ucea0\ud398\uc778\uc744 \ub3c4\uc785\ud558\uc5ec, \uae00\ub85c\ubc8c \ucd9c\uc2dc \ub2e8 \ud55c \ub2ec \ub9cc\uc5d0 \ubd88\ud544\uc694\ud55c \uad11\uace0\ube44 \uc9c0\ucd9c \uc5c6\uc774 \uc804 \uc138\uacc4 \ud65c\uc131 \uc720\uc800(Active Users) \uc218\ub97c \uc57d 10% \uc99d\uac00\uc2dc\ud0a4\ub294 \uc131\uacfc\ub97c \uae30\ub85d\ud588\uc2b5\ub2c8\ub2e4."; 3233 rich.insertBefore(box, rich.firstElementChild); 3234 return true; 3235 } 3236 var tries = 0; 3237 (function loop(){ tries++; if (run()) return; if (tries < 40) setTimeout(loop, 300); })(); 3238})(); 3239</script>
3239 3240<!-- Netmarble AI summary box END --> 3241 3242<!-- 37Games Ant Legion content inject (Hosoo Media 2026-07-03) START -->
3243<script>function D(s){return decodeURIComponent(escape(atob(s)))} 3244(function () { 3245try { 3246if (location.hostname.indexOf('ko.business.mistplay.com') === -1) return; 3247if (location.pathname.indexOf('37games-ant-legion') === -1) return; 3248var GATE = 'data-ant37-v1'; 3249var tries = 0; 3250var MAX_TRIES = 80; // 80 * 250ms = 20s 3251var timer = setInterval(function () { 3252tries++; 3253if (tries > MAX_TRIES) { clearInterval(timer); return; } 3254var root = document.querySelector('.article-richtext'); 3255if (!root) return; 3256if (root.getAttribute(GATE) === 'done') { clearInterval(timer); return; } 3257var ps = Array.prototype.slice.call(root.querySelectorAll('p')); 3258var findP = function (needle) { 3259for (var i = 0; i < ps.length; i++) { 3260if (ps[i].textContent.indexOf(needle) !== -1) return ps[i]; 3261} 3262return null; 3263}; 3264var findEM = function (needle) { 3265var ems = root.querySelectorAll('em'); 3266for (var i = 0; i < ems.length; i++) { 3267if (ems[i].textContent.indexOf(needle) !== -1) return ems[i]; 3268} 3269return null; 3270}; 3271var gP3 = findP(D("7KCE6561IFNMRyDsnqXrpbTripQ=")); 3272var gP5 = findP(D("7ZSM66CI7J20IO2DgOyehCDrpqzsm4zrk5wg66qo64247J2EIOuwlO2DleycvOuhnA==")); 3273var gResultsOld = findP(D("7KCE7LK0IOqysOygnCDsnKDsoIDsnZggMjAlIOydtOyDgeydhCDssKjsp4DtlojsnLzrqbA=")); 3274if (!gP3 || !gP5 || !gResultsOld) return; // not settled yet 3275var h3Style = 'font-size:20px;font-weight:700;color:#1C2E4A;margin-top:1.75em;margin-bottom:0.4em;'; 3276if (!document.querySelector('[data-ant37-aeo]')) { 3277var box = document.createElement('div'); 3278box.setAttribute('data-ant37-aeo', '1'); 3279box.style.cssText = 'border-left:4px solid #4731D3;background:#F4F3FF;padding:14px 18px;margin:0 0 22px;border-radius:6px;font-size:15px;line-height:1.65;color:#2b2b33;word-break:keep-all;overflow-wrap:break-word;'; 3280box.textContent = D("6riA66Gc67KMIOuqqOuwlOydvCDqsozsnoQg7Y2867iU66as7IWUIDM3R2FtZXPsnZgg7KCE6561IFNMRyAn6rCc66+4IOq1sOuLqChBbnQgTGVnaW9uOiBGb3IgdGhlIFN3YXJtKSfsnYAgTWlzdHBsYXnsnZggQUkg6riw67CYIElBUCB0Uk9BUyDsuqDtjpjsnbjqs7wgMTDso7zrhYQg6riw64WQIO2UhOuhnOuqqOyFmOydhCDsnKDquLDsoIHsnLzroZwg7Zmc7Jqp7ZWY7JesLCDssqDsoIDtlZjqsowg7KCc7ZWc65CcIOyYiOyCsCDrspTsnIQg64K07JeQ7IScIOyghOyblCDrjIDruYQoTW9NKSDshKTsuZgg7IiYIDIwMCUg7Kad6rCA66W8IOq4sOuhne2VmOqzoCDtg4Ag66as7JuM65OcIOyxhOuEkCDrjIDruYQgRDMwIFJPQVPrpbwgMzAlIOuBjOyWtOyYrOumrOupsCDtlZzqta0g7Iuc7J6lIOyViOywqeyXkCDshLHqs7XtlojsirXri4jri6Qu"); 3281root.insertBefore(box, root.firstElementChild); 3282} 3283var p1 = findP(D("QW50IExlZ2lvbjogRm9yIFRoZSBTd2FybeydgCDtirntnogg64iI7JeQIOudhOuKlA==")); 3284if (p1) { 3285p1.textContent = D("MjAyMuuFhCDquIDroZzrsowg7Lac7IucIOydtO2bhCDsoIQg7IS46rOE7KCB7Jy866GcIDMsNDAw66eMIOuLpOyatOuhnOuTnOulvCDrj4ztjIztlZwgJ+qwnOuvuCDqtbDri6gn7J2AIOqwnOuvuCDsvZzroZzri4jrpbwg7KeA7ZyY7ZWY6rOgIOyekOybkOydhCDsiJjsp5HtlZjrqbAg7KeA7ZWYIOyZleq1reydhCDtgqTsm4zrgpjqsIDripQg64+F7LC97KCB7J24IOupgO2LsO2UjOugiOydtOyWtCDsoITrnrUg6rKM7J6E7J24642w7JqULiDqta3rgrQg7Lac7IucIOydtO2bhCDrjIDtlZzrr7zqta0g6rWs6riAIO2UjOugiOydtCDsiqTthqDslrTsl5DshJwg7KeA7IaN7KCB7Jy866GcIOustOujjCDsoITrnrUg6rKM7J6EIOyDgeychCAxMOychOq2jCDrgrTsl5Ag7J2066aE7J2EIOyYrOumrOupsCDtg4Ttg4TtlZwg7Z2l7ZaJ66Cl7J2EIOyeheymne2VtCDsmZTsirXri4jri6Qu"); 3286} 3287var p3 = findP(D("7KCE6561IFNMRyDsnqXrpbTripQ=")); 3288if (p3 && (!p3.previousElementSibling || p3.previousElementSibling.tagName !== 'H3')) { 3289var h3a = document.createElement('h3'); 3290h3a.style.cssText = h3Style; 3291h3a.textContent = D("7KCV6rWQ7ZWcIOyekOybkCDsg53tg5zqs4Q="); 3292p3.parentNode.insertBefore(h3a, p3); 3293} 3294var p4 = findP(D("7J247JWxIOqysOygnChJQVApIOq4sOuwmOydmCDruYTspojri4jsiqQg66qo64247J2EIO2VteyLrCDrj5nroKU=")); 3295if (p4 && (!p4.previousElementSibling || p4.previousElementSibling.tagName !== 'H3')) { 3296var h3b = document.createElement('h3'); 3297h3b.style.cssText = h3Style; 3298h3b.textContent = D("6rOg6rCA7LmYIOycoOyggA=="); 3299p4.parentNode.insertBefore(h3b, p4); 3300} 3301var p5 = findP(D("7ZSM66CI7J20IO2DgOyehCDrpqzsm4zrk5wg66qo64247J2EIOuwlO2DleycvOuhnA==")); 3302if (p5 && !document.querySelector('[data-ant37-sol-h3-1]')) { 3303var h3c = document.createElement('h3'); 3304h3c.setAttribute('data-ant37-sol-h3-1', '1'); 3305h3c.style.cssText = h3Style; 3306h3c.textContent = D("QUkgdFJPQVMg7Lqg7Y6Y7J247J2EIO2Gte2VnCDqs7zquIgg7J6g7J6s66ClIOq3ueuMgO2ZlA=="); 3307var newP5b = document.createElement('p'); 3308newP5b.textContent = D("TWlzdHBsYXnsnZggSGVsaW9zIEFJIOyXlOynhCDquLDrsJggSUFQIHRST0FTIOy6oO2OmOyduOydgCAn6rCc66+4IOq1sOuLqCcg64K07JeQ7IScIOyLpOygnCDqsrDsoJwg6rCA64ql7ISx7J20IOuGkuydgCDsnKDsoIDrpbwg7KCV67CA7ZWY6rKMIO2DgOqyn+2Mhe2WiOyKteuLiOuLpC4g6re4IOqysOqzvCDqs7zquIgg6rCA64ql7ISx7J20IOuCruydgCDsnKDsoIDsl5Dqsowg7J
3308iI7IKw7J20IOu2hOyCsOuQmOuKlCDruYTtmqjsnKjsnYQg7KSE7J206rOgLCBVQSDsmIjsgrAg7Zqo7Jyo7J2EIOuGkuydvCDsiJgg7J6I7JeI7Iq164uI64ukLg=="); 3309if (p5.nextSibling) { 3310p5.parentNode.insertBefore(h3c, p5.nextSibling); 3311} else { 3312p5.parentNode.appendChild(h3c); 3313} 3314h3c.parentNode.insertBefore(newP5b, h3c.nextSibling); 3315} 3316var p6 = findP(D("TWlzdHBsYXnsnZggVUEg7KCE66y46rCA65Ok66GcIOq1rOyEseuQnCDsoITri7Qg7YG065287J207Ja47Yq4IO2MgOydgA==")); 3317if (p6 && (!p6.previousElementSibling || p6.previousElementSibling.tagName !== 'H3')) { 3318var h3d = document.createElement('h3'); 3319h3d.style.cssText = h3Style; 3320h3d.textContent = D("TGl2ZU9wc+yZgCAxMOyjvOuFhCDquLDrhZAg7ZSE66Gc66qo7IWY7J2EIO2ZnOyaqe2VnCDrtoDsiqTtirgg7Zqo6rO8IOuwjyDstIjquLAg67O866WoIO2ZleuztA=="); 3321p6.parentNode.insertBefore(h3d, p6); 3322} 3323var resultsOld = findP(D("7KCE7LK0IOqysOygnCDsnKDsoIDsnZggMjAlIOydtOyDgeydhCDssKjsp4DtlojsnLzrqbA=")); 3324if (resultsOld) { 3325resultsOld.style.display = 'none'; 3326resultsOld.setAttribute('data-ant37-hidden', '1'); 3327var fn1 = findP(D("JDEwMC/sm5Qg7J207IOBIElBUA==")); 3328var fn2 = findP(D("JDEsMDAwL+yblCDsnbTsg4EgSUFQ")); 3329if (fn1) fn1.style.display = 'none'; 3330if (fn2) fn2.style.display = 'none'; 3331var uls = root.querySelectorAll('ul'); 3332var resultsUl = null; 3333for (var u = 0; u < uls.length; u++) { 3334if (uls[u].textContent.indexOf('ROAS') !== -1) { resultsUl = uls[u]; break; } 3335} 3336if (resultsUl && !resultsUl.querySelector('[data-ant37-bullet]')) { 3337var bulletTexts = [ 3338D("7Lqg7Y6Y7J24IOq4sOqwhCDtmZXrs7TrkJwg7KCE7LK0IOqysOygnCDsnKDsoIAoU3BlbmRlcnMp7J2YIDIwJSDsnbTsg4HsnYQgTWlzdHBsYXkg64uo7J28IOyxhOuEkOuhnCDtmZXrs7Q="), 3339D("7JuUIDEwMOuLrOufrCDsnbTsg4Eg7KeA7Lac7ZWY64qUIOqzoOqwgOy5mCDsnKDsoIDsnZggMjYl6rCAIE1pc3RwbGF566W8IO2Gte2VtCDsnKDsnoU="), 3340D("7JuUIDEsMDAw64us65+sIOydtOyDgSDsp4DstpztlZjripQg7LWc6rOg6rCA7LmYIOycoOyggOydmCA1MCXqsIAgTWlzdHBsYXnrpbwg7Ya17ZW0IOycoOyehQ==") 3341]; 3342for (var b = 0; b < bulletTexts.length; b++) { 3343var li = document.createElement('li'); 3344li.setAttribute('data-ant37-bullet', '1'); 3345li.textContent = bulletTexts[b]; 3346resultsUl.appendChild(li); 3347} 3348} 3349if (resultsUl && !document.querySelector('[data-ant37-resimg]')) { 3350var resImg = document.createElement('img'); 3351resImg.setAttribute('data-ant37-resimg', '1'); 3352resImg.src = 'https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/6a471f06334c504d3f2ed03d_AntLegion_KeyResults_KR_2026-07-03.png'; 3353resImg.alt = D("6rCc66+4IOq1sOuLqChBbnQgTGVnaW9uKSDsuqDtjpjsnbgg7ZW17IusIOyEseqzvCDsmpTslb06IOyghOyblCDrjIDruYQg7ISk7LmYIOyImCAyMDAlIOymneqwgCwg7YOAIOumrOybjOuTnCDssYTrhJAg64yA67mEIEQzMCBST0FTIDMwJSDsg4HtmowsIOy1nOqzoOqzvOq4iCDsnKDsoIAgNTAlIO2ZleuztA=="); 3354resImg.loading = 'lazy'; 3355resImg.style.cssText = 'display:block;width:100%;height:auto;margin:24px 0;border-radius:8px;'; 3356if (resultsUl.nextSibling) { resultsUl.parentNode.insertBefore(resImg, resultsUl.nextSibling); } 3357else { resultsUl.parentNode.appendChild(resImg); } 3358} 3359} 3360var quoteEm = findEM(D("7KCV7ZW07KeEIOyYiOyCsCDslYjsl5DshJwgUk9BUyDrqqntkZw=")); 3361if (quoteEm) { 3362quoteEm.textContent = D("Ik1pc3RwbGF57JmA7J2YIO2YkeyXhSDrjZXrtoTsl5AgJ+qwnOuvuCDqtbDri6goQW50IExlZ2lvbikn7J2AIO2VnOq1rSDsi5zsnqXsl5DshJwg7YGwIOyEseqzteydhCDqsbDrkZgg7IiYIOyeiOyXiOyKteuLiOuLpC4gdFJPQVPsl5Ag7LWc7KCB7ZmU65CcIOy6oO2OmOyduOqzvCBNaXN0cGxheeydmCAxMOyjvOuFhCDquLDrhZAg7ZSE66Gc66qo7IWY7JeQIO2emOyeheyWtCwg6rec66qo66W8IO2BrOqyjCDtmZXsnqXtlZjrqbTshJzrj4Qg67mE7Jqp6rO8IFJPQVMg66qp7ZGc66W8IOuqqOuRkCDri6zshLHtlaAg7IiYIOyeiOyXiOyKteuLiOuLpC4g7JWe7Jy866Gc64+EIO2VnOq1reyXkOyEnCBNaXN0cGxheeyZgOydmCDtjIztirjrhIjsi63snYQg7J207Ja06rCA66mwLCDtlIzroIjsnbTslrTrk6Tsl5Dqsowg642UIOuCmOydgCDqsozsnoQg6rK97ZeY7J2EIOyEoOuztOydtOqzoCDsi7bsirXri4jri6QuIg=="); 3363} 3364var attrEm = findEM('Della Lee'); 3365if (attrEm) { 3366attrEm.textContent = D("4oCUIERlbGxhIExlZSwgMzdHYW1lcyBIZWFkIG9mIFVzZXIgQWNxdWlzaXRpb24gVGVhbQ=="); 3367} 3368var ctaP = findP(D("6rOg6rCA7LmYIOyCrOyaqeyekOulvCDtmZXrs7TtlZjqs6DsnpA=")); 3369if (ctaP) { 3370var aEl = ctaP.querySelector('a'); 3371if (aEl) { 3372aEl.textContent = D("6riA66Gc67KMIFVBIOyDgeuLtCDsi6Dssq3tlZjquLA="); 3373while (ctaP.firstChild && ctaP.firstChild !== aEl) { 3374ctaP.removeChild(ctaP.firstChild); 3375} 3376var ctaText = document.createTextNode(D("MzdHYW1lc+ydmCDsgqzroYDrpbwg7Ya17ZW0IOyVjCDsiJgg7J6I65Ov7J20IOuLqOyInCDshKTsuZjri7kg64uo6rCAKENQSSnsnZgg66ek66qwIOu5hOyaqeydhCDspITsnbTqs6Ag7Iuk7KCcIOqzvOq4iOqzvCDsnqXquLAg7LK066WY66GcIOydtOyWtOyngOuKlCDsp4TshLEg7Jyg7KCA66W8IO2ZleuztO2VmOuKlCDqsoPsnbQg66qo67CU7J28IOqyjOyehCBVQSDrp4jsvIDtjIXsnZgg7ZW17Ius7J6F64uI64ukLiBNaXN0cGxheeuKlCDqsoDspp3rkJwg6rKM7J2066i4IOuNsOydtO2EsOyZgCDsoJXqtZDtlZwgQUkg7IaU66Oo7IWY7J2EIOuwlO2DleycvOuhnCDqt4DsgqzsnZgg7YOA7J207YuA7J20IO2VnOq1rSDrsI8g6riA66Gc67KMIOyLnOyepeyXkOyEnCDtmZXsi6TtlZwg66ek7LacIOyEseyepeydhCDsnbTro7Ag7IiYIOyeiOuPhOuhnSDsp4Dsm5Dtlanri4jri6QuIA==")); 3377ctaP.insertBefore(ctaText, aEl); 3378} 3379} 3380if (!document.querySelector('[data-ant37-resh2]')) { 3381var h2s10 = root.querySelectorAll('h2'); 3382for (var q = 0; q < h2s10.length; q++) { 3383var tt = h2s10[q].textContent.replace(/^\s+/, ''); 3384if (tt.indexOf(D("6rKw6rO8")) === 0) { 3385h2s10[q].textContent = D("6rKw6rO8OiDsoITsm5Qg64yA67mEIOyEpOy5mCDsiJggMjAwJ
3385SDspp3qsIAg67CPIEQzMCBST0FTIDMwJSDri6zshLE="); 3386h2s10[q].setAttribute('data-ant37-resh2', '1'); 3387break; 3388} 3389} 3390} 3391root.setAttribute(GATE, 'done'); 3392clearInterval(timer); 3393}, 250); 3394} catch (e) { /* fail silent, never break the page */ } 3395})();</script>
3395 3396<!-- 37Games Ant Legion content inject END --> 3397 3398 3399<!-- Cat Snack Bar (Treeplla) content inject START -->
3400<script>function D(s){return decodeURIComponent(escape(atob(s)))} 3401(function () { 3402try { 3403if (location.hostname.indexOf('ko.business.mistplay.com') === -1) return; 3404if (location.pathname.indexOf('treeplla-cat-snack-bar') === -1) return; 3405var GATE = 'data-catsnack-v1'; 3406var tries = 0; 3407var MAX_TRIES = 80; // 80 * 250ms = 20s 3408var timer = setInterval(function () { 3409tries++; 3410if (tries > MAX_TRIES) { clearInterval(timer); return; } 3411var root = document.querySelector('.article-richtext'); 3412if (!root) return; 3413if (root.getAttribute(GATE) === 'done') { clearInterval(timer); return; } 3414var ps = Array.prototype.slice.call(root.querySelectorAll('p')); 3415var findP = function (needle) { 3416for (var i = 0; i < ps.length; i++) { 3417if (ps[i].textContent.indexOf(needle) !== -1) return ps[i]; 3418} 3419return null; 3420}; 3421var pSol = findP(D("7KeE7ISxIOycoOyggOulvCDtmZXrs7TtlZjripQg642wIOqwleygkOydtA==")); 3422var pTroas = findP(D("7Jyg7KCAIO2WieuPmSDrjbDsnbTthLDrpbwg7Iuk7Iuc6rCE7Jy866Gc")); 3423var pLoyal = findP(D("7ZSM66CI7J20IO2DgOyehCDrpqzsm4zrk5wg66qo64247J20IOu2meyeoeyVhA==")); 3424if (!pSol || !pTroas || !pLoyal) return; // not settled yet 3425var h3Style = 'font-size:20px;font-weight:700;color:#1C2E4A;margin-top:1.75em;margin-bottom:0.4em;'; 3426if (!document.querySelector('[data-catsnack-aeo]')) { 3427var box = document.createElement('div'); 3428box.setAttribute('data-catsnack-aeo', '1'); 3429box.style.cssText = 'border-left:4px solid #4731D3;background:#F4F3FF;padding:14px 18px;margin:0 0 22px;border-radius:6px;font-size:15px;line-height:1.65;color:#2b2b33;word-break:keep-all;overflow-wrap:break-word;'; 3430box.textContent = D("7ISc7Jq47JeQIOuzuOyCrOulvCDrkZQg7LqQ7KO87Ja8IOqyjOyehCDsiqTtipzrlJTsmKQg7Yq466as7ZSM6528KFRyZWVwbGxhKeydmCDrjIDtkZzsnpEgJ+qzoOyWkeydtCDsiqTrgrXrsJQoQ2F0IFNuYWNrIEJhcikn64qUIOuvuOq1rSDsi5zsnqUg7ZmV7J6lIOuLqOqzhOyXkOyEnCDrpqzsm4zrk5wgVUEg7ZSM656r7Y+8IE1pc3RwbGF57J2YIEFJIOq4sOuwmCB0Uk9BUyDsuqDtjpjsnbjsnYQg64+E7J6F7ZaI7Iq164uI64ukLiDqt7gg6rKw6rO8IO2DgCDrp6TssrQg64yA67mEIEQ3IEFSUFUgMjAlIO2WpeyDgSwgRDcg66as7YWQ7IWYIDEwMCUg7Kad6rCALCBEMzAg66as7YWQ7IWYIDcwJSDspp3qsIDrpbwg6riw66Gd7ZWY66mwIOuvuOq1rSDsi5zsnqXsl5Ag7JWI7LCp7ZaI7Iq164uI64ukLg=="); 3431root.insertBefore(box, root.firstElementChild); 3432} 3433if (!document.querySelector('[data-catsnack-antlink]')) { 3434var pAnt = document.createElement('p'); 3435pAnt.setAttribute('data-catsnack-antlink', '1'); 3436pAnt.appendChild(document.createTextNode(D("7JWe7IScIA=="))); 3437var aAnt = document.createElement('a'); 3438aAnt.href = 'https://ko.business.mistplay.com/resources/37games-ant-legion'; 3439aAnt.textContent = D("MzdHYW1lc+ydmCDsoITrnrUgU0xHICfqsJzrr7gg6rWw64uoJw=="); 3440pAnt.appendChild(aAnt); 3441pAnt.appendChild(document.createTextNode(D("7J20IO2VnOq1rSDsi5zsnqXsl5DshJwg7YOAIOumrOybjOuTnCDssYTrhJAg64yA67mEIEQzMCBST0FT66W8IDMwJSDrgYzslrTsmKzrprAg6rKD64+EIE1pc3RwbGF57JmAIO2VqOq7mO2VnCDqsrDqs7zsmIDsirXri4jri6Qu"))); 3442if (pSol.nextSibling) { pSol.parentNode.insertBefore(pAnt, pSol.nextSibling); } 3443else { pSol.parentNode.appendChild(pAnt); } 3444} 3445if (pTroas && (!pTroas.previousElementSibling || !pTroas.previousElementSibling.hasAttribute('data-catsnack-h3a'))) { 3446if (!document.querySelector('[data-catsnack-h3a]')) { 3447var h3a = document.createElement('h3'); 3448h3a.setAttribute('data-catsnack-h3a', '1'); 3449h3a.style.cssText = h3Style; 3450h3a.textContent = D("MS4gQUkg6riw67CYIHRST0FTIOy6oO2OmOyduCAtIOqysOygnCDsnqDsnqzroKUg64aS7J2AIOqzoOqwgOy5mCDsnKDsoIAg7KCV67CAIOyEoOuzhA=="); 3451pTroas.parentNode.insertBefore(h3a, pTroas); 3452} 3453} 3454if (pLoyal && !document.querySelector('[data-catsnack-h3b]')) { 3455var h3b = document.createElement('h3'); 3456h3b.setAttribute('data-catsnack-h3b', '1'); 3457h3b.style.cssText = h3Style; 3458h3b.textContent = D("Mi4g66Gc7Je07YuwIOyDne2DnOqzhCAtIOumrOybjOuTnOulvCDrsJvsnYAg65Kk7JeQ64+EIOqyjOyehOyXkCDrgqjripQg7Jyg7KCAIOyXrOyglQ=="); 3459pLoyal.parentNode.insertBefore(h3b, pLoyal); 3460} 3461if (!document.querySelector('[data-catsnack-resh2]')) { 3462var h2s = root.querySelectorAll('h2'); 3463for (var q = 0; q < h2s.length; q++) { 3464var tt = h2s[q].textContent.replace(/^\s+/, ''); 3465if (tt.indexOf(D("6rKw6rO8")) === 0) { 3466h2s[q].textContent = D("6rKw6rO8OiDrr7jqta0g7Iuc7J6lIEQ3IEFSUFUgMjAlIO2WpeyDgcK3RDcg66as7YWQ7IWYIDEwMCXCt0QzMCDrpqzthZDshZggNzAlIOymneqwgA=="); 3467h2s[q].setAttribute('data-catsnack-resh2', '1'); 3468break; 3469} 3470} 3471} 3472var uls = root.querySelectorAll('ul'); 3473var resultsUl = null; 3474for (var u = 0; u < uls.length; u++) { 3475if (uls[u].textContent.indexOf('ARPU') !== -1) { resultsUl = uls[u]; break; } 3476} 3477if (resultsUl && !resultsUl.querySelector('[data-catsnack-b3]')) { 3478var li3 = document.createElement('li'); 3479li3.setAttribute('data-catsnack-b3', '1'); 3480li3.appendChild(document.createTextNode(D("RDMwIOumrO2FkOyFmCA="))); 3481var st3 = document.createElement('strong'); 3482st3.textContent = "70%"; 3483li3.appendChild(st3); 3484li3.appendChild(document.createTextNode(D("IOymneqwgCAtIOuhnOyXtO2LsCDsnqXsuZjsmYAg7Jew64+Z64+8IOyepeq4sCDsnpTsobQg7Jyg7KeA"))); 3485resultsUl.appendChild(li3); 3486} 3487if (resultsUl && !document.querySelector('[data-catsnack-fn]')) { 3488var fn = document.createElement('p'); 3489fn.setAttribute('data-catsnack-fn', '1'); 3490fn.style.cssText = 'font-size:13px;color:#666;font-style:italic;margin-top:6px;'; 3491fn.textContent = D("Ku2DgCDrp6TssrQg64yA67mE"); 3492if (resultsUl.nextSibling) { resultsUl.parentNode.insertBefore(fn, resultsUl.nextSibling); } 3493else { resultsUl.parentNode.appendChild(fn); } 3494} 3495if (!document.body.hasAttribute('data-catsnack-alt')) { 3496var imgsA = document.querySelectorAll('img'); 3497for (var m = 0; m < imgsA.length; m++) { 3498var srcA = imgsA[m].getAttribute('src') || ''; 3499if (srcA.indexOf('Treeplla-CatSnackBar_Blog') !== -1) { imgsA[m].setAttribute('alt', D("7Yq466as7ZSM6528IOqzoOyWkeydtCDsiqTrgrXrsJQg66+46rWtIOyLnOyepSDshLHqs7Ug7IKs66GAIOKAlCBNaXN0cGxheSB4I
3499FRyZWVwbGxh")); } 3500if (srcA.indexOf('6707d7291871736d1bd9cb32') !== -1) { imgsA[m].setAttribute('alt', D("7Yq466as7ZSM6528KFRyZWVwbGxhKSDsiqTtipzrlJTsmKQg6rCc7JqUIOKAlCDshJzsmrgg7IaM7J6sLCDsp4Hsm5Ag7JW9IDUw66qFLCDsm5TqsIQg7Zmc7ISxIOyCrOyaqeyekCAxMDDrp4wg66qFIOydtOyDgSwg7Iuc666s66CI7J207IWYwrfsupDso7zslrwg7J6l66W0")); } 3501} 3502document.body.setAttribute('data-catsnack-alt', '1'); 3503} 3504if (!document.querySelector('[data-catsnack-bridge]')) { 3505var pSrc = findP('data.ai'); 3506if (pSrc) { 3507var pBr = document.createElement('p'); 3508pBr.setAttribute('data-catsnack-bridge', '1'); 3509pBr.textContent = D("66y47KCc64qUIOuLpOyatOuhnOuTnOqwgCDqs6cg66ek7Lac7J2AIOyVhOuLiOudvOuKlCDsoJDsnbTsl4jsirXri4jri6QuIO2GsTPsl5Ag7Jik66W4IOyduOq4sOulvCDsnKDsp4DtlZjrqbTshJwg66ek7Lac6rmM7KeAIO2CpOyasOugpOuptCwg66+46rWtIOyLnOyepeydhCDsnpgg7JWE64qUIFVBIO2MjO2KuOuEiOqwgCDtlYTsmpTtlojsirXri4jri6Qu"); 3510if (pSrc.nextSibling) { pSrc.parentNode.insertBefore(pBr, pSrc.nextSibling); } 3511else { pSrc.parentNode.appendChild(pBr); } 3512} 3513} 3514if (!document.body.hasAttribute('data-catsnack-bold')) { 3515var boldTargets = [D("66as7JuM65Oc66eMIOuwm+qzoCDrlqDrgpjripQg7Jyg7KCA6rCAIOyVhOuLiOudvCDqsozsnoTsl5Ag64Ko7JWEIOqysOygnO2VmOuKlCDsp4TshLEg7Jyg7KCA66W8IOyWvOuniOuCmCDtmZXrs7Q="), D("7Jyg7KCA6rCAIOyyqyDshKTsuZgg7J207ZuE7JeQ64+EIOyekOyXsOyKpOufveqyjCAn6rOg7JaR7J20IOyKpOuCteuwlCfroZwg64+M7JWE7JmAIOyYpOuemCDrqLjrrLzrj4TroZ0g7Jyg7KCAIOyXrOygleydhCDshKTqs4Q=")]; 3516for (var bt = 0; bt < boldTargets.length; bt++) { 3517var needleB = boldTargets[bt]; 3518var pB = findP(needleB.slice(0, 20)); 3519if (pB && pB.textContent.indexOf(needleB) !== -1 && !pB.querySelector('strong')) { 3520pB.innerHTML = pB.innerHTML.replace(needleB, '<strong>' + needleB + '</strong>'); 3521} 3522} 3523document.body.setAttribute('data-catsnack-bold', '1'); 3524} 3525root.setAttribute(GATE, 'done'); 3526clearInterval(timer); 3527}, 250); 3528} catch (e) { /* fail silent, never break the page */ } 3529})();</script>
3529 3530<!-- Cat Snack Bar (Treeplla) content inject END --> 3531 3532 3533<!-- hreflang restore (Hosoo Media 2026-08-18) START --> 3534<!-- Weglot strips rel=alternate hreflang tags on translated subdomains. 3535 Re-inject them from weglot-data allLanguageUrls after DOM parse. 3536 Original EN has no weglot-data element, so this is a no-op there. 3537 Rollback: delete this block. -->
3538<script> 3539(function () { 3540 var el = document.getElementById('weglot-data'); 3541 if (!el) return; 3542 var urls; 3543 try { urls = (JSON.parse(el.textContent) || {}).allLanguageUrls; } catch (e) { return; } 3544 if (!urls) return; 3545 Object.keys(urls).forEach(function (lang) { 3546 if (document.querySelector('link[rel="alternate"][hreflang="' + lang + '"]')) return; 3547 var link = document.createElement('link'); 3548 link.rel = 'alternate'; 3549 link.hreflang = lang; 3550 link.href = String(urls[lang]).split('?')[0].split('#')[0]; 3551 document.head.appendChild(link); 3552 }); 3553})(); 3554</script>
3554 3555<!-- hreflang restore (Hosoo Media 2026-08-18) END --> 3556<!-- Retention benchmarks AI summary box (Hosoo Media 2026-09-01, D1 rev 2026-09-01) START --> 3557<!-- KO-only + page-scoped (mobile-game-retention-benchmarks). Adds AI summary box at top of article (under H1), same style as Netmarble. Pure ASCII. Rollback: delete this block. -->
3558<script> 3559(function(){ 3560 if (location.hostname.indexOf("ko.") !== 0) return; 3561 if (location.pathname.indexOf("mobile-game-retention-benchmarks") < 0) return; 3562 function run(){ 3563 var rich = document.querySelector(".article-richtext"); 3564 if (!rich || !rich.firstElementChild) return false; 3565 if (rich.querySelector("[data-bm-aeo]")) return true; 3566 if (!document.getElementById("bm-aeo-style")){ 3567 var st = document.createElement("style"); 3568 st.id = "bm-aeo-style"; 3569 st.textContent = "[data-bm-aeo]{word-break:keep-all;overflow-wrap:break-word;}"; 3570 document.head.appendChild(st); 3571 } 3572 var box = document.createElement("div"); 3573 box.setAttribute("data-bm-aeo","1"); 3574 box.style.cssText = "border-left:4px solid #4731D3;background:#f4f3ff;padding:14px 18px;margin:0 0 22px;border-radius:6px;"; 3575 box.innerHTML = "\ubaa8\ubc14\uc77c \uac8c\uc784 \ud3c9\uade0 \ub9ac\ud150\uc158\uc740 D1(1\uc77c\ucc28) 30% \uc548\ud30e\uc774 \uae30\uc900\uc120\uc785\ub2c8\ub2e4. AppsFlyer\u00b7Adjust \uc9d1\uacc4 \uae30\uc900 iOS\uac00 D1 35.7%\ub85c Android(27.5%)\ubcf4\ub2e4 \ub192\uace0, \uc7a5\ub974\ubcc4\ub85c\ub294 \ub9e4\uce583\uac00 D1 32.65%\ub85c \uac00\uc7a5 \ub192\uc2b5\ub2c8\ub2e4. \uc544\ub798\uc5d0\uc11c D1\u00b7D7\u00b7D30\uacfc \uc7a5\ub974\ubcc4\u00b7\uad6d\uac00\ubcc4 \uc218\uce58\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4."; 3576 rich.insertBefore(box, rich.firstElementChild); 3577 return true; 3578 } 3579 var tries = 0; 3580 (function loop(){ tries++; if (run()) return; if (tries < 40) setTimeout(loop, 300); })(); 3581})(); 3582</script>
3582 3583<!-- Retention benchmarks AI summary box END --> 3584 3585<!-- Retention metrics AI summary box (Hosoo Media 2026-09-01) START --> 3586<!-- KO-only + page-scoped (mobile-game-retention-metrics). Adds AI summary box at top of article (under H1), same style as Netmarble. Pure ASCII. Rollback: delete this block. -->
3587<script> 3588(function(){ 3589 if (location.hostname.indexOf("ko.") !== 0) return; 3590 if (location.pathname.indexOf("mobile-game-retention-metrics") < 0) return; 3591 function run(){ 3592 var rich = document.querySelector(".article-richtext"); 3593 if (!rich || !rich.firstElementChild) return false; 3594 if (rich.querySelector("[data-rm-aeo]")) return true; 3595 if (!document.getElementById("bm-aeo-style")){ 3596 var st = document.createElement("style"); 3597 st.id = "bm-aeo-style"; 3598 st.textContent = "[data-rm-aeo]{word-break:keep-all;overflow-wrap:break-word;}"; 3599 document.head.appendChild(st); 3600 } 3601 var box = document.createElement("div"); 3602 box.setAttribute("data-rm-aeo","1"); 3603 box.style.cssText = "border-left:4px solid #4731D3;background:#f4f3ff;padding:14px 18px;margin:0 0 22px;border-radius:6px;"; 3604 box.innerHTML = "\ubaa8\ubc14\uc77c \uac8c\uc784 \ub9ac\ud150\uc158 \uc9c0\ud45c\ub294 DX \ub9ac\ud150\uc158, LTV, \uc774\ud0c8\ub960, \uace0\ucc29\ub3c4(DAU/MAU), \ub864\ub9c1 \ub9ac\ud150\uc158, \ube0c\ub798\ud0b7 \ub9ac\ud150\uc158 \uc5ec\uc12f \uac00\uc9c0\uac00 \ud575\uc2ec\uc785\ub2c8\ub2e4. \uc774 \uae00\uc5d0\uc11c \uac01 \uc9c0\ud45c\uc758 \uacc4\uc0b0\uc2dd\uacfc \uc5b8\uc81c \uc4f0\ub294\uc9c0\ub97c \uc815\ub9ac\ud588\uc2b5\ub2c8\ub2e4."; 3605 rich.insertBefore(box, rich.firstElementChild); 3606 return true; 3607 } 3608 var tries = 0; 3609 (function loop(){ tries++; if (run()) return; if (tries < 40) setTimeout(loop, 300); })(); 3610})(); 3611</script>
3611 3612<!-- Retention metrics AI summary box END --> 3613<!-- Retention metrics comparison table (Hosoo Media 2026-09-01 v3) START --> 3614<!-- KO-only + page-scoped (mobile-game-retention-metrics). 3-column metric table under the AI summary box. Stacks into cards under 700px. Pure ASCII. Rollback: delete this block. -->
3615<script> 3616(function(){ 3617 if (location.hostname.indexOf("ko.") !== 0) return; 3618 if (location.pathname.indexOf("mobile-game-retention-metrics") < 0) return; 3619 function run(){ 3620 var rich = document.querySelector(".article-richtext"); 3621 if (!rich || !rich.firstElementChild) return false; 3622 if (rich.querySelector("[data-rm-table]")) return true; 3623 if (!document.getElementById("hm-rm-table-css")) { 3624 var st = document.createElement("style"); 3625 st.id = "hm-rm-table-css"; 3626 st.textContent = "[data-rm-table]{border:1px solid #e6e4f5;background:#fbfaff;padding:16px 18px;margin:0 0 22px;border-radius:6px;max-width:100%;box-sizing:border-box;}[data-rm-table] .rmT{font-weight:700;margin:0 0 10px;}[data-rm-table] .rmW{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}[data-rm-table] table{border-collapse:collapse;width:100%;font-size:15px;line-height:1.6;}[data-rm-table] th{text-align:left;padding:10px 12px;border-bottom:2px solid #4731D3;white-space:nowrap;}[data-rm-table] td{padding:10px 12px;border-bottom:1px solid #e6e4f5;vertical-align:top;}[data-rm-table] td.rmN{font-weight:600;white-space:nowrap;}[data-rm-table] .rmL{display:none;}@media (min-width:701px){[data-rm-table] table{min-width:560px;}}@media (max-width:700px){[data-rm-table] .rmW{overflow-x:visible;}[data-rm-table] table,[data-rm-table] thead,[data-rm-table] tbody,[data-rm-table] tr,[data-rm-table] th,[data-rm-table] td{display:block;width:auto;max-width:100%;min-width:0;}[data-rm-table] thead{display:none;}[data-rm-table] tr{border-bottom:1px solid #e6e4f5;padding:10px 0;}[data-rm-table] tr:last-child{border-bottom:0;}[data-rm-table] td{border-bottom:0;padding:2px 0;white-space:normal;word-break:keep-all;overflow-wrap:break-word;}[data-rm-table] td.rmN{white-space:normal;font-weight:700;margin-bottom:2px;}[data-rm-table] .rmL{display:inline;color:#6b6a80;}}"; 3627 document.head.appendChild(st); 3628 } 3629 var anchor = rich.querySelector("[data-rm-aeo]"); 3630 var box = document.createElement("div"); 3631 box.setAttribute("data-rm-table","1"); 3632 box.innerHTML = "<div class=\\\"rmT\\\">\ubaa8\ubc14\uc77c \uac8c\uc784 \ub9ac\ud150\uc158 \uc9c0\ud45c 6\uac00\uc9c0 \ud55c\ub208\uc5d0 \ubcf4\uae30</div><div class=\\\"rmW\\\"><table><thead><tr><th>\uc9c0\ud45c</th><th>\uacc4\uc0b0\uc2dd</th><th>\uc5b8\uc81c \uc4f0\ub294\uc9c0</th></tr></thead><tbody><tr><td class=\\\"rmN\\\">1. DX \ub9ac\ud150\uc158</td><td><span class=\\\"rmL\\\">\uacc4\uc0b0\uc2dd </span>(0\uc77c\ucc28\uc5d0 \uac8c\uc784\uc744 \ucc98\uc74c \uc5f0 \uc720\uc800 \uc911 X\uc77c\ucc28\uae4c\uc9c0 \uac8c\uc784\uc744 \uc5f0 \uc720\uc800 \uc218) / (0\uc77c\ucc28\uc5d0 \uac8c\uc784\uc744 \ucc98\uc74c \uc5f0 \uc804\uccb4 \uc720\uc800 \uc218)</td><td><span class=\\\"rmL\\\">\uc5b8\uc81c </span>\uac8c\uc784 \uc0c1\ud0dc\ub97c \uac00\uc7a5 \uba3c\uc800 \ud655\uc778\ud558\ub294 \uae30\uc900\uc785\ub2c8\ub2e4. D1 40%, D7 20%, D30 10%\uac00 \ubaa9\ud45c\uc120\uc785\ub2c8\ub2e4.</td></tr><tr><td class=\\\"rmN\\\">2. LTV(\uc0dd\uc560\uac00\uce58)</td><td><span class=\\\"rmL\\\">\uacc4\uc0b0\uc2dd </span>(DAU\ub2f9 \ud3c9\uade0 \uc218\uc775) \u00d7 (\uc720\uc800\uc758 \ud3c9\uade0 \uac8c\uc784 \uc774\uc6a9 \uae30\uac04)</td><td><span class=\\\"rmL\\\">\uc5b8\uc81c </span>\ucea0\ud398\uc778\uacfc UA \ucc44\ub110\ubcc4 \uc131\uacfc\ub97c \uae08\uc561\uc73c\ub85c \ube44\uad50\ud560 \ub54c \uc501\ub2c8\ub2e4.</td></tr><tr><td class=\\\"rmN\\\">3. \uc774\ud0c8\ub960</td><td><span class=\\\"rmL\\\">\uacc4\uc0b0\uc2dd </span>(X\uc77c\ucc28 \uc774\ud6c4 \uac8c\uc784\uc744 \uc5f4\uc9c0 \uc54a\uc740 \uc720\uc800 \uc218) / (0\uc77c\ucc28\uc5d0 \uac8c\uc784\uc744 \ucc98\uc74c \uc5f0 \uc804\uccb4 \uc720\uc800 \uc218)</td><td><span class=\\\"rmL\\\">\uc5b8\uc81c </span>\uc720\uc800\uac00 \uc5b8\uc81c \ub5a0\ub098\ub294\uc9c0, UA \uc804\ub7b5\uc774 \uc131\uc7a5 \ubaa9\ud45c\uc640 \ub9de\ub294\uc9c0 \ubcfc \ub54c \uc501\ub2c8\ub2e4.</td></tr><tr><td class=\\\"rmN\\\">4. \uace0\ucc29\ub3c4 (DAU/MAU)</td><td><span class=\\\"rmL\\\">\uacc4\uc0b0\uc2dd </span>(DAU) / (MAU)</td><td><span class=\\\"rmL\\\">\uc5b8\uc81c </span>\ub9ac\ud150\uc158\ubcf4\ub2e4 \ud55c \uac78\uc74c \ub354 \ub4e4\uc5b4\uac00 \uc720\uc800 \ub85c\uc5f4\ud2f0\ub97c \uac00\ub2a0\ud560 \ub54c \uc501\ub2c8\ub2e4.</td></tr><tr><td class=\\\"rmN\\\">5. \ub864\ub9c1 \ub9ac\ud150\uc158</td><td>
3632<span class=\\\"rmL\\\">\uacc4\uc0b0\uc2dd </span>(X\uc77c\ucc28 \uc774\ud6c4 \ub9c8\uc9c0\ub9c9\uc73c\ub85c \uac8c\uc784\uc744 \uc5f0 \uc720\uc800 \uc218) / (0\uc77c\ucc28\uc5d0 \uac8c\uc784\uc744 \ucc98\uc74c \uc5f0 \uc804\uccb4 \uc720\uc800 \uc218)</td><td><span class=\\\"rmL\\\">\uc5b8\uc81c </span>\uc815\ud655\ud55c \uc774\ud0c8 \uc2dc\uc810\ubcf4\ub2e4 \ub2e4\uc2dc \ub3cc\uc544\uc654\ub294\uc9c0\uac00 \uc911\uc694\ud560 \ub54c \uc501\ub2c8\ub2e4.</td></tr><tr><td class=\\\"rmN\\\">6. \ube0c\ub798\ud0b7 \ub9ac\ud150\uc158</td><td><span class=\\\"rmL\\\">\uacc4\uc0b0\uc2dd </span>DX \ub9ac\ud150\uc158\uacfc \uac19\uc740 \ubc29\uc2dd\uc774\ub418 \ud558\ub8e8\uac00 \uc544\ub2c8\ub77c \uae30\uac04 \uad6c\uac04\uc73c\ub85c \uc9d1\uacc4</td><td><span class=\\\"rmL\\\">\uc5b8\uc81c </span>\ucf58\ud150\uce20\ub97c \ub2e8\uacc4\ubcc4\ub85c \ud478\ub294 \uac8c\uc784\uc5d0\uc11c \ub2e8\uacc4\ubcc4 \uc601\ud5a5\uc744 \ubcfc \ub54c \uc501\ub2c8\ub2e4.</td></tr></tbody></table></div>"; 3633 if (anchor && anchor.nextSibling) { rich.insertBefore(box, anchor.nextSibling); } 3634 else if (anchor) { rich.appendChild(box); } 3635 else { rich.insertBefore(box, rich.firstElementChild); } 3636 return true; 3637 } 3638 var tries = 0; 3639 (function loop(){ tries++; if (run()) return; if (tries < 40) setTimeout(loop, 300); })(); 3640})(); 3641</script>
3641 3642<!-- Retention metrics comparison table END --> 3643 3644<!-- KO article heading spacing (Hosoo Media 2026-09-01) START --> 3645<!-- KO-only. Adds breathing room above H2/H3 in article body for readability. Rollback: delete this block. -->
3646<script> 3647(function(){ 3648 if (location.hostname.indexOf("ko.") !== 0) return; 3649 if (document.getElementById("hm-ko-heading-space")) return; 3650 var s = document.createElement("style"); 3651 s.id = "hm-ko-heading-space"; 3652 s.textContent = ".article-richtext h2:not(:first-child){margin-top:2.4em;}" 3653 + ".article-richtext h3:not(:first-child){margin-top:2em;}" 3654 + ".article-richtext h4:not(:first-child){margin-top:1.7em;}" 3655 + ".article-richtext h2,.article-richtext h3,.article-richtext h4{margin-bottom:.6em;}"; 3656 document.head.appendChild(s); 3657})(); 3658</script>
3658 3659 3660<!-- KO article table horizontal scroll (Hosoo Media 2026-09-01) START --> 3661<!-- KO-only. CMS tables in article body are wider than mobile viewport and push the page sideways (same on EN, upstream issue). Wraps each table in a horizontal scroll container so the page itself no longer overflows. Rollback: delete this block. -->
3662<script> 3663(function(){ 3664 if (location.hostname.indexOf("ko.") !== 0) return; 3665 function run(){ 3666 var rich = document.querySelector(".article-richtext"); 3667 if (!rich) return false; 3668 var tables = rich.querySelectorAll("table"); 3669 if (!tables.length) return false; 3670 if (!document.getElementById("hm-ko-table-scroll")) { 3671 var st = document.createElement("style"); 3672 st.id = "hm-ko-table-scroll"; 3673 st.textContent = ".hm-tw{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 18px;}" 3674 + ".hm-tw>table{margin-bottom:0;}"; 3675 document.head.appendChild(st); 3676 } 3677 for (var i = 0; i < tables.length; i++) { 3678 var t = tables[i]; 3679 if (t.parentNode && t.parentNode.className === "hm-tw") continue; 3680 if (t.closest("[data-rm-table]")) continue; 3681 var w = document.createElement("div"); 3682 w.className = "hm-tw"; 3683 t.parentNode.insertBefore(w, t); 3684 w.appendChild(t); 3685 } 3686 return true; 3687 } 3688 var tries = 0; 3689 (function loop(){ tries++; if (run()) return; if (tries < 40) setTimeout(loop, 300); })(); 3690})(); 3691</script>
3691 3692<!-- KO article table horizontal scroll END --> 3693 3694 3695 3696<!-- AM guide KO (Hosoo 2026-09-16) START -->
3697<script>function D(s){return decodeURIComponent(escape(atob(s)))} 3698(function(){var L=location;if(L.hostname.indexOf('ko.')||L.pathname.indexOf('/resources/app-monetization-guide')<0)return;var A=D("66qo67CU7J28IOyVsSDsiJjsnbXtmZQg66qo64247J2AIOyduOyVsSDqsrDsoJwoSUFQKSwg7J247JWxIOq0keqzoChJQUEpLCDqtazrj4UsIOyYpO2NvOyblCwg7KCc7Zy0IOyYpO2NvCwg7ZSE66as66+47JeELCDsnKDro4wg7JWxIOydvOqzsSDqsIDsp4DqsIAg7ZW17Ius7J6F64uI64ukLiAyMDI164WEIOq4sOykgCDsnbjslbEg6rSR6rOgIOyLnOyepeydgCDslb0gMyw5MDDslrUg64us65+s66GcIOuUlOyngO2EuCDqtJHqs6Ag7KeA7Lac7J2YIOyVvSA1NiXrpbwg7LCo7KeA7ZWY6rOgLCDsnbjslbEg6rKw7KCc64qUIOu5hOqyjOyehCDslbHsnZgg7JW9IDUwJSwg6rKM7J6EIOyVseydmCDslb0gNzkl6rCAIOyCrOyaqe2VqeuLiOuLpC4g7J20IOq4gOyXkOyEnCDqsIEg66qo64247J2YIOyImOydtSDqtazsobDsmYAg7Ja065akIOyVseyXkCDrp57ripTsp4AsIOyEseqzvOulvCDsnqzripQg7KeA7ZGcIDfqsIDsp4DsnZgg6rOE7IKw7Iud7J2EIOygleumrO2WiOyKteuLiOuLpC4="),H=[D("66qo6424"),D("7IiY7J217J20IOyDneq4sOuKlCDrsKnsi50="),D("66ee64qUIOyVsQ=="),D("67O466y47JeQIOyeiOuKlCDsiJjsuZg=")],R=[[D("7J247JWxIOqysOygnCBJQVA="),D("7JWxIOyViOyXkOyEnCDslYTsnbTthZzCt+q4sOuKpcK37J6s7ZmU66W8IO2MkOunpA=="),D("6rKM7J6ELCDsvZjthZDsuKAg7JWx"),D("67mE6rKM7J6EIDUwJSwg6rKM7J6EIDc5JeqwgCDsgqzsmqkgLyDqsrDsoJwg7J207Jqp7J6QIOyVvSA1JQ==")],[D("7J247JWxIOq0keqzoCBJQUE="),D("6rSR6rOgIOyngOuptOydhCDtjJDrp6TtlbQg64W47LacwrftgbTrpq3snLzroZwg7KCV7IKw"),D("7J207Jqp7J6Q6rCAIOunjuydgCDrrLTro4wg7JWx"),D("MjAyNeuFhCDslb0gMyw5MDDslrUg64us65+sLCDrlJTsp4DthLgg6rSR6rOg7J2YIOyVvSA1NiU=")],[D("6rWs64+F"),D("7KCV6riwIOqysOygnOuhnCDtlITrpqzrr7jsl4Qg6riw64qlIOygnOqztQ=="),D("7L2Y7YWQ7LigLCDrj4TqtawsIOyEnOu5hOyKpCDslbE="),D("66y066OMIOyytO2XmCDsoJzqs7XsnbQg7J2867CY7KCB")],[D("7Jik7Y287JuU"),D("7J207Jqp7J6Q6rCAIOuvuOyFmOydhCDsmYTro4ztlZjrqbQg67O07IOBLCDqtJHqs6Dso7zqsIAg67mE7JqpIOyngOu2iA=="),D("66as7JuM65OcIOq1rOyhsOqwgCDsnojripQg7JWx"),D("67O07IOB7ZiVIOyduOyVsSDqtJHqs6DsnZgg7ZWcIO2Yle2DnA==")],[D("7KCc7Zy0IOyYpO2NvA=="),D("7KCcM+yekCDsg4HtkojsnYQg7ZmN67O07ZWY6rOgIOyEseqzvOyXkCDrlLDrnbwg7IiY7IiY66OM"),D("7Yq4656Y7ZS97J20IO2BsCDslbE="),D("66eI7LyA7YSwIOyVvSA4MCXqsIAg7Zmc7Jqp")],[D("7ZSE66as66+47JeEKOu2gOu2hCDsnKDro4ztmZQp"),D("6riw67O4IOustOujjCwg7LaU6rCAIOq4sOuKpeydgCDsnKDro4w="),D("6riw64ql7J20IOuLqOqzhOuhnCDrgpjriZjripQg7JWx"),D("66eI7LyTIOyVseydmCDslb0gOTAl6rCAIOustOujjA==")],[D("7Jyg66OMIOyVsQ=="),D("64uk7Jq066Gc65OcIOyLnOygkOyXkCDqs7zquIg="),D("7KCE66y4IOuPhOq1rCwg7YuI7IOIIOyVsQ=="),D("aU9TIOycoOujjCDslbEg67mE7KSRIOyVvSA0LjYzJQ==")]],T=D("TFRW64qUIOumrO2FkOyFmOqzvCDtlajqu5gg67SQ7JW8IOydmOuvuOqwgCDsnojsirXri4jri6QuIOqzhOyCsOyLneqzvCBEMcK3RDfCt0QzMCDquLDspIDqsJLsnYAgPGEgaHJlZj0iaHR0cHM6Ly9rby5idXNpbmVzcy5taXN0cGxheS5jb20vcmVzb3VyY2VzL21vYmlsZS1nYW1lLXJldGVudGlvbi1tZXRyaWNzIj7rqqjrsJTsnbwg6rKM7J6EIOumrO2FkOyFmCDsp4DtkZwgNuqwgOyngOyZgCDqs4TsgrDrspU8L2E+7JeQ7IScIO2ZleyduO2VoCDsiJgg7J6I7Iq164uI64ukLg=="),C="[data-am]{word-break:keep-all}.amT{border:1px solid #e6e4f5;background:#fbfaff;padding:16px 18px;margin:0 0 22px;border-radius:6px}.amT table{border-collapse:collapse;width:100%;font-size:15px;line-height:1.6}.amT th{text-align:left;padding:10px 12px;border-bottom:2px solid #4731D3}.amT td{padding:10px 12px;border-bottom:1px solid #e6e4f5;vertical-align:top}.amT td:first-child{font-weight:600}.amT i{display:none;font-style:normal;color:#6b6a80}@media(max-width:700px){.amT thead{display:none}.amT tr,.amT td{display:block;padding:2px 0;border:0}.amT tr{padding:10px 0;border-bottom:1px solid #e6e4f5}.amT i{display:inline}}",M={'/monetize/loyaltyplay':'/publishers/loyaltyplay','/advertise/android':'/advertisers/android','/advertise/ios':'/advertisers/ios','/monetize/hex':'/advertisers/hex'};function e(s){return s.replace(/&/g,'&').replace(/</g,'<')}function r(){var d=document,x=d.querySelector('.article-richtext');if(!x||!x.firstElementChild)return 0;if(x.querySelector('[data-am]'))return 1;var s=d.createElement('style');s.textContent=C;d.head.appendChild(s);var b=d.createElement('div');b.setAttribute('data-am','1');b.style.cssText='border-left:4px solid #4731D3;background:#f4f3ff;padding:14px 18px;margin:0 0 22px;border-radius:6px';b.textContent=A;x.insertBefore(b,x.firstElementChild);var h,g=x.querySelectorAll('h2');for(var i=0;i<g.length;i++){var n=g[i].nextElementSibling;if(n&&/^1\..*IAP/.test(n.textContent.trim())){h=g[i];break}}if(h){var o='<div class="hm-tw"><table><thead><tr>'+H.map(function(z){return'<th>'+e(z)+'</th>'}).join('')+'</tr></thead><tbody>'+R.map(function(w){return'<tr>'+w.map(function(c,k){return'<td>'+(k?'<i>'+e(H[k])+' </i>':'')+e(c)+'</td>'}).join('')+'</tr>'}).join('')+'</tbody></table></div>';var t=d.createElement('div');t.className='amT';t.setAttribute('data-am','2');t.innerHTML=o;h.parentNode.insertBefore(t,h.nextSibling)}var p=x.querySelectorAll('p');for(var j=0;j<p.length;j++){var q=p[j].querySelector('strong');if(q&&/^1\..*LTV\)/.test(q.textContent.trim())){var f=p[j].nextElementSibling;if(f&&/LTV\s*=/.test(f.textContent))f.innerHTML=T;break}}[].forEach.call(x.querySelectorAll('a[href]'),function(a){try{var u=new URL(a.href);if(M[u.pathname])a.href='https://'+L.hostname+M[u.pathname]}catch(z){}});return 1}var c=0;(function l(){if(!r()&&++c<40)setTimeout(l,300)})()})()</script>
3698 3699<!-- AM guide KO END --> 3700 3701 3702<!-- Futureplay 2026 KO (Hosoo 2026-09-23) START -->
3703<script>(function(){if(location.hostname.indexOf("ko.")!==0||location.pathname.indexOf("futureplay-case-study")<0)return; 3704var B="lVXdbhpnEH2V0UqWbAUwP2mjcocauepFWqlRriyrwniToPDjsqDKqiphZ20hIC2NWYzjBYFiO2BRaYF1TFLyQjuz79CZBdw4ah31bne/b2bOnHNm9hflqRJdX1fcV1XaGwAdVB3LVHyKe9ijUdOtV7FTopYNzqhKbZ3OS4srG751BX/XqaODM55SR4Jm7/NXufDD97GHeDYF6hRdo0kV0907pTdFIKNM5hT7NukmOFcmXvTAPTawWuQsiyBs9Khho9nD88E8yBl3rq9zpleWM7G8Qq5hOyML0OqTUeIcdFDH1z3ab85Ojw1qn5E+ZGjAIXQ0YKiAb3XSW9TSgUzdNUxwDy5do89odWxfCglenAQxELc8YSB4ZXFWiXGNnvNXE6jdxXL9k1Apyng4krPMHqJw/x5Ia4AXffcPE7hZfKfDnUhwyQf3I0G4cze4pGxs+JRNJfrf/C+vFfKFnLqdiu/AN/G0qq1I+XAw9AXucyP6KZ5/wBr3YhSxXcRDfjoaUGUofLWaXLyHVp1a03lGoPKpWzaxXqfmKXZNH2BvImw7Fgd3lh+ouScqF8ptqRltBfBwCF+x/As8LGKXWymx7ruAFZbE5g9SNRSkxiU4Q1u4Qr3pjKZUvsRKiW8F4EFSy3stxApbSTWTUOE7Nf9zNveMjosQ297W1lI7ak5csKD50JrbJRwMfymthuik7onZtYGdxUJ9luF/O2TSpQwnwm7LbZT+AcnSxb3Z+DquqQ/zha2dH9fE5LfwIwyzAZ3RBwbMsJh5fQj0vobnf7q6Jc1Rx6CTGk/RC28qnrd88InWHynMhHdNNj0XY6OVRGmaFvkOq+Ypp1usHNveQr3kuU5wJrP+bzOPs7dPccfAsQ3MRHThhBuNsQ/GE9kI1z7yAb3ZFeihYBAv9kFQPN/1SXf0ekoNHpL2GZ7ZnoVTefYwmR1u0Rvssb38KLbCiFIFPniaz29r0dXVZ9nAZkFLZlRNC6TnjggksunVnKplC7mEqq2ms5vJlOovaGrOH0/8VEhqyXwym+FM6bCUuDmXgC8sxiW0iC1fXqF1Qu96WGsydRyjhW4bLWGZ3RUWd93l5SCeeFvkZPI14nlu9hWYGIlcuFhkz3vmovcd9zdeD5P5ZMwdKQ4LRwL3lgAPXvKpR54xlQIsqQAL3wZskXxvgF3ZkFpEWj+qyTigbKeS7KGb1tX+J9GPr03nT4un/U9mnvYn2P1+Tewv8m19jsBrTm4MsqgxFr+4TQMexbzB9vY9/xawb/H4FWVvjKofz6j357BLsn+xIpMkO5pXPI4M5de/AQ==",D,n=0; 3705new Response(new Blob([Uint8Array.from(atob(B),function(c){return c.charCodeAt(0)})]).stream().pipeThrough(new DecompressionStream("deflate-raw"))).text().then(function(t){D=JSON.parse(t);g();}); 3706function g(){var a=document.querySelector(".article-richtext");if(!a){if(++n<160)setTimeout(g,250);return;} 3707var H=a.parentNode.querySelectorAll("h2,h3"),i,k,e; 3708for(i=0;i<H.length;i++){e=H[i];for(k=0;k<D.h.length;k++)if(e.textContent.trim()===D.h[k][0])e.textContent=D.h[k][1];} 3709var M=document.querySelectorAll("img");for(i=0;i<M.length;i++)for(k=0;k<D.a.length;k++)if((M[i].src||"").indexOf(D.a[k][0])>=0&&!M[i].alt)M[i].alt=D.a[k][1]; 3710if(!a.querySelector("[data-fp]")){e=document.createElement("p");e.setAttribute("data-fp","1");e.textContent=D.b;a.insertBefore(e,a.firstChild);} 3711var P=a.querySelectorAll("p"),c=null,done=0; 3712for(i=0;i<P.length;i++){e=P[i]; 3713if(!done&&!e.querySelector("a")&&e.textContent.indexOf(D.lt)>=0&&e.textContent.indexOf(D.m2)<0){e.innerHTML=e.innerHTML.replace(D.lt,'<a href="'+D.lu+'">'+D.lt+"</a>");done=1;} 3714if(e.textContent.indexOf(D.m2)===0)c=e;} 3715if(c&&!document.querySelector("[data-fp2]")){e=document.createElement("p");e.setAttribute("data-fp2","1");e.innerHTML=D.s1+'<a href="'+D.su+'">'+D.s2+"</a>"+D.s3;c.parentNode.insertBefore(e,c);} 3716var S=document.querySelectorAll('script[type="application/ld+json"]'); 3717for(i=0;i<S.length;i++){try{var j=JSON.parse(S[i].textContent),A=j["@graph"]||(Array.isArray(j)?j:[j]),ch=0; 3718A.forEach(function(o){if(o&&o.headline){o.headline=D.ld;ch=1;}if(o&&o.itemListElement)o.itemListElement.forEach(function(x){if(x.name&&x.name.indexOf("Futureplay")>-1){x.name=D.ld;ch=1;}});}); 3719if(ch)S[i].textContent=JSON.stringify(j);}catch(x){}}} 3720})();</script>
3720 3721<!-- Futureplay 2026 KO END --></body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.