Show Menu
トピック×

イベント追跡の拡張

AEM Analytics では、Web サイトでのユーザーインタラクションを追跡できます。開発者は次の作業が必要になる場合があります。
This information is basically generic, but it uses Adobe Analytics for specific examples.
コンポーネントとダイアログボックスの開発に関する一般的な情報については、 コンポーネントの開発 を参照してください。

カスタムイベント

カスタムイベントはページ内の特定のコンポーネントの可用性に依存する要素を追跡します。これにはテンプレート特有のイベントも含まれます。ページコンポーネントは別のコンポーネントとして扱われています。

ページの読み込み時のカスタムイベントの追跡

This can be done using the pseudo-attribute data-tracking (the older record attribute is still supported for backwards compatibility). これは任意の HTML タグに追加できます。
The syntax for data-tracking is
  • data-tracking="{'event': ['eventName'], 'values': {'key': 'value', 'nextKey': 'nextValue'}, componentPath: 'myapp/component/mycomponent'}"
キーと値のペアは、任意の数を2番目のパラメーター(ペイロードと呼ばれます)として渡すことができます。
次に例を示します。
<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>

At page load, all data-tracking attributes will be collected and added to the event store of the ContextHub, where they can be mapped to Adobe Analytics events. マッピングされていないイベントはAdobe Analyticsでは追跡されません。 See Connecting to Adobe Analytics for more details about mapping events.

ページの読み込み後のカスタムイベントの追跡

ページの読み込み後に発生するイベント(ユーザーインタラクションなど)を追跡するには、JavaScript 関数 CQ_Analytics.record を使用します。
  • 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()%>
例えば、次のように定義した場合、「 Jump to top 」リンクをクリックすると jumptop headlineclick の 2 つのイベントが実行されます。
<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) ます。
The best way to be notified of initial availability of the ContextHub is to use the ContextHub.eventing.on(ContextHub.Constants.EVENT_ALL_STORES_READY, handler, selector, triggerForPastEvents); function.
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リファレンス全 体も参照

レコードコールバックの追加

Before and after callbacks are registered using the functions CQ_Analytics.registerBeforeCallback(callback,rank) and CQ_Analytics.registerAfterCallback(callback,rank) .
どちらの関数も、先頭の引数では関数を、2 番目の引数ではランクを受け取ります。このランクによって、コールバックの実行順序が決定されます。
コールバックが false を返す場合、実行チェーンの後続のコールバックは実行されません。