지원되는 구성 요소

다음 구성 요소는 데이터 레이어를 지원합니다.

구성 요소에 의해 트리거된 이벤트도 참조하십시오.

핵심 구성 요소 데이터 스키마

다음은 데이터 레이어와 함께 핵심 구성 요소가 사용하는 스키마 목록입니다.

구성 요소/컨테이너 항목 스키마

다음 구성 요소에서 구성 요소/컨테이너 항목 스키마를 사용합니다.

구성 요소/컨테이너 항목 스키마를 다음과 같이 정의합니다.

id: {                   // component ID
    @type               // resource type
    repo:modifyDate     // last modified date
    dc:title            // title
    dc:description      // description
    xdm:text            // text
    xdm:linkURL         // link URL
    parentId            // parent component ID
}

다음 이벤트는 구성 요소/컨테이너 항목 스키마와 관련성이 있습니다.

  • cmp:click

페이지 스키마

다음 구성 요소는 페이지 스키마를 사용합니다.

페이지 스키마를 다음과 같이 정의합니다.

id: {
    @type
    repo:modifyDate
    dc:title
    dc:description
    xdm:text
    xdm:linkURL
    parentId
    xdm:tags            // page tags
    repo:path           // page path
    xdm:template        // page template
    xdm:language        // page language
}

cmp:show이벤트는 페이지 로드에서 트리거됩니다. 열기 <body> 태그 바로 아래 인라인 JavaScript에서 이 이벤트를 발송하게 되면 데이터 레이어 이벤트 큐에서 가장 빠른 이벤트가 됩니다.

컨테이너 스키마

다음 구성 요소는 컨테이너 스키마를 사용합니다.

컨테이너 스키마를 다음과 같이 정의합니다.

id: {
    @type
    repo:modifyDate
    dc:title
    dc:description
    xdm:text
    xdm:linkURL
    parentId
    shownItems          // array of the displayed item IDs
}

다음 이벤트는 컨테이너 스키마와 관련성이 있습니다.

  • cmp:click
  • cmp:show
  • cmp:hide

이미지 스키마

다음 구성 요소는 이미지 스키마를 사용합니다.

이미지 스키마를 다음과 같이 정의합니다.

id: {
    @type
    repo:modifyDate
    dc:title
    dc:description
    xdm:text
    xdm:linkURL
    parentId
    image               // asset detail (see below section)
}

다음 이벤트는 이미지 스키마와 관련성이 있습니다.

  • cmp:click

에셋 스키마

이미지 구성 요소 내부에서 에셋 스키마를 사용합니다.

에셋 스키마를 다음과 같이 정의합니다.

id: {
    repo:id             // asset UUID
    repo:path           // asset path
    @type               // asset resource type
    xdm:tags            // asset tags
    repo:modifyDate
}

다음 이벤트는 에셋 스키마와 관련성이 있습니다.

  • cmp:click

콘텐츠 조각 스키마

콘텐츠 조각 구성 요소는 콘텐츠 조각 스키마를 사용합니다.

콘텐츠 조각 스키마를 다음과 같이 정의합니다.

id: {
    @type
    repo:modifyDate
    dc:title
    dc:description
    xdm:text
    xdm:linkURL
    parentId
    elements            // array of the Content Fragment elements
}

콘텐츠 조각 요소에 사용되는 스키마는 다음과 같습니다.

{
    xdm:title           // title
    xdm:text            // text
}

핵심 구성 요소 이벤트

데이터 레이어를 통해 핵심 구성 요소가 트리거하는 여러 이벤트가 있습니다. 데이터 래이어와 인터렉션하는 가장 좋은 방법은 이벤트 리스너를 등록다음 이벤트 유형 및/또는 이벤트를 트리거하는 구성 요소에 따라 조치를 취하는 것입니다. 이로써 비동기 스크립트로 잠재적 경합 조건을 방지할 수 있습니다.

다음은 AEM 핵심 구성 요소에서 제공하는 박스 이벤트의 외부입니다.

  • cmp:click - 클릭 가능한 요소(data-cmp-clickable 속성을 가진 요소)를 클릭하면 데이터 레이어가 cmp:click 이벤트를 트리거할 수 있습니다.
  • cmp:showcmp:hide - 아코디언(확장/축소), 슬라이드(다음/이전 버튼)와 탭(탭 선택) 구성 요소를 조작하면 데이터 레이어가 cmp:showcmp:hide 이벤트를 각각 트리거할 수 있습니다. 또한 페이지 로드에서 cmp:show 이벤트를 발송하면 첫 번째 이벤트가 될 수 있습니다.
  • cmp:loaded - 페이지에서 데이터 레이어가 핵심 구성 요소로 채워지는 즉시 데이터 레이어가 cmp:loaded 이벤트를 트리거합니다.

구성 요소에 의해 트리거된 이벤트

다음 표는 해당 이벤트와 함께 이벤트를 트리거하는 표준 구성 요소를 보여 줍니다.

구성 요소이벤트
아코디언cmp:showcmp:hide
버튼cmp:click
이동 경로cmp:click
슬라이드cmp:showcmp:hide
언어 탐색cmp:click
탐색cmp:click
페이지cmp:show
cmp:showcmp:hide
티저cmp:click

이벤트 경로 정보

AEM 핵심 구성 요소에 의해 트리거된 각 데이터 레이어 이벤트에는 다음 JSON 오브젝트와 함께 페이로드가 포함됩니다.

eventInfo: {
    path: '<component-path>'
}

<component-path>가 이벤트를 트리거한 데이터 레이어의 JSON 경로에 있는 경우. event.eventInfo.path를 통해 사용할 수 있는 값은 이벤트를 트리거한 구성 요소의 현재 상태를 검색하는 adobeDataLayer.getState(<component-path>)에 대한 매개 변수로 사용할 수 있기 때문에 중요합니다. 이로써 맞춤형 코드는 추가 데이터에 액세스하여 해당 데이터를 데이터 레이어에 추가할 수 있습니다.

예:

function logEventObject(event) {
    if(event.hasOwnProperty("eventInfo") && event.eventInfo.hasOwnProperty("path")) {
        var dataObject = window.adobeDataLayer.getState(event.eventInfo.path);
        console.debug("The component that triggered this event: ");
        console.log(dataObject);
    }
}

window.adobeDataLayer = window.adobeDataLayer || [];
window.adobeDataLayer.push(function (dl) {
     dl.addEventListener("cmp:show", logEventObject);
});

튜토리얼

데이터 레이어와 핵심 구성 요소에 대해 더 자세히 살펴보시겠습니까? 이 실습형 튜토리얼을 살펴보십시오.

TIP
데이터 레이어의 유연성에 대해 추가 살펴보려면 맞춤형 구성 요소에 대한 데이터 활성화 방법을 포함하여 통합 옵션에 대해 검토하십시오.

Experience Manager