177 lines
6.4 KiB
JavaScript
177 lines
6.4 KiB
JavaScript
function naverSrchAds(list, url) {
|
|
if(fn_is_empty(list)){
|
|
return false;
|
|
}
|
|
|
|
const commonHeaderAt = adScriptCommonHeaderAt(list);
|
|
if(commonHeaderAt){
|
|
|
|
const adMediaId = commonHeaderAt.adMediaId;
|
|
|
|
const value = document.cookie.match('(^|;) ?' + "originalHost" + '=([^;]*)(;|$)');
|
|
let hostCookie = value? value[2] : "";
|
|
//스키마정보 제거
|
|
hostCookie = hostCookie.replace(/^(https?:\/\/)/, "");
|
|
|
|
// (1) wcslog.js import
|
|
let naverSrchAddScript = document.createElement('script');
|
|
naverSrchAddScript.type = 'text/javascript'
|
|
naverSrchAddScript.src = '//wcs.naver.net/wcslog.js'
|
|
document.head.appendChild(naverSrchAddScript);
|
|
|
|
let naverSrchAdd2Script = document.createElement('script');
|
|
naverSrchAdd2Script.type = 'text/javascript'
|
|
naverSrchAdd2Script.innerHTML = `
|
|
|
|
|
|
var checkNaverAdnPurchsInterval = setInterval(() => {
|
|
|
|
if (window.wcs) {
|
|
|
|
|
|
if(!wcs_add) var wcs_add = {};
|
|
|
|
// (2) 각 사이트별 식별자 설정
|
|
window.wcs_add = {wa : "${adMediaId}"}; // 사이트 식별자 (=네이버공통키, na_account_id)
|
|
|
|
|
|
// (3) 광고 전환추적을 위한 cookie domain설정
|
|
wcs.inflow("${hostCookie}"); // ex. abc-motors.com
|
|
|
|
// 아래 Script는 개별 이벤트 발생시 로그를 전송하기 위한 구역. 결제 완료 페이지이므로, PV 이벤트 와 결제완료 전환 이벤트를 전송함
|
|
|
|
clearInterval(checkNaverAdnPurchsInterval);
|
|
|
|
// (4) PV 이벤트 전송
|
|
wcs_do(); // PV 이벤트 전송
|
|
|
|
|
|
}
|
|
|
|
}, 100 );
|
|
|
|
|
|
`;
|
|
document.head.appendChild(naverSrchAdd2Script);
|
|
}//common header end
|
|
|
|
//상품상세 페이지
|
|
if(url.includes(selectGoodsDtl)){
|
|
|
|
|
|
//장바구니 담기
|
|
const addCartEventAt = adScriptAddCartEventAt(list);
|
|
if(addCartEventAt){
|
|
addCartStorage(addCartEventAt)
|
|
}
|
|
|
|
//위시리스트 등록
|
|
const wslistEventAt = adScriptAddWslistEventAt(list)
|
|
if(wslistEventAt){
|
|
addWslistStorage(wslistEventAt)
|
|
}
|
|
|
|
}
|
|
|
|
//주문 완료 페이지
|
|
if(url.includes(selectOrdrCompt)){
|
|
|
|
//# 주문완료 페이지가 로드되면 아래 코드 실행.
|
|
const purchsCompleteFormAt = adScriptPurchsCompleteFormAt(list)
|
|
if(purchsCompleteFormAt){
|
|
|
|
let naverSrchAddScript = document.createElement('script');
|
|
naverSrchAddScript.type = 'text/x-javascript'
|
|
naverSrchAddScript.src = '//wcs.naver.net/wcslog.js'
|
|
document.head.appendChild(naverSrchAddScript);
|
|
|
|
|
|
// 상품정보 배열
|
|
let productDataArray = [];
|
|
|
|
const adscriptVal = $('#adscript').val()
|
|
const decode = decodeURIComponent(atob(adscriptVal).split('').map(function (c) {
|
|
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
|
|
}).join(''));
|
|
|
|
const adscriptParse = JSON.parse(decode);
|
|
|
|
let totalPrice = parseInt(adscriptParse.total.setleAmt)
|
|
let finalOrderNo = adscriptParse.order.ordrInnb.toString()
|
|
|
|
|
|
for(let obj of adscriptParse.goodsList){
|
|
|
|
let productData = {
|
|
id: obj.goodsInnb.toString(),
|
|
name: obj.goodsNm,
|
|
payAmount: parseInt(obj.applyDscntAmt)
|
|
};
|
|
// 배열에 추가
|
|
productDataArray.push(productData);
|
|
|
|
}
|
|
|
|
// (5) 전환 이벤트 전송, (예) 결제완료 이벤트 전송. 페이지뷰 스크립트와 합쳐지면 됨
|
|
let purchsComplateFormScript = document.createElement('script');
|
|
purchsComplateFormScript.innerHTML =`
|
|
|
|
var checkNaverAdnMemberInterval = setInterval(() => {
|
|
if(window.wcs) {
|
|
if(!wcs_add) var wcs_add = {};
|
|
|
|
wcs_add["wa"] = '${purchsCompleteFormAt.adMediaId}';
|
|
|
|
var _conv = {}; /*전환 이벤트 정보 담을 object 생성*/
|
|
|
|
_conv.type = "purchase"; /*전환 이벤트의 종류 설정*/
|
|
|
|
_conv.value = "${totalPrice}";
|
|
|
|
_conv.id = "${finalOrderNo}"; /*주문번호*/
|
|
|
|
_conv.items = ${JSON.stringify(productDataArray)};
|
|
|
|
clearInterval(checkNaverAdnMemberInterval);
|
|
|
|
wcs.trans(_conv); /*전환 이벤트 정보를 담은 object를 서버에 전송*/
|
|
}
|
|
}, 100 );
|
|
`;
|
|
document.head.appendChild(purchsComplateFormScript);
|
|
|
|
|
|
}
|
|
}//주문 완료 페이지 END
|
|
|
|
|
|
//회원가입 완료 페이지
|
|
if(url.includes(selectJoinCompleteR)){
|
|
|
|
//# 회원가입 완료 페이지 로드되면 아래 코드 실행
|
|
const mbrRegstFormAt = adScriptMbrRegstFormAt(list);
|
|
if(mbrRegstFormAt){
|
|
const joinScript = document.createElement('script');
|
|
joinScript.type = 'text/javascript'
|
|
|
|
joinScript.innerHTML = `
|
|
|
|
var checkNaverAdnInterval = setInterval(() => {
|
|
if(window.wcs){
|
|
if(!wcs_add) var wcs_add = {};
|
|
wcs_add["wa"] = '${mbrRegstFormAt.adMediaId}';
|
|
var _conv = {};
|
|
_conv.type = 'sign_up';
|
|
|
|
clearInterval(checkNaverAdnInterval);
|
|
|
|
wcs.trans(_conv);
|
|
}
|
|
}, 100 );
|
|
`;
|
|
|
|
document.head.appendChild(joinScript);
|
|
}
|
|
|
|
}
|
|
} |