push()

push() 메서드는 ACDL(Adobe 클라이언트 데이터 레이어)에 항목을 추가합니다. 라이브러리가 로드되기 전에 호출할 수 있는 유일한 메서드이므로 사이트 코드가 데이터 레이어와 상호 작용하는 주요 방법입니다.

adobeDataLayer.push(...items: (object | Function)[]): number | undefined

ACDL이 로드되기 전에 push()은(는) 표준 Array.prototype.push() 메서드이며 항목은 라이브러리가 로드될 때까지 배열에서 대기합니다. ACDL이 로드된 후 해당 버전 push()이(가) 각 항목을 즉시 처리합니다. 큐 및 기록을 참조하세요.

푸시하기 전에 항상 배열 만들기:

window.adobeDataLayer = window.adobeDataLayer || [];
window.adobeDataLayer.push({ page: { title: "Home" } });

항목 유형 item-types

다음 세 가지 유형의 항목을 푸시할 수 있습니다.

항목
ACDL의 기능
데이터 개체
개체를 계산된 상태로 병합하고 adobeDataLayer:change을(를) 트리거합니다.
이벤트 개체
명명된 이벤트와 adobeDataLayer:event을(를) 트리거합니다. 개체의 모든 데이터를 계산된 상태로 병합합니다.
함수
함수를 호출하고 데이터 레이어를 전달합니다.

데이터 개체 data

event 키가 없는 일반 개체입니다. ACDL이 계산된 상태에 병합합니다.

window.adobeDataLayer.push({
  page: { title: "Products", language: "en" },
  user: { loggedIn: true }
});

키를 삭제하려면 null을(를) 해당 값으로 푸시합니다. 데이터 삭제를 참조하십시오.

이벤트 개체 event

비어 있지 않은 문자열을 포함하는 event 키가 있는 일반 개체입니다. 개체에 eventInfo 키와 계산 상태로 병합할 데이터가 포함될 수도 있습니다.

window.adobeDataLayer.push({
  event: "cart add",
  eventInfo: { sku: "a-100" },
  cart: { itemCount: 3 }
});

ACDL은 이 예제의 데이터 cart을(를) 계산된 상태로 병합한 다음 이벤트에 대한 리스너를 호출합니다. 이벤트를 참조하세요.

함수 function

라이브러리가 준비되면 ACDL이 호출하는 함수입니다. 라이브러리가 아직 로드되지 않은 경우에도 이 함수를 사용하여 다른 ACDL 메서드를 안전하게 호출하십시오.

window.adobeDataLayer.push(function(dl) {
  dl.addEventListener("cart add", function(event) {
    console.log("Added to cart:", event.eventInfo.sku);
  });
});

ACDL은 데이터 레이어를 인수로 사용하고 this(으)로 사용하는 함수를 호출합니다. 함수가 배열에 유지되지 않습니다. 함수에서 오류가 발생하면 오류가 push()을(를) 호출한 코드로 전파됩니다. 라이브러리가 로드되기 전에 오류가 발생하면 ACDL에서 나머지 큐를 처리하지 못합니다. ACDL이 준비되면 코드 실행을 참조하십시오.

반환 값 return

ACDL이 로드된 후 push()이(가) 기록에 항목을 추가할 때 배열의 새 길이를 반환합니다. 함수만 푸시하거나 잘못된 항목을 푸시하는 경우와 같이 항목을 추가하지 않으면 undefined이(가) 반환됩니다.

호출당 항목 한 개 푸시 one-item

여러 항목을 하나의 push() 호출에 전달할 수 있으며 ACDL이 순서대로 처리합니다. 하지만 한 번의 호출로 서로 다른 종류의 항목이 결합되면, 역사는 일관성이 없게 될 수 있다. 예를 들어 첫 번째 항목이 함수인 경우 ACDL은 뒤에 오는 데이터 개체를 처리하지만 기록에 추가하지 않습니다. 각 항목을 별도의 호출로 푸시합니다.

잘못된 항목 invalid

ACDL은 일반 개체와 함수만 허용합니다. 문자열, 숫자, 부울 또는 배열과 같은 다른 값을 푸시하면 ACDL이 처리하지 않고 브라우저 콘솔에 다음 오류를 기록합니다.

The following item cannot be handled by the data layer because it does not have a valid format: "example"

null 또는 undefined을(를) 푸시하면 TypeError이(가) 발생합니다.

NOTE
on 및 handler 키가 있거나 off 키가 있는 개체는 데이터가 아닙니다. ACDL은 이 값을 무시하고 기록에 추가하지 않습니다. 수신기를 추가하거나 제거하려면 addEventListener() 및 removeEventListener()을(를) 사용합니다.
recommendation-more-help
experience-platform-help-collection