에이디엔(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