|
Description  |
|
|
BACKGROUND OF THE INVENTION
1. Field of the Invention
The invention relates to a system for monitoring computer use and, more
particularly, a system for collecting, logging, and analyzing preselected
operations in a personal computer and reporting use trends.
2. Description of the Related Technology
The popularity of personal computers has exploded in the past decade. Each
year more and more people have used more and more personal computers in
more and more ways. This rapid expansion has resulted in an astronomical
increase in the amount of money spent on computers, computer related
services, computer software, computer peripherals and electronic
information and information services. In just the past few years, on-line
services such as CompuServe, Prodigy, and America On-Line have gone from
virtual obscurity to household words. Our children learn to surf the "net"
before they can ride bicycles. Heretofore, there has been no effective
reliable mechanism to measure computer usage on a local or broad basis.
Organizations which sell any computer related products or services or which
conduct any marketing activity in any electronic format will have an
intense need to measure use of computer related resources and
dissemination of electronic information. In much the same fashion that
television advertisers rely on television ratings and viewer demographics
to evaluate television marketing, "electronic" advertisers and sellers and
producers of computer related products and services will need to evaluate
information on computer use and "on-line ratings."
SUMMARY OF THE INVENTION
It is an object of the invention to facilitate fie collection of reliable
information regarding the use of personal computer software.
It is a further object of the invention to facilitate the collection of
reliable multi-media viewing statistics of commercial on-line services as
well as access to the "information superhighway," including the use of the
Internet's World Wide Web.
It is a further object of the invention to facilitate the establishment of
a panel of personal computer using households in order to develop useful
reports for a number of different industries including, without
limitation, software manufacturers, commercial on-line service providers,
computer hardware manufacturers, and on-line marketers.
According to the invention, a system may be provided to intercept and
monitor operating system messages. Such messages may be targeted
instructions to various applications or operating system overhead
messages. Such messages may be generated internally by the operating
system software, such as the Microsoft Windows operating environment. A
system according to the invention may filter through a vast array of
messages and capture only specific messages, such as those messages which
indicate a change in focus from one application to another. These changes
in focus may include but are not limited to an application launch, the
termination of an application, switching resources from one application to
another, minimizing an application, or restoring an application.
According to the invention, operating system messages may be intercepted
and relevant messages may be recorded in a log file, along with other
pertinent or useful information. Such pertinent or useful information may
include date stamps, time stamps, message types such as launch, terminate,
switch, minimize, restore, etc., household ID numbers, identification of
individual users within a household, identification of an application's
executable program file name and file size, an application's Window title,
and the handle to the "instance" of the application. A household
identification number may be a number which uniquely identifies a personal
computer within a "panel" of households, each of which is contributing
data to the system through use of a local metering system.
Advantageously, the system according to the invention may be utilized in
association with a plurality of computers and computer users. The
computers and computer users associated with the system may be intended to
be representative of a much larger universe of users. This is analogous to
collection of television viewing information used to establish television
ratings based on a limited number of households. The limited number of
households is considered representative of the overall computer use or
"viewing."
According to the invention, a meter application installed in a personal
computer may log events for top-level Windows for any given application.
Events which are specific to child Windows of an application may not
necessarily be logged. For certain applications, additional detailed event
logging for such child Windows will occur. If an application is targeted
for more detailed logging, the messages indicating the creation of child
Windows will be logged. The entries into the log file will advantageously
include at least date, time, household ID number, individual within the
household using the computer, the handle to the instance of the parent
application, the parent application's current Window title, and the child
Windows title.
In addition, it is an object of the invention to monitor and log certain
external communications. The local meter application will monitor strings
of characters sent to a communication port such as a modem. The system may
be set to monitor for certain predetermined character strings and log
certain information upon occurrence of such strings. If, for example, the
system detects a "http:" string, then the system will recognize that what
follows should be the remainder of a Universal Resource Locator (URL) for
a hypertext protocol site on the Internet's World Wide Web. If the local
meter application identifies a URL, it will intercept and log the full
URL. In this situation, the log entry may include at least the date, time,
household ID number, individual user within the household, the handle to
the instance of the parent application, the parent application's current
Window title, and the Universal Resource Locator (URL).
According to the invention, the meter application may have a number of
other "housekeeping" features, including a mechanism for installing the
meter application on the computer, a data compression and encryption
system for the data log, a log transfer mechanism, a self updating
software feature, and a user.
The data compression and encryption system may advantageously be provided
to minimize the memory resources which must be allocated to storage of the
event log and may encrypt the event log in order to enhance the security
of the information contained therein.
The data transfer system can be provided to transfer the local personal
computer use log to a central processing system. The central processing
system may assimilate many local personal computer use logs, translate the
log information into useful information, evaluate the information, and
create various reports and analyses of computer use. The transfer may be
accomplished by any of a number of different mechanisms including
automated, user initiated, or central office initiated electronic
transfers, or local downloading to a magnetic storage medium such as a
diskette, and delivery of the diskette to the central processing location.
The computer use meter and its supporting software may from time to time
undergo system updates. These updates are intended to add features to the
software and to correct any system bugs. Each panelist will be contacted
on a fixed cycle, advantageously once per month, for the purpose of
collecting the prior month's logged activity. This process may occur via a
diskette mailed to the panelist, or telecommunicated via modem. The data
transfer program, delivered on whatever medium, may first check for any
outstanding software upgrades. If one is scheduled, then software will
automatically be transferred to the panelist's computer.
The system may include a questionnaire which is invoked in certain
circumstances, such as after use of a particular class of software, type
of application, or periodically the user may be prompted to input desired
information which may be stored in the event log or in a separate file.
The data transfer system may be used to upload the responses and download
additional questions or triggers.
One of the advantages of the system according to the invention is the
recordation of changes in processor focus in the event log. Software
marketers have a pressing need for information about how users behave with
their products. "Use" information is typically gathered, if at all,
through paper questionnaires or telephone interviewing. In such
situations, the respondent is asked to recall their own uses of the
product in question. This technique exhibits significant flaws, including
the limitations and inaccuracies inherent in human recollection, the
limitations on the amount of time the individual computer user may be
willing to spend to provide such information, and that the individual
responding to the questionnaire may be only one of the members of the
household using the computer system and may not have all of the pertinent
information.
The system according to the invention overcomes the aforementioned
deficiencies. After an initial installation process, the system may be
completely passive. That is, the computer user does not have to take any
additional action for the system to operate effectively. The use of any
software product or application program may automatically trigger an event
message in the operating system environment which may be recorded by the
system. Far more information may be gathered in this automated fashion by
the computer than by subsequent interaction with a computer user. For
example, information relating to the date and time of an event may easily
be captured using the computer's internal clock and calendar, where such
information would not normally be recalled by a user during a subsequent
personal report. The construction of the event log is typically extremely
rich in useful information and will enable classification of software
usage at least by software title, classification of software subcategory
(e.g., spreadsheets, screen savers, communications software, Personal
Information Managers, word processors, etc., or by household demographics,
e.g., presence of children, income, geography, etc. The system according
to the invention will also be able to measure software use by total
minutes of use, i.e., cumulative focus minutes, frequency of use, i.e.,
number of accesses in a given time frame, and share of computer use.
According to an additional advantageous feature, the system will enable
detailed logging for certain applications. The commercial on-line service
industry is highly competitive, and with Microsoft entering the industry
the competition will be increasing. Currently, the three largest
providers, CompuServe, Prodigy and America On-Line, each have roughly two
million subscribers. The single biggest challenge for these organizations
is to reduce subscriber attrition and increase the length of time any
individual maintains a subscription. Attrition is in effect a measure of
customer satisfaction and inversely related to an on-line service's
revenue stream. Reducing attrition means keeping subscribers longer and
increasing revenue.
The system according to the invention may advantageously collect child
Window information for commercial on-line service providers and user
applications. Window titles of these applications' child Windows generally
hold useful descriptions of the activity at that moment. For example, if a
subscriber is using the mail system for that service, then the Window
title will so indicate. The system according to the invention will record
those titles in the log file.
To illustrate, the Window title for the window for writing an electronic
mail message is "Create Mail" in CompuServe, "Write" in Prodigy, and
"Compose Mail" in America On-Line. The collection and analysis of this
information is valuable for on-line service providers in many ways which
include, but are not limited to, distribution of time spent in various
features on competitive services, identification of which features of each
are preferred by users of multiple services, and identification of which
features of various services are popular and how attention to these
features changes relative to the length of subscription membership. The
information recorded in the log is valuable for on-line service providers
because it can give them direct feedback about customers and point out
areas for improvement of the services. The system according to the
invention can also measure traffic within an on-line content area of a
commercial on-line service, such as electronic magazines and newspapers.
As publishers move to on-line media, media traffic statistics become
critical. It provides a media planner with important input. In addition,
an advantageous feature of the invention provides for interception and
logging of communication port or modem traffic. As an extension of
tracking activities on commercial on-line services, the system according
to the invention may create a full picture of on-line activity if it also
measures traffic on other communication channels such as the Internet
World Wide Web. Internet sites on the web are addressable by a Universal
Resource Locator scheme.
On-line marketers are trying to understand the characteristics of Web
traffic and how much time users spend at different sites. These traffic
statistics become fundamental inputs for media planning, in a fashion
analogous to using TV ratings as a basis for buying or pricing commercial
time.
According to an additional advantageous feature, the system includes
automated file management functions. These functions are needed to keep
the system from interfering with the efficient operation of the host
computer. Event log files can grow quite large. Keeping the log as small
as possible may be important. Data compression techniques may be utilized
to reduce the size of the event log. In addition, the system according to
the invention must maintain as passive a profile as possible. Thus, the
automated installation and data transfer programs will reduce the
interference with the use of the computer by the user and minimize the
impact on any particular user.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a flow diagram for the invention.
FIG. 2 shows an embodiment of the invention.
FIG. 3 shows transmission of messages and events.
FIG. 4 shows responses to messages.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
According to an embodiment of fie invention, a system is provided to
collect, process and deliver information regarding use of personal
computer resources. FIG. 1 illustrates a flow diagram of an embodiment
according to the invention. A computer use meter 1 may be installed on a
personal computer owned and/or operated by a panelist or group of users
10. The panelist advantageously would designate the members of a
particular household and may constitute one or more individuals. The
computer use meter advantageously generates an event log file 11. A
mechanism 2 is provided to transmit the event log files to a central
processing station. The transmission may be accomplished by transfer to a
portable medium such as a floppy disk or over a communication channel such
as a telephone link or by electronic mail. The transmission may be or
triggered by any predetermined criteria such as time, number of logged
events, size of log file, resources used or available or any combination
thereof. The central processing station accumulates log files from a
plurality of separate computer use meters 12. The central processing
station at location 3 will load a data base 13 with the information from
the plurality of event log files. The central processing station may be a
micro processor based computer and may utilize a variety of commercially
available and/or custom developed data base management systems 4 to manage
the computer use data base 13 and create a customized data dictionary 14.
The customized data dictionary is provided to interpret the raw data
provided by the event log files. In addition, the data base management
system 4 may extract useful information, provide preliminary processing
and/or analysis of the accumulated event log files. The system will also
identify usage data at location 15. Any logged event which is not
recognized by the customized dictionary will be noted as an exception and
stored for subsequent manual identification. User or manual intervention
at this stage may enable further identification and the customized
dictionary 14 may be updated so that subsequent occurrences of a similar
event will be automatically identified by the customized dictionary 14.
All log events identified either through the customized dictionary or
through manual intervention 15 will be utilized to create a raw data base
of information at location 5. This data base may be organized by different
database management systems. It is contemplated that the data base may be
in the form of a NPD/POWERVIEW data base 16, commercially available from
The NPD Group, Inc.
At location 6, the Powerview data base management system may generate
reports or preprocess information in the data base for subsequent analysis
7. The system may generate reports showing information derived from the
data base elements maintained. The data may be organized and reported in
virtually any desired formula and organization. Given the strengths and
weaknesses of various commercially available data base management systems,
the data may be processed through one or more data base management systems
to generate hard copy reports 17 or to generate a sub-database which may
utilized for ad hoc analysis or report generation 18.
FIG. 2 shows a computer use meter according to the invention with a
representation of information and data flow installed in an IBM-compatible
personal computer operating in the Windows environment. The Windows
environment internally generates messages used by various modules to
manage the operation of the computer and allocate its resources. Most
application program development does not require treatment with the
internal overhead handled by the operating system. The Windows environment
handles a vast array of overhead functions through the use of internal
drivers. The internal drivers may include a Windows keyboard driver 20 and
a Windows mouse drive 21. These drivers manage the overhead of
manipulating mouse pointers, clicking the mouse buttons and entering
information on the keyboard. User interface events such as mouse events
and keyboard events are transmitted to a Windows user module 22.
As shown in FIG. 2, the main operating module 23 of the computer use meter
is identified as RITA and operates within its own window. The Windows user
module 22 generates application-specific messages such as WM.sub.--
CREATE, WM.sub.-- SYSCOMMAND, WM.sub.-- COMMAND, WM.sub.--
QUERYENDSESSION, and WM.sub.-- DESTROY. These messages are intended only
for specific main window application modules. RITA module 23 monitors
these messages for commands invoking the RITA application main window 23.
After being invoked, the HOOKS DLL module 24 operates to provide messages
to the RITA main window module 23. During operation of the personal
computer, the Windows user module 22 generates Windows call-back or "CBT"
events. Certain specific events are intercepted by the HOOKS DLL module
and transmitted to the RITA main module 23. Upon receipt of such messages,
the RITA main window sends certain messages to the RITA logging subsystem
24. In addition, the RITA main window 23 transmits program run time
parameters to the RITA INI file subsystem 25. The RITA INI file subsystem
will communicate with a panelist information dialogue box 26 for the
purposes of panelist name collection. The panelist information dialogue
box 26 will also transmit an active user name to the RITA main window 23.
The active user name is utilized in connection with the logging operation.
FIG. 3 illustrates transmission of Windows CBT events and Windows user
defined messages. Upon the Windows user module 22 generating an
HCBT.sub.-- ACTIVATE message, such message is recognized and registered by
the HOOKS DLL module. The HCBT.sub.-- ACTIVATE indicates identification of
the currently active window and the window about to be activated. Upon
receipt of the HCBT.sub.-- ACTIVATE, the HOOKS DLL module will post a
WH.sub.-- HCBT.sub.-- ACTIVATE message to indicate the handle for logging
by RITA of the window being activated. A handle is an integer, uniquely
identifying an active process in Microsoft Windows. Upon interception of
an HCBT.sub.-- CREATEWND message indicating the handle of the newly
created window from the Windows user module 22, the HOOKS DLL module 24
will post a WH.sub.-- HCBT.sub.-- CREATEWND to RITA for logging. Upon
interception of an HCBT.sub.-- DESTROYWND message from the Windows user
module 22 indicating the handle of a window about to be destroyed, the
HOOKS DLL module 24 will send a WH.sub.-- HCBT.sub.-- DESTROYWND message
to the RITA main window 23 for logging. Upon interception of an
HCBT.sub.-- CBT.sub.-- MINMAX message from the Windows user module
indicating the handle of a window about to be minimized or maximized, the
HOOKS DLL module 24 will post a WH.sub.-- HCBT.sub.-- CBTMINMAX message to
the RITA main window 23. The HCBT.sub.-- CBTMINMAX message may take
several forms, each being operation codes which will indicate if the
window is being minimized, maximized, restored, etc. Depending on the
operation code intercepted, the HOOKS DLL will post one of several
messages to RITA for logging, including an SW.sub.-- HIDE, SW.sub.--
SHOWMINIMIZED, SW.sub.-- MINIMIZE, SW.sub.-- RESTORE, SW.sub.-- MAXIMIZE,
SW.sub.-- NORMAL or SW.sub.-- SHOW.
FIG. 4 illustrates the RITA main window 23 response to Windows application
messages generated by the window user module. Block 27 illustrates the
RITA response to a WM.sub.-- CREATE message. A WM.sub.-- CREATE message
indicates that the application is starting. The response will be to prompt
the panelist ID message (if this is the first time the application is
run), to log a METER operation code entry, to log a PANEL operation code
entry, to log a START operation code entry, and to log one or more RUNNG
tasks entries. The prompt for panelist ID allows the panelist to uniquely
identify him/herself with a predetermine seven digit number. Each event
that is logged requires construction of a log entry as described below.
Each entry will include an operation code indicative of the type of event
being logged. RUNNG tasks entries are logged for any Windows application
which is already running when the computer use meter is invoked through
the main RITA module. Block 28 indicates the RITA response to a WM.sub.--
SYSCOMMAND message. A WM.sub.-- SYSCOMMAND message indicates that the user
has activated the HTI icon from the Windows desktop. The response will be
to change the user dialogue and to log a PANEL operation code entry.
Changing the user dialogue affects the user name stored in subsequent
logged records. Block 29 indicates the RITA response to a WM.sub.--
QUERYENDSESSION message. A WM.sub.-- QUERYENDSESSION message indicates
that Windows is shutting down, but first passing control to RITA so that
it may close itself cleanly. The response will be to log a STOPM operation
code entry and to flush the log. Block 30 illustrates the RITA response to
the WM.sub.-- DESTROY message generated by the user module. A WM.sub.--
DESTROY message indicates the user explicitly closed RITA. The response is
to log a STOPM operation code entry and to flush the log. The log flush
operation constitutes writing to the log file any records that are still
held in memory.
The log file may use a fixed column format to store data. The first column
may contain | | |