웹 SDK을 사용하여 Adobe 클라이언트 데이터 레이어 데이터 보내기

Adobe 클라이언트 데이터 레이어(ACDL)는 페이지에서 데이터 및 이벤트를 수집하지만 어디에서도 전송되지 않습니다. 이러한 이벤트를 Adobe Experience Platform Edge Network으로 보내려면 다음 방법 중 하나로 ACDL 이벤트를 웹 SDK에 연결합니다.

  • JavaScript 라이브러리: 자체 코드는 ACDL 이벤트를 수신하고 Web SDK sendEvent 명령을 호출합니다.
  • 태그 확장: 태그 규칙은 ACDL 확장을 사용하여 ACDL 이벤트를 트리거하고 웹 SDK 확장을 사용하여 데이터를 보냅니다.

이 페이지의 각 섹션에는 두 가지 접근 방식이 모두 표시됩니다.

사전 요구 사항 prerequisites

사이트 코드는 전송하려는 데이터와 이벤트를 푸시합니다. 이 페이지의 예제에서는 각 페이지 보기에 대해 다음 푸시를 사용합니다.

window.adobeDataLayer = window.adobeDataLayer || [];
window.adobeDataLayer.push({
  event: "page view",
  page: { title: "Home", language: "en" }
});

또한 접근 방식에 따라 다음 사항이 필요합니다.

JavaScript 라이브러리

웹 SDK 기본 코드 큐는 라이브러리가 로드될 때까지 명령을 수행하고 ACDL은 라이브러리가 로드될 때까지 항목을 큐에 추가합니다. 이러한 큐 때문에 먼저 로드되는 라이브러리에 관계없이 웹 SDK 기본 코드 뒤 어디에서든 이 페이지에 코드를 추가할 수 있습니다.

태그 확장

데이터 매핑 방법 선택 mapping

웹 SDK은 두 개의 객체로 데이터를 전송합니다. 다음 중 하나 또는 둘 다를 선택합니다.

개체
매핑 작동 방식
다음의 경우에 사용
xdm
코드 또는 태그 규칙의 데이터 레이어 값에서 XDM 스키마와 일치하는 개체를 작성합니다.
페이로드를 완전히 제어하거나 데이터 레이어가 이미 스키마와 유사합니다.
data
데이터 레이어 값을 그대로 보냅니다. 데이터 수집을 위한 데이터 준비를 사용하여 데이터 스트림의 XDM에 매핑합니다.
페이지 코드 및 태그 규칙에서 매핑 논리를 유지하거나 여러 사이트가 잘 관리되는 하나의 데이터 레이어를 공유하려는 경우.

값 출처 선택 value-sources

ACDL 이벤트가 코드나 규칙을 트리거할 때 다음 두 위치에서 데이터 계층 값을 읽을 수 있습니다.

소스
JavaScript 라이브러리
태그 확장
다음을 포함
푸시된 개체
event.page.title. 여기서 event은(는) 수신기의 인수입니다.
%event.message.page.title%
이벤트를 트리거한 개체만 해당됩니다.
계산된 상태
adobeDataLayer.getState("page.title")
경로가 page.title인 데이터 계층 계산 상태 데이터 요소
지금까지의 모든 푸시에서 모든 데이터가 병합되었습니다.

장바구니 추가에 포함된 제품과 같이 이벤트 자체를 설명하는 값에 대해 푸시된 개체를 사용합니다. 사용자 세부 정보와 같이 이전에 푸시된 값에 대해 계산된 상태를 사용합니다. 코드 또는 규칙이 실행될 때 계산된 상태에는 이미 이를 트리거한 푸시의 데이터가 포함됩니다. 수신자가 받는 항목 및 규칙에서 푸시된 데이터 사용을 참조하세요.

XDM 데이터 보내기 xdm

다음 예제에서는 푸시된 객체의 페이지 제목이 포함된 페이지 보기를 보냅니다.

JavaScript 라이브러리

이벤트를 수신하고 sendEvent을(를) 호출합니다.

code language-js
window.adobeDataLayer = window.adobeDataLayer || [];

function sendPageView(event) {
  alloy("sendEvent", {
    xdm: {
      eventType: "web.webpagedetails.pageViews",
      web: {
        webPageDetails: {
          name: event.page.title,
          pageViews: { value: 1 }
        }
      }
    }
  });
}

window.adobeDataLayer.push(function(dl) {
  dl.addEventListener("page view", sendPageView);
});

모든 수신기 옵션에 대해서는 addEventListener()을(를) 참조하십시오.

태그 확장
  1. 웹 SDK 확장을 사용하여 변수 데이터 요소를 만듭니다. XDM​을(를) 선택한 다음 샌드박스 및 스키마를 선택합니다. 이 예제에서는 데이터 요소 이름을 XDM variable로 지정합니다.

  2. 규칙을 만들고 이벤트를 추가합니다.

    • 확장: Adobe 클라이언트 데이터 레이어
    • 이벤트 유형: 데이터 레이어 푸시
    • 트리거 설정: 이름이 지정된 특정 이벤트(이벤트 이름 page view)
    • 시간 범위: 모두
  3. XDM 개체에 채울 작업을 추가합니다.

    • 확장: Adobe Experience Platform Web SDK
    • 작업 유형: 변수 업데이트
    • 데이터 요소: XDM variable
    • web.webPageDetails.name을(를) %event.message.page.title%(으)로 설정하고 web.webPageDetails.pageViews.value을(를) 1(으)로 설정합니다.
  4. 이벤트를 보내는 작업 추가:

    • 확장: Adobe Experience Platform Web SDK
    • 작업 유형: 이벤트 보내기
    • 유형: web.webpagedetails.pageViews
    • XDM: %XDM variable%
  5. 규칙을 저장하고 라이브러리에 추가한 다음 라이브러리를 빌드합니다.

모든 이벤트 옵션에 대해서는 데이터 레이어 푸시를 참조하십시오.

사이트에서 page view 이벤트를 푸시할 때마다 코드 또는 규칙이 페이지 보기를 Edge Network으로 보냅니다.

동일한 방식으로 상호 작용을 전송합니다. 예를 들어 { event: "cart add", eventInfo: { sku: "HT105" } }과(와) 같은 푸시의 경우 cart add에서 수신 또는 트리거한 다음 eventInfo에서 제품을 읽으십시오. 상거래 상호 작용을 설명하는 XDM 필드를 보려면 상거래, 제품 및 주문 정보 수집을 참조하십시오.

데이터 스트림에서 매핑할 데이터 레이어 보내기 data

코드나 규칙 대신 데이터 스트림에 매핑하려면 이벤트가 올바로 분류되도록 data 개체에 데이터 레이어 값을 보내고 XDM eventType을(를) 포함하십시오.

JavaScript 라이브러리
code language-js
function sendWithDataPrep(event) {
  alloy("sendEvent", {
    xdm: { eventType: "web.webpagedetails.pageViews" },
    data: this.getState()
  });
}

window.adobeDataLayer.push(function(dl) {
  dl.addEventListener("page view", sendWithDataPrep);
});

ACDL 수신기 내에서 this이(가) 데이터 계층을 참조하므로 this.getState()이(가) 계산된 상태를 반환합니다. 일부만 보내려면 this.getState("page")과(와) 같은 경로를 전달하십시오.

태그 확장
  1. ACDL 확장을 사용하여 데이터 계층 계산 상태 데이터 요소를 만듭니다. 전체 계산 상태​를 선택하거나 특정 경로​를 선택하고 전송할 데이터의 경로를 입력하십시오. 이 예제에서는 데이터 요소 이름을 ACDL state로 지정합니다.

  2. XDM 데이터 보내기와 동일한 데이터 계층 푸시 이벤트를 사용하여 규칙을 만듭니다.

  3. 웹 SDK 확장에서 이벤트 보내기 작업을 추가합니다.

    • 유형: web.webpagedetails.pageViews
    • 데이터: %ACDL state%
  4. 규칙을 저장하고 라이브러리에 추가한 다음 라이브러리를 빌드합니다.

그런 다음 데이터스트림에서 XDM 스키마로 보내는 필드를 매핑합니다. 데이터 수집을 위한 데이터 준비를 참조하세요. 매핑하지 않고 구성된 서비스가 읽지 않는 데이터는 저장되지 않습니다. 전체 계산된 상태를 전송하면 각 요청의 크기도 증가하므로 데이터 레이어가 큰 페이지에서는 매핑하는 부분만 전송합니다.

단일 페이지 애플리케이션 spa

단일 페이지 응용 프로그램에서는 방문자가 많은 가상 페이지를 보는 동안 페이지가 열려 있고 데이터 계층 history이(가) 계속 증가합니다. 각 가상 페이지 보기에 대해 page view 이벤트를 푸시하고 보낸 후 기록을 지웁니다. 기록을 지우더라도 계산된 상태는 변경되지 않고 리스너 및 규칙이 제거되지 않습니다.

JavaScript 라이브러리

페이지 보기 리스너의 끝에서 기록을 지웁니다.

code language-js
function sendPageView(event) {
  alloy("sendEvent", { /* ... */ });
  this.length = 0;
}

내역 지우기를 참조하십시오.

태그 확장
ACDL 확장의 데이터 레이어 기록 지우기 작업을 페이지 보기 규칙의 마지막 작업으로 추가합니다.

타이밍 및 중복 timing

각 이벤트를 정확히 한 번만 보내도록 다음 방법을 따르십시오.

  • all 범위를 사용합니다. 두 접근 방식의 기본값입니다. JavaScript의 scope 옵션과 태그의 시간 범위 설정입니다. 이 메서드는 스크립트 또는 태그 라이브러리가 로드되기 전에 푸시된 페이지 보기와 같이, 리스너 또는 규칙이 수신을 시작하기 전에 푸시된 이벤트를 보냅니다. 구현의 다른 부분이 이미 이전 이벤트를 보낸 경우에만 future을(를) 사용하십시오. 범위를 참조하세요.
  • 한 곳에서 각 이벤트를 보냅니다. 자체 코드와 태그 규칙이 모두 동일한 데이터 레이어 이벤트를 보내는 경우 Adobe에서 이 이벤트를 두 번 수신합니다.
  • JavaScript 라이브러리: 명명된 함수를 사용하고 각 수신기를 한 번 추가합니다. ACDL은 동일한 이벤트에 대해 동일한 함수의 두 번째 등록을 무시합니다. 그러나 반복적으로 실행되는 코드가 매번 새 익명 함수를 전달하면 ACDL은 매번 새 수신기를 추가하고 각 이벤트가 두 번 이상 전송됩니다.
  • 태그 확장: 특정 이벤트 이름에 대해 트리거합니다. 모든 데이터 변경​에서 트리거하는 규칙은 모든 데이터 푸시에 대해 실행되며 예상보다 많은 이벤트를 보낼 수 있습니다.
recommendation-more-help
experience-platform-help-collection