이벤트 추적 확장 extending-event-tracking
AEM Analytics를 사용하면 웹 사이트에서 사용자 상호 작용을 추적할 수 있습니다. 개발자로서 다음을 수행해야 할 수 있습니다.
- 방문자가 구성 요소와 상호 작용하는 방법을 추적합니다. 이 작업은 사용자 지정 이벤트.
- ContextHub에서 값 액세스.
- 레코드 콜백 추가.
사용자 지정 이벤트 custom-events
사용자 지정 이벤트는 페이지에서 특정 구성 요소의 가용성에 따라 달라지는 모든 것을 추적합니다. 페이지 구성 요소가 다른 구성 요소로 처리되므로 여기에 템플릿별 이벤트가 포함됩니다.
페이지 로드 시 사용자 지정 이벤트 추적 tracking-custom-events-on-page-load
이 작업은 의사 속성을 사용하여 수행할 수 있습니다 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에 연결 매핑 이벤트에 대한 자세한 내용은 를 참조하십시오.
페이지 로드 후 사용자 지정 이벤트 추적 tracking-custom-events-after-page-load
페이지를 로드한 후 발생하는 이벤트(예: 사용자 상호 작용)를 추적하려면 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()%>
예를 들어 다음 정의를 사용하여 사용자가 위로 이동 링크로 인해 두 이벤트가 발생하고 jumptop
및 headlineclick
:
<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에서 값 액세스 accessing-values-in-the-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)
레코드 콜백 추가 adding-record-callbacks
함수를 사용하여 콜백 전 및 이후에 등록 CQ_Analytics.registerBeforeCallback(callback,rank)
및 CQ_Analytics.registerAfterCallback(callback,rank)
.
두 함수 모두 첫 번째 인수로 함수를 가져오고 두 번째 인수로서 등급을 가져와서 콜백이 실행되는 순서를 나타냅니다.
콜백이 false를 반환하는 경우 실행 체인에서 다음에 오는 콜백이 실행되지 않습니다.