PageSourceSearch

https://mistplay-business-8cad2c.webflow.io/publishers/loyaltyplay/fuel-convenience-stores

html mistplay-business-8cad2c.webflow.io collected 2026-10-03 13:28:49 UTC 198,364 bytes, 2,837 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="69fceebfa11e2f2d0698f891" data-wf-site="67ae5a0c0c4e8738d0744c0d" lang="en"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>LoyaltyPlay: Fuel &amp; Convenience Store Loyalty Program Software | Mistplay</title><meta content="The convenience store loyalty program built around play-and-earn. Drive more pump stops and in-store visits between fill-ups." name="description"/><meta content="LoyaltyPlay: Fuel &amp; Convenience Store Loyalty Program Software | Mistplay" property="og:title"/><meta content="The convenience store loyalty program built around play-and-earn. Drive more pump stops and in-store visits between fill-ups." property="og:description"/><meta content="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/6a06349240ec95d4585002d5_Fuel-preview.avif" property="og:image"/><meta content="LoyaltyPlay: Fuel &amp; Convenience Store Loyalty Program Software | Mistplay" name="twitter:title"/><meta content="The convenience store loyalty program built around play-and-earn. Drive more pump stops and in-store visits between fill-ups." name="twitter:description"/><meta content="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/6a06349240ec95d4585002d5_Fuel-preview.avif" name="twitter:image"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><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/publishers/loyaltyplay/fuel-convenience-stores" 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 --><style>
516
517::selection {
518	color: #343557; 
519  background: #F2F2FA; /* WebKit/Blink Browsers */
520}
521::-moz-selection {
522	color: #343557; 
523  background: #F2F2FA; /* Gecko Browsers */
524}
525</style>
526<!-- HOSOO hreflang page-level 2026-08-12 / rollback: delete this block -->
527<link rel="alternate" hreflang="en" href="https://business.mistplay.com/publishers/loyaltyplay/fuel-convenience-stores" />
528<link rel="alternate" hreflang="ko" href="https://ko.business.mistplay.com/publishers/loyaltyplay/fuel-convenience-stores" /></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>
529#w-dropdown-list-0 a {
530	text-transform:none !important;
531}
532</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>
533#w-dropdown-list-0 a {
534	text-transform:none !important;
535}
536</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>
537#w-dropdown-list-0 a {
538	text-transform:none !important;
539}
540</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" aria-current="page" class="mb_nav_label_b w-dropdown-link w--current">For Fuel &amp; C-store</a></div></div><div class="code-embed-3 w-embed"><style>
541#w-dropdown-list-0 a {
542	text-transform:none !important;
543}
544</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" class="mb_nav_label_b w-dropdown-link">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>
545#w-dropdown-list-0 a {
546	text-transform:none !important;
547}
548</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>
549#w-dropdown-list-0 a {
550	text-transform:none !important;
551}
552</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
5520(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
552anner.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>
553#w-dropdown-list-0 a {
554	text-transform:none !important;
555}
556</style></div></div></nav></div><div class="code-embed-4 w-embed"><style>
557nav#w-dropdown-list-3 {
558    width: max-content !important;
559}
560nav#w-dropdown-list-2 {
561    right: 0;
562    left: auto;
563}
564@media (max-width: 1645px) {
565  .dropdown-list.resource-styling.w--open {
566  	flex-flow:column !important;
567    width:35rem;
568    justify-content:left;
569  }
570  .container-28 {
571  	width: 100% !important;
572   }
573}
574</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">
574ZH</div></div></a></nav></div><div class="wg-element-wrapper sw6"><div class="mb_nav_embed w-embed w-script"><!-- Language Redirect Banner -->
575<div class="lang-redirect-banner" id="lang-redirect-banner" style="display: none;">
576    <div class="banner-content">
577        <span class="banner-text">This article is not yet available in your selected language. You are viewing the English version.</span>
578        <button class="banner-close" aria-label="Close banner">&times;</button>
579    </div>
580</div>
581
582<!-- <style>
583h1.mb_h1.mb_text_primary {
584  word-break: keep-all;
585  overflow-wrap: break-word;
586}
587html[lang="ja"] h1.mb_h1.mb_text_primary {
588  font-size: clamp(2.5rem, 6vw, 5rem);
589}
590</style> -->
591<!-- Fix JA word breaks -->
592<script>
593  const isJa = location.hostname.startsWith('ja.')
594            || new URLSearchParams(location.search).get('lang') === 'ja';
595  if (isJa && location.pathname.startsWith('/resources') && location.pathname !== '/resources/locone-loyaltyplay-case-study') {
596    const s = document.createElement('script');
597    s.src = 'https://cdn.jsdelivr.net/npm/[email protected]/bundle/budoux-ja.min.js';
598    s.defer = true;
599    s.onload = () => {
600      const apply = () => {
601        document.querySelectorAll('h1, .hero h1, .blog-post-title').forEach(el => {
602          const text = el.textContent.trim();
603          if (!text || el.querySelector('budoux-ja')) return;
604          const b = document.createElement('budoux-ja');
605          b.textContent = text;
606          el.textContent = '';
607          el.appendChild(b);
608        });
609      };
610      if (document.readyState === 'loading') {
611        document.addEventListener('DOMContentLoaded', apply);
612      } else {
613        apply();
614      }
615    };
616    document.head.appendChild(s);
617
618    const style = document.createElement('style');
619    style.textContent = `
620      h1, .hero h1, .blog-post-title {
621        word-break: keep-all;
622        overflow-wrap: anywhere;
623        line-break: strict;
624      }
625    `;
626    document.head.appendChild(style);
627  }
628</script>
628
629
630<!-- KO: site-wide word-break rules -->
631<script>
632  const isKo = location.hostname.startsWith('ko.')
633            || new URLSearchParams(location.search).get('lang') === 'ko';
634  if (isKo) {
635    const koStyle = document.createElement('style');
636    koStyle.textContent = `
637      html {
638        word-break: keep-all;
639        overflow-wrap: break-word;
640      }
641    `;
642    document.head.appendChild(koStyle);
643  }
644</script>
644
645
646<style> 
647      .article-richtext li {
648        color: #5b5c81 !important;
649    }
650  	p.mb_p.mb_p-sm.mb_text_primary.mb_text_center {
651        margin-top: 1rem;
652    }
653
654  .mb_card_a.mb_border_primary p {
655        line-height: 1.7;
656    }
657  .mb_h3.mb_text_primary.mb_text_center.mb_text_no-margin.mb_card_b_title {
658      line-height: 1.3;
659  }
660  .mb_p_sm.mb_text_primary.mb_text_center {
661    line-height: 1.3;
662}
663  
664    address#lang-en div {
665        color: white;
666    }
667
668    .language-dropdown {
669        position: relative;
670        display: inline-block;
671        cursor: pointer;
672    }
673
674    .dropdown-toggle {
675        display: flex;
676        align-items: center;
677        padding: 10px;
678        border-radius: 4px;
679    }
680
681    .dropdown-toggle .flag img {
682        width: 100% !important;
683        height: 20px;
684        margin-right: 10px;
685    }
686
687    .dropdown-toggle .language-code {
688        font-size: 16px;
689        color: white;
690    }
691
692    .dropdown-list {
693        display: none;
694        position: absolute;
695        top: 100%;
696        left: 0;
697        background-color: #fff;
698        border: 1px solid #ccc;
699        border-radius: 4px;
700        box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
701        z-index: 1;
702    }
703
704    .language-dropdown:hover .dropdown-list {
705        display: block;
706    }
707
708    .dropdown-link {
709        display: flex;
710        align-items: center;
711        padding: 10px;
712        text-decoration: none;
713        color: #000;
714    }
715
716    .dropdown-link:hover {
717        background-color: #f1f1f1;
718    }
719
720    .dropdown-link .flag {
721        width: 30px;
722    }
723
724    .dropdown-link .flag img {
725        width: 100% !important;
726        height: 20px;
727        margin-right: 10px;
728    }
729
730    .dropdown-link .language-code {
731        font-size: 16px;
732    }
733
734    .wg-element-wrapper.sw6 {
735        width: auto !important;
736    }
737
738    .wg-dd-1-list .txt-m,
739    .wg-dd-1-list .txt-medium,
740    .wg-dd-1-list .mb_text_lang_dropdown {
741        color: black !important;
742    }
743
744    .wg-dropdown-1-link-2 .txt-m,
745    .wg-dropdown-1-link-2 .txt-medium,
746    .wg-dropdown-1-link-2 .mb_text_lang_dropdown {
747        color: black !important;
748    }
749
750    .language-current {
751        opacity: 0.5;
752        pointer-events: none;
753        background-color: #f5f5f5 !important;
754    }
755
756    .language-current .mb_text_lang_dropdown {
757        color: #999 !important;
758    }
759
760    #lang-current .txt-m,
761    #lang-current .txt-medium,
762    #lang-current #current-lang-text {
763        color: white !important;
764    }
765
766    .wg-default.weglot-container--left,
767    .wg-default.weglot-container--left .country-selector {
768        display: none;
769    }
770
771    .lang-unavailable {
772        opacity: 0.4 !important;
773        pointer-events: none !important;
774        cursor: not-allowed !important;
775        background-color: #f9f9f9 !important;
776    }
777
778    .lang-unavailable .mb_text_lang_dropdown {
779        color: #999 !important;
780    }
781
782    .lang-unavailable .wg-flag-ico {
783        filter: grayscale(100%);
784    }
785
786    /* Hide items not available in current language */
787    .lang-hidden {
788        display: none !important;
789    }
790
791    /* Custom pagination styles */
792    .custom-pagination {
793        display: flex;
794        justify-content: center;
795        align-items: center;
796        gap: 10px;
797        margin-top: 30px;
798        padding: 20px;
799    }
800
801    .pagination-btn {
802        padding: 10px 20px;
803        border: 1px solid #ddd;
804        border-radius: 6px;
805        text-decoration: none;
806        color: #333;
807        background: #fff;
808        transition: all 0.2s;
809    }
810
811    .pagination-btn:hover {
812        background: #f5f5f5;
813        border-color: #999;
814    }
815
816    .pagination-info {
817        padding: 10px 20px;
818        font-weight: 500;
819    }
820
821    .no-results-message {
822        text-align: center;
823        padding: 60px 20px;
824        color: #666;
825        font-size: 18px;
826    }
827
828    /* Redirect Banner Styles */
829    .lang-redirect-banner {
830        position: fixed;
831        top: 0;
832        left: 0;
833        right: 0;
834        background: #1a1a2e;
835        color: #ffffff;
836        padding: 12px 20px;
837        z-index: 9999;
838        box-shadow: 0 2px 10px rgba(0,0,0,0.2);
839    }
840
841    .lang-redirect-banner .banner-content {
842        max-width: 1200px;
843        margin: 0 auto;
844        display: flex;
845        align-items: center;
846        justify-content: center;
847        gap: 12px;
848    }
849
850    .lang-redirect-banner .banner-text {
851        font-size: 14px;
852    }
853
854    .lang-redirect-banner .banner-close {
855        background: none;
856        border: none;
857        color: #ffffff;
858        font-size: 24px;
859        cursor: pointer;
860        padding: 0 8px;
861        opacity: 0.7;
862        line-height: 1;
863    }
864
865    .lang-redirect-banner .banner-close:hover {
866        opacity: 1;
867    }
868</style>
869
870<div data-delay="300" data-hover="true" data-w-id="a78c205e-83e8-11e6-c4bb-7fd3d1591490"
871    class="wg-dropdown-1 w-dropdown" style="background-color: rgba(0, 0, 0, 0);">
872    <address id="lang-current" class="wg-dd-1-togle-2 w-dropdown-toggle" aria-controls="w-dropdown-list-3"
873        aria-haspopup="menu" aria-expanded="false" role="button" tabindex="0">
874        <div class="wg-selector-text-wrapper v-mg-xxxs">
875            <div class="wg-flag">
876                <img id="current-flag" alt="Current language flag"
877                    src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/67ae5a0c0c4e8738d0745029_UK.svg"
878                    class="wg-flag-ico">
879            </div>
880            <div id="current-lang-text" class="txt-m txt-medium">EN</div>
881        </div>
882    </address>
883    <nav class="wg-dd-1-list wg-dropdown-link-flag w-dropdown-list" id="w-dropdown-list-3" aria-labelledby="lang-current">
884    </nav>
885</div>
886
887<script>
888// Enhanced Mistplay Language Selector with Language Visibility Control
889(function () {
890    'use strict';
891
892    // Note: On production, we work WITH Weglot instead of fighting its URL interception
893    // We use Weglot.switchTo('en') to show English content while staying on the language subdomain
894
895    document.addEventListener('DOMContentLoaded', function() {
896        const STAGING_DOMAINS = ['webflow.io', 'webflow.com'];
897        const isStaging = STAGING_DOMAINS.some(d => window.location.hostname.includes(d));
898
899    const LANGUAGE_CONFIG = {
900        'en': {
901            domain: 'business.mistplay.com',
902            flag: 'https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/67ae5a0c0c4e8738d0745029_UK.svg',
903            alt: 'UK flag icon',
904            code: 'EN'
905        },
906        'fr': {
907            domain: 'fr.business.mistplay.com',
908            flag: 'https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/67ae5a0c0c4e8738d074501b_FR.svg',
909            alt: 'French flag icon',
910            code: 'FR'
911        },
912        'de': {
913            domain: 'de.business.mistplay.com',
914            flag: 'https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/67ae5a0c0c4e8738d074501a_GE.svg',
915            alt: 'German flag icon',
916            code: 'DE'
917        },
918        'ko': {
919            domain: 'ko.business.mistplay.com',
920            flag: 'https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/67ae5a0c0c4e8738d074501e_KR.svg',
921            alt: 'Korean flag icon',
922            code: 'KO'
923        },
924        'ja': {
925            domain: 'ja.business.mistplay.com',
926            flag: 'https://cdn.prod.website-files.com/5f0ca36cf0757c5e00e2ee0a/662a84fb93e86ddf145d8d7d_ja-ico.png',
927            alt: 'Japanese flag icon',
928            code: 'JA'
929        },
930        'zh': {
931            domain: 'zh.business.mistplay.com',
932            flag: 'https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/67ae5a0c0c4e8738d0745140_CN_Flag.svg',
933            alt: 'Chinese flag icon',
934            code: 'ZH'
935        }
936    };
937
938    const currentUrlPath = window.location.pathname;
939    const currentDomain = window.location.hostname;
940
941    const getCurrentLangFromUrl = () => {
942        if (isStaging) {
943            const urlParams = new URLSearchParams(window.location.search);
944            const langParam = urlParams.get('lang');
945            return (langParam && LANGUAGE_CONFIG[langParam.toLowerCase()]) ? langParam.toLowerCase() : 'en';
946        }
947        const subdomain = currentDomain.split('.')[0];
948        return LANGUAGE_CONFIG[subdomain] ? subdomain : 'en';
949    };
950
951    const currentLanguage = getCurrentLangFromUrl();
952    const currentLanguageConfig = LANGUAGE_CONFIG[currentLanguage];
953
954    // Override top announcement banner text on ja / ko subdomains.
955    // Runs before the dropdown null-check so it still applies on pages without the selector.
956    const updateAnnouncementBanner = () => {
957        const bannerTexts = {
958            'ja': 'MAFとMyChipsは、このたびMistplayのブランドとして新たなスタートを切ります。これまでと変わらないチームで、これからはMistplayとしてサービスを提供してまいります。',
959            'ko': 'MAF와 MyChips는 이제 Mistplay의 일부입니다. 앞으로는 Mistplay에서 만나보세요'
960        };
961        const newText = bannerTexts[currentLanguage];
962        if (!newText) return;
963        document.querySelectorAll('.mb_link_banner_desktop, .mb_link_banner_mobile').forEach(el => {
964            el.textContent = newText;
965        });
966    };
967    updateAnnouncementBanner();
968
969    const currentFlag = document.getElementById('current-flag');
970    const currentLangText = document.getElementById('current-lang-text');
971    const dropdownList = document.getElementById('w-dropdown-list-3');
972
973    if (!dropdownList) {
974        console.log('Language dropdown not found');
975        return;
976    }
977
978    const getAvailableLanguages = () => {
979        const articleContainer = document.querySelector('[data-article-languages]');
980        if (!articleContainer) return null;
981        const availableLangs = articleContainer.getAttribute('data-article-languages') || 'en';
982        return availableLangs.split(',').map(l => l.trim().toLowerCase());
983    };
984
985    const isLanguageAvailable = (lang, availableLangs) => {
986        if (!availableLangs) return true;
987        return availableLangs.includes(lang);
988    };
989
990    // Set current language display
991    if (currentFlag && currentLangText && currentLanguageConfig) {
992        currentFlag.src = currentLanguageConfig.flag;
993        currentFlag.alt = currentLanguageConfig.alt;
994        currentLangText.innerHTML = currentLanguageConfig.code;
995    }
996
997    const availableLangs = getAvailableLanguages();
998
999    // Populate dropdown
1000    Object.keys(LANGUAGE_CONFIG).forEach(lang => {
1001        const langConfig = LANGUAGE_CONFIG[lang];
1002        const langItem = document.createElement('a');
1003        langItem.className = 'wg-dropdown-1-link-2 wg-dd-1-list-item w-dropdown-link';
1004        langItem.setAttribute('data-lang', lang);
1005
1006        const isAvailable = isLanguageAvailable(lang, availableLangs);
1007
1008        if (!isAvailable) {
1009            langItem.classList.add('lang-unavailable');
1010            langItem.setAttribute('title', 'This article is not available in this language');
1011            langItem.setAttribute('aria-disabled', 'true');
1012        } else {
1013            if (isStaging) {
1014                const url = new URL(window.location.href);
1015                if (lang === 'en') {
1016                    url.searchParams.delete('lang');
1017                } else {
1018                    url.searchParams.set('lang', lang);
1019                }
1020                langItem.href = url.toString();
1021            } else {
1022                if (lang === 'en') {
1023                    langItem.href = `https://business.mistplay.com${currentUrlPath}`;
1024                } else {
1025                    langItem.href = `https://${langConfig.domain}${currentUrlPath}`;
1026                }
1027            }
1028        }
1029
1030        langItem.setAttribute('aria-label', `Switch to ${langConfig.code}${!isAvailable ? ' (not available)' : ''}`);
1031        langItem.innerHTML = `
1032            <div class="wg-selector-text-wrapper">
1033                <div class="wg-flag">
1034                    <img src="${langConfig.flag}" alt="${langConfig.alt}" class="wg-flag-ico">
1035                </div>
1036                <div class="txt-m txt-medium mb_text_lang_dropdown">${langConfig.code}</div>
1037            </div>
1038        `;
1039        dropdownList.appendChild(langItem);
1040    });
1041
1042    // Redirect handler for unavailable languages
1043    const checkAndRedirect = () => {
1044        // Skip if already redirected (prevent loops)
1045        const urlParams = new URLSearchParams(window.location.search);
1046        if (urlParams.get('redirectedFrom')) return;
1047
1048        const articleContainer = document.querySelector('[data-article-languages]');
1049        if (!articleContainer) return;
1050
1051        const articleLangs = articleContainer.getAttribute('data-article-languages') || 'en';
1052        const langArray = articleLangs.split(',').map(l => l.trim().toLowerCase()).filter(Boolean);
1053
1054        if (langArray.includes(currentLanguage)) return;
1055
1056        // Redirect to the first language listed in available-languages.
1057        const targetLang = langArray[0] || 'en';
1058        const targetConfig = LANGUAGE_CONFIG[targetLang];
1059        if (!targetConfig) return;
1060
1061        console.log('[LangControl] Article not available in ' + currentLanguage + ', switching to ' + targetLang);
1062
1063        if (isStaging) {
1064            // For staging, redirect with URL param
1065            const url = new URL(window.location.href);
1066            if (targetLang === 'en') {
1067                url.searchParams.delete('lang');
1068            } else {
1069                url.searchParams.set('lang', targetLang);
1070            }
1071            url.searchParams.set('redirectedFrom', currentLanguage);
1072            window.location.href = url.toString();
1073        } else {
1074            // Production: use window.name to pass data across subdomain navigation.
1075            window.name = JSON.stringify({
1076                langRedirect: {
1077                    from: currentLanguage,
1078                    path: currentUrlPath,
1079                    time: Date.now()
1080                }
1081            });
1082
1083            if (currentLanguage !== 'en' && targetLang === 'en') {
1084                // Existing pattern: swap non-EN → EN via Weglot on the current subdomain.
1085                console.log('[LangControl] Set window.name, now calling Weglot.switchTo(en)');
1086                const switchToEnglish = () => {
1087                    if (typeof Weglot !== 'undefined' && Weglot.switchTo) {
1088                        Weglot.switchTo('en');
1089                    }
1090                };
1091                if (typeof Weglot !== 'undefined' && Weglot.switchTo) {
1092                    switchToEnglish();
1093                } else {
1094                    const checkWeglot = setInterval(() => {
1095                        if (typeof Weglot !== 'undefined' && Weglot.switchTo) {
1096                            clearInterval(checkWeglot);
1097                            switchToEnglish();
1098                        }
1099                    }, 100);
1100                    setTimeout(() => clearInterval(checkWeglot), 5000);
1101                }
1102            } else {
1103                // Any other case (EN → non-EN, or non-EN → different non-EN): navigate directly to target subdomain.
1104                window.location.href = 'https://' + targetConfig.domain + currentUrlPath;
1105            }
1106        }
1107    };
1108
1109        // Filter and paginate listing page items by language
1110        const filterAndPaginateItems = () => {
1111            const listingPages = ['/resources', '/article-tags/', '/reports'];
1112            const isListingPage = listingPages.some(p => currentUrlPath.startsWith(p) || currentUrlPath === p);
1113
1114            if (!isListingPage) return;
1115
1116            const ITEMS_PER_PAGE = 9;
1117            // Only target main content items (not nav dropdowns or hero sections)
1118            const mainContainer = document.querySelector('.w-container .w-dyn-list, .mb_container .w-dyn-list');
1119            if (!mainContainer) return;
1120            const allItems = mainContainer.querySelectorAll('.w-dyn-item[data-available-languages]');
1121
1122            // Filter items based on language.
1123            // Empty data-available-languages == English only.
1124            // A non-empty list means the item is visible only in those languages
1125            // (so a "ja"-only item is hidden on the English listing).
1126            const filteredItems = [];
1127            allItems.forEach((item) => {
1128                const availableLangs = item.getAttribute('data-available-languages');
1129
1130                if (!availableLangs || availableLangs.trim() === '') {
1131                    if (currentLanguage === 'en') {
1132                        filteredItems.push(item);
1133                    } else {
1134                        item.classList.add('lang-hidden');
1135                    }
1136                } else {
1137                    const langArray = availableLangs.split(',').map(l => l.trim().toLowerCase());
1138                    if (langArray.includes(currentLanguage)) {
1139                        filteredItems.push(item);
1140                    } else {
1141                        item.classList.add('lang-hidden');
1142                    }
1143                }
1144            });
1145
1146            // Sort by data-custom-date (descending). Items missing the attribute
1147            // sort to the end, preserving DOM order among themselves.
1148            filteredItems.sort((a, b) => {
1149                const aRaw = (a.getAttribute('data-custom-date') || '').trim();
1150                const bRaw = (b.getAttribute('data-custom-date') || '').trim();
1151                const aTime = aRaw ? Date.parse(aRaw) : NaN;
1152                const bTime = bRaw ? Date.parse(bRaw) : NaN;
1153                const aValid = !isNaN(aTime);
1154                const bValid = !isNaN(bTime);
1155                if (aValid && bValid) return bTime - aTime;
1156                if (aValid) return -1;
1157                if (bValid) return 1;
1158                return 0;
1159            });
1160
1161            // Reorder DOM so paginated slices render in sorted order.
1162            const sortParent = filteredItems[0] && filteredItems[0].parentNode;
1163            if (sortParent) {
1164                filteredItems.forEach(item => sortParent.appendChild(item));
1165            }
1166
1167
1168            // If no items or only one page, no pagination needed
1169            if (filteredItems.length === 0) {
1170                hideWebflowPagination();
1171                showNoResultsMessage();
1172                return;
1173            }
1174
1175            // Get current page from URL
1176            const urlParams = new URLSearchParams(window.location.search);
1177            let currentPage = parseInt(urlParams.get('page')) || 1;
1178            const totalPages = Math.ceil(filteredItems.length / ITEMS_PER_PAGE);
1179
1180            // Clamp to valid range
1181            if (currentPage > totalPages) currentPage = totalPages;
1182            if (currentPage < 1) currentPage = 1;
1183
1184            // Hide all filtered items first
1185            filteredItems.forEach(item => item.classList.add('lang-hidden'));
1186
1187            // Show only items for current page
1188            const startIndex = (currentPage - 1) * ITEMS_PER_PAGE;
1189            const endIndex = startIndex + ITEMS_PER_PAGE;
1190            filteredItems.slice(startIndex, endIndex).forEach(item => {
1191                item.classList.remove('lang-hidden');
1192            });
1193
1194            // Update pagination UI
1195            updatePaginationUI(currentPage, totalPages, filteredItems.length);
1196        };
1197
1198        const hideWebflowPagination = () => {
1199            const webflowPagination = document.querySelector('.w-pagination-wrapper');
1200            if (webflowPagination) {
1201                webflowPagination.style.display = 'none';
1202            }
1203        };
1204
1205        const showNoResultsMessage = () => {
1206            const container = document.querySelector('.w-dyn-list');
1207            if (container && !document.querySelector('.no-results-message')) {
1208                const msg = document.createElement('div');
1209                msg.className = 'no-results-message';
1210                msg.style.cssText = 'text-align: center; padding: 40px; color: #666;';
1211                msg.textContent = 'No articles available in this language yet.';
1212                container.appendChild(msg);
1213            }
1214        };
1215
1216        const updatePaginationUI = (currentPage, totalPages, totalItems) => {
1217            // Hide Webflow's pagination
1218            hideWebflowPagination();
1219
1220            // Remove existing custom pagination
1221            const existingPagination = document.querySelector('.custom-pagination');
1222            if (existingPagination) existingPagination.remove();
1223
1224            // Don't show pagination if only 1 page
1225            if (totalPages <= 1) return;
1226
1227            // Find the main collection list (not nav dropdowns)
1228            const collectionList = document.querySelector('.w-container .w-dyn-list, .mb_container .w-dyn-list');
1229            if (!collectionList) {
1230                console.log('Collection list not found for pagination');
1231                return;
1232            }
1233
1234            // Create pagination container
1235            const paginationDiv = document.createElement('div');
1236            paginationDiv.className = 'custom-pagination';
1237            paginationDiv.style.cssText = 'display: flex; justify-content: center; align-items: center; gap: 10px; margin-top: 30px; padding: 20px;';
1238
1239            // Previous button
1240            const prevBtn = document.createElement('a');
1241            prevBtn.className = 'pagination-btn pagination-prev';
1242            prevBtn.textContent = '← Previous';
1243            prevBtn.style.cssText = 'padding: 8px 16px; border: 1px solid #ccc; border-radius: 4px; text-decoration: none; color: #333; cursor: pointer;';
1244            if (currentPage === 1) {
1245                prevBtn.style.opacity = '0.5';
1246                prevBtn.style.pointerEvents = 'none';
1247            } else {
1248                prevBtn.href = updateUrlParam('page', currentPage - 1);
1249            }
1250
1251            // Page info
1252            const pageInfo = document.createElement('span');
1253            pageInfo.className = 'pagination-info';
1254            pageInfo.textContent = `${currentPage} / ${totalPages}`;
1255            pageInfo.style.cssText = 'padding: 8px 16px; font-weight: 500;';
1256
1257            // Next button
1258            const nextBtn = document.createElement('a');
1259            nextBtn.className = 'pagination-btn pagination-next';
1260            nextBtn.textContent = 'Next →';
1261            nextBtn.style.cssText = 'padding: 8px 16px; border: 1px solid #ccc; border-radius: 4px; text-decoration: none; color: #333; cursor: pointer;';
1262            if (currentPage === totalPages) {
1263                nextBtn.style.opacity = '0.5';
1264                nextBtn.style.pointerEvents = 'none';
1265            } else {
1266                nextBtn.href = updateUrlParam('page', currentPage + 1);
1267            }
1268
1269            paginationDiv.appendChild(prevBtn);
1270            paginationDiv.appendChild(pageInfo);
1271            paginationDiv.appendChild(nextBtn);
1272
1273            collectionList.parentNode.insertBefore(paginationDiv, collectionList.nextSibling);
1274        };
1275
1276        const updateUrlParam = (key, value) => {
1277            const url = new URL(window.location.href);
1278            url.searchParams.set(key, value);
1279            return url.toString();
1280        };
1281
1282        filterAndPaginateItems();
1283
1284        // Filter nav dropdown items by language and show only first N available
1285        const filterNavDropdownItems = () => {
1286            const MAX_VISIBLE_NAV_ITEMS = 2; // Number of items to show in dropdown
1287
1288            // Find all nav dropdowns with collection lists
1289            const navDropdowns = document.querySelectorAll('.mb_dropdown_b .w-dyn-list, nav .w-dyn-list');
1290
1291            navDropdowns.forEach(dropdownList => {
1292                const items = dropdownList.querySelectorAll('.w-dyn-item[data-available-languages]');
1293                if (items.length === 0) return;
1294
1295                let visibleCount = 0;
1296
1297                items.forEach(item => {
1298                    const availableLangs = item.getAttribute('data-available-languages');
1299                    let isAvailable;
1300
1301                    if (!availableLangs || availableLangs.trim() === '') {
1302                        // Empty = English only
1303                        isAvailable = currentLanguage === 'en';
1304                    } else {
1305                        const langArray = availableLangs.split(',').map(l => l.trim().toLowerCase());
1306                        isAvailable = langArray.includes(currentLanguage);
1307                    }
1308
1309                    // Show item if available and under the limit
1310                    if (isAvailable && visibleCount < MAX_VISIBLE_NAV_ITEMS) {
1311                        item.classList.remove('lang-hidden');
1312                        visibleCount++;
1313                    } else {
1314                        item.classList.add('lang-hidden');
1315                    }
1316                });
1317            });
1318        };
1319
1320        filterNavDropdownItems();
1321
1322        // Filter hero/featured sections - show first available item
1323        const filterHeroSections = () => {
1324            const MAX_VISIBLE_HERO_ITEMS = 1; // Usually just 1 featured item
1325
1326            // Find hero sections by parent class
1327            const heroSections = document.querySelectorAll('.mb_hero_b .w-dyn-list, [class*="hero"] .w-dyn-list, [class*="featured"] .w-dyn-list');
1328
1329            heroSections.forEach(heroList => {
1330                const items = heroList.querySelectorAll('.w-dyn-item[data-available-languages]');
1331                if (items.length === 0) return;
1332
1333                let visibleCount = 0;
1334
1335                items.forEach(item => {
1336                    const availableLangs = item.getAttribute('data-available-languages');
1337                    let isAvailable;
1338
1339                    if (!availableLangs || availableLangs.trim() === '') {
1340                        // Empty = English only
1341                        isAvailable = currentLanguage === 'en';
1342                    } else {
1343                        const langArray = availableLangs.split(',').map(l => l.trim().toLowerCase());
1344                        isAvailable = langArray.includes(currentLanguage);
1345                    }
1346
1347                    // Show item if available and under the limit
1348                    if (isAvailable && visibleCount < MAX_VISIBLE_HERO_ITEMS) {
1349                        item.classList.remove('lang-hidden');
1350                        visibleCount++;
1351                    } else {
1352                        item.classList.add('lang-hidden');
1353                    }
1354                });
1355
1356                // If no items available, optionally hide the whole section
1357                if (visibleCount === 0) {
1358                    heroList.closest('.mb_hero_b, [class*="hero"], [class*="featured"]')?.classList.add('lang-hidden');
1359                }
1360            });
1361        };
1362
1363        filterHeroSections();
1364
1365        // Filter content-page CMS lists whose lang/date attributes live on a child
1366        // (e.g. .mb_card_c) rather than on the .w-dyn-item wrapper.
1367        // Runs on non-listing pages (listings already handled by filterAndPaginateItems).
1368        const filterCardSections = () => {
1369            const listingPages = ['/resources', '/article-tags/', '/reports'];
1370            if (listingPages.some(p => currentUrlPath.startsWith(p) || currentUrlPath === p)) return;
1371
1372            const excludeSelector = '.mb_dropdown_b, nav, .mb_hero_b, [class*="hero"], [class*="featured"]';
1373            const carriers = document.querySelectorAll('.w-dyn-item [data-available-languages]');
1374            if (carriers.length === 0) return;
1375
1376            // Group entries by their parent .w-dyn-list
1377            const lists = new Map();
1378            carriers.forEach(carrier => {
1379                const item = carrier.closest('.w-dyn-item');
1380                const list = item && item.closest('.w-dyn-list');
1381                if (!list || !item) return;
1382                if (list.closest(excludeSelector)) return; // nav / hero handled elsewhere
1383                if (!lists.has(list)) lists.set(list, []);
1384                lists.get(list).push({ item, carrier });
1385            });
1386
1387            lists.forEach((entries, list) => {
1388                const filtered = [];
1389                entries.forEach(({ item, carrier }) => {
1390                    const langsAttr = (carrier.getAttribute('data-available-languages') || '').trim();
1391                    const dateStr   = (carrier.getAttribute('data-custom-date') || '').trim();
1392                    const dateOk    = dateStr && !isNaN(Date.parse(dateStr));
1393                    const langOk    = langsAttr === ''
1394                        ? currentLanguage === 'en'
1395                        : langsAttr.split(',').map(s => s.trim().toLowerCase()).includes(currentLanguage);
1396
1397                    if (langOk && dateOk) {
1398                        item.classList.remove('lang-hidden');
1399                        filtered.push({ item, carrier });
1400                    } else {
1401                        item.classList.add('lang-hidden');
1402                    }
1403                });
1404
1405                // Sort newest-first by data-custom-date
1406                filtered.sort((a, b) => Date.parse(b.carrier.getAttribute('data-custom-date'))
1407                                      - Date.parse(a.carrier.getAttribute('data-custom-date')));
1408
1409                // Cap each section at 3 visible items; hide the overflow
1410                const MAX_ITEMS_PER_SECTION = 3;
1411                const visible = filtered.slice(0, MAX_ITEMS_PER_SECTION);
1412                filtered.slice(MAX_ITEMS_PER_SECTION).forEach(({ item }) => item.classList.add('lang-hidden'));
1413
1414                // Reorder DOM so the visible top-N render in sorted order
1415                const parent = visible[0] && visible[0].item.parentNode;
1416                if (parent) visible.forEach(({ item }) => parent.appendChild(item));
1417
1418                // Hide the surrounding section if nothing matched
1419                if (visible.length === 0) {
1420                    const section = list.closest('section');
1421                    if (section) section.classList.add('lang-hidden');
1422                }
1423            });
1424        };
1425
1426        filterCardSections();
1427
1428        checkAndRedirect();
1429
1430        // Show banner if redirected from unavailable language
1431        const showRedirectBanner = () => {
1432            const urlParams = new URLSearchParams(window.location.search);
1433
1434            // Check URL param (staging) or cookie (production with Weglot)
1435            let redirectedFrom = urlParams.get('redirectedFrom');
1436
1437            // For production: check window.name (persists across subdomain navigation)
1438            console.log('[LangControl] showRedirectBanner - URL param:', redirectedFrom);
1439            console.log('[LangControl] showRedirectBanner - window.name:', window.name);
1440            console.log('[LangControl] showRedirectBanner - Current path:', currentUrlPath);
1441
1442            if (!redirectedFrom && window.name) {
1443                try {
1444                    const windowData = JSON.parse(window.name);
1445                    if (windowData.langRedirect) {
1446                        const redirectInfo = windowData.langRedirect;
1447                        console.log('[LangControl] Parsed window.name:', redirectInfo);
1448                        if (redirectInfo.path === currentUrlPath) {
1449                            console.log('[LangControl] Path matches, using window.name redirect info');
1450                            redirectedFrom = redirectInfo.from;
1451                            // Clear window.name
1452                            window.name = '';
1453                        }
1454                    }
1455                } catch (e) {
1456                    // window.name wasn't our JSON data, ignore
1457                    console.log('[LangControl] window.name not valid JSON (normal if no redirect)');
1458                }
1459            }
1460
1461            // Clean up URL immediately (staging)
1462            if (urlParams.get('redirectedFrom')) {
1463                const cleanUrl = new URL(window.location.href);
1464                cleanUrl.searchParams.delete('redirectedFrom');
1465                window.history.replaceState({}, '', cleanUrl.toString());
1466            }
1467
1468            // Check if we already showed banner for this redirect
1469            const bannerKey = 'langBannerShown_' + window.location.pathname;
1470            if (!redirectedFrom || sessionStorage.getItem(bannerKey)) return;
1471
1472            const banner = document.getElementById('lang-redirect-banner');
1473
1474            if (banner) {
1475                const langNames = {
1476                    'en': 'English',
1477                    'fr': 'French',
1478                    'de': 'German',
1479                    'ko': 'Korean',
1480                    'ja': 'Japanese',
1481                    'zh': 'Chinese'
1482                };
1483
1484                const fromName = langNames[redirectedFrom] || redirectedFrom.toUpperCase();
1485                const currentName = langNames[currentLanguage] || currentLanguage.toUpperCase();
1486                const textEl = banner.querySelector('.banner-text');
1487                if (textEl) {
1488                    textEl.textContent = `This article is not yet available in ${fromName}. You are viewing the ${currentName} version.`;
1489                }
1490
1491                banner.style.display = 'block';
1492                document.body.style.paddingTop = banner.offsetHeight + 'px';
1493
1494                // Mark banner as shown for this page
1495                sessionStorage.setItem(bannerKey, 'true');
1496            }
1497        };
1498
1499        // Close banner handler
1500        const closeBanner = document.querySelector('.banner-close');
1501        if (closeBanner) {
1502            closeBanner.addEventListener('click', function() {
1503                const banner = document.getElementById('lang-redirect-banner');
1504                if (banner) {
1505                    banner.style.display = 'none';
1506                    document.body.style.paddingTop = '';
1507                }
1508            });
1509        }
1510
1511        showRedirectBanner();
1512    });
1513})();
1514</script>
1514
1515</div></div><a href="#" id="contact_form" class="mb_button_secondary_nav w-button">Contact us</a></div><div class="w-embed"><style>
1516
1517  	/* center nav dropdown content */
1518
1519  	/* for desktop */
1520    @media (min-width: 992px) {
1521      .mb_dropdown_list_b {
1522        left: 50% !important;
1523        right: auto !important;
1524        transform: translateX(-50%);
1525      }
1526    }
1527
1528  	/* for tablet, mobile */
1529    @media (max-width: 991px) {
1530      .mb_dropdown_list_b {
1531        left: 0 !important;
1532        right: auto !important;
1533        transform: none !important;
1534      }
1535    }
1536  
1537</style></div></div></section></div><section class="mb_hero_e bg_lp-brands"><div class="mb_container mb_theme_showcase"><div class="mb_hero_e_grid"><div id="w-node-_5eadc9ca-cd95-0dc0-5fd2-f914aee3a147-0698f891" class="mb_hero_e_item mb_flex_left"><h3 class="mb_h3 mb_text_primary mb_text_left">FUEL &amp; CONVENIENCE</h3><h1 class="mb_h1_md mb_text_primary mb_text_left">Drive more fill-ups and in-store visits – with zero added cost or operational lift</h1><p class="mb_p mb_text_primary mb_text_left">Engage new loyalty members from day one, drive more fill-ups and pump-to-store visits – all layered on top of your existing program and channels. </p><div class="mb_button_wrapper"><a id="contact_form" href="#" class="mb_button_primary mb_button_full-width mb_button_sunshade w-button">Contact us</a><a data-wf--mb-button-secondary--variant="light" href="/monetize/loyaltyplay-old" class="mb_button_secondary contact_form mb_button_full-width mb_button_small w-button">Visit LoyaltyPlay</a></div></div><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/6ac0148b2c1ec455fae286b2_Hero-Lockup_Fuel%26CStore.avif" loading="lazy" sizes="(max-width: 669px) 100vw, 669px" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/6ac0148b2c1ec455fae286b2_Hero-Lockup_Fuel%26CStore-p-500.avif 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/6ac0148b2c1ec455fae286b2_Hero-Lockup_Fuel%26CStore.avif 669w" alt="" class="mb_hero_e_img"/></div></div></section><section class="mb_section mb_pad_md mb_flex_center mb_theme_light"><div class="w-layout-blockcontainer mb_container w-container"><div class="mb_h3_block"><h3 class="mb_h3 mb_text_block">trusted by</h3></div><div class="w-layout-blockcontainer mb_grid mb_grid_17-17-17-17-17-17 w-container"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/69fe31ec6766c689a1b8d4b7_logo_chevron_lg.png" loading="lazy" alt=""/><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/69fe31ec1a4012b3ef8e903c_logo_gomart_lg.png" loading="lazy" alt=""/><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/69fe31ec92d8feec14e36c56_logo_texaco_lg.png" loading="lazy" alt=""/><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/6a171edc2ff7f5b53d9e30b3_ExtraMile.avif" loading="lazy" alt=""/><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/6a171e34876668f21aa1b4fb_Delek.avif" loading="lazy" width="Auto" height="Auto" alt="" class="image-191"/></div></div></section><section class="mb_section mb_pad_md mb_theme_light"><div class="w-layout-blockcontainer mb_container mb_container_sm w-container"><h2 class="mb_h2 mb_text_primary mb_text_center">How Loyaltyplay works for fuel and convenience retailers</h2><div><p class="mb_p mb_text_primary mb_text_center">LoyaltyPlay is a mobile gaming reward hub that plugs into your existing loyalty program, giving customers more ways to earn rewards towards in-store purchases and fuel savings. Trusted by <strong>20+</strong> fuel and c-store retailers and reaching <strong>1B+</strong> impressions to c-store customers in 2025, LoyaltyPlay drives supplemental revenue while fully funding the cost of the rewards.</p><p class="mb_p mb_text_primary mb_text_center">By harnessing the power and popularity of mobile gaming, you’ll encourage additional brand interactions that lead to more frequent store visits.</p></div></div></section><section class="mb_section mb_pad_md mb_theme_dark mb_bg_grid-sunshade"><div class="w-layout-blockcontainer mb_container w-container"><h2 class="mb_h2 mb_text_primary mb_text_center">It’s time to get in the game</h2><div class="mb_grid mb_grid_33-33-33"><div class="mb_griditem_loyaltyplay"><p class="mb_p mb_text_primary mb_text_center mb_opacity-0">Up to</p>
1537<h3 class="mb_h3 mb_h3_loyaltyplay mb_text_gradient-sunshade mb_text_center">67%</h3><p class="mb_p-lg mb_text_primary mb_text_center">of U.S adults play mobile games weekly<sup class="mb_h3_sc">1</sup></p></div><div class="mb_griditem_loyaltyplay"><p class="mb_p mb_text_primary mb_text_center">Up to</p><h3 class="mb_h3 mb_h3_loyaltyplay mb_text_gradient-sunshade mb_text_center">44%</h3><p class="mb_p-lg mb_text_primary mb_text_center">faster return trips for customers who participated in mobile gameplay to earn fuel rewards<sup class="mb_h3_sc">2</sup></p></div><div class="mb_griditem_loyaltyplay"><p class="mb_p mb_text_primary mb_text_center">Up to</p><h3 class="mb_h3 mb_h3_loyaltyplay mb_text_gradient-sunshade mb_text_center">2.5x</h3><p class="mb_p-lg mb_text_primary mb_text_center">more frequent visits after first offer redemption<sup class="mb_h3_sc">2</sup></p></div></div><div class="mb_footnotes"><p class="mb_p mb_text_primary mb_text_center mb_text_secondary"><sup class="mb_p_sc">1</sup>Statista, 2025</p><p class="mb_p mb_text_primary mb_text_center mb_text_secondary"><sup class="mb_p_sc">2</sup>Performance data, 2025-2026</p></div></div></section><section class="mb_section mb_pad_md mb_theme_light"><div class="w-layout-blockcontainer mb_container w-container"><h2 class="mb_h2 mb_text_primary">How LoyaltyPlay drives value for fuel and c-stores</h2><div class="w-layout-blockcontainer mb_grid mb_grid_33-33-33 w-container"><div class="mb_card_e_orange"><div class="mb_card_badge_e_orange"><div class="mb_pc_a_number">01</div></div><div><p class="mb_p mb_text_primary mb_text_bold">Engage new members from day one</p><p class="mb_p mb_text_primary">Earn-without-purchase gives members a reason to come back in the first 30-60 days, before they&#x27;ve transacted enough to feel your program&#x27;s value and before you lose them.</p></div></div><div class="mb_card_e_orange"><div class="mb_card_badge_e_orange"><div class="mb_pc_a_number">02</div></div><div><p class="mb_p mb_text_primary mb_text_bold">Drive pump-to-store conversion</p><p class="mb_p mb_text_primary">Offer game-linked rewards at the right time to turn a fuel-up into an in-store visit that drives larger basket size – proven to drive up to 2.5x more frequent visits and 44% faster return trips.</p></div></div><div class="mb_card_e_orange"><div class="mb_card_badge_e_orange"><div class="mb_pc_a_number">03</div></div><div><p class="mb_p mb_text_primary mb_text_bold">Let customers earn &amp; stack</p><p class="mb_p mb_text_primary">Members rack up rewards so they hit redemption (and burn) in record time, with fuel retailers seeing up to 35x higher redemption rates from gameplay-earned rewards.</p></div></div></div></div></section><section class="mb_section mb_pad_md mb_theme_light"><div class="w-layout-blockcontainer mb_container w-container"><h2 class="mb_h2 mb_text_primary">Built for fuel and convenience retailers</h2><div class="w-layout-blockcontainer mb_grid mb_grid_50-50_b w-container"><div class="mb_griditem_b"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/69fcccef8cfeaf8f2c708d5b_icon_star_orange.png" loading="lazy" alt="" class="mb_griditem_b_img"/><div><p class="mb_p mb_text_primary mb_text_bold">Drive pump-to-store conversion</p><p class="mb_p mb_text_primary mb_margin_none">Get the fuel customers who never come inside off the forecourt and through the door with earned rewards tied to store items waiting for them at the backcourt.</p></div></div><div class="mb_griditem_b"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/69fcccef8cfeaf8f2c708d5b_icon_star_orange.png" loading="lazy" alt="" class="mb_griditem_b_img"/><div><p class="mb_p mb_text_primary mb_text_bold">Re-engage dormant loyalty members in the first 30-60 days</p><p class="mb_p mb_text_primary mb_margin_none">Earn-without-purchase mechanics give new and lapsed members a reason to engage before they&#x27;ve transacted enough to feel your program&#x27;s value – closing the drop-off window that kills most loyalty programs early.</p></div></div><div class="mb_griditem_b"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/69fcccef8cfeaf8f2c708d5b_icon_star_orange.png" loading="lazy" alt="" class="mb_griditem_b_img"/><div><p class="mb_p mb_text_primary mb_text_bold">Fully-funded loyalty rewards</p><p class="mb_p mb_text_primary mb_margin_none">Rewards are covered by game advertiser revenue so operators can promote LTOs and bundles at full margin with no additional lift or cost for your team.</p></div></div><div class="mb_griditem_b"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/69fcccef8cfeaf8f2c708d5b_icon_star_orange.png" loading="lazy" alt="" class="mb_griditem_b_img"/><div><p class="mb_p mb_text_primary mb_text_bold">Low lift by design</p><p class="mb_p mb_text_primary mb_margin_none">No extra headcount, no rebuilding what&#x27;s already working. LoyaltyPlay layers into your existing program without adding operational load to a team that&#x27;s already stretched thin.</p></div></div></div></div></section><section class="mb_section mb_pad_md mb_theme_dark"><div class="w-layout-blockcontainer mb_container w-container"><h2 class="mb_h2 mb_text_primary mb_text_center">Related reading &amp; resources</h2><div class="mb_grid mb_grid_33-33-33"><a href="https://business.mistplay.com/resources/gaming-revenue-opportunity-mobile-apps" class="mb_text_no-decor w-inline-block"><div class="mb_griditem_resource"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/6998a271e24bfdf754abcfa5_thumbnail_d.jpg" loading="lazy" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/6998a271e24bfdf754abcfa5_thumbnail_d-p-500.jpg 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/6998a271e24bfdf754abcfa5_thumbnail_d.jpg 730w" alt=""/><div><h6 class="mb_p mb_text_primary mb_text_center mb_text_bold">How mobile apps can capture untapped revenue potential</h6><p class="mb_p mb_p-sm mb_text_primary mb_text_center">In today’s mobile landscape, apps from every category compete for the same scarce resources: user attention and share of wallet.</p></div></div></a><a href="https://business.mistplay.com/resources/convenience-case-study-gomart" class="mb_text_no-decor w-inline-block"><div class="mb_griditem_resource"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/69c1a12d14254805f11de3ec_thumbnail_b.jpg" loading="lazy" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/69c1a12d14254805f11de3ec_thumbnail_b-p-500.jpg 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/69c1a12d14254805f11de3ec_thumbnail_b.jpg 730w" alt=""/><div><h6 class="mb_p mb_text_primary mb_text_center mb_text_bold">Fuelling engagement: Driving an 85% reward redemption rate for GoMart</h6><p class="mb_p mb_p-sm mb_text_primary mb_text_center">GoMart is a 100-year-old convenience store chain based in West Virginia, serving loyal customers across the region.</p></div></div></a><a href="https://business.mistplay.com/resources/restaurant-case-study-checkers-rallys" class="mb_text_no-decor w-inline-block"><div class="mb_griditem_resource"><img src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/69c1a122f1fd0d75e2c5ed5d_thumbnail_a.jpg" loading="lazy" sizes="100vw" srcset="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/69c1a122f1fd0d75e2c5ed5d_thumbnail_a-p-500.jpg 500w, https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/69c1a122f1fd0d75e2c5ed5d_thumbnail_a.jpg 730w" alt=""/><div><h6 class="mb_p mb_text_primary mb_text_center mb_text_bold">Turning lapsed diners into regulars: Driving 54% re-engagement for Checkers &amp; Rally’s</h6><p class="mb_p mb_p-sm mb_text_primary mb_text_center">Checkers &amp; Rally&#x27;s is a prominent national drive-thru burger chain known for its bold flavors and value-driven menu.</p></div></div></a></div><a href="/resources" class="mb_button_primary mb_button_full-width w-button">Explore more resources</a></div></section><section class="mb_section mb_section_cta mb_pad_cta mb_theme_light">
1537<div class="w-layout-blockcontainer mb_container mb_container_cta w-container"><h2 class="mb_h2 mb_text_primary mb_text_center">Ready to power up your loyalty program?</h2><a id="contact_form" href="#" class="mb_button_primary mb_button_full-width mb_button_sunshade w-button">Contact us</a></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" aria-current="page" class="mb_footer_item_b w--current">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" class="mb_footer_item_b">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="custom-script w-embed w-script"><!-- 
1537<script>
1538  const targetSubdomains = ['ja', 'zh'];
1539  const currentHostname = window.location.hostname;
1540  const hostnameParts = currentHostname.split('.');
1541
1542  const partnershipForm = document.querySelector('#partnership-modal');
1543  const partnershipFormEmbed = document.querySelector('#partnership-modal .modal-embed');
1544  const partnershipFormScript = document.querySelector('#partnership-modal .modal-embed script:last-child');
1545
1546  const currentSubdomain = hostnameParts.length > 1 ? hostnameParts[0] : null;
1547
1548  if (currentSubdomain && targetSubdomains.includes(currentSubdomain)) {
1549    console.log(`Current page is on subdomain: ${currentSubdomain}`);
1550    createForm(currentSubdomain);
1551  } else {
1552    console.log('Current page is not on a target subdomain.');
1553    createForm(null);
1554  }
1555
1556  function createForm(subdomain) {
1557    const formScript = document.createElement('script');
1558    let formScriptContent;
1559
1560    switch (subdomain) {
1561      case 'ja':
1562        formScriptContent = `
1563          hbspt.forms.create({
1564            region: "na1",
1565            portalId: "5886937",
1566            formId: "a9f65cd9-b1af-409b-9ced-44896f9a8dfb"
1567          });
1568        `;
1569        break;
1570      case 'zh':
1571        formScriptContent = `
1572          hbspt.forms.create({
1573            region: "na1",
1574            portalId: "5886937",
1575            formId: "1270c5c0-0c8b-4d7d-ad1d-f7116d4bde33"
1576          });
1577        `;
1578        break;
1579      default:
1580        formScriptContent = `
1581          hbspt.forms.create({
1582            region: "na1",
1583            portalId: "5886937",
1584            formId: "e1320b65-1016-4233-9487-eb7d561c86eb"
1585          });
1586        `;
1587    }
1588
1589    formScript.type = 'text/javascript';
1590    formScript.textContent = formScriptContent;
1591
1592    if (partnershipFormScript) {
1593      partnershipFormScript.parentNode.replaceChild(formScript, partnershipFormScript);
1594    }
1595  }
1596</script>
1596 -->
1597<!-- Debugging Page Language -->
1598<!-- 
1598<script>
1599var lang = document.documentElement.lang;
1600var el = document.querySelector('.output');
1601el.innerHTML = lang;
1602console.log('Page language' + lang);
1603
1604// If conditions
1605if(lang == 'fr'){
1606  // Your french code
1607} else {
1608  // fallback or default
1609}
1610</script>
vendor: 1 bytes, line 1610
1610
1611<script>
1612var onloadCallback = function() {
1613    grecaptcha.render('recaptcha-element', {
1614      'sitekey' : '6LdNlPIpAAAAAF02n0k-PRzHGH8otshsiN_xNeqq',
1615      'hl': 'en'
1616    });
1617};
1618</script>
1618 --></div><div class="w-embed"><style>
1619
1620	/* --- global fixes --- */
1621
1622  	/* --- fix nav code embed default styling */
1623  	/* .w-embed {width: 0px !important;} */
1624
1625	/* remove pseudo-elements genreated by Webflow */
1626  	.mb_grid:before, 
1627  	.mb_grid:after,
1628  	.mbr_grid:before, 
1629  	.mbr_grid:after,
1630  	.mb_container:before,
1631  	.mb_container:after {
1632    	display: none;
1633	}
1634  
1635	/* force button width to match it's child's width */
1636	.mb_button_primary,
1637	.mb_button_secondary,
1638	.mb_label_resource {
1639  		width: max-content;
1640	}
1641
1642	/* global opacity hide */
1643	.mb_opacity-0 {opacity: 0 !important;}
1644  
1645	/* fix resource card image sizes */
1646	.mb_card_resource_img {object-fit: cover !important;}
1647  
1648	/* override top padding on mobile */
1649	@media screen and (max-width: 479px) {
1650		.body {
1651			padding-top: 0px !important;
1652		}
1653	}
1654  
1655	/* stop link capitalization */
1656	.mb_p a {
1657		text-transform: none !important;
1658	}
1659
1660  	/* make event label width = content length */
1661  	.mb_label_event {width: max-content;}
1662  
1663  
1664  
1665	/* --- class settings --- */
1666  
1667	.mb_flex_col {flex-direction: column;}
1668	.mb_flex_col_reverse {flex-direction: column-reverse;}
1669	.mb_flex_left {align-items: flex-start;}
1670	.mb_flex_right {align-items: flex-end;}
1671	.mb_text_left {text-align: left;}
1672	.mb_text_center {text-align: center;}
1673	.mb_text_no-margin {margin: 0px !important;}
1674	.mb_text_no-decor {text-decoration: none !important;}
1675	.mb_no-wrap {white-space: nowrap !important;}
1676  	.mb_text_weight-400 {font-weight: 400 !important;}
1677  
1678  
1679  
1680  	/* --- themes --- */
1681  
1682  	/* light theme */
1683  	.mb_theme_light .mb_text_primary,
1684  	.mb_theme_light .mb_border_primary {
1685  		color: var(--comet-900) !important;
1686    	border-color: var(--comet-900) !important;
1687  	}
1688  	.mb_text_invert {color: var(--comet-100) !important;}
1689  	.mb_theme_light {background-color: #FFFFFF !important;}
1690	.mb_h3_block {background-color: var(--comet-900) !important;}
1691  	.mb_text_block {color: #FFFFFF !important;}
1692  
1693	/* blue theme */
1694  	.mb_theme_blue .mb_text_primary,
1695  	.mb_theme_blue .mb_border_primary {
1696  		color: var(--comet-100) !important;
1697    	border-color: var(--comet-100) !important;
1698  	}
1699  	.mb_theme_blue {background-color: var(--cobalt-500) !important;}
1700  
1701  	/* dark theme */
1702  	.mb_theme_dark .mb_text_primary,
1703  	.mb_theme_dark .mb_border_primary {
1704  		color: var(--comet-100) !important;
1705    	border-color: var(--comet-100) !important; 
1706  	}
1707  	.mb_theme_dark .mb_text_secondary {color: var(--comet-300) !important;}
1708	.mb_text_invert {color: var(--comet-900) !important;}
1709	.mb_theme_dark {background-color: var(--comet-900) !important;}
1710  
1711  	/* showcase theme */
1712  	.mb_theme_showcase .mb_text_primary,
1713  	.mb_theme_showcase .mb_border_primary {
1714  		color: var(--comet-100) !important;
1715    	border-color: var(--comet-100) !important; 
1716  	}
1717
1718
1719
1720  	/* --- anchor links ---*/
1721
1722  	/* desktop */
1723  	.mb_achor {position: relative;}
1724    .mb_achor::before {
1725        content: "";
1726        position: absolute;
1727        top: -174px !important;
1728        height: 174px !important;
1729        pointer-events: none;
1730    }
1731
1732    /* tablet */
1733    @media (max-width: 991px) {
1734    .mb_achor::before {
1735        top: -174px !important;
1736        height: 174px !important;
1737      }
1738    }
1739    
1740    /* mobile landscape */
1741    @media (max-width: 767px) {
1742    .mb_achor::before {
1743        top: -152px !important;
1744        height: 152px !important;
1745      }
1746    }
1747    
1748    /* mobile portrait */
1749    @media (max-width: 479px) {
1750    .mb_achor::before {
1751        top: -136px !important;
1752        height: 136px !important;
1753      }
1754    }
1755
1756
1757
1758  	/* --- components --- */
1759
1760  	/* mb product card a cobalt */
1761  	.mb_pc_a_cobalt:hover .mb_pc_a_badge_cobalt {background-color: var(--white_24) !important;}
1762  	.mb_pc_a_cobalt:hover .mb_h4 {color: var(--comet-100) !important;}
1763  	.mb_pc_a_cobalt:hover .mb_p {color: var(--comet-100) !important;}
1764
1765  	/* mb product card c orange */
1766  	.mb_pc_c_orange:hover .mb_pc_c_badge_orange {background-color: var(--white_24) !important;}
1767  	.mb_pc_c_orange:hover .mb_p {color: var(--comet-100) !important;}
1768  	.mb_pc_c_orange:hover .mb_p_sm {color: var(--comet-100) !important;}
1769  
1770</style></div><div class="w-embed w-script"><!-- Modal Container -->
1771<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;">
1772  <div style="background:#fff; padding:20px; border-radius:8px; max-width:600px; width:90%; position:relative; max-height:90vh; overflow-y:auto;">
1773    <span id="close-hubspot-modal" style="position:absolute; top:10px; right:15px; font-size:20px; cursor:pointer;">&times;</span>
1774    <div id="hubspot-form-container"></div>
1775  </div>
1776</div>
1777
1778<!-- Form IDs by Language -->
1779<!-- 
1780CONTACT FORMS:
1781EN: e1320b65-1016-4233-9487-eb7d561c86eb (B2B Expansion: 86927fc1-5a38-42db-bf66-9ba429b98ca8) Portal: 5886937
1782FR: 1e05aa18-a085-495b-8f99-f3f56b192468
1783DE: dd7738c1-a960-47f6-992e-4d871ba8a9a3
1784KO: ce9a500c-2f75-4aca-9b6f-2b852bcde175
1785ZH: 1270c5c0-0c8b-4d7d-ad1d-f7116d4bde33
1786JA: 40cdb013-6cf7-4dd8-a58d-3e8ccd2b5303
1787// CN: 4376557f-9027-4365-8e45-0a5d2d7330c8
1788
1789LOYALTYPLAY FORMS:
1790EN: 62abb8e9-25cf-4aa3-9755-521668cc5d49
1791FR: [ADD_FR_LOYALTYPLAY_FORM_ID]
1792DE: [ADD_DE_LOYALTYPLAY_FORM_ID]
1793KO: [ADD_KO_LOYALTYPLAY_FORM_ID]
1794ZH: [ADD_ZH_LOYALTYPLAY_FORM_ID]
1795JA: [ADD_JA_LOYALTYPLAY_FORM_ID]
1796
1797SUBSCRIBE FORMS:
1798EN: b8db2c74-c95b-41d2-a12f-a74eac42f51b
1799FR: [ADD_FR_SUBSCRIBE_FORM_ID]
1800DE: [ADD_DE_SUBSCRIBE_FORM_ID]
1801KO: [ADD_KO_SUBSCRIBE_FORM_ID]
1802ZH: [ADD_ZH_SUBSCRIBE_FORM_ID]
1803JA: [ADD_JA_SUBSCRIBE_FORM_ID]
1804-->
1805
1806<!-- Contact & Subscribe Form Popup -->
1807<script>
1808  document.addEventListener("DOMContentLoaded", function () {
1809    const modal = document.getElementById("hubspot-modal");
1810    const closeBtn = document.getElementById("close-hubspot-modal");
1811    const formContainer = document.getElementById("hubspot-form-container");
1812
1813    // Function to detect language from subdomain
1814    function detectLanguage() {
1815      const hostname = window.location.hostname;
1816      const subdomain = hostname.split('.')[0].toLowerCase();
1817      
1818      // Check if subdomain matches a language code
1819      const supportedLanguages = ['fr', 'de', 'ko', 'zh', 'ja'];
1820      return supportedLanguages.includes(subdomain) ? subdomain : 'en';
1821    }
1822
1823    // Function to check if current page is the LoyaltyPlay monetize page
1824    function isLoyaltyPlayPage() {
1825      // [previous] return window.location.pathname === '/monetize/loyaltyplay';
1826      return window.location.pathname === '/monetize/loyaltyplay' ||
1827      window.location.pathname === '/monetize/connected-rewards';
1828    }
1829
1830    // Get current language
1831    const currentLanguage = detectLanguage();
1832
1833    // Contact form IDs by language
1834    const contactFormIds = {
1835      en: "8bc47184-0b54-4a64-96c2-ae751f1d3125", // 8bc47184-0b54-4a64-96c2-ae751f1d3125
1836      fr: "8bc47184-0b54-4a64-96c2-ae751f1d3125", // old
1837      de: "8bc47184-0b54-4a64-96c2-ae751f1d3125", // old
1838      ko: "9d81b8dc-8397-45d0-8998-1338d50c9858",
1839      zh: "4376557f-9027-4365-8e45-0a5d2d7330c8",
1840      ja: "40cdb013-6cf7-4dd8-a58d-3e8ccd2b5303"
1841    };
1842
1843    // LoyaltyPlay form IDs by language
1844    const loyaltyPlayFormIds = {
1845      en: "8bc47184-0b54-4a64-96c2-ae751f1d3125",
1846      fr: "9f6482e6-6c16-432d-9bba-a815cc2f4c05", // Replace with actual FR LoyaltyPlay form ID
1847      de: "84452965-c749-4fc1-aa6c-92fefec6599c", // Replace with actual DE LoyaltyPlay form ID
1848      ko: "8186b87e-a2c3-450f-a2a6-0ed54285b9d1", // Replace with actual KO LoyaltyPlay form ID
1849      zh: "59457347-8bae-4d2d-86b2-7f59444f966e", // Replace with actual ZH LoyaltyPlay form ID
1850      ja: "cc2211e9-2fb4-4a72-87bc-a449a583d24f"  // Replace with actual JA LoyaltyPlay form ID
1851    };
1852
1853    // Subscribe form IDs by language
1854    const subscribeFormIds = {
1855      en: "b8db2c74-c95b-41d2-a12f-a74eac42f51b",
1856      fr: "[ADD_FR_SUBSCRIBE_FORM_ID]", // Replace with actual FR subscribe form ID
1857      de: "[ADD_DE_SUBSCRIBE_FORM_ID]", // Replace with actual DE subscribe form ID
1858      ko: "[ADD_KO_SUBSCRIBE_FORM_ID]", // Replace with actual KO subscribe form ID
1859      zh: "[ADD_ZH_SUBSCRIBE_FORM_ID]", // Replace with actual ZH subscribe form ID
1860      ja: "[ADD_JA_SUBSCRIBE_FORM_ID]"  // Replace with actual JA subscribe form ID
1861    };
1862
1863    // Form configurations by language and page type
1864    const formConfig = {
1865      contact_form: isLoyaltyPlayPage() 
1866        ? loyaltyPlayFormIds[currentLanguage] 
1867        : contactFormIds[currentLanguage],
1868      subscribe_form: subscribeFormIds[currentLanguage]
1869    };
1870
1871    let currentFormId = null;
1872
1873    function openHubspotForm(formId) {
1874      // Check if form ID is placeholder and show warning
1875      if (formId && formId.startsWith('[ADD_')) {
1876        console.warn(`Form ID for ${currentLanguage} language not configured: ${formId}`);
1877        console.warn('Falling back to English form');
1878        
1879        // Fallback to English version
1880        if (isLoyaltyPlayPage()) {
1881          formId = loyaltyPlayFormIds.en;
1882        } else {
1883          formId = formConfig.contact_form.includes('LOYALTYPLAY') 
1884            ? loyaltyPlayFormIds.en 
1885            : contactFormIds.en;
1886        }
1887      }
1888
1889      modal.style.display = "flex";
1890
1891      if (currentFormId !== formId) {
1892        currentFormId = formId;
1893        formContainer.innerHTML = ""; // Clear old form
1894
1895        function createForm() {
1896          hbspt.forms.create({
1897            portalId: "5886937",
1898            formId: formId,
1899            region: "na1",
1900            target: "#hubspot-form-container"
1901          });
1902        }
1903
1904        if (window.hbspt) {
1905          createForm();
1906        } else {
1907          const script = document.createElement("script");
1908          script.src = "//js.hsforms.net/forms/embed/v2.js";
1909          script.onload = createForm;
1910          document.body.appendChild(script);
1911        }
1912      }
1913    }
1914
1915    // Select all elements with id=contact_form and id=subscribe_form
1916    const contactButtons = document.querySelectorAll('[id="contact_form"]');
1917    const subscribeButtons = document.querySelectorAll('[id="subscribe_form"]');
1918
1919    contactButtons.forEach(btn => {
1920      btn.addEventListener("click", () => openHubspotForm(formConfig.contact_form));
1921    });
1922
1923    subscribeButtons.forEach(btn => {
1924      btn.addEventListener("click", () => openHubspotForm(formConfig.subscribe_form));
1925    });
1926
1927    // External trigger fallback
1928    const emulateBtn = document.getElementById("emulate_contact_click");
1929    if (emulateBtn) {
1930      emulateBtn.addEventListener("click", () => openHubspotForm(formConfig.contact_form));
1931    }
1932
1933    // Modal close handlers
1934    closeBtn.addEventListener("click", () => {
1935      modal.style.display = "none";
1936    });
1937
1938    window.addEventListener("click", (e) => {
1939      if (e.target === modal) {
1940        modal.style.display = "none";
1941      }
1942    });
1943
1944    // Debug logging
1945    console.log("=== HubSpot Form Configuration Debug ===");
1946    console.log("Detected language:", currentLanguage);
1947    console.log("Current page:", window.location.pathname);
1948    console.log("Is LoyaltyPlay page:", isLoyaltyPlayPage());
1949    console.log("Contact form ID:", formConfig.contact_form);
1950    console.log("Subscribe form ID:", formConfig.subscribe_form);
1951    console.log("Available contact forms:", contactFormIds);
1952    console.log("Available LoyaltyPlay forms:", loyaltyPlayFormIds);
1953    console.log("Available subscribe forms:", subscribeFormIds);
1954  });
1955</script>
1955</div>
1955<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>
1955<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>
1955<script src="https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/js/webflow.schunk.82a066c38b528435.js" type="text/javascript" integrity="sha384-YFg50APNpGQG2TXQ9t5g9u3yN4vH165ox/6pKrVXmkzSUuHeVDeVTfn47fl4cRxp" crossorigin="anonymous"></script>
1955<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>
1955<!-- Start of HubSpot Embed Code -->
1956<!-- 
1956<script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/5886937.js"></script>
1956 -->
1957<!-- End of HubSpot Embed Code -->
1958
1959<!-- EN language switcher fix (Hosoo Media 2026-06-23) START -->
1960<!-- 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. -->
1961<script>
1962(function () {
1963  document.addEventListener("click", function (e) {
1964    var a = e.target.closest && e.target.closest("a[data-lang='en']");
1965    if (!a) return;
1966    if (typeof Weglot !== "undefined" && Weglot.switchTo) {
1967      e.preventDefault();
1968      e.stopPropagation();
1969      Weglot.switchTo("en");
1970    }
1971  }, true);
1972})();
1973</script>
1973
1974<!-- EN language switcher fix (Hosoo Media 2026-06-23) END -->
1975
1976<!-- I9 image alt (Hosoo Media 2026-06-26) START -->
1977<!-- Page-scoped (leniu-games-i9-inferno-nine only). Sets alt on hero banner + studio infographic. Pure ASCII. Rollback: delete this block. -->
1978<script>
1979(function(){
1980  if (location.pathname.indexOf("leniu-games-i9-inferno-nine") < 0) return;
1981  var ko = location.hostname.indexOf("ko.") === 0;
1982  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";
1983  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";
1984  function setAlts(){
1985    var imgs = document.getElementsByTagName("img");
1986    for (var i=0; i<imgs.length; i++){
1987      var s = imgs[i].getAttribute("src") || "";
1988      if (s.indexOf("CaseStudy_LeniuGames_Blog-Banner") > -1) { if (!imgs[i].getAttribute("alt")) imgs[i].setAttribute("alt", HERO); }
1989      else if (s.indexOf("Studio-Info-Leniu") > -1) { if (!imgs[i].getAttribute("alt")) imgs[i].setAttribute("alt", INFO); }
1990    }
1991  }
1992  setAlts();
1993  setTimeout(setAlts,400); setTimeout(setAlts,1200); setTimeout(setAlts,2500);
1994})();
1995</script>
1995
1996<!-- I9 image alt END -->
1997
1998<!-- I9 content inject (Hosoo Media 2026-06-26) START -->
1999<script>function D(s){return decodeURIComponent(escape(atob(s)))}
2000(function(){
2001if (location.hostname.indexOf("ko.") !== 0) return;
2002if (location.pathname.indexOf("leniu-games-i9-inferno-nine") < 0) return;
2003function run(){
2004var rich = document.querySelector(".article-richtext");
2005if (!rich) return false;
2006var kids = rich.children;
2007function find(p){ for (var i=0;i<kids.length;i++){ if (p(kids[i])) return kids[i]; } return null; }
2008function has(n,s){ return (n.innerText||"").indexOf(s) > -1; }
2009var companyP = find(function(n){ return n.tagName==="P" && has(n,D("6rSR7KCA7Jqw")); });
2010var solIntroP = find(function(n){ return n.tagName==="P" && has(n,"Performance Index"); });
2011var solOl = find(function(n){ return (n.tagName==="OL"||n.tagName==="UL") && has(n,D("67KE65SUIO2AmOyKpO2KuA==")); });
2012var resultUl = find(function(n){ return (n.tagName==="UL"||n.tagName==="OL") && has(n,D("RDMwIFJPQVMg66qp7ZGc")) && has(n,D("RDEg66as7YWQ7IWY")); });
2013var testH2 = find(function(n){ return n.tagName==="H2" && (n.innerText||"").trim().indexOf(D("7LaU7LKc7IKs"))===0; });
2014if (!companyP || !solOl) return false;
2015if ((companyP.innerText||"").indexOf(D("7J6Q66as66W8IOyeoeydgA==")) < 0) return false;
2016if ((solOl.innerText||"").indexOf(D("7Lap7ISx64+EIOuGkuydgCDqsozsnbTrqLgg7Luk666k64uI7Yuw")) < 0) return false;
2017if (!document.getElementById("i9-inject-style")){
2018var st = document.createElement("style");
2019st.id = "i9-inject-style";
2020st.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;}";
2021document.head.appendChild(st);
2022}
2023if (!rich.querySelector("[data-i9-lead]")){
2024var aeo = document.createElement("div");
2025aeo.setAttribute("data-i9-aeo","1");
2026aeo.style.cssText = "border-left:4px solid #4731D3;background:#f4f3ff;padding:14px 18px;margin:0 0 22px;border-radius:6px;";
2027aeo.innerHTML = D("7Jik7ZSI7JuU65OcIE1NT1JQRyAnSTk6IOyduO2OmOultOuFuCDrgpjsnbgoTGVuaXUgR2FtZXMpJ+ydgCBNaXN0cGxheeydmCBBSSDquLDrsJggSUFQIHRST0FTIOy6oO2OmOyduOqzvCDqs6DqtIDsl6wg7ZWc6rWtIOqyjOydtOuouCDsu6TrrqTri4jti7Drpbwg7Ya17ZW0LCDtlZzqta0g7Lac7IucIDMw7J28IOunjOyXkCDshpDsnbXrtoTquLDsoJAoQkVQKeydhCDrj4ztjIztlZjqs6AgRDMwIFJPQVMg66qp7ZGcIDIuNeuwsCDrsI8gRDkwIFJPQVMg66qp7ZGcIDMuNeuwsOulvCDri6zshLHtlojsirXri4jri6Qu");
2028companyP.parentNode.insertBefore(aeo, companyP);
2029var lead = document.createElement("p");
2030lead.setAttribute("data-i9-lead","1");
2031lead.innerHTML = D("7KSR6rWtIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lmxlbml1LmNvbS9hYm91dCIgdGFyZ2V0PSJfYmxhbmsiPkxlbml1IEdhbWVzPC9hPuydmCDsmKTtlIjsm5Trk5wgTU1PUlBHICdJOTog7J247Y6Y66W064W4IOuCmOyduCfsnYAg7KCEIOyEuOqzhOyXkOyEnCDqsIDsnqUg6rK97J+B7J20IOy5mOyXtO2VnCDtlZzqta0gTU1PUlBHIOyLnOyepeyXkCDri7nri7ntnogg64+E7KCE7J6l7J2EIOuCtOuwgOyXiOyKteuLiOuLpC4g6re466as6rOgIOq3uCDqsrDqs7zripQg7ISx6rO17KCB7J207JeI7Iq164uI64ukLiDstpzsi5wg64uoIDMw7J28IOunjOyXkCDshpDsnbXrtoTquLDsoJAoQkVQKeydhCDrj4ztjIztlZwg642wIOydtOyWtCwgPHN0cm9uZz5EMzAgUk9BUyDrqqntkZzsnZggMi4167CwLCBEOTAgUk9BUyDrqqntkZzsnZggMy4167CwIOuLrOyEsTwvc3Ryb25nPuydtOudvOuKlCDtgbAg7ISx6rO866W8IOqxsOuRkOyXiOyKteuLiOuLpC4g7J2064qUIE1pc3RwbGF56rCAIOuztOycoO2VnCDsp4TshLEg7ZWc6rWtIOqyjOydtOuouCDsu6TrrqTri4jti7Dsl5AgQUkg6riw67CYIHRST0FTIOy6oO2OmOyduOydhCDrjZTtlbTshJwg66eM65OgIOqysOqzvOyYgOuKlOuNsOyalC4=");
2032companyP.parentNode.insertBefore(lead, companyP);
2033}
2034if (solIntroP && !rich.querySelector("[data-i9-nm]")){
2035var nm = document.createElement("p");
2036nm.setAttribute("data-i9-nm","1");
2037nm.innerHTML = D("7Iuk7KCc66GcIHRST0FTIOyghOueteydgCA8YSBocmVmPSJodHRwczovL2tvLmJ1c2luZXNzLm1pc3RwbGF5LmNvbS9yZXNvdXJjZXMvbmV0bWFyYmxlLXNldmVuLWtuaWdodHMtcmViaXJ0aCI+64S366eI67iUICfshLjruJDrgpjsnbTsuKAg66as67KE7IqkJ+ydmCDquIDroZzrsowgUlBHIFVBIOyCrOuhgDwvYT7sl5DshJzrj4Qg6rOg6rCA7LmYIFJQRyDsnKDsoIAg7ZmV67O066GcIOydtOyWtOyhjOyKteuLiOuLpC4=");
2038solIntroP.parentNode.insertBefore(nm, solIntroP.nextSibling);
2039}
2040if (solOl && !solOl.querySelector("[data-i9-h33]")){
2041solOl.setAttribute("data-i9-ol","1");
2042var li1 = solOl.children[0];
2043if (li1 && li1.innerHTML.indexOf(D("7ZSM66CI7J20IO2DgOyehCDrpqzsm4zrk5wg66qo6424KFBsYXl0aW1lIE1vZGVsKQ==")) > -1 && li1.innerHTML.indexOf("data-i9-loyalty") < 0){
2044li1.innerHTML = li1.innerHTML.replace(D("7ZSM66CI7J20IO2DgOyehCDrpqzsm4zrk5wg66qo6424KFBsYXl0aW1lIE1vZGVsKQ=="), D("PGEgaHJlZj0iaHR0cHM6Ly9rby5idXNpbmVzcy5taXN0cGxheS5jb20vYWR2ZXJ0aXNlcnMvbG95YWx0eS1wcm9ncmFtIj7tlIzroIjsnbQg7YOA7J6EIOumrOybjOuTnCDrqqjrjbgoUGxheXRpbWUgTW9kZWwpPC9hPg=="));
2045}
2046var li3 = document.createElement("li");
2047li3.setAttribute("data-i9-h33","1");
2048li3.innerHTML = D("PHN0cm9uZz4zLiDrjbDsnbTthLAg6riw67CYIOyatOyYgeqzvCDruaDrpbgg7LWc7KCB7ZmU66GcIOuqqe2RnCDsp4DtkZzrpbwg7KeA7Lyc64K064ukPC9zdHJvbmc+IE1pc3RwbGF5IOyghOuLtCDtjIDsnYAg7ISx6rO8IOuNsOydtO2EsOulvCDsi6Tsi5zqsITsnLzroZwg66m067CA7Z6IIOuqqOuLiO2EsOunge2VmOqzoCDsuqDtjpjsnbjsnYQg7Iug7IaN7ZWY6rKMIOy1nOygge2ZlO2VqOycvOuhnOyNqCDsp4TsnoXsnqXrsr3snbQg64aS7J2AIOq1reuCtCDsi5zsnqUg7ZmY6rK97JeQ7ISc64+EIOy6oO2OmOyduCDrqqntkZwg7KeA7ZGc66W8IO2ZleyLpO2VmOqyjCDri6zshLHtlbQg64OI7Iq164uI64ukLg==");
2049solOl.appendChild(li3);
2050var lis = solOl.children;
2051for (var x=0; x<lis.length; x++){
2052var st = lis[x].querySelector("strong");
2053if (st && st.parentNode === lis[x]){
2054var h3 = document.createElement("h3");
2055h3.innerHTML = st.innerHTML;
2056st.parentNode.replaceChild(h3, st);
2057}
2058}
2059}
2060if (resultUl && !rich.querySelector("[data-i9-resnote]")){
2061var rn = document.createElement("p");
2062rn.setAttribute("data-i9-resnote","1");
2063rn.textContent = D("66as7JuM65OcIOyxhOuEkOydhCDthrXtlbQg7Jyg7J6F65CcIOycoOyggOqwgCDquLDsobQgQ1BFIOyxhOuEkCDtj4nqt6Drs7Tri6Qg642UIOyYpOuem
2063CDsnpTsobTtlojri6TripQg7KCQ7J2AIOyxhOuEkOydmCDqsIDsuZjrpbwg64uo7IicIOuLqOqwgOqwgCDslYTri4wg67mE7JqpIO2ajOyImOyZgCDtmqjsnKjshLEg6rSA7KCQ7JeQ7IScIOuwlOudvOu0kOyVvCDtlajsnYQg67O07Jes7KSN64uI64ukLg==");
2064resultUl.parentNode.insertBefore(rn, resultUl.nextSibling);
2065}
2066if (testH2){
2067var s = testH2.querySelector("strong") || testH2;
2068if (s.textContent.trim() === D("7LaU7LKc7IKs")) s.textContent = D("6rOg6rCd7IKsIO2VnOuniOuUlA==");
2069}
2070var tocs = document.querySelectorAll("a[href^='#']");
2071for (var t=0;t<tocs.length;t++){ if (tocs[t].textContent.trim() === D("7LaU7LKc7IKs")) tocs[t].textContent = D("6rOg6rCd7IKsIO2VnOuniOuUlA=="); }
2072var sensorFn = find(function(n){ return n.tagName==="P" && has(n,D("U2Vuc29yIFRvd2VyLCDrjIDtlZzrr7zqta0g642w7J207YSw")); });
2073if (sensorFn) sensorFn.style.display = "none";
2074return !!rich.querySelector("[data-i9-lead]") && !!solOl.querySelector("[data-i9-h33]");
2075}
2076var tries = 0;
2077(function loop(){ tries++; if (run()) return; if (tries < 40) setTimeout(loop, 300); })();
2078})();</script>
2078
2079<!-- I9 content inject END -->
2080
2081<!-- Netmarble AI summary box (Hosoo Media 2026-06-26) START -->
2082<!-- 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. -->
2083<script>
2084(function(){
2085  if (location.hostname.indexOf("ko.") !== 0) return;
2086  if (location.pathname.indexOf("netmarble-seven-knights-rebirth") < 0) return;
2087  function run(){
2088    var rich = document.querySelector(".article-richtext");
2089    if (!rich || !rich.firstElementChild) return false;
2090    if (rich.querySelector("[data-nm-aeo]")) return true;
2091    if (!document.getElementById("nm-aeo-style")){
2092      var st = document.createElement("style");
2093      st.id = "nm-aeo-style";
2094      st.textContent = "[data-nm-aeo]{word-break:keep-all;overflow-wrap:break-word;}";
2095      document.head.appendChild(st);
2096    }
2097    var box = document.createElement("div");
2098    box.setAttribute("data-nm-aeo","1");
2099    box.style.cssText = "border-left:4px solid #4731D3;background:#f4f3ff;padding:14px 18px;margin:0 0 22px;border-radius:6px;";
2100    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.";
2101    rich.insertBefore(box, rich.firstElementChild);
2102    return true;
2103  }
2104  var tries = 0;
2105  (function loop(){ tries++; if (run()) return; if (tries < 40) setTimeout(loop, 300); })();
2106})();
2107</script>
2107
2108<!-- Netmarble AI summary box END -->
2109
2110<!-- 37Games Ant Legion content inject (Hosoo Media 2026-07-03) START -->
2111<script>function D(s){return decodeURIComponent(escape(atob(s)))}
2112(function () {
2113try {
2114if (location.hostname.indexOf('ko.business.mistplay.com') === -1) return;
2115if (location.pathname.indexOf('37games-ant-legion') === -1) return;
2116var GATE = 'data-ant37-v1';
2117var tries = 0;
2118var MAX_TRIES = 80; // 80 * 250ms = 20s
2119var timer = setInterval(function () {
2120tries++;
2121if (tries > MAX_TRIES) { clearInterval(timer); return; }
2122var root = document.querySelector('.article-richtext');
2123if (!root) return;
2124if (root.getAttribute(GATE) === 'done') { clearInterval(timer); return; }
2125var ps = Array.prototype.slice.call(root.querySelectorAll('p'));
2126var findP = function (needle) {
2127for (var i = 0; i < ps.length; i++) {
2128if (ps[i].textContent.indexOf(needle) !== -1) return ps[i];
2129}
2130return null;
2131};
2132var findEM = function (needle) {
2133var ems = root.querySelectorAll('em');
2134for (var i = 0; i < ems.length; i++) {
2135if (ems[i].textContent.indexOf(needle) !== -1) return ems[i];
2136}
2137return null;
2138};
2139var gP3 = findP(D("7KCE6561IFNMRyDsnqXrpbTripQ="));
2140var gP5 = findP(D("7ZSM66CI7J20IO2DgOyehCDrpqzsm4zrk5wg66qo64247J2EIOuwlO2DleycvOuhnA=="));
2141var gResultsOld = findP(D("7KCE7LK0IOqysOygnCDsnKDsoIDsnZggMjAlIOydtOyDgeydhCDssKjsp4DtlojsnLzrqbA="));
2142if (!gP3 || !gP5 || !gResultsOld) return; // not settled yet
2143var h3Style = 'font-size:20px;font-weight:700;color:#1C2E4A;margin-top:1.75em;margin-bottom:0.4em;';
2144if (!document.querySelector('[data-ant37-aeo]')) {
2145var box = document.createElement('div');
2146box.setAttribute('data-ant37-aeo', '1');
2147box.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;';
2148box.textContent = D("6riA66Gc67KMIOuqqOuwlOydvCDqsozsnoQg7Y2867iU66as7IWUIDM3R2FtZXPsnZgg7KCE6561IFNMRyAn6rCc66+4IOq1sOuLqChBbnQgTGVnaW9uOiBGb3IgdGhlIFN3YXJtKSfsnYAgTWlzdHBsYXnsnZggQUkg6riw67CYIElBUCB0Uk9BUyDsuqDtjpjsnbjqs7wgMTDso7zrhYQg6riw64WQIO2UhOuhnOuqqOyFmOydhCDsnKDquLDsoIHsnLzroZwg7Zmc7Jqp7ZWY7JesLCDssqDsoIDtlZjqsowg7KCc7ZWc65CcIOyYiOyCsCDrspTsnIQg64K07JeQ7IScIOyghOyblCDrjIDruYQoTW9NKSDshKTsuZgg7IiYIDIwMCUg7Kad6rCA66W8IOq4sOuhne2VmOqzoCDtg4Ag66as7JuM65OcIOyxhOuEkCDrjIDruYQgRDMwIFJPQVPrpbwgMzAlIOuBjOyWtOyYrOumrOupsCDtlZzqta0g7Iuc7J6lIOyViOywqeyXkCDshLHqs7XtlojsirXri4jri6Qu");
2149root.insertBefore(box, root.firstElementChild);
2150}
2151var p1 = findP(D("QW50IExlZ2lvbjogRm9yIFRoZSBTd2FybeydgCDtirntnogg64iI7JeQIOudhOuKlA=="));
2152if (p1) {
2153p1.textContent = D("MjAyMuuFhCDquIDroZzrsowg7Lac7IucIOydtO2bhCDsoIQg7IS46rOE7KCB7Jy866GcIDMsNDAw66eMIOuLpOyatOuhnOuTnOulvCDrj4ztjIztlZwgJ+qwnOuvuCDqtbDri6gn7J2AIOqwnOuvuCDsvZzroZzri4jrpbwg7KeA7ZyY7ZWY6rOgIOyekOybkOydhCDsiJjsp5HtlZjrqbAg7KeA7ZWYIOyZleq1reydhCDtgqTsm4zrgpjqsIDripQg64+F7LC97KCB7J24IOupgO2LsO2UjOugiOydtOyWtCDsoITrnrUg6rKM7J6E7J24642w7JqULiDqta3rgrQg7Lac7IucIOydtO2bhCDrjIDtlZzrr7zqta0g6rWs6riAIO2UjOugiOydtCDsiqTthqDslrTsl5DshJwg7KeA7IaN7KCB7Jy866GcIOustOujjCDsoITrnrUg6rKM7J6EIOyDgeychCAxMOychOq2jCDrgrTsl5Ag7J2066aE7J2EIOyYrOumrOupsCDtg4Ttg4TtlZwg7Z2l7ZaJ66Cl7J2EIOyeheymne2VtCDsmZTsirXri4jri6Qu");
2154}
2155var p3 = findP(D("7KCE6561IFNMRyDsnqXrpbTripQ="));
2156if (p3 && (!p3.previousElementSibling || p3.previousElementSibling.tagName !== 'H3')) {
2157var h3a = document.createElement('h3');
2158h3a.style.cssText = h3Style;
2159h3a.textContent = D("7KCV6rWQ7ZWcIOyekOybkCDsg53tg5zqs4Q=");
2160p3.parentNode.insertBefore(h3a, p3);
2161}
2162var p4 = findP(D("7J247JWxIOqysOygnChJQVApIOq4sOuwmOydmCDruYTspojri4jsiqQg66qo64247J2EIO2VteyLrCDrj5nroKU="));
2163if (p4 && (!p4.previousElementSibling || p4.previousElementSibling.tagName !== 'H3')) {
2164var h3b = document.createElement('h3');
2165h3b.style.cssText = h3Style;
2166h3b.textContent = D("6rOg6rCA7LmYIOycoOyggA==");
2167p4.parentNode.insertBefore(h3b, p4);
2168}
2169var p5 = findP(D("7ZSM66CI7J20IO2DgOyehCDrpqzsm4zrk5wg66qo64247J2EIOuwlO2DleycvOuhnA=="));
2170if (p5 && !document.querySelector('[data-ant37-sol-h3-1]')) {
2171var h3c = document.createElement('h3');
2172h3c.setAttribute('data-ant37-sol-h3-1', '1');
2173h3c.style.cssText = h3Style;
2174h3c.textContent = D("QUkgdFJPQVMg7Lqg7Y6Y7J247J2EIO2Gte2VnCDqs7zquIgg7J6g7J6s66ClIOq3ueuMgO2ZlA==");
2175var newP5b = document.createElement('p');
2176newP5b.textContent = D("TWlzdHBsYXnsnZggSGVsaW9zIEFJIOyXlOynhCDquLDrsJggSUFQIHRST0FTIOy6oO2OmOyduOydgCAn6rCc66+4IOq1sOuLqCcg64K07JeQ7IScIOyLpOygnCDqsrDsoJwg6rCA64ql7ISx7J20IOuGkuydgCDsnKDsoIDrpbwg7KCV67CA7ZWY6rKMIO2DgOqyn+2Mhe2WiOyKteuLiOuLpC4g6re4IOqysOqzvCDqs7zquIgg6rCA64ql7ISx7J20IOuCruydgCDsnKDsoIDsl5Dqsowg7J
2176iI7IKw7J20IOu2hOyCsOuQmOuKlCDruYTtmqjsnKjsnYQg7KSE7J206rOgLCBVQSDsmIjsgrAg7Zqo7Jyo7J2EIOuGkuydvCDsiJgg7J6I7JeI7Iq164uI64ukLg==");
2177if (p5.nextSibling) {
2178p5.parentNode.insertBefore(h3c, p5.nextSibling);
2179} else {
2180p5.parentNode.appendChild(h3c);
2181}
2182h3c.parentNode.insertBefore(newP5b, h3c.nextSibling);
2183}
2184var p6 = findP(D("TWlzdHBsYXnsnZggVUEg7KCE66y46rCA65Ok66GcIOq1rOyEseuQnCDsoITri7Qg7YG065287J207Ja47Yq4IO2MgOydgA=="));
2185if (p6 && (!p6.previousElementSibling || p6.previousElementSibling.tagName !== 'H3')) {
2186var h3d = document.createElement('h3');
2187h3d.style.cssText = h3Style;
2188h3d.textContent = D("TGl2ZU9wc+yZgCAxMOyjvOuFhCDquLDrhZAg7ZSE66Gc66qo7IWY7J2EIO2ZnOyaqe2VnCDrtoDsiqTtirgg7Zqo6rO8IOuwjyDstIjquLAg67O866WoIO2ZleuztA==");
2189p6.parentNode.insertBefore(h3d, p6);
2190}
2191var resultsOld = findP(D("7KCE7LK0IOqysOygnCDsnKDsoIDsnZggMjAlIOydtOyDgeydhCDssKjsp4DtlojsnLzrqbA="));
2192if (resultsOld) {
2193resultsOld.style.display = 'none';
2194resultsOld.setAttribute('data-ant37-hidden', '1');
2195var fn1 = findP(D("JDEwMC/sm5Qg7J207IOBIElBUA=="));
2196var fn2 = findP(D("JDEsMDAwL+yblCDsnbTsg4EgSUFQ"));
2197if (fn1) fn1.style.display = 'none';
2198if (fn2) fn2.style.display = 'none';
2199var uls = root.querySelectorAll('ul');
2200var resultsUl = null;
2201for (var u = 0; u < uls.length; u++) {
2202if (uls[u].textContent.indexOf('ROAS') !== -1) { resultsUl = uls[u]; break; }
2203}
2204if (resultsUl && !resultsUl.querySelector('[data-ant37-bullet]')) {
2205var bulletTexts = [
2206D("7Lqg7Y6Y7J24IOq4sOqwhCDtmZXrs7TrkJwg7KCE7LK0IOqysOygnCDsnKDsoIAoU3BlbmRlcnMp7J2YIDIwJSDsnbTsg4HsnYQgTWlzdHBsYXkg64uo7J28IOyxhOuEkOuhnCDtmZXrs7Q="),
2207D("7JuUIDEwMOuLrOufrCDsnbTsg4Eg7KeA7Lac7ZWY64qUIOqzoOqwgOy5mCDsnKDsoIDsnZggMjYl6rCAIE1pc3RwbGF566W8IO2Gte2VtCDsnKDsnoU="),
2208D("7JuUIDEsMDAw64us65+sIOydtOyDgSDsp4DstpztlZjripQg7LWc6rOg6rCA7LmYIOycoOyggOydmCA1MCXqsIAgTWlzdHBsYXnrpbwg7Ya17ZW0IOycoOyehQ==")
2209];
2210for (var b = 0; b < bulletTexts.length; b++) {
2211var li = document.createElement('li');
2212li.setAttribute('data-ant37-bullet', '1');
2213li.textContent = bulletTexts[b];
2214resultsUl.appendChild(li);
2215}
2216}
2217if (resultsUl && !document.querySelector('[data-ant37-resimg]')) {
2218var resImg = document.createElement('img');
2219resImg.setAttribute('data-ant37-resimg', '1');
2220resImg.src = 'https://cdn.prod.website-files.com/67ae5a0c0c4e8738d0744c0d/6a471f06334c504d3f2ed03d_AntLegion_KeyResults_KR_2026-07-03.png';
2221resImg.alt = D("6rCc66+4IOq1sOuLqChBbnQgTGVnaW9uKSDsuqDtjpjsnbgg7ZW17IusIOyEseqzvCDsmpTslb06IOyghOyblCDrjIDruYQg7ISk7LmYIOyImCAyMDAlIOymneqwgCwg7YOAIOumrOybjOuTnCDssYTrhJAg64yA67mEIEQzMCBST0FTIDMwJSDsg4HtmowsIOy1nOqzoOqzvOq4iCDsnKDsoIAgNTAlIO2ZleuztA==");
2222resImg.loading = 'lazy';
2223resImg.style.cssText = 'display:block;width:100%;height:auto;margin:24px 0;border-radius:8px;';
2224if (resultsUl.nextSibling) { resultsUl.parentNode.insertBefore(resImg, resultsUl.nextSibling); }
2225else { resultsUl.parentNode.appendChild(resImg); }
2226}
2227}
2228var quoteEm = findEM(D("7KCV7ZW07KeEIOyYiOyCsCDslYjsl5DshJwgUk9BUyDrqqntkZw="));
2229if (quoteEm) {
2230quoteEm.textContent = D("Ik1pc3RwbGF57JmA7J2YIO2YkeyXhSDrjZXrtoTsl5AgJ+qwnOuvuCDqtbDri6goQW50IExlZ2lvbikn7J2AIO2VnOq1rSDsi5zsnqXsl5DshJwg7YGwIOyEseqzteydhCDqsbDrkZgg7IiYIOyeiOyXiOyKteuLiOuLpC4gdFJPQVPsl5Ag7LWc7KCB7ZmU65CcIOy6oO2OmOyduOqzvCBNaXN0cGxheeydmCAxMOyjvOuFhCDquLDrhZAg7ZSE66Gc66qo7IWY7JeQIO2emOyeheyWtCwg6rec66qo66W8IO2BrOqyjCDtmZXsnqXtlZjrqbTshJzrj4Qg67mE7Jqp6rO8IFJPQVMg66qp7ZGc66W8IOuqqOuRkCDri6zshLHtlaAg7IiYIOyeiOyXiOyKteuLiOuLpC4g7JWe7Jy866Gc64+EIO2VnOq1reyXkOyEnCBNaXN0cGxheeyZgOydmCDtjIztirjrhIjsi63snYQg7J207Ja06rCA66mwLCDtlIzroIjsnbTslrTrk6Tsl5Dqsowg642UIOuCmOydgCDqsozsnoQg6rK97ZeY7J2EIOyEoOuztOydtOqzoCDsi7bsirXri4jri6QuIg==");
2231}
2232var attrEm = findEM('Della Lee');
2233if (attrEm) {
2234attrEm.textContent = D("4oCUIERlbGxhIExlZSwgMzdHYW1lcyBIZWFkIG9mIFVzZXIgQWNxdWlzaXRpb24gVGVhbQ==");
2235}
2236var ctaP = findP(D("6rOg6rCA7LmYIOyCrOyaqeyekOulvCDtmZXrs7TtlZjqs6DsnpA="));
2237if (ctaP) {
2238var aEl = ctaP.querySelector('a');
2239if (aEl) {
2240aEl.textContent = D("6riA66Gc67KMIFVBIOyDgeuLtCDsi6Dssq3tlZjquLA=");
2241while (ctaP.firstChild && ctaP.firstChild !== aEl) {
2242ctaP.removeChild(ctaP.firstChild);
2243}
2244var ctaText = document.createTextNode(D("MzdHYW1lc+ydmCDsgqzroYDrpbwg7Ya17ZW0IOyVjCDsiJgg7J6I65Ov7J20IOuLqOyInCDshKTsuZjri7kg64uo6rCAKENQSSnsnZgg66ek66qwIOu5hOyaqeydhCDspITsnbTqs6Ag7Iuk7KCcIOqzvOq4iOqzvCDsnqXquLAg7LK066WY66GcIOydtOyWtOyngOuKlCDsp4TshLEg7Jyg7KCA66W8IO2ZleuztO2VmOuKlCDqsoPsnbQg66qo67CU7J28IOqyjOyehCBVQSDrp4jsvIDtjIXsnZgg7ZW17Ius7J6F64uI64ukLiBNaXN0cGxheeuKlCDqsoDspp3rkJwg6rKM7J2066i4IOuNsOydtO2EsOyZgCDsoJXqtZDtlZwgQUkg7IaU66Oo7IWY7J2EIOuwlO2DleycvOuhnCDqt4DsgqzsnZgg7YOA7J207YuA7J20IO2VnOq1rSDrsI8g6riA66Gc67KMIOyLnOyepeyXkOyEnCDtmZXsi6TtlZwg66ek7LacIOyEseyepeydhCDsnbTro7Ag7IiYIOyeiOuPhOuhnSDsp4Dsm5Dtlanri4jri6QuIA=="));
2245ctaP.insertBefore(ctaText, aEl);
2246}
2247}
2248if (!document.querySelector('[data-ant37-resh2]')) {
2249var h2s10 = root.querySelectorAll('h2');
2250for (var q = 0; q < h2s10.length; q++) {
2251var tt = h2s10[q].textContent.replace(/^\s+/, '');
2252if (tt.indexOf(D("6rKw6rO8")) === 0) {
2253h2s10[q].textContent = D("6rKw6rO8OiDsoITsm5Qg64yA67mEIOyEpOy5mCDsiJggMjAwJ
2253SDspp3qsIAg67CPIEQzMCBST0FTIDMwJSDri6zshLE=");
2254h2s10[q].setAttribute('data-ant37-resh2', '1');
2255break;
2256}
2257}
2258}
2259root.setAttribute(GATE, 'done');
2260clearInterval(timer);
2261}, 250);
2262} catch (e) { /* fail silent, never break the page */ }
2263})();</script>
2263
2264<!-- 37Games Ant Legion content inject END -->
2265
2266
2267<!-- Cat Snack Bar (Treeplla) content inject START -->
2268<script>function D(s){return decodeURIComponent(escape(atob(s)))}
2269(function () {
2270try {
2271if (location.hostname.indexOf('ko.business.mistplay.com') === -1) return;
2272if (location.pathname.indexOf('treeplla-cat-snack-bar') === -1) return;
2273var GATE = 'data-catsnack-v1';
2274var tries = 0;
2275var MAX_TRIES = 80; // 80 * 250ms = 20s
2276var timer = setInterval(function () {
2277tries++;
2278if (tries > MAX_TRIES) { clearInterval(timer); return; }
2279var root = document.querySelector('.article-richtext');
2280if (!root) return;
2281if (root.getAttribute(GATE) === 'done') { clearInterval(timer); return; }
2282var ps = Array.prototype.slice.call(root.querySelectorAll('p'));
2283var findP = function (needle) {
2284for (var i = 0; i < ps.length; i++) {
2285if (ps[i].textContent.indexOf(needle) !== -1) return ps[i];
2286}
2287return null;
2288};
2289var pSol = findP(D("7KeE7ISxIOycoOyggOulvCDtmZXrs7TtlZjripQg642wIOqwleygkOydtA=="));
2290var pTroas = findP(D("7Jyg7KCAIO2WieuPmSDrjbDsnbTthLDrpbwg7Iuk7Iuc6rCE7Jy866Gc"));
2291var pLoyal = findP(D("7ZSM66CI7J20IO2DgOyehCDrpqzsm4zrk5wg66qo64247J20IOu2meyeoeyVhA=="));
2292if (!pSol || !pTroas || !pLoyal) return; // not settled yet
2293var h3Style = 'font-size:20px;font-weight:700;color:#1C2E4A;margin-top:1.75em;margin-bottom:0.4em;';
2294if (!document.querySelector('[data-catsnack-aeo]')) {
2295var box = document.createElement('div');
2296box.setAttribute('data-catsnack-aeo', '1');
2297box.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;';
2298box.textContent = D("7ISc7Jq47JeQIOuzuOyCrOulvCDrkZQg7LqQ7KO87Ja8IOqyjOyehCDsiqTtipzrlJTsmKQg7Yq466as7ZSM6528KFRyZWVwbGxhKeydmCDrjIDtkZzsnpEgJ+qzoOyWkeydtCDsiqTrgrXrsJQoQ2F0IFNuYWNrIEJhcikn64qUIOuvuOq1rSDsi5zsnqUg7ZmV7J6lIOuLqOqzhOyXkOyEnCDrpqzsm4zrk5wgVUEg7ZSM656r7Y+8IE1pc3RwbGF57J2YIEFJIOq4sOuwmCB0Uk9BUyDsuqDtjpjsnbjsnYQg64+E7J6F7ZaI7Iq164uI64ukLiDqt7gg6rKw6rO8IO2DgCDrp6TssrQg64yA67mEIEQ3IEFSUFUgMjAlIO2WpeyDgSwgRDcg66as7YWQ7IWYIDEwMCUg7Kad6rCALCBEMzAg66as7YWQ7IWYIDcwJSDspp3qsIDrpbwg6riw66Gd7ZWY66mwIOuvuOq1rSDsi5zsnqXsl5Ag7JWI7LCp7ZaI7Iq164uI64ukLg==");
2299root.insertBefore(box, root.firstElementChild);
2300}
2301if (!document.querySelector('[data-catsnack-antlink]')) {
2302var pAnt = document.createElement('p');
2303pAnt.setAttribute('data-catsnack-antlink', '1');
2304pAnt.appendChild(document.createTextNode(D("7JWe7IScIA==")));
2305var aAnt = document.createElement('a');
2306aAnt.href = 'https://ko.business.mistplay.com/resources/37games-ant-legion';
2307aAnt.textContent = D("MzdHYW1lc+ydmCDsoITrnrUgU0xHICfqsJzrr7gg6rWw64uoJw==");
2308pAnt.appendChild(aAnt);
2309pAnt.appendChild(document.createTextNode(D("7J20IO2VnOq1rSDsi5zsnqXsl5DshJwg7YOAIOumrOybjOuTnCDssYTrhJAg64yA67mEIEQzMCBST0FT66W8IDMwJSDrgYzslrTsmKzrprAg6rKD64+EIE1pc3RwbGF57JmAIO2VqOq7mO2VnCDqsrDqs7zsmIDsirXri4jri6Qu")));
2310if (pSol.nextSibling) { pSol.parentNode.insertBefore(pAnt, pSol.nextSibling); }
2311else { pSol.parentNode.appendChild(pAnt); }
2312}
2313if (pTroas && (!pTroas.previousElementSibling || !pTroas.previousElementSibling.hasAttribute('data-catsnack-h3a'))) {
2314if (!document.querySelector('[data-catsnack-h3a]')) {
2315var h3a = document.createElement('h3');
2316h3a.setAttribute('data-catsnack-h3a', '1');
2317h3a.style.cssText = h3Style;
2318h3a.textContent = D("MS4gQUkg6riw67CYIHRST0FTIOy6oO2OmOyduCAtIOqysOygnCDsnqDsnqzroKUg64aS7J2AIOqzoOqwgOy5mCDsnKDsoIAg7KCV67CAIOyEoOuzhA==");
2319pTroas.parentNode.insertBefore(h3a, pTroas);
2320}
2321}
2322if (pLoyal && !document.querySelector('[data-catsnack-h3b]')) {
2323var h3b = document.createElement('h3');
2324h3b.setAttribute('data-catsnack-h3b', '1');
2325h3b.style.cssText = h3Style;
2326h3b.textContent = D("Mi4g66Gc7Je07YuwIOyDne2DnOqzhCAtIOumrOybjOuTnOulvCDrsJvsnYAg65Kk7JeQ64+EIOqyjOyehOyXkCDrgqjripQg7Jyg7KCAIOyXrOyglQ==");
2327pLoyal.parentNode.insertBefore(h3b, pLoyal);
2328}
2329if (!document.querySelector('[data-catsnack-resh2]')) {
2330var h2s = root.querySelectorAll('h2');
2331for (var q = 0; q < h2s.length; q++) {
2332var tt = h2s[q].textContent.replace(/^\s+/, '');
2333if (tt.indexOf(D("6rKw6rO8")) === 0) {
2334h2s[q].textContent = D("6rKw6rO8OiDrr7jqta0g7Iuc7J6lIEQ3IEFSUFUgMjAlIO2WpeyDgcK3RDcg66as7YWQ7IWYIDEwMCXCt0QzMCDrpqzthZDshZggNzAlIOymneqwgA==");
2335h2s[q].setAttribute('data-catsnack-resh2', '1');
2336break;
2337}
2338}
2339}
2340var uls = root.querySelectorAll('ul');
2341var resultsUl = null;
2342for (var u = 0; u < uls.length; u++) {
2343if (uls[u].textContent.indexOf('ARPU') !== -1) { resultsUl = uls[u]; break; }
2344}
2345if (resultsUl && !resultsUl.querySelector('[data-catsnack-b3]')) {
2346var li3 = document.createElement('li');
2347li3.setAttribute('data-catsnack-b3', '1');
2348li3.appendChild(document.createTextNode(D("RDMwIOumrO2FkOyFmCA=")));
2349var st3 = document.createElement('strong');
2350st3.textContent = "70%";
2351li3.appendChild(st3);
2352li3.appendChild(document.createTextNode(D("IOymneqwgCAtIOuhnOyXtO2LsCDsnqXsuZjsmYAg7Jew64+Z64+8IOyepeq4sCDsnpTsobQg7Jyg7KeA")));
2353resultsUl.appendChild(li3);
2354}
2355if (resultsUl && !document.querySelector('[data-catsnack-fn]')) {
2356var fn = document.createElement('p');
2357fn.setAttribute('data-catsnack-fn', '1');
2358fn.style.cssText = 'font-size:13px;color:#666;font-style:italic;margin-top:6px;';
2359fn.textContent = D("Ku2DgCDrp6TssrQg64yA67mE");
2360if (resultsUl.nextSibling) { resultsUl.parentNode.insertBefore(fn, resultsUl.nextSibling); }
2361else { resultsUl.parentNode.appendChild(fn); }
2362}
2363if (!document.body.hasAttribute('data-catsnack-alt')) {
2364var imgsA = document.querySelectorAll('img');
2365for (var m = 0; m < imgsA.length; m++) {
2366var srcA = imgsA[m].getAttribute('src') || '';
2367if (srcA.indexOf('Treeplla-CatSnackBar_Blog') !== -1) { imgsA[m].setAttribute('alt', D("7Yq466as7ZSM6528IOqzoOyWkeydtCDsiqTrgrXrsJQg66+46rWtIOyLnOyepSDshLHqs7Ug7IKs66GAIOKAlCBNaXN0cGxheSB4I
2367FRyZWVwbGxh")); }
2368if (srcA.indexOf('6707d7291871736d1bd9cb32') !== -1) { imgsA[m].setAttribute('alt', D("7Yq466as7ZSM6528KFRyZWVwbGxhKSDsiqTtipzrlJTsmKQg6rCc7JqUIOKAlCDshJzsmrgg7IaM7J6sLCDsp4Hsm5Ag7JW9IDUw66qFLCDsm5TqsIQg7Zmc7ISxIOyCrOyaqeyekCAxMDDrp4wg66qFIOydtOyDgSwg7Iuc666s66CI7J207IWYwrfsupDso7zslrwg7J6l66W0")); }
2369}
2370document.body.setAttribute('data-catsnack-alt', '1');
2371}
2372if (!document.querySelector('[data-catsnack-bridge]')) {
2373var pSrc = findP('data.ai');
2374if (pSrc) {
2375var pBr = document.createElement('p');
2376pBr.setAttribute('data-catsnack-bridge', '1');
2377pBr.textContent = D("66y47KCc64qUIOuLpOyatOuhnOuTnOqwgCDqs6cg66ek7Lac7J2AIOyVhOuLiOudvOuKlCDsoJDsnbTsl4jsirXri4jri6QuIO2GsTPsl5Ag7Jik66W4IOyduOq4sOulvCDsnKDsp4DtlZjrqbTshJwg66ek7Lac6rmM7KeAIO2CpOyasOugpOuptCwg66+46rWtIOyLnOyepeydhCDsnpgg7JWE64qUIFVBIO2MjO2KuOuEiOqwgCDtlYTsmpTtlojsirXri4jri6Qu");
2378if (pSrc.nextSibling) { pSrc.parentNode.insertBefore(pBr, pSrc.nextSibling); }
2379else { pSrc.parentNode.appendChild(pBr); }
2380}
2381}
2382if (!document.body.hasAttribute('data-catsnack-bold')) {
2383var boldTargets = [D("66as7JuM65Oc66eMIOuwm+qzoCDrlqDrgpjripQg7Jyg7KCA6rCAIOyVhOuLiOudvCDqsozsnoTsl5Ag64Ko7JWEIOqysOygnO2VmOuKlCDsp4TshLEg7Jyg7KCA66W8IOyWvOuniOuCmCDtmZXrs7Q="), D("7Jyg7KCA6rCAIOyyqyDshKTsuZgg7J207ZuE7JeQ64+EIOyekOyXsOyKpOufveqyjCAn6rOg7JaR7J20IOyKpOuCteuwlCfroZwg64+M7JWE7JmAIOyYpOuemCDrqLjrrLzrj4TroZ0g7Jyg7KCAIOyXrOygleydhCDshKTqs4Q=")];
2384for (var bt = 0; bt < boldTargets.length; bt++) {
2385var needleB = boldTargets[bt];
2386var pB = findP(needleB.slice(0, 20));
2387if (pB && pB.textContent.indexOf(needleB) !== -1 && !pB.querySelector('strong')) {
2388pB.innerHTML = pB.innerHTML.replace(needleB, '<strong>' + needleB + '</strong>');
2389}
2390}
2391document.body.setAttribute('data-catsnack-bold', '1');
2392}
2393root.setAttribute(GATE, 'done');
2394clearInterval(timer);
2395}, 250);
2396} catch (e) { /* fail silent, never break the page */ }
2397})();</script>
2397
2398<!-- Cat Snack Bar (Treeplla) content inject END -->
2399
2400
2401<!-- hreflang restore (Hosoo Media 2026-08-18) START -->
2402<!-- Weglot strips rel=alternate hreflang tags on translated subdomains.
2403     Re-inject them from weglot-data allLanguageUrls after DOM parse.
2404     Original EN has no weglot-data element, so this is a no-op there.
2405     Rollback: delete this block. -->
2406<script>
2407(function () {
2408  var el = document.getElementById('weglot-data');
2409  if (!el) return;
2410  var urls;
2411  try { urls = (JSON.parse(el.textContent) || {}).allLanguageUrls; } catch (e) { return; }
2412  if (!urls) return;
2413  Object.keys(urls).forEach(function (lang) {
2414    if (document.querySelector('link[rel="alternate"][hreflang="' + lang + '"]')) return;
2415    var link = document.createElement('link');
2416    link.rel = 'alternate';
2417    link.hreflang = lang;
2418    link.href = String(urls[lang]).split('?')[0].split('#')[0];
2419    document.head.appendChild(link);
2420  });
2421})();
2422</script>
2422
2423<!-- hreflang restore (Hosoo Media 2026-08-18) END -->
2424<!-- Retention benchmarks AI summary box (Hosoo Media 2026-09-01, D1 rev 2026-09-01) START -->
2425<!-- 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. -->
2426<script>
2427(function(){
2428  if (location.hostname.indexOf("ko.") !== 0) return;
2429  if (location.pathname.indexOf("mobile-game-retention-benchmarks") < 0) return;
2430  function run(){
2431    var rich = document.querySelector(".article-richtext");
2432    if (!rich || !rich.firstElementChild) return false;
2433    if (rich.querySelector("[data-bm-aeo]")) return true;
2434    if (!document.getElementById("bm-aeo-style")){
2435      var st = document.createElement("style");
2436      st.id = "bm-aeo-style";
2437      st.textContent = "[data-bm-aeo]{word-break:keep-all;overflow-wrap:break-word;}";
2438      document.head.appendChild(st);
2439    }
2440    var box = document.createElement("div");
2441    box.setAttribute("data-bm-aeo","1");
2442    box.style.cssText = "border-left:4px solid #4731D3;background:#f4f3ff;padding:14px 18px;margin:0 0 22px;border-radius:6px;";
2443    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.";
2444    rich.insertBefore(box, rich.firstElementChild);
2445    return true;
2446  }
2447  var tries = 0;
2448  (function loop(){ tries++; if (run()) return; if (tries < 40) setTimeout(loop, 300); })();
2449})();
2450</script>
2450
2451<!-- Retention benchmarks AI summary box END -->
2452
2453<!-- Retention metrics AI summary box (Hosoo Media 2026-09-01) START -->
2454<!-- 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. -->
2455<script>
2456(function(){
2457  if (location.hostname.indexOf("ko.") !== 0) return;
2458  if (location.pathname.indexOf("mobile-game-retention-metrics") < 0) return;
2459  function run(){
2460    var rich = document.querySelector(".article-richtext");
2461    if (!rich || !rich.firstElementChild) return false;
2462    if (rich.querySelector("[data-rm-aeo]")) return true;
2463    if (!document.getElementById("bm-aeo-style")){
2464      var st = document.createElement("style");
2465      st.id = "bm-aeo-style";
2466      st.textContent = "[data-rm-aeo]{word-break:keep-all;overflow-wrap:break-word;}";
2467      document.head.appendChild(st);
2468    }
2469    var box = document.createElement("div");
2470    box.setAttribute("data-rm-aeo","1");
2471    box.style.cssText = "border-left:4px solid #4731D3;background:#f4f3ff;padding:14px 18px;margin:0 0 22px;border-radius:6px;";
2472    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.";
2473    rich.insertBefore(box, rich.firstElementChild);
2474    return true;
2475  }
2476  var tries = 0;
2477  (function loop(){ tries++; if (run()) return; if (tries < 40) setTimeout(loop, 300); })();
2478})();
2479</script>
2479
2480<!-- Retention metrics AI summary box END -->
2481<!-- Retention metrics comparison table (Hosoo Media 2026-09-01 v3) START -->
2482<!-- 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. -->
2483<script>
2484(function(){
2485  if (location.hostname.indexOf("ko.") !== 0) return;
2486  if (location.pathname.indexOf("mobile-game-retention-metrics") < 0) return;
2487  function run(){
2488    var rich = document.querySelector(".article-richtext");
2489    if (!rich || !rich.firstElementChild) return false;
2490    if (rich.querySelector("[data-rm-table]")) return true;
2491    if (!document.getElementById("hm-rm-table-css")) {
2492      var st = document.createElement("style");
2493      st.id = "hm-rm-table-css";
2494      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;}}";
2495      document.head.appendChild(st);
2496    }
2497    var anchor = rich.querySelector("[data-rm-aeo]");
2498    var box = document.createElement("div");
2499    box.setAttribute("data-rm-table","1");
2500    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>
2500<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>";
2501    if (anchor && anchor.nextSibling) { rich.insertBefore(box, anchor.nextSibling); }
2502    else if (anchor) { rich.appendChild(box); }
2503    else { rich.insertBefore(box, rich.firstElementChild); }
2504    return true;
2505  }
2506  var tries = 0;
2507  (function loop(){ tries++; if (run()) return; if (tries < 40) setTimeout(loop, 300); })();
2508})();
2509</script>
2509
2510<!-- Retention metrics comparison table END -->
2511
2512<!-- KO article heading spacing (Hosoo Media 2026-09-01) START -->
2513<!-- KO-only. Adds breathing room above H2/H3 in article body for readability. Rollback: delete this block. -->
2514<script>
2515(function(){
2516  if (location.hostname.indexOf("ko.") !== 0) return;
2517  if (document.getElementById("hm-ko-heading-space")) return;
2518  var s = document.createElement("style");
2519  s.id = "hm-ko-heading-space";
2520  s.textContent = ".article-richtext h2:not(:first-child){margin-top:2.4em;}"
2521    + ".article-richtext h3:not(:first-child){margin-top:2em;}"
2522    + ".article-richtext h4:not(:first-child){margin-top:1.7em;}"
2523    + ".article-richtext h2,.article-richtext h3,.article-richtext h4{margin-bottom:.6em;}";
2524  document.head.appendChild(s);
2525})();
2526</script>
2526
2527
2528<!-- KO article table horizontal scroll (Hosoo Media 2026-09-01) START -->
2529<!-- 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. -->
2530<script>
2531(function(){
2532  if (location.hostname.indexOf("ko.") !== 0) return;
2533  function run(){
2534    var rich = document.querySelector(".article-richtext");
2535    if (!rich) return false;
2536    var tables = rich.querySelectorAll("table");
2537    if (!tables.length) return false;
2538    if (!document.getElementById("hm-ko-table-scroll")) {
2539      var st = document.createElement("style");
2540      st.id = "hm-ko-table-scroll";
2541      st.textContent = ".hm-tw{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 18px;}"
2542        + ".hm-tw>table{margin-bottom:0;}";
2543      document.head.appendChild(st);
2544    }
2545    for (var i = 0; i < tables.length; i++) {
2546      var t = tables[i];
2547      if (t.parentNode && t.parentNode.className === "hm-tw") continue;
2548      if (t.closest("[data-rm-table]")) continue;
2549      var w = document.createElement("div");
2550      w.className = "hm-tw";
2551      t.parentNode.insertBefore(w, t);
2552      w.appendChild(t);
2553    }
2554    return true;
2555  }
2556  var tries = 0;
2557  (function loop(){ tries++; if (run()) return; if (tries < 40) setTimeout(loop, 300); })();
2558})();
2559</script>
2559
2560<!-- KO article table horizontal scroll END -->
2561
2562 
2563
2564<!-- AM guide KO (Hosoo 2026-09-16) START -->
2565<script>function D(s){return decodeURIComponent(escape(atob(s)))}
2566(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>
2566
2567<!-- AM guide KO END -->
2568
2569
2570<!-- Futureplay 2026 KO (Hosoo 2026-09-23) START -->
2571<script>(function(){if(location.hostname.indexOf("ko.")!==0||location.pathname.indexOf("futureplay-case-study")<0)return;
2572var 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;
2573new 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();});
2574function g(){var a=document.querySelector(".article-richtext");if(!a){if(++n<160)setTimeout(g,250);return;}
2575var H=a.parentNode.querySelectorAll("h2,h3"),i,k,e;
2576for(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];}
2577var 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];
2578if(!a.querySelector("[data-fp]")){e=document.createElement("p");e.setAttribute("data-fp","1");e.textContent=D.b;a.insertBefore(e,a.firstChild);}
2579var P=a.querySelectorAll("p"),c=null,done=0;
2580for(i=0;i<P.length;i++){e=P[i];
2581if(!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;}
2582if(e.textContent.indexOf(D.m2)===0)c=e;}
2583if(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);}
2584var S=document.querySelectorAll('script[type="application/ld+json"]');
2585for(i=0;i<S.length;i++){try{var j=JSON.parse(S[i].textContent),A=j["@graph"]||(Array.isArray(j)?j:[j]),ch=0;
2586A.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;}});});
2587if(ch)S[i].textContent=JSON.stringify(j);}catch(x){}}}
2588})();</script>
2588
2589<!-- Futureplay 2026 KO END -->
2589<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
vendor: 1 bytes, line 2589
2589
2590<script src="https://cdn.jsdelivr.net/npm/[email protected]/jquery.counterup.min.js"></script>
vendor: 1 bytes, line 2590
2590
2591<script src="https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.0/jquery.waypoints.min.js"></script>
vendor: 1 bytes, line 2591
2591
2592<script src="https://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"></script>
2592 
2593<script type="text/javascript">
2594particlesJS("particles-js", {"particles":{"number":{"value":26,"density":{"enable":false,"value_area":0}},"color":{"value":"b897f5"},"shape":{"type":"polygon","stroke":{"width":0,"color":"#000000"},"polygon":{"nb_sides":6},"image":{"src":"img/github.svg","width":100,"height":100}},"opacity":{"value":0.35,"random":true,"anim":{"enable":false,"speed":1,"opacity_min":0.1,"sync":false}},"size":{"value":3,"random":true,"anim":{"enable":false,"speed":40,"size_min":0.1,"sync":false}},"line_linked":{"enable":false,"distance":150,"color":"#ffffff","opacity":0.3,"width":1},"move":{"enable":true,"speed":1,"direction":"top","random":false,"straight":false,"out_mode":"out","bounce":false,"attract":{"enable":false,"rotateX":600,"rotateY":1200}}},"interactivity":{"detect_on":"canvas","events":{"onhover":{"enable":false,"mode":"repulse"},"onclick":{"enable":true,"mode":"repulse"},"resize":true},"modes":{"grab":{"distance":400,"line_linked":{"opacity":1}},"bubble":{"distance":400,"size":40,"duration":2,"opacity":8,"speed":3},"repulse":{"distance":200,"duration":0.4},"push":{"particles_nb":4},"remove":{"particles_nb":2}}},"retina_detect":true});var count_particles, stats, update; stats = new Stats; stats.setMode(0); stats.domElement.style.position = 'absolute'; stats.domElement.style.left = '0px'; stats.domElement.style.top = '0px'; document.body.appendChild(stats.domElement); count_particles = document.querySelector('.js-count-particles'); update = function() { stats.begin(); stats.end(); if (window.pJSDom[0].pJS.particles && window.pJSDom[0].pJS.particles.array) { count_particles.innerText = window.pJSDom[0].pJS.particles.array.length; } requestAnimationFrame(update); }; requestAnimationFrame(update);;
2595</script>
vendor: 1 bytes, line 2595
2595
2596<script>
2597  $(document).ready(function(){
2598    const getStartedBtns = document.querySelectorAll('[data-getStarted="button"]');
2599    const modalCloseBtn = document.querySelector('[data-modal="modal-close"]');
2600    const modal = document.querySelector('[data-modal="modal-backdrop"]');
2601    const modalContainer = document.querySelector('[data-modal="modal-container"]');
2602
2603    const form = document.querySelector('[data-submitForm="form"]');
2604    const submitBtn = document.querySelector('[data-submitForm="button"]');
2605    const emailField = document.querySelector('[data-submitForm="email"]');
2606    const nameField = document.querySelector('[data-submitForm="name"]');
2607    const companyField = document.querySelector('[data-submitForm="company"]');
2608    const websiteField = document.querySelector('[data-submitForm="website"]');
2609    const msgField = document.querySelector('[data-submitForm="message"]');
2610
2611    const successMsg = document.querySelector('[data-submitForm="submit-success"]');
2612    const errorMsg = document.querySelector('[data-submitForm="submit-error"]');
2613 
2614    const navbarDropdown = document.querySelector('[data-navbar="dropdown"]');
2615
2616  	getStartedBtns.forEach(function(btn) {
2617    	btn.addEventListener('click', function() {
2618        modal.style.display = 'flex';
2619        navbarDropdown.style.opacity = "0.0";
2620      });
2621    });
2622    
2623    modalCloseBtn.addEventListener('click', function() {
2624      modal.style.display = 'none';
2625      successMsg.style.display = 'none';
2626      errorMsg.style.display = 'none';
2627      form.style.display = 'block';
2628      navbarDropdown.style.opacity = "1.0";
2629    });
2630    
2631    modal.addEventListener('click', function(e) {
2632      let targetElement = e.target; // clicked element
2633
2634      do {
2635          if (targetElement == modalContainer) {
2636              return;
2637          }
2638          // Go up the DOM
2639          targetElement = targetElement.parentNode;
2640      } while (targetElement);
2641
2642    	modalCloseBtn.click();
2643    });
2644  
2645    const submit = async () => {
2646    	submitBtn.disabled = true;
2647 
2648      try {
2649      	if (nameField.value.trim() === '' ||
2650        	websiteField.value.trim() === '' ||
2651          emailField.value.trim() === '' ||
2652          companyField.value.trim() === '' ||
2653          msgField.value.trim() === '') {
2654          throw 'Please fill all fields.';
2655        }
2656
2657        const url = 'https://tp.mistplay.com/website/advertiser';
2658        const user = {
2659          email: emailField.value.trim(),
2660          name: nameField.value.trim(),
2661          company: companyField.value.trim(),
2662          website: websiteField.value.trim(),
2663          message: msgField.value.trim()
2664        };
2665        
2666        let formBody = [];
2667        for (const key in user) {
2668          const encodedKey = encodeURIComponent(key);
2669          const encodedValue = encodeURIComponent(user[key]);
2670          formBody.push(encodedKey + "=" + encodedValue);
2671        }
2672        formBody = formBody.join("&");
2673
2674				const params = {
2675          method: 'POST',
2676          headers: {
2677            'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
2678          },
2679          body: formBody
2680        };
2681
2682        const data = await fetch(url, params);
2683        const json = await data.json();
2684        
2685        if (json.err) throw json.err.interMessage.EN;
2686        
2687        errorMsg.style.display = "none";
2688        successMsg.style.display = "block";
2689        form.style.display = "none";
2690        
2691        console.log(json);
2692      } catch (error) {
2693      	console.log(error);
2694      	if (typeof error === 'string') errorMsg.innerHTML = error;
2695				errorMsg.style.display = "block";
2696      }
2697
2698      submitBtn.disabled = false;
2699    }
2700
2701    submitBtn.addEventListener('click', submit);
2702  });
2703</script>
vendor: 1 bytes, line 2703
2703
2704<script>
2705	function numberWithCommas(x) {
2706    return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
2707  }
2708
2709  $(document).ready(function(){
2710    $('.feedback-carousel').bxSlider({
2711    	mode: 'vertical',
2712      pager: false,
2713      slideMargin: 30,
2714      controls: false,
2715      speed: 100000,
2716      useCSS: false,
2717      ticker: true,
2718      tickerHover: true,
2719      responsive: true,
2720      wrapperClass: 'bx-wrapper_feedback-carousel',
2721    });
2722    $('.games-carousel').bxSlider({
2723    	mode: 'horizontal',
2724      pager: false,
2725      slideMargin: 30,
2726      controls: false,
2727      speed: 22000,
2728      useCSS: false,
2729      ticker: true,
2730      tickerHover: false,
2731      responsive: true,
2732      slideWidth: 100,
2733      autoDirection: 'prev',
2734      wrapperClass: 'bx-wrapper_games-carousel',
2735    });
2736    $('.games-carousel-2').bxSlider({
2737    	mode: 'horizontal',
2738      pager: false,
2739      slideMargin: 30,
2740      controls: false,
2741      speed: 25000,
2742      useCSS: false,
2743      ticker: true,
2744      tickerHover: false,
2745      responsive: true,
2746      slideWidth: 100,
2747      autoDirection: 'prev',
2748      wrapperClass: 'bx-wrapper_games-carousel',
2749    });
2750    $('.rewards-carousel').bxSlider({
2751    	mode: 'horizontal',
2752      pager: false,
2753      slideMargin: 30,
2754      controls: false,
2755      speed: 25000,
2756      useCSS: false,
2757      ticker: true,
2758      tickerHover: false,
2759      responsive: true,
2760      slideWidth: 176,
2761      autoDirection: 'prev',
2762      wrapperClass: 'bx-wrapper_rewards-carousel',
2763    });
2764    $('.rewards-carousel-2').bxSlider({
2765    	mode: 'horizontal',
2766      pager: false,
2767      slideMargin: 30,
2768      controls: false,
2769      speed: 22000,
2770      useCSS: false,
2771      ticker: true,
2772      tickerHover: false,
2773      responsive: true,
2774      slideWidth: 176,
2775      autoDirection: 'prev',
2776      wrapperClass: 'bx-wrapper_rewards-carousel',
2777    });
2778    
2779    const today = new Date();
2780    const startDay = new Date("08/06/2020"); 
2781    const diffTime = today.getTime() - startDay.getTime(); 
2782    const diffDays = diffTime / (1000 * 3600 * 24);
2783
2784    $('#counterup').counterUp({
2785      delay: 100,
2786      time: 2000,
2787      formatter: function (n) {
2788      	if (n === '18,397,064') {
2789        	const newNum = 18397064 + (Math.floor(diffDays) * 22000);
2790          return numberWithCommas(newNum);
2791        }
2792        
2793        return n;
2794      }
2795    });
2796    setInterval(() => {
2797    	const val = $('#counterup').html();
2798      if (val === '18,397,064') return;
2799      let valNum = parseInt(val.replace(/,/g, ''));
2800      const increments = [5, 10, 15];
2801      valNum += increments[Math.floor(Math.random() * increments.length)];
2802    	$('#counterup').html(`${numberWithCommas(valNum)}`);
2803    }, 4000);
2804</script>
vendor: 1 bytes, line 2804
2804
2805<script type="text/javascript" src="https://cdn.weglot.com/weglot.min.js"></script>
vendor: 1 bytes, line 2805
2805
2806<script>
2807// init Weglot
2808Weglot.initialize({
2809	api_key: 'wg_69b690c4cd1390b9bc6f4c63627846524'
2810});
2811Weglot.on('initialized', ()=>{
2812  const currentLang = Weglot.getCurrentLang();
2813  updateSW6FlagDropdownLinks(currentLang);
2814});
2815document.querySelectorAll('.wg-element-wrapper.sw6 [lang]').forEach((link)=>{
2816		link.addEventListener('click', function(e){
2817			e.preventDefault();
2818      Weglot.switchTo(this.getAttribute('lang'));
2819      updateSW6FlagDropdownLinks(this.getAttribute('lang'));
2820		});
2821});
2822function updateSW6FlagDropdownLinks(currentLang){
2823	const $wrapper = document.querySelector('.wg-element-wrapper.sw6'); 
2824 	if($wrapper.querySelector('.w-dropdown-toggle').getAttribute('lang') !== currentLang){
2825  	const $activeLangLink = $wrapper.querySelector('[lang='+currentLang+']');
2826    const childDiv = $activeLangLink.innerHTML;
2827    const $toggle = $wrapper.querySelector('.w-dropdown-toggle');
2828    const toggleDiv = $toggle.innerHTML;
2829    $toggle.innerHTML = childDiv;
2830    $activeLangLink.innerHTML = toggleDiv;
2831		const lang = $activeLangLink.getAttribute('lang');
2832   	const toggleLang = $toggle.getAttribute('lang');
2833		$toggle.setAttribute('lang', lang);
2834		$activeLangLink.setAttribute('lang', toggleLang);
2835  }
2836}
2837</script>
2837</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.