A              CLICK – Client Side Action Recorder

A.1          Basic Information

User characteristics used for personalization are based on multiple evidences. One such evidence is the log of user activity within the web-based system. It is useful to capture and log user actions not only on a server side of the system, but also on the client side. Server side logging is not able to capture precious time-related information (e.g., time spent on a particular page) due to the client-side caching mechanism. Also specific client-side only interactions (hover, focus, scrolling etc.) cannot be revealed using server side logs.

A.1.1      Basic Terms

DOM

Document Object Model – object representation of a document, a HTML page in our case.

A.1.2      Method Description

CLICK captures and logs event generated by a web browser during user interaction with individual elements of a web page. Currently it is capturing following events:

§  Load – captured when a page is loaded;

§  Unload – captured when user leaves a page;

§  Click – following of hyperlink on a page;

§  Mouseover – pointing mouse to an active element of a page;

§  Mouseout – pointing mouse out of an active element of a page.

CLICK takes advantage of W3C DOM2 Event Model which provides dynamic definition of event handlers. This allows for an easy integration of the tool into either static or dynamically generated web-pages.

CLICK records following attributes of each captured event:

§  Type of the event;

§  Timestamp when the event occurred;

§  Event context (if available), typically identification of an element responsible for an event.

Records are transmitted asynchronously to the server side logging web service SemanticLog after each captured event.

A.1.3      Scenarios of Use

CLICK can be used in the following scenarios:

§  User allows execution of JavaScript in his or her web browser

§  It is possible to alter <head> element of each HTML page (updating static web pages manually, altering web page template for dynamically generated pages etc.).

CLICK should not be used in following cases:

§  URL transformation is used during web page generation (e.g., to transform URLs to events). This would prevent the tool to reveal the context of an event.

A.1.4      External Links and Publications

§  Tvarožek, M., Barla, M., Bieliková, M.: Personalized Presentation in Web-based information Systems. In van Leeuwen, J. et al., (Eds.): SOFSEM 2007 , Springer, LNCS 4362, Harrachov, ČR, pp. 796-807, 2007.

§  Barla, M., Andrejko, A., Bieliková, M., Tvarožek, M.: User Characteristics Acquisition from Logs with Semantics. In Kelemenová, A., Kolář, D.,  Meduna, A., Zendulka, J. (Eds.): ISIM ´07: Information Systems and Formal Models, Hradec nad Moravicí, ČR, Slezská universita v Opavě, ISBN 978-80-7248-006-7, pp. 103-110, 2007.

§  Web browser-based JavaScript library for invoking SOAP Web services, http://www.ibm.com/developerworks/webservices/library/ws-wsajax/

§  Prototype JavaScript framework, http://www.prototypejs.org/

A.2          Integration Manual

CLICK is developed in JavaScript and distributed as a js file. The tool’s functionality is invoked automatically when the file is correctly referenced from the <head> element of a web-page along with its dependencies.

A.2.1      Dependencies

CLICK uses Web browser-based JavaScript library for invoking SOAP Web services provided by IBM.

A.2.2      Installation

Installation of CLICK is done by referencing it from the <head> element of a web-page. An example is shown below:

<script type="text/javascript" src="{$base}js/prototype.js"></script>

<script type="text/javascript" src="{$base}js/ws.js"></script>

<script type="text/javascript" src="{$base}js/click.js"></script>

A.2.3      Configuration

Configuration is done directly in the click.js

§  Elements to be monitored are set in the hookAllTags() function. Adding an element is done by calling hookTags(name-of-an-element) function within hookAllTags.

§  Address of a server side logging tool which receives the event records as well as namespace used in SOAP messages are set in logEvent(eventToBeLogged) function.

A.2.4      Integration Guide

N/A

A.3          Development Manual

A.3.1      Tool Structure

CLICK tool is implemented in a single package, which uses Web Services library based on Prototype library (Fig. 1).

Fig. 1. Click tool and its dependencies.

A.3.2      Method Implementation

Functionality of a tool consists of two main processes:

§  Initialization when a page is being loaded

o   Load event handling

o   Registration of handlers for defined types of elements

o   UnLoad event handling

§  Capturing and reporting of events

o   Preparation of event dump to be logged

o   Actual logging (transmission of a SOAP message to the server)

A.3.3      Enhancements and Optimizing

Future enhancements could introduce capturing and logging of more types of events, which are typically not available on the server side. Change is an example of such an event, which is invoked after a change of a form widget. A sequence of such events informs about the user’s form filling order, which could influence his or her user model. Another type of a “client-side only” event is scroll. This event is invoked when user scrolls the page down to see the content which does not fit into the screen (meaning that the user is interested in the content).

A.4          Manual for Adaptation to Other Domains

Client side action recording implemented in CLICK is domain independent.