앞에 이 코드를 인라인 주입한다.
* "gangnamshirtsr" 자리표시자는 주입 시 실제 슬러그로 치환된다.
*
* 하는 일:
* - 페이지 로드 시 'visit' 이벤트 전송
* - tel: 링크 또는 [data-track="call"] 클릭 시 'call_click' 이벤트 전송
*/
(function () {
var SITE = "gangnamshirtsr";
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) {}
}
// 대시보드에서 클릭해 들어온 방문(또는 _asm_notrack 설정된 브라우저)은 집계 제외
function noTrack() {
try {
if (document.referrer && document.referrer.indexOf(location.origin + "/dashboard") === 0) return true;
if (localStorage.getItem("_asm_notrack") === "1") return true;
} catch (e) {}
return false;
}
if (noTrack()) return;
send("visit");
document.addEventListener(
"click",
function (e) {
var el = e.target && e.target.closest
? e.target.closest('a[href^="tel:"], [data-track="call"]')
: null;
if (el) send("call_click");
},
true
);
})();