PageSourceSearch

https://mistplay-business-8cad2c.webflow.io/article-tags/case-studies

html mistplay-business-8cad2c.webflow.io collected 2026-10-03 13:28:50 UTC 324,995 bytes, 3,721 lines download raw bytes

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 &amp; Fintech</a><a href="/publishers/loyaltyplay/shopping-cashback" class="mb_nav_label_b w-dropdown-link">For Shopping &amp; Cashback</a><a href="/publishers/loyaltyplay/fuel-convenience-stores" class="mb_nav_label_b w-dropdown-link">For Fuel &amp; 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&#x27;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 &amp; 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">&times;</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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a84665520aa2b6dc6ebdd96_2026-07_CaseStudy_IGG-Doomsday_Blog-Banner%20(1).avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a79ed25ec8062230b7e99e1_2026-05_LoyaltyPlay-Blog_SinclairOil_Header%20(1).avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a70eaa9510b60efd2014887_2026-08_CaseStudy_Futureplay_Blog-Banner%20(1).avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a550051216894119f6b093b_01.jpeg&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a39e1cb95ff942eb5226_ANA%20Banner.avif&quot;)" 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, '&quot;')}</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, '&quot;');
2413                            const display = localizeTag(slug, tag).replace(/"/g, '&quot;');
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, '&quot;') + '" ' + 'aria-label="' + searchPlaceholder.replace(/"/g, '&quot;') + '">' + 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"' : '') + '>&larr; 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 &rarr;</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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a84665520aa2b6dc6ebdd96_2026-07_CaseStudy_IGG-Doomsday_Blog-Banner%20(1).avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a79ed25ec8062230b7e99e1_2026-05_LoyaltyPlay-Blog_SinclairOil_Header%20(1).avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a70eaa9510b60efd2014887_2026-08_CaseStudy_Futureplay_Blog-Banner%20(1).avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a550051216894119f6b093b_01.jpeg&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a39e1cb95ff942eb5226_ANA%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2942124cf422b05d8a6_Unico%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3549fd1b269c7c80021bdc_GainGG%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a673d93899c0a6f1256b_GeoSmile%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c0c344a24bfe4c21ebfc_Moppy_Ceres%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1).jpg&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c85c10035ab38813ac0d_MysteryTag%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a98702c98412d48199c0384_caveduck(1).avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a757497d088eeacfcfeb_TodaySoft%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5d74ef865af76bde357_Actionfit%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6f9994990363a7d71c4_JoyCity%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d1d9a09aa294531f3c85_Springcomes%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3ed96aee60f5448098cb2a_DSC_4652-980x639.jpg&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3eaca4837d09c4b5976dc2_pointi-income1-980x516.jpg&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5b891e5af01548bfbcc_707%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c636d858838ebe3dce4d_FumbGames%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6ab43af9d4fe44c7df2_HyperHippo%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c5d74ef865af76bde357_Actionfit%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2942124cf422b05d8a6_Unico%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c688e6c99d2aabe659fd_Gamehaus%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7e7312259508ffbc083_Mobibrain%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7c20d002e3a632158dd_Midnite%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c6f9994990363a7d71c4_JoyCity%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c85c10035ab38813ac0d_MysteryTag%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c8964db9acb17b52d9db_Paxie%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c7a3e6c99d2aabe80a64_Merge%20Restaurant%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d1d9a09aa294531f3c85_Springcomes%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d2bbace3f6fa9533292c_WorldWinner%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43d276a0a7266f7c635eca_TapNation%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c8b2fb0d489ab98610df_Revolut%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a757497d088eeacfcfeb_TodaySoft%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a6ae0071775e6b54db7d_PollFlow%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a673d93899c0a6f1256b_GeoSmile%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a4c603cbc5bf587496fa_TeraBox%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a4ab15fe750d261fe2f8_WeWard%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c0c344a24bfe4c21ebfc_Moppy_Ceres%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a67b8d54b6083ef5d6cb31e_caveduck2(1).avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a39e1cb95ff942eb5226_ANA%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a37e67b0ab6ba3730452_Klink%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a43c14b334b25b98868ec11_20251222-24%20(1).jpg&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a30309aa1b063a252752_ZBD%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a42a2c03be576436ef9a613_Superbowl%20banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6a3549fd1b269c7c80021bdc_GainGG%20Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/69c3f6bfb7405de0694e3d2d_2026-03_ConnectedRewards-Blog_Checkers%26Rally%27s_Header%20(1).avif&quot;)" 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 &amp; 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/69c3eb0b5686df09da4520c2_2026-03_ConnectedRewards-Blog_GoMart_Header%20(1).avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/698b3f702fc23795400aa907_2026-02_CaseStudy_Township-by-playrix_Blog-Banner%20(1).avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/6978f7f4bb8f1aa0ad927489_2025-12_CaseStudy_LeniuGames_Blog-Banner%202.avif&quot;)" 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&#x27;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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/696e639b95201f45e80b9214_2025-12_CaseStudy_Netmarble_Blog-Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68f7b17ec6371e6acf707b30_2025-05_CaseStudy_Ovivo_Blog-Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68d161ea67c4916b16918f32_2025-09_CaseStudy_AntLegion-by-37Games_Blog-Banner.avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/68276aa344fdb62c0de777f1_2025-02_CaseStudy_Playlinks_Blog-Banner%20(1).avif&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745680_2024-11_2024%20in%20review%20for%20publishers%20(1)%20(1).png&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d074559a_2024-10_CaseStudy_Treeplla-CatSnackBar_Blog-Banner%20(1)%20(1).png&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455c1_2024-07_CaseStudy_Playtika-BoardKings_Blog-Banner.png&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455c3_case-study_DragonCape-CenturyGames_hero.png&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455b7_case-study-vividjoan-banner.png&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07455b5_case-study-higgsstudio-banner.png&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d074560e_case-study-trailmixgames-banner.png&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745630_2023-07_Futureplay-CaseStudy_Banner.png&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d0745331_case-study-eastsidegames-banner.png&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07452d1_case-study-dragonscape-banner.webp&quot;)" 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(&quot;https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744ccf/67ae5a0c0c4e8738d07452bc_case-study-top-puzzle-game-banner.webp&quot;)" 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 &amp; Fintech</a><a href="/publishers/loyaltyplay/shopping-cashback" class="mb_footer_item_b">Shopping &amp; Cashback</a><a href="/publishers/loyaltyplay/fuel-convenience-stores" class="mb_footer_item_b">Fuel &amp; 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;">&times;</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,'&amp;').replace(/</g,'&lt;')}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.