扩展事件跟踪

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

注意

此信息基本上是通用的,但对于特定示例,它使用Adobe Analytics

有关开发组件和对话框的一般信息,请参阅开发组件

自定义事件

自定义事件跟踪任何依赖于页面上特定组件可用性的内容。 这还包括特定于模板的事件,因为页面组件被视为另一个组件。

跟踪页面加载时的自定义事件

这可以使用伪属性data-tracking(旧记录属性仍受支持,以实现向后兼容)来完成。 可以将其添加到任何HTML标记。

data-tracking的语法为

  • 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

页面加载后跟踪自定义事件

要跟踪载入页面后发生的事件(如用户交互),请使用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 Reference

添加记录回调

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

这两个函数都将函数作为第一个参数,将秩作为第二个参数,这表示执行回呼的顺序。

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

在此页面上

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now