Color
Opacity
Color format
Color
앞에 이 코드를 인라인 주입한다. * "intro29" 자리표시자는 주입 시 실제 슬러그로 치환된다. * * 하는 일: * - 페이지 로드 시 'visit' 이벤트 전송 * - tel: 링크 또는 [data-track="call"] 클릭 시 'call_click' 이벤트 전송 */ (function () { var SITE = "intro29"; var EP = "https://gangnamgirls.org/api/track"; function vid() { try { var k = "_asm_vid"; var v = localStorage.getItem(k); if (!v) { v = Date.now().toString(36) + Math.random().toString(36).slice(2); localStorage.setItem(k, v); } return v; } catch (e) { return "anon"; } } function send(type) { try { var body = JSON.stringify({ site: SITE, type: type, vid: vid(), ref: document.referrer || "", }); if (navigator.sendBeacon) { navigator.sendBeacon(EP, new Blob([body], { type: "application/json" })); } else { fetch(EP, { method: "POST", body: body, keepalive: true, headers: { "Content-Type": "application/json" }, }); } } catch (e) {} } // 대시보드 유입/미기록 브라우저/봇/자동화는 집계 제외 function noTrack() { try { if (document.referrer && document.referrer.indexOf(location.origin + "/dashboard") === 0) return true; if (localStorage.getItem("_asm_notrack") === "1") return true; if (navigator.webdriver) return true; // 자동화 브라우저(봇/크롤러) if (/bot|crawl|spider|slurp|headless|phantom|selenium|puppeteer|playwright/i.test(navigator.userAgent || "")) return true; } catch (e) {} return false; } if (noTrack()) return; send("visit"); var called = false; // 전화클릭은 페이지당 1회만 집계(봇 다중클릭 방지) document.addEventListener( "click", function (e) { var el = e.target && e.target.closest ? e.target.closest('a[href^="tel:"], [data-track="call"]') : null; if (el && !called) { called = true; send("call_click"); } }, true ); })();