이벤트 추적 확장

AEM Analytics를 사용하면 웹 사이트에서 사용자 상호 작용을 추적할 수 있습니다. 개발자로서 다음을 수행해야 할 수 있습니다.

노트

이 정보는 기본적으로 일반적이지만 Adobe Analytics 참조하십시오.

구성 요소 및 대화 상자 개발에 대한 일반적인 내용은 구성 요소 개발.

사용자 지정 이벤트

사용자 지정 이벤트는 페이지에서 특정 구성 요소의 가용성에 따라 달라지는 모든 것을 추적합니다. 페이지 구성 요소가 다른 구성 요소로 처리되므로 여기에 템플릿별 이벤트가 포함됩니다.

페이지 로드 시 사용자 지정 이벤트 추적

이 작업은 의사 속성을 사용하여 수행할 수 있습니다 data-tracking 이전 레코드 속성은 이전 버전과의 호환성을 위해 계속 지원됩니다. HTML 태그에 추가할 수 있습니다.

의 구문 data-tracking is

  • data-tracking="{'event': ['eventName'], 'values': {'key': 'value', 'nextKey': 'nextValue'}, componentPath: 'myapp/component/mycomponent'}"

임의의 수의 키-값 쌍을 페이로드라고 하는 두 번째 매개 변수로 전달할 수 있습니다.

예는 다음과 같습니다.

<span data-tracking="{event:'blogEntryView',
                                values:{
                                   'blogEntryContentType': 'blog',
                                   'blogEntryUniqueID': '<%= xssAPI.encodeForJSString(entry.getId()) %>',
                                   'blogEntryTitle': '<%= xssAPI.encodeForJSString(entry.getTitle()) %>',
                                   'blogEntryAuthor':'<%= xssAPI.encodeForJSString(entry.getAuthor()) %>',
                                   'blogEntryPageLanguage':'<%= currentPage.getLanguage(true) %>'
                                },
                                componentPath:'myapp/component/mycomponent'}">
</span>

페이지 로드 시 모두 data-tracking 속성이 수집되어 Adobe Analytics 이벤트에 매핑될 수 있는 ContextHub의 이벤트 저장소에 추가됩니다. 매핑되지 않은 이벤트는 Adobe Analytics에서 추적하지 않습니다. 자세한 내용은 Adobe Analytics에 연결 매핑 이벤트에 대한 자세한 내용은 를 참조하십시오.

페이지 로드 후 사용자 지정 이벤트 추적

페이지를 로드한 후 발생하는 이벤트(예: 사용자 상호 작용)를 추적하려면 CQ_Analytics.record JavaScript 함수:

  • CQ_Analytics.record({event: 'eventName', values: { valueName: 'VALUE' }, collect: false, options: { obj: this, defaultLinkType: 'X' }, componentPath: '<%=resource.getResourceType()%>'})

위치

  • events 는 문자열 또는 문자열 배열(여러 이벤트의 경우)입니다.

  • values 추적할 모든 값을 포함합니다

  • collect 는 선택 사항이며 이벤트 및 데이터 개체가 포함된 배열이 반환됩니다.

  • options 은 선택 사항이며 HTML 요소와 같은 링크 추적 옵션을 포함합니다 obj [defaultLinkType](https://microsite.omniture.com/t2/help/en_US/sc/implement/index.html#linkType).

  • componentPath 는 필수 속성이므로 로 설정하는 것이 좋습니다. <%=resource.getResourceType()%>

예를 들어 다음 정의를 사용하여 사용자가 위로 이동 링크로 인해 두 이벤트가 발생하고 jumptopheadlineclick:

<h1 data-tracking="{event: 'headline', values: {level:'1'}, componentPath: '<%=resource.getResourceType()%>'}">
  My Headline <a href="#" onclick="CQ_Analytics.record({event: ['jumptop','headlineclick'],  values: {level:'1'}, componentPath: '<%=resource.getResourceType()%>'})">Jump to top</a>
</h1>

ContextHub에서 값 액세스

ContextHub JavaScript API에는 getStore(name) 가능한 경우 지정된 저장소를 반환하는 함수입니다. 그 가게에는 getItem(key) 가능한 경우 지정된 키의 값을 반환하는 함수입니다. 사용 getKeys() 함수 특정 저장소에 대해 정의된 키 배열을 검색할 수 있습니다.

를 사용하여 함수를 바인딩하여 저장소에서 값 변경 사항에 대한 알림을 받을 수 있습니다 ContextHub.getStore(name).eventing.on(ContextHub.Constants.EVENT_STORE_UPDATED, handler, selector, triggerForPastEvents) 함수 위에 있어야 합니다.

ContextHub의 초기 가용성 알림을 받는 가장 좋은 방법은 ContextHub.eventing.on(ContextHub.Constants.EVENT_ALL_STORES_READY, handler, selector, triggerForPastEvents); 함수 위에 있어야 합니다.

ContextHub에 대한 추가 이벤트:

모든 스토어가 준비되었습니다.

ContextHub.eventing.on(ContextHub.Constants.EVENT_ALL_STORES_READY, handler, selector, triggerForPastEvents);

저장 특정:

ContextHub.getStore(store).eventing.on(ContextHub.Constants.EVENT_STORE_READY, handler, selector, triggerForPastEvents)

노트

전체 보기 ContextHub API 참조

레코드 콜백 추가

함수를 사용하여 콜백 전 및 이후에 등록 CQ_Analytics.registerBeforeCallback(callback,rank)CQ_Analytics.registerAfterCallback(callback,rank).

두 함수 모두 첫 번째 인수로 함수를 가져오고 두 번째 인수로서 등급을 가져와서 콜백이 실행되는 순서를 나타냅니다.

콜백이 false를 반환하는 경우 실행 체인에서 다음에 오는 콜백이 실행되지 않습니다.

이 페이지에서는