ASP FOR WEB ANALYTICS INCLUDING A REAL-TIME SEGMENTATION WORKBENCH
An application service provider system for retrieving and displaying web analytic data, or segmentation workbench, comprises a server and several client computing devices. The server includes a web analytics tool. Each of the clients preferably includes a web analytics client for communication with the server. The application service provider system is architecture allows web analytics service to be provided to users with an application service provider where the web traffic information for different users can be segregated and share a single server while communicating with different clients of different user companies. The present invention also includes a number of methods for retrieving and presenting web analytics data
This application claims the benefit of U.S. Provisional Application No. 60/688,167, filed Jun. 6, 2005, entitled “ASP For Web Analytics Including A Real-Time Segmentation Workbench,” by Brett M. Error, which is incorporated by reference in its entirety.
BACKGROUND OF THE INVENTION1. Field of the Invention
This invention relates generally to systems and methods for web analytics. More particularly, the present invention relates to an application service provider system and methods for providing a segmentation workbench for manipulation and display of web traffic data on a real-time basis.
2. Description of the Related Art
Web analytics refers to the analysis of data created by website usage. For instance, web analytics can be used to mine visitor traffic data. A variety of visitor traffic data is measured such as what browser is being used, what links on a given web page were selected, whether a product was purchase, etc. There are number of web analytics tools presently available such as Site Catalyst version 11 from Omniture of Orem, Utah. These tools are able to capture data on website usage, and responsive to a user's request display a variety of different metrics on website usage such fallout/conversion, A/B testing, etc.
One prior art method for presenting web analytics data to the user is on-line reporting. While on-line reporting can provide data at relatively high speeds and has some presentation flexibility using an HTML format, it significantly limits the data that is available to the user. Typically, the data is provided by extracting data from a database using in a set number of pre-defined reports. The user's ability to segregate the data, produce different reports, and look at the data with different combinations of metrics is severely limited. Thus while the user is able to view data on web traffic, it is often not the data that is most valuable to the user. Therefore, the problem with such on-line systems is that the user does not have the flexibility to get the data they desire and based on different slices of a metric.
Another method for presenting web traffic data to the user is by providing access to the data warehouse or database. Such an approach gives the user the ability to slice and manipulate the data as they desire to provide the reports that are most valuable to them. Such direct access also provides them with the flexibility to answer any question about the data presented, such system are typically very complex and difficult to use. In many cases, despite the availability of general database tools and user interfaces, a non-technical user cannot interact, query and generated the reports needed. Typically, business users work with a database programmer to extract and format the data as needed from the data warehouses. Moreover, such systems can be slow when there are many users trying to access the same date warehouse.
Thus, there is a need for an application service provider model for providing a segmentation workbench for manipulation and display of web traffic data that solves the above shortcomings of the prior art such as real-time delivery of data.
SUMMARY OF THE INVENTIONThe system of the present invention provides an application service provider system for retrieving and displaying web analytic data, or segmentation workbench. The present invention preferably comprises a server and several client computing devices. The server includes a web analytics tool. Each of the clients preferably includes a web analytics client for communication with the server. This architecture is particularly advantageous because the users are able to have rich functionality of a web analytics tool including the segmentation workbench and access to the data in real time. The application service provider system is architecture allows web analytics service to be provided to users with an application service provider where the web traffic information for different users can be segregated and share a single server while communicating with different clients of different user companies. The present invention also includes a number of methods for retrieving and presenting web analytics data.
THE BRIEF DESCRIPTION OF THE DRAWINGS
The present invention provides an application service provider model for providing a segmentation workbench for manipulation and display of web traffic data on a real-time basis. The present invention advantageously combines the best features of on-line reporting systems and direct access to data warehouse with an application service provider segmentation workbench that: 1) provides fast access to the data in real time, 2) is easy for the user to manipulate and filter the data, and 3) is flexible and allows the user to present the data in numerous desired formats.
Basic System
A segmentation workbench system 100 of the present invention providing web analytics analysis capability using a first computing device 102 and a second computing device 104 is shown in
The first computing device 102 is a conventional computing device such as a server and includes a connection to the network via line 110 and is capable of executing various programs such as the present invention. The first computing device 102 preferably includes storage devices for temporary and permanent storage such as memory and hard disk drive arrays. The first computing device 102 includes applications, programs and other code executable on the first computing device 102. The computing device 102 preferably includes a web analytics tool 112 and operates as a web server for web analytics and reporting for providing data from a data set representing interaction with web pages such as SiteCatlyst V.11 provided by Omniture of Orem, Utah. The web analytics tool 112 also includes a segmentation workbench; the functionality it provides, the user interfaces it generates and its operation in disclosed in detail below. When operating on the first computing device 102 these tools provide data to the second computing device 106 for presentation to the user. An exemplary display of such information by the second computing device 106 is shown below with reference to
The network 104 is any one of a conventional type such as the Internet, a local area network (LAN), wireless network, or a wide area network (WAN). The network has predefined protocols for sending packets of data between devices coupled to the network 104. The network 104 may be of any conventional types and have any one of various topologies.
The second computing device 106 is a conventional computing device such as a personal computer, but also includes programs or code providing the segmentation workbench capability of the present invention. The second computing device 106 includes a web analytics client 114 responsive to the web analytics tool 112 of the first computing device 202 and user input to meet the web analytics and reporting needs of the user.
Client/Server Architecture
Referring now to
Application Service Provider Architecture
Referring now to
Workbench Java client 301 runs on a personal computer 106/206 for viewing and interacting with website usage reports. Client 301 sends reports to display 307 (or other output device) for output to the user. Workbench network 302 is a centralized network for handling and responding to client requests for data on website usage.
In one embodiment, the user interface is implemented using a known environment such as Macromedia Flex, Java, DHTML, or any combination thereof.
In one embodiment, the components shown in
In response to query 303, the workbench network 302 returns hashed data 304 that contains an encoded representation of the report data. For example, hashed data 304 may specify, in hash coded terms, the number of visitors that were using a specific web browser and that visited the website within a specified time period. This hashed data 304 is received by client 301.
Client 301 stores, in local cache 309, a list of previously received and decoded hash codes, so that it can correctly interpret a hash code that it has encountered previously. In one embodiment, local cache 309 is cleared at the end of a session, so that only those codes previously received in the same session are stored in cache 309. In other embodiments, local cache 309 is implemented in a more persistent or less persistent fashion, depending on user needs.
Upon receiving hashed data 304, client 301 consults cache 309; if cache 309 contains the hash code(s) in data 304 (in other words, if client 301 has previously received data containing the same hash code), client 301 can interpret the meaning of the hash-coded data without any further communication with network 302. If hash code(s) from data 304 is/are not present in cache 309, client 301 sends hash query 305 to network 302; network 302 responds by sending hash translation 306 to client 301. Hash translation 306 provides client 301 with the meaning of hash terms (for example, specifying that hash term #299 signifies a user using Internet Explorer 6.0). In one embodiment, client 301 stores this meaning in cache 309 for future use.
Once client 301 has received sufficient data to generate a report, it sends a report 308 to display 307 for output to the user. In one embodiment, if some hash meanings have not yet been received, client 301 still sends report 308, and report 308 states that certain hash terms are unknown. In another embodiment, client 301 displays an error message and/or waits until more complete hash meaning data is available.
The user can interact with the displayed report 308 via user input device 330 such as a mouse, keyboard, or the like. The user can click on areas within report 308; when the user clicks on an area that can be interpreted as a filter, client 301 generates and sends a new query 303 containing the new report filter criteria. The above process then repeats, and an updated report 308 is sent to display 307.
Referring now to
Database 403 contains website visitation data, which in one embodiment is stored in a binary format stored in some storage medium such as a hard drive. In one embodiment, the website visitation data is broken up into files, or “bricks”, to facilitate extraction of portions of the data. When servers 402 extract data from database 403, they are provided with specific bricks that match the criteria.
In one embodiment, when the user requests a report showing website visitation data for a specified time period, back-end servers 402 extract data from database 403 that contains web visitation logs and/or statistics. In one embodiment, servers 402 obtain data from database 403 that represents a snapshot of website visitation over a specified time period. Servers 402 then store this website visitation data in temporary local storage (such as random access memory), using for example a binary format that is encoded according to a hash algorithm so as to minimize bandwidth usage. In one embodiment, this binary format is identical to the format used in database 403, so that no file format translation need be performed when servers 402 extract data from database 403. Servers 402 and then apply filters as requested, and send the filtered data to client 301.
In one embodiment, whenever the user requests a broader date range for website visitation data, back-end servers 402 perform a new data extraction from database 403. However, when the user narrows the date range from a previously specified range, no new data extraction is performed; rather back-end servers 402 filter the previously extracted data according to the new filter parameters.
Segmentation Workbench Functionality
The segmentation workbench client 301 and the workbench network 302 (referred to collectively below as the segmentation workbench) allow users to mine sampled Data Warehouse data in real-time. The segmentation workbench provides a fast, responsive way for users to perform advanced analysis on data warehouse-style data via a graphical user interface. Users can launch various pre-packaged reports onto a single workspace and easily click on any data item to filter the entire result set by that item. This allows users to quickly answer questions such as “What were the top referrers that drove visits in which the user purchased Item X or Item Y and viewed the Clearance Sale page?” The results are returned almost instantaneously, enabling users to analyze the effects of combinations of factors.
The basic functionality provided by the segmentation workbench is to allow users select various reports, add items to the filter from within those reports, and quickly see the resulting change based on this virtual “WHERE” clause. The web analytics tool provides Page View, Visit and Visitor groupings that support the virtual “WHERE” clauses. All dimensions (Browsers, Products, etc.) technically offer the visit, visitor (hourly, daily, weekly, monthly, quarterly, yearly) and page view metrics, as well as the commerce metrics. The workbench supports various dimensions and metric, example of which are provided in Appendix A and B, respectively.
A particular advantage of the segmentation workbench is that it is able to return a response to a query or change to a report in real-time using sampled data from the data warehouse. By real-time, we refer here to the ability of the segmentation workbench to gather and display results within seconds for most filters, more specifically within 2 to 3 seconds.
Another advantage of the segmentation workbench is that it is presentation of data as well as making it downloadable. The workbench allows the user to download the Segmentation Workbench results in the standard download formats (currently HTML, PDF, RTF, Excel, CSV), at the window level. In one embodiment, a reportlet is downloadable in all of the standard download formats. The downloaded report shows the filter and data set information. The workbench also provides for PDF download of the workbench canvas (WYSIWYG) or a download of the workbench canvas to a spreadsheet where each report window is a different worksheet.
Workbench User Interface Functionality
A user can select any available report from the Reports menu, which launches a report window on the workbench “canvas.” The user can also right-click at any time on the canvas to launch the Reports menu. When a report is launched, a mini version of that report is immediately displayed. The report window displays the default metric(s), and the data will be sorted by that metric, the system 300 defaults to visits. The user can customize the Default metric in the canvas Display Options, and even set them on a per-report basis. The user can change the metric(s) and add additional metrics (up to 10). The default number of data rows shown is 10, but the user can adjust this in the canvas Display Options.
The reports are provided in windows or containers that have functionality similar to common windows. For example, the reports include the ability to drag edges to change the height and width; ability to minimize, delete, and maximize; ability to reposition/rearrange windows on the canvas by dragging the window title bar. Further, the reports include: functionality to allow the user to drag the column margins to resize column width, data shown in the reports always reflects the current filter; and resizing or moving saves state, such that if the user does a hard refresh on the browser, the canvas looks the same. Various report views (taking the concepts familiar to the user in the standard online reports) are available including: View, Ranked, Over Time, Trended, Fall-out report, C&A, Graphical, Most Improved, Gantt, Tabular, Raw Data and Flexible. The workbench also allows the creation of custom reports. The workbench creates a “custom” report that allows the user to build a custom report with Date, Metric and Dimension axis (similar to Data Extract or the Excel Client Data Blocks). Furthermore, the workbench allows the user to switch between these reports or views, by providing a series of icons as will be shown in the drawings for switching between any of the views.
In addition to the concept of a workbench canvas, the present invention also maintains a corresponding project. The can save and later re-open a workbench project. When a user saves a project, the data set, filters, reports, and canvas appearance are all preserved. When a user opens a saved project, everything should look exactly as he left it. For example, if a user loaded data in January 2005, then on January 15 saved the project, and then opened that project again on January 18 . . . in this case, the data set is technically different. The user is either warned that the user cannot specify a data set date range that includes time in the future or the workbench loads data up through January 18, and warns the user that data shown has changed because more data was added to the data set. Users can share workbench projects with other users. The owner can save over the original shared project (application should alert the user and remind her that she is saving the “networked” version). Non-owners can open shared projects, but any auto-save should actually apply to their own copy. When they explicitly click “Save project”, they are prompted that they're using a shared project and can save their own copy in their own folder. Any time the user tries to leave an unsaved, altered project, the workbench prompts him: “Any changes that you have made will be lost. Are you sure you want to proceed?” For example, if the user clicks the “New Project” icon or the “Open Project” icon, the application prompts him appropriately. Workbench performs an “auto-save” on open projects periodically. By default, the workbench auto-saves the project every 5 minutes. The user can customize this auto-save frequency. Also, this can be combined with a limited versioning system, such that users could theoretically “undo” changes to the last version. If the workbench ever ends a session with the user (due to inactivity), it first saves everything as-is so that next time the user can begin where he left off. If the user has been inactive in a workbench for 15 minutes, the application prompts the user, asking him if he wants to continue to use the workbench. If the user doesn't respond to the prompt within 5 minutes, then the application saves the project for the user to access later, and will free up the workbench slot. The application updates the display, indicating that it prompted the user and did not receive a response, so it saved the project and has closed the workbench.
The canvas also enables the workbench canvas to provide user definable data filters. The workbench allows the user to apply two types of canvas filters: date and segment. The user can filter the data by date, and the workbench preferably allows the user selects several different over-time or trended reports. The default is to force the same level of granularity for all reports. The user can also customize the granularity on a per-report basis. The user can filter the data by segment. Using tools such as a segment builder interface as described in co-pending U.S. patent application Ser. No. 11/313,445, filed Dec. 20, 2005, entitled, “Creation Of Segmentation Definitions” which is incorporated herein by reference, the user can create segment definition for grouping and filtering the data. The workbench allows the user to select a segment to be used in filtering—e.g., a user can click on the funnel icon next to an element, which automatically adds that element to the filter. In one embodiment, the funnel icon is a toggle switch to add-to-filter or remove-from-filter. Right-clicking on the funnel icon will show an options menu that allows the user to choose functional options such as Change to “AND,” Change to “OR, or “Remove from filter”
Finally, there are additional features provided by the workbench. For example, the workbench allows the user to set the sampling rate for the raw data that is used to generate the data warehouse or set used by the workbench. The workbench interface can be combined with other user interfaces provided by the web analytics tool 112/212 such as also the Data Warehouse interface. The workbench also the user to “Undo” actions or versions as was briefly noted above. The workbench also the user to store their working environment. The user can save everything associated with the workbench view—including report suite, date range, sample rate, etc.
Referring now to
While the present invention has been described with reference to certain preferred embodiments, those skilled in the art will recognize that various modifications may be provided. For example, back-end servers 402 may have a variety of topologies and arrangements. Variations upon and modifications to the preferred embodiments are provided for by the present invention.
Claims
1. A system for providing user customizable web analytics data, the system comprising:
- an application service provider including an web analytics tool for receiving queries and sending web analytics data in real time, the application service provider having an input and an output; and
- a web analytics client having an input and output, the web analytics client operable on a computing device to present web analytics data, to receive input from a user, and to communicate with the application service provider, the web analytics client having an input and an output coupled to the output and the input of the application service provider.
2. The system of claim 1, further comprising a second web analytics client having an input and output, the second web analytics client adapted to present web analytics data, to receive input from a user, and to communicate with the application service provider, the second web analytics client having an input and an output coupled to the output and the input of the application service provider.
3. The system of claim 1, wherein the web analytics client and the application service provider are coupled by a network.
4. The system of claim 1, wherein the application service provider includes a workbench network for storing and providing web analytics data, the workbench network responsive to queries from the web analytics client.
5. The system of claim 4, further comprising a database storing web analytics data, the database coupled to the workbench network to provide web analytics data, and wherein the workbench network stores a sampled subset of the web analytics data stored in the database.
6. The system of claim 4, further comprising:
- a plurality of front end servers having an plurality of inputs and an plurality of outputs, each front end server capable of communicating with the web analytics client, the front end servers for receiving and servicing queries from the web analytics client; and
- a plurality of backend servers having a plurality of inputs and a plurality of outputs, each of the backend server capable of communicating with a database and at least two of the plurality of front end servers, the plurality of backend servers for obtaining data from storage, analyzing obtained data, and send report data.
7. The system of claim 6, wherein the plurality of backend servers filter data based on requests received from the web analytics client.
8. The system of claim 1, wherein real time is 5 seconds or less.
9. The system of claim 1, wherein the web analytics client includes a module to generate a report user interface that includes a canvas and selectable filters.
10. The system of claim 9, wherein the filters are one from the group of date filters and segmentation filters.
11. The system of claim 9, wherein the filters are customizable by the user.
12. A device for providing user customizable web analytics data, the device comprising an application service provider including an web analytics tool for receiving queries and sending web analytics data in real time, the application service provider having an input and an output, the application service provider capable of generating and sending user customizable reports including the web analytics data.
13. The device of claim 12 wherein the application service provider operates on a computing device, and wherein the input and output of the application service provider are adapted to communicate with client devices over a network.
14. The device of claim 12, wherein the application service provider includes a workbench network for storing and providing web analytics data, the workbench network responsive to queries from client devices.
15. The device of claim 14 further comprising a database storing web analytics data, the database coupled to the workbench network to provide web analytics data, and wherein the workbench network stores a sampled subset of the web analytics data stored in the database.
16. The system of claim 14, further comprising:
- a plurality of front end servers having an plurality of inputs and an plurality of outputs, each front end server capable of communicating with the client device, the front end servers for receiving and servicing queries from the client device; and
- a plurality of backend servers having a plurality of inputs and a plurality of outputs, each of the backend server capable of communicating with a database and at least two of the plurality of front end servers, the plurality of backend servers for obtaining data from storage, analyzing obtained data, and send report data.
17. The device of claim 16, wherein the plurality of backend servers filter data based on requests received from the client device.
18. The device of claim 14, wherein real time is 5 seconds or less.
19. A method for providing user customizable web analytics data to a client device by a web analytics application service provider, the method comprising:
- establishing a communication connection between the client device and the web analytics application service provider;
- identifying a set of web analytics data;
- loading the identified set of web analytics data on the web analytics application service provider;
- applying a filter to the loaded web analytics data;
- generating a filtered set of web analytics data; and
- providing the filtered set of web analytics data to the client device.
20. The method of claim 19 wherein establishing a communication connection between the client device and the web analytics application service provider comprises a user logging into the web analytics application service provider, and verifying a license associated with the client device.
21. The method of claim 19 wherein identifying the set of web analytics data comprising loading a set of web analytics data that was previously stored by in the web analytics application service provider.
22. The method of claim 19 wherein loading the identified set of web analytics data on the web analytics application service provider comprises sampling web analytics data from a database and storing the sampled data on a server upon which the web analytics application service provider operates.
23. The method of claim 19 wherein the steps of applying and generating are performed in real time.
24. The method of claim 23 wherein real time is 5 or fewer seconds.
25. The method of claim 19 wherein the step of providing the filtered set of web analytics data to the client device includes providing a report for displaying the filtered data.
26. The method of claim 25 wherein the report is a canvas capable of displaying a plurality of filtered data sets.
27. The method of claim 19 further comprising:
- applying a second filter to the filtered set of web analytics data;
- generating a updated set of web analytics data; and
- providing the updated set of web analytics data to the client device.
28. The method of claim 27 wherein the steps of applying, generating and providing are performed in real time.
29. The method of claim 28 wherein real time is 5 or fewer seconds.
Type: Application
Filed: Jun 5, 2006
Publication Date: Jan 11, 2007
Patent Grant number: 8341259
Inventor: Brett Error (Orem, UT)
Application Number: 11/422,129
International Classification: G06F 15/173 (20060101);