샵바이 - 네이버 프리미엄 로그분석 및 광고 신규 스크립트

샵바이 변수를 이용한 네이버 프리미엄 로그분석 스크립트 수동 적용 가이드

네이버 신규스크립트공식 문서

샵바이 변수 조회 가이드

공통인증키 적용 방법

샵바이 관리자페이지에 로그인 후 하기를 확인해주세요

샵바이 관리자 페이지 화면

네이버공통인증키는

"네이버쇼핑파트너존 > 정보관리 > 정보수정"에서 확인하실 수 있습니다.

만일 네이버공통인증키를 확인하실 수 없으시다면 네이버쇼핑파트너센터 측으로

네이버공통인증키의 확인 방법에 대하여 문의 주시기 바랍니다

[쇼핑광고 고객센터]1588-3819

[검색광고 고객센터]1588-5896

스크립트 예시

샵바이 관리자페이지(https://admin.shopby.co.kr/pro)를 사용하는 경우 공통키 설정을 마친 상태로 진행해주세요

전환이벤트 종류 및 프로퍼티

전환이벤트명

전환이벤트 type 코드명

설명

광고보고서제공 여부

구매완료

purchase

재화/용역 등을 주문완료/결제완료 하였음

O

결제 시작

begin_checkout

결제를 하기 위한 과정에 들어갔음

X

회원가입 완료

sign_up

회원가입을 완료하였음

O

장바구니 담기

add_to_cart

장바구니에 상품을 담았음

O

예약 완료

schedule

예약을 완료하였음

O

스토어 찜/저장

save_store

스토어/사이트를 즐겨찾기 등에 저장하였음

X

상품 찜/저장 (위시리스트)

add_to_wishlist

재화/용역 등을 찜/즐겨찾기 등에 저장하였음

O

문의/상담하기

inquiry

문의(상담) 내용을 전달완료함

X

전화하기

call

전화를 하였음. (전화 버튼을 클릭하였음)

X

신청완료

lead

(재화/용역에 관심이 생겨서) 연락처 등을 남기고 상담 등을 신청함

O

상품 상세보기

view_product

특정 상품의 상품상세페이지를 보았음

X

컨텐츠 보기

view_content

특정 컨텐츠의 상세페이지를 보았음

O

검색하기

search

사이트 내에서 키워드 검색을 하였음

X

공유하기

share

특정 컨텐츠를 공유하였음. (공유하기를 클릭하였음)

X

쿠폰 발급받기

clip_coupon

쿠폰을 발급 받았음.

X

상품/서비스 목록 보기

view_item_list

상품/서비스의 목록들을 보았음

X

업체 소개보기

about_us

업체에 대해 소개하는 페이지를 보았음.

X

서비스 제공자 보기

staff

서비스를 제공하는 사람들을 소개하는 페이지를 보았음

X

사업장 위치 보기/길찾기

location

사업장의 위치 혹은 사업장을 가는 방법을 소개하는 페이지를 보았음

X

이벤트/프로모션 신청

promotion

이벤트나 프로모션을 신청하였음.

X

의사소통채널 추가

add_contact_method

메신저 추가, SNS팔로우 등 업체에 보다 쉽게 컨택할 수 있도록 의사소통 채널을 추가하였음.

X

마케팅 수신동의

opt_in_marketing

업체에서 마케팅 정보를 고객에게 보내는 데에 고객이 동의하였음

X

구독

subscribe

업체가 정기적으로 정보를 보내는 것을 받는 데에 고객이 동의하였음.

O

리뷰/평가 쓰기

review

상품/서비스에 대한 평가를 작성하였음

X

사용자정의

custom001 부터 custom010 까지

용도가 정해져 있지 않은 이벤트입니다. 자유롭게 활용 가능합니다. 10개 타입이 있습니다. (예: custom007)

O

Property항목

세부항목

Data Type

의미

예시

Script예제

id

(없음)

string

해당 전환 이벤트의 이용자 행동 ID. (광고주 사이트에서 생성하는 정보)

주문번호: 20231220

_conv.id= "20231220"

items(#1)

item.id

string

행동의 대상이 되는 재화/용역의 ID (예: 상품ID)

상품번호: 7789

_conv.items=[ { id:"7786",

item.name (WARNING!)

string

행동의 대상이 되는 재화/용역의 이름

상품명: 설화수 탄력크림

name:"설화수 탄력크림",

item.category

string

재화/용역의 카테고리

카테고리: 화장품/스킨케어/크림

category:"화장품/스킨케어/크림",

item.quantity

number

재화/용역의 수량

구매(결제)수량: 3개

quantity:3,

item.payAmount

number

재화/용역의 금액 (위 재화/용역 ID에 대한 총 결제금액. 단가 아님)

결제금액: 90,000원

payAmount:90000,

item.option

string

재화/용역의 옵션

용량: 120ml

option: "용량:120" } ]

items(#2)

(위 #1 내용 반복)

value

(없음)

string

복수개의 재화/용역의 전체 금액 (배송비 제외 권장)

결제금액: 50,000원

_conv.value="50000"

currency

(없음)

string

전체 구매(purchase)단위에서 사용할 통화종류. 미국달러인 경우 ‘USD’로 표시. 별도 표시가 있지 않은 경우 대한민국원화(KRW)로 취급함

통화: 미국달러(USD)

_conv.currency="USD"

스크립트 예시

공통 (Common Layout)

<!-- wcs import -->
<script type="text/javascript" src="//wcs.naver.net/wcslog.js"></script>

<!-- wcs common -->
<script type="text/javascript">
  if (globalThis.wcs) {
    if (!wcs_add) var wcs_add = {};
    wcs_add["wa"] = "{공통키}"; // 네이버 공통키를 입력해주세요
    wcs.inflow("{쇼핑몰주소}"); // domain 주소를 입력합니다. https 및 www 등은 제외 합니다.
    wcs_do();
  }
</script>

상품 보기 (view_product)

<!-- wcs view_product event -->
<script type="text/javascript">
  const _conv = {};
  _conv.type = "view_product";

  try {
    if (sb.product) {
      const {
        baseInfo: { productNo, productName },
        price: { salePrice, immediateDiscountAmt },
      } = sb.product;

      const wcsViewItem = {
        item_id: String(productNo),
        item_name: productName,
        price: salePrice - immediateDiscountAmt,
        quantity: 1, // 상품 view는 quantity는 1로 고정 해놨습니다.
      };
    }

    _conv.items = [wcsViewItem];

    wcs.trans(_conv); // 전환 이벤트 정보를 담은 object를 서버에 전송
  } catch (error) {
    console.error(`wcs ${_conv.type} event has occured an error`);
  }
</script>

장바구니 담기(add_to_cart)

  • 장바구니 페이지 보기를 장바구니 담기로 대체

<!-- wcs add_to_cart event -->
<script>
  const _conv = {};
  _conv.type = "add_to_cart";
  try {
    if (sb.cart?.deliveryGroups?.length > 0) {
      function getWcsViewCartInfo() {
        const wcsOrderProducts = sb.cart.deliveryGroups.flatMap(
          ({ orderProducts }) =>
            orderProducts.map((product) => {
              const { productNo, productName, buyAmt, orderProductOptions } =
                product;
              const quantity = orderProductOptions.reduce(
                (sum, { orderCnt }) => {
                  sum += orderCnt;

                  return sum;
                },
                0
              );

              return {
                id: productNo,
                name: productName,
                quantity,
                payAmount: buyAmt,
              };
            })
        );

        const wcsOrderPrice = wcsOrderProducts.reduce((sum, cur) => {
          sum += cur.price;

          return sum;
        }, 0);

        return { wcsOrderProducts, wcsOrderPrice };
      }

      const { wcsOrderPrice, wcsOrderProducts } = getWcsViewCartInfo();

      _conv.items = wcsOrderProducts;
      _conv.value = wcsOrderPrice;
      wcs.trans(_conv);
    }
  } catch (error) {
    console.error(`wcs ${_conv.type} event has occured an error`);
  }
</script>

주문완료(purchase)

<!-- wcs purchase event -->
<script type="text/javascript">
  var _conv = {};
  _conv.type = "purchase";
  try {
    if (sb.order) {
      const {
        orderNo,
        payInfo: { payAmt },
        orderOptionsGroupByPartner,
      } = sb.order;

      const wcsOrderItems = orderOptionsGroupByPartner.flatMap(
        ({ orderOptionsGroupByDelivery }) =>
          orderOptionsGroupByDelivery.flatMap(({ orderOptions }) =>
            orderOptions.map((options) => {
              const {
                productNo: id,
                productName: name,
                price: { immediateDiscountAmt: discount, buyPrice: price },
                orderCnt: quantity,
              } = options;

              return {
                id: String(id),
                name,
                price: price - discount,
                quantity,
              };
            })
          )
      );

      _conv.id = orderNo;
      _conv.items = wcsOrderItems;
      _conv.value = payAmt;
      wcs.trans(_conv);
    }
  } catch (error) {
    console.error("An error occurred:", error);
  }
</script>

Last updated

Was this helpful?