扩展事件跟踪 extending-event-tracking

CAUTION
AEM 6.4已结束扩展支持,本文档将不再更新。 有关更多详细信息,请参阅 技术支助期. 查找支持的版本 此处.

AEM Analytics允许您跟踪网站上的用户交互。 作为开发人员,您可能需要:

NOTE
此信息基本上是通用的,但使用 Adobe Analytics 中)。
有关开发组件和对话框的常规信息,请参阅 开发组件.

自定义事件 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 将收集属性并将其添加到ContextHub的事件存储区,以便将其映射到Adobe Analytics事件。 未映射的事件将不会被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()%>

例如,根据以下定义,用户单击 跳到顶部 链接将导致两个事件, 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中访问值 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)

NOTE
另请参阅 ContextHub API参考

添加记录回调 adding-record-callbacks

使用函数注册回调之前和之后 CQ_Analytics.registerBeforeCallback(callback,rank)CQ_Analytics.registerAfterCallback(callback,rank).

这两个函数都将函数作为第一个参数,将排名作为第二个参数,这指示执行回调的顺序。

如果回调返回false,则不会执行执行链中随后的回调。

recommendation-more-help
2315f3f5-cb4a-4530-9999-30c8319c520e