//console.log("rt_com_start"); //(function() { window.__RtdataLake = window.__RtdataLake || []; const RtUrl = "//tracker.realclick.co.kr/rt_com2.js"; // ===== console ===== const RtCo = function(a,b){ var cs = ''; if(Boolean(cs)){ switch (a){ case 'log' : console.log(b); break; case 'info' : console.info(b); break; case 'error' : console.error(b); break; case 'debug' : console.debug(b); break; case 'warn' : console.warn(b); break; default : break; } } } // ===== uuidv4 - unique key ===== const event_uuidv4 = function(a){ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); }); } // ===== UniqueNum - 1:ucode/2:uv ===== const RtUn = function(a){ var date = new Date(); if(a ==='1'){ var components = [ date.getMilliseconds(), date.getYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds() ]; } else if(a ==='2'){ var components = [ date.getYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds() ]; } else{ var components = [ date.getYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds() ]; } var a = components.join(""); return a; } // ===== TimeStamp ===== const RtTs = function(){ var a= Math.floor(+ new Date() / 1000); return a; } // ===== UserCode ==== const RtUc = function(a){ var b = RtUn(a)+'.'+RtTs()+'.RA.1'; return b; } // ===== Create script(Cs) ===== const RtCs = function(a){ var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = a; var x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x); } // ========== Rt_Create img(RtCi) ========== const RtCi = function (u) { var d = document.getElementsByTagName("body")[0], a = new Image(); a.width = 0; a.height = 0; a.style.display = 'none'; a.src = u; a.async = 'true'; d.appendChild(a) } // ========== Open fetch(Of) ========== const RtOf = function (u) { //fetch('//badongsch2.cafe24.com/tracking/tk_common4.php') fetch(u) .then(function(res) { return res.json(); }) .then(function(res) { console.log('nok') }); } // ========== Browser(Bs) : ie / non ie check ========== const RtBsIe = function(){ var agent = navigator.userAgent.toLowerCase(); var nv = false; if ( (navigator.appName == 'Netscape' && agent.indexOf('trident') != -1) || (agent.indexOf("msie") != -1)) { nv = true; } return nv; } const RtCio = function(a){ //console.info(Boolean(RtBsIe())); if(Boolean(RtBsIe())){ RtCi(a); } else{ RtOf(a); } } // ========== Getprams ( referer / url / parameter ) ========== const Gp = function() { const a = ['urp_tkcode', 'urp_channel', 'urp_media', 'urp_keyword']; // 파라미터가 담길 배열 var param = {}; // = referer = var referer = document.referrer; param['referer_all'] = referer; param['referer'] = referer.split('/')[2]; // = url = var hostname = location.hostname; param['hostname'] = hostname; var url = decodeURIComponent(location.href); url = decodeURIComponent(url); param['url'] = url; // = urn = var urn = decodeURIComponent(location.host)+decodeURIComponent(location.pathname)+decodeURIComponent(location.search); urn = decodeURIComponent(urn); param['urn'] = urn; // = params = var params; params = url.substring( url.indexOf('?')+1, url.length ); params = params.split("&"); var size = params.length; var key, value; for(var i=0 ; i < size ; i++) { key = params[i].split("=")[0]; if(a.indexOf(key) != -1){ value = params[i].split("=")[1]; param[key] = value; } } return param; } // ===== setcookie ===== // RtSc(cookieName, cookieValue, cookieExpire, cookiePath, cookieDomain, cookieSecure) const RtSc = function(a, b, c, d, f, g){ var exp=new Date(); if(a === '__ravt'){ exp.setTime(exp.getTime() + 60*1000*c); // c분 } else{ exp.setDate(exp.getDate() + c); } var cookieText=escape(a)+'='+escape(b); cookieText+=(c ? '; EXPIRES='+exp.toGMTString() : ''); cookieText+=(d ? '; PATH='+d : ''); cookieText+=(f ? '; DOMAIN='+f : ''); cookieText+=(g ? '; SECURE' : ''); document.cookie=cookieText; } // ===== getcookie(cookieName)===== const RtGc = function(a){ var b=null; if(document.cookie){ var array=document.cookie.split((escape(a)+'=')); if(array.length >= 2){ var arraySub=array[1].split(';'); b=unescape(arraySub[0]); } } return b; } // ===== deleteCookie(cookieName)===== function RtDc(a){ var temp=RtGc(a); if(temp){ RtSc(a,temp,-1,'/'); } } // ===== Rt_locInfo_chk : urlinfo_chk ===== const Rtlc = function(){ var gP = Gp(); var z = encodeURIComponent(gP.referer_all); // referer_all var x = encodeURIComponent(gP.url); // url var rl = RtRc(); var referer = gP.referer; var hostname = gP.hostname //console.log(rl+"|"+referer+"|"+hostname); if( Boolean(rl) || !Boolean(referer) || hostname === referer ){ RtDc("__ravt"); RtCo('info', hostname+'/'+referer); } else { if(Boolean(gP.referer) && !Boolean(gP.urp_media)){ gP.urp_media = referer; } if(Boolean(gP.urp_tkcode) && Boolean(gP.urp_channel) && Boolean(gP.urp_media)){ var uc2 = RtUc('2'); var __ra = RtGc("__ra"); var __rad = RtGc("__rad"); RtSc("__ratc",gP.urp_tkcode,60,"/"); var nt = Math.floor(+ new Date() / 1000); RtSc("__ravt", nt, 60,"/"); if(!Boolean(__rad)){ RtSc("__rad",uc2,1,"/"); } var __rad = RtGc("__rad"); var c = RtGc("__ratc"); var vt = RtGc("__ravt"); //var c = b[1]; // TrackingCode if(Boolean(c)){ var rc = (RtRc()) ? 1:0; // reloadCheck var uc= gP.urp_channel; var um= gP.urp_media; var uk= Boolean(gP.urp_keyword) ? gP.urp_keyword : ""; // ===== pv/uv 체크 ===== RtCo('info', 'basic_return - __ra : '+ __ra +' / __rad : '+ __rad); var u = RtUrl; //var encode = encodeURIComponent('__ra='+__ra+'&__rad='+__rad+"&a=pu&c="+c+"&uc="+uc+"&um="+um+"&uk="+uk+"&rc="+rc+"&x="+x+"&z="+z); RtCi(u + '?__ra='+__ra+'&__rad='+__rad+'&a=pu&c='+c+'&vt='+vt+'&uc='+uc+'&um='+um+'&uk='+uk+'&rc='+rc+'&x='+x+'&z='+z); } else{ RtCo('info', 'pu - no tracking code'); } } } } // ===== Numberearch ===== function RtNs(a){ var res; res = a.replace(/[^0-9]/g,""); return res; } // ===== Rt_TypeCheck ===== const RtTC = function(a){ var b; for(var i=0; __RtdataLake.length > i; i++){ if(__RtdataLake[i][0] == a){ return __RtdataLake[i]; continue; } } }; // ===== UserCodeCookie ===== const RtUcc = function(){ var uc = RtUc('1'); var __ra = RtGc("__ra"); if(!Boolean(__ra)){ RtSc("__ra",uc,730,"/"); } else{ RtDc("__ra"); RtSc("__ra", __ra,730,"/"); } } // ===== RcTk 트레킹 ===== const RcTk = function(a, b){ var x = encodeURIComponent(Gp().url); // url var __ra = RtGc("__ra"); var u = RtUrl; var c = RtGc("__ratc"); // TrackingCode //var c = b[1]; // TrackingCode var rc = (RtRc()) ? 1:0; // reloadCheck if(Boolean(c)){ switch (a){ case 'rtSet' : RtCo('info', 'basic_rtSet - TrackingCode : '+ c); RtCi(u+'?__ra='+__ra+'&a='+a+'&c='+c+'&rc='+rc+'&x='+x); break; case 'rtJoin' : var d = b[1]; // Uid if(!Boolean(d)){ d = "join_"+RtUn(2); } RtCo('info', 'basic_rtJoin - TrackingCode : '+ c +' / Uid : '+ d); RtCi(u+'?__ra='+__ra+'&a='+a+'&c='+c+'&d='+d+'&rc='+rc+'&x='+x); break; case 'rtEvent' : var d = b[1]; // EventCode if(!Boolean(d)){ d = "event_"+RtUn(2); } RtCo('info', 'basic_rtEvent - TrackingCode : '+ c +'/ EventCode : '+ d); RtCi(u+'?__ra='+__ra+'&a='+a+'&c='+c+'&d='+d+'&rc='+rc+'&x='+x); break; case 'rtOrder' : var d = b[1]; // OrderCode if(!Boolean(d)){ d = "order_"+RtUn(2); } var e = (b[2]) ? RtNs(b[2]) : '0' // price RtCo('info', 'basic_rtOrder - TrackingCode : '+ c +' / OrderCode : '+ d +' / Price: '+ e); RtCi(u+'?__ra='+__ra+'&a='+a+'&c='+c+'&d='+d+'&e='+e+'&rc='+rc+'&x='+x); break; default : break; } } else{ RtCo('info', 'track - no tracking code'); } } // ===== RcSk 세션유지 ===== const RcSk = function(){ var __ra = RtGc("__ra"); var __rad = RtGc("__rad"); var c = RtGc("__ratc"); var vt = RtGc("__ravt"); var nt = Math.floor(+ new Date() / 1000); // 3sec wait check if(nt-vt>3){ var u = RtUrl; //console.log(u + '?__ra='+__ra+'&__rad='+__rad+'&a=rtSk&c='+c+'&vt='+vt+'&nt='+nt); RtCi(u + '?__ra='+__ra+'&__rad='+__rad+'&a=rtSk&c='+c+'&vt='+vt+'&nt='+nt); } } // ===== RcPr PageReading ===== const RcPr = function(a){ var __ra = RtGc("__ra"); var __rad = RtGc("__rad"); var c = RtGc("__ratc"); var vt = RtGc("__ravt"); var pr = a; var u = RtUrl; //console.log(u + '?__ra='+__ra+'&__rad='+__rad+'&a=rtPl&c='+c+'&vt='+vt+'&pr='+pr); RtCi(u + '?__ra='+__ra+'&__rad='+__rad+'&a=rtPr&c='+c+'&vt='+vt+'&pr='+pr); } // ===== pv/uv체크 ===== const RtPu= function(){ var rtSet = RtTC('rtSet'); if(Boolean(rtSet)){ Rtlc(); } } // ===== Reloaded check ===== const RtRc = function(){ if (performance.navigation.type == 1 || performance.navigation.type == 2 ) { //alert( "This page is reloaded" ); return true; } else { //alert( "This page is not reloaded"); return false; } } window.onload = function(){ // ===== 코드셋팅 테스트 ===== var rtSet = RtTC('rtSet'); var rtJoin = RtTC('rtJoin'); var rtEvent = RtTC('rtEvent'); var rtOrder = RtTC('rtOrder'); RtUcc(); // === UserCookie setting === RtPu(); // === pv/uv체크 === // === Default Check === if(Boolean(rtSet)){ RcTk('rtSet',rtSet); } } /* // === MemberJoin === if(Boolean(rtJoin)){ RcTk('rtJoin', rtJoin); } // === Event === if(Boolean(rtEvent)){ RcTk('rtEvent', rtEvent); } // === Order === if(Boolean(rtOrder)){ RcTk('rtOrder', rtOrder); } */ // === RealTraker Function === const RtTkr = function(a,b,c){ //console.log('RtTkr_start'); __RtdataLake.push(arguments); var d = RtTC(a); if(Boolean(d)){ RcTk(a,d); } } // === movePage Visit Time check === const RtVt = function(){ var __ravt = RtGc("__ravt"); //alert("Visit Time : " + __ravt); if(Boolean(__ravt)){ //alert('Pc Connect'); window.onbeforeunload = function(){ RcSk(); } window.addEventListener('click', function (e) { nt = Math.floor(+ new Date() / 1000); RcSk(); nt2 = nt-__ravt; fn_innerHTML('msg2'); //document.getElementById('msg').innerHTML = "[Click]체류시간 => "+nt+""; }); } } // === Page Reding Rate check === const RtPr = function(){ var pageRate = pageMaxRate = 0; document.addEventListener('scroll', function() { var windowHeight = window.innerHeight; //var bodyHeight = document.body.clientHeight; var bodyHeight = document.body.scrollHeight; var height = document.documentElement.scrollTop; var pageRate = (windowHeight+height)/bodyHeight*100; if(pageMaxRate < 100){ pageMaxRate = (pageMaxRate < pageRate) ? pageRate:pageMaxRate ; if(pageMaxRate <= pageRate){ fn_innerHTML('msg1'); //document.getElementById('msg1').innerHTML = "[Scroll]페이지로드 => "+ Math.floor(pageMaxRate) +"%"; var pageViewRate = Math.floor(pageMaxRate) RcPr(pageViewRate); } } if(Math.floor(pageRate) % 4 == 0 ){ fn_innerHTML('msg'); //document.getElementById('msg').innerHTML = "[Scroll]체류시간 => "+pageRate+"/"+nt+""; RcSk(); } }); } // 요소 생성 함수 function createInput() { } // 요소 생성 함수 function fn_innerHTML(a) { var __ravt = RtGc("__ravt"); var nt = Math.floor(+ new Date() / 1000); var nt2 = nt-__ravt; } // === Back Button check === window.onpageshow = function(event) { var __ravt = RtGc("__ravt"); if(Boolean(__ravt)){ if ( event.persisted || (window.performance && (window.performance.navigation.type == 1 || window.performance.navigation.type == 2))) { // Back Forward Cache로 브라우저가 로딩될 경우 혹은 브라우저 뒤로가기 했을 경우 if(window.performance.navigation.type==1){ //alert("Reload State"); } else if(window.performance.navigation.type==2){ //alert("Back Forward Cache State"); } } else{ var gP = Gp(); if(gP.urp_tkcode){ // 요소를 생성한다. createInput(); // === movePage Visit Time check === RtVt(); // === Page Reding Rate check === RtPr(); } } } } //})();