ADN

샵바이 변수를 이용한 ADN 광고 스크립트 수동 적용 가이드

해당 문서의 ADN 스크립트 버전은 2.0 입니다.

예시 코드들은 스크립트 동작을 보장하지 않습니다.

관련 문서

ADN 2.0 버전 스크립트 예시

ui: "{{광고주아이디}}" ui 키의 값은 광고주아이디(type:string)으로 변경해주세요.

상단 공통

<!-- 예시 코드 -->
<script src="//fin.rainbownine.net/js/across_adn_2.0.1.js" type="text/javascript">
</script>

상품 상세페이지

<!-- 예시 코드 -->
<script type="text/javascript">
  try {
    window.addEventListener("load", function () {
      if (sb?.product) {
        const {
          baseInfo: { productNo },
          baseInfo: { productName },
          price: { salePrice, immediateDiscountAmt },
        } = sb.product;
        const across_adn_item_contain = new fn_across_adn_contain();
        const across_adn_item_param = [];
        across_adn_item_param = {
          ut: "Item",
          ui: "{{광고주아이디}}", // 광고주 아이디로 변경해주세요.
          items: { i: productNo, s: productName },
        };
        across_adn_item_contain.init(across_adn_item_param);
      }
    });
  } catch (error) {
    console.error("An error occurred:", error);
  }
</script>

장바구니 페이지

<!-- 예시 코드-->
<script type="text/javascript">
  try {
    window.addEventListener("load", function () {
      let adn_cart_items;
      const {
        deliveryGroups = [],
        price: { buyAmt = 0 },
      } = sb.cart;
      if (deliveryGroups.length > 0) {
        function AdnCartInfo() {
          const AdnOrderProducts = 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 {
                  i: productNo,
                  c: "",
                  s: productName,
                  q: quantity,
                  p: buyAmt,
                };
              })
          );

          const AdnOrderPrice = AdnOrderProducts.reduce((sum, cur) => {
            sum += cur.price;

            return sum;
          }, 0);

          return { AdnOrderPrice, AdnOrderProducts };
        }

        const { AdnOrderPrice, AdnOrderProducts } = AdnCartInfo();

        adn_cart_items = AdnOrderProducts;

        const across_adn_cart_contain = new fn_across_adn_contain();
        const across_adn_cart_param = [];
        across_adn_cart_param = {
          ut: "Cart",
          ui: "{{광고주아이디}}", // 광고주 아이디로 변경해주세요.
          items: adn_cart_items,
        };
        across_adn_cart_contain.init(across_adn_cart_param);
      }
    });
  } catch (error) {
    console.error("An error occurred:", error);
  }
</script>

주문 완료 페이지

<!-- 예시 코드 -->
<script type="text/javascript">
  try {
    if (sb.order) {
      window.addEventListener("load", function () {
        const {
          orderNo,
          payInfo: { payAmt },
        } = sb.order;
        const across_adn_order_contain = new fn_across_adn_contain();
        const across_adn_order_param = [];
        across_adn_order_param = {
          ut: "Purchase",
          ui: "{{광고주아이디}}", // 광고주 아이디로 변경해주세요.
          uo: orderNo,
          up: payAmt,
        };
        across_adn_order_contain.init(across_adn_order_param);
      });
    }
  } catch (error) {
    console.error("An error occurred:", error);
  }
</script>

Last updated