U.S. patent application number 12/603888 was filed with the patent office on 2010-02-18 for system and method for tracking user activity related to network resources using a browser.
Invention is credited to Robert P. Morris.
Application Number | 20100042718 12/603888 |
Document ID | / |
Family ID | 37084290 |
Filed Date | 2010-02-18 |
United States Patent
Application |
20100042718 |
Kind Code |
A1 |
Morris; Robert P. |
February 18, 2010 |
System And Method For Tracking User Activity Related To Network
Resources Using A Browser
Abstract
A method and system are described for tracking user activity
related to network resources using a browser. According to an
exemplary embodiment, a user-initiated activity related to a
network resource is detected in the browser. The detected
user-initiated activity is associated with the network resource to
form an activity-resource pair. The activity-resource pair is
associated with a record in a data store related to the detected
activity or the network resource. By associating the
activity-resource pair with records in the data store that relate
to the network resource and/or the detected activity, the
information in the data store can be used to add context to and
provide insight into users' browsing activities.
Inventors: |
Morris; Robert P.; (Raleigh,
NC) |
Correspondence
Address: |
SCENERA RESEARCH, LLC
111 Corning Road, Suite 220
Cary
NC
27518
US
|
Family ID: |
37084290 |
Appl. No.: |
12/603888 |
Filed: |
October 22, 2009 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11104972 |
Apr 12, 2005 |
7631007 |
|
|
12603888 |
|
|
|
|
Current U.S.
Class: |
709/224 ;
707/E17.044; 709/203 |
Current CPC
Class: |
Y10S 707/99933 20130101;
G06Q 10/063 20130101; Y10S 707/99938 20130101; Y10S 707/99932
20130101; G06F 16/958 20190101; Y10S 707/99939 20130101; Y10S
707/99943 20130101 |
Class at
Publication: |
709/224 ;
707/100; 707/200; 707/E17.044; 709/203 |
International
Class: |
G06F 15/16 20060101
G06F015/16; G06F 17/30 20060101 G06F017/30 |
Claims
1. A method for tracking user activity information related to
network resources using a browser, comprising: detecting, in a
browser, a user-initiated activity related to a network resource;
associating the detected user-initiated activity with the network
resource to form an activity-resource pair; and associating the
activity-resource pair with a record in a data store related to at
least one of the detected activity and the network resource.
2. The method of claim 1 further comprising: updating at least one
of a history log, summary statistics, and session statistics
associated with the data store record.
3. The method of claim 1 further comprising: monitoring and
recording user activities related to the network resource,
including at least one of a history of those activities, a time
that the activities start, stop, or have elapsed, and concurrent
activities, including at least one of activities occurring in a
different browser window or tab and activities that occur
sequentially.
4. The method of claim 1 further comprising: reporting at least a
portion of data derived from or included in the data store to a
server on a network to provide contextual information for searches
related to the activity or the network resource.
5. The method of claim 1 further comprising: reporting at least a
portion of data derived from or included in the data store to a
server on a network for combining the portion of data with data of
multiple users for performing marketing analysis related to the
activity or the network resource.
6. The method of claim 1 wherein the step of detecting the
user-initiated activity further comprises: determining an activity
ID that identifies the user-initiated event.
7. The method of claim 6 further comprising: including in the data
store record a universal resource indicator (URI) field for storing
a URI corresponding to the network resource, an activity ID field
for storing the activity ID that identifies the user-initiated
activity, a history reference field for storing a reference to a
history log associated with the activity and the network resource,
a summary statistics field for storing usage statistics related to
the network resource and the activity over a lifetime of the use of
the activity or network resource, and a session statistics field
for storing usage statistics related to the network resource and
the activity that occurred during a current browser session.
8. The method of claim 6 further comprising: providing the browser
with a context/activity monitor for associating the activity ID of
the detected user-initiated activity with the network resource to
form the activity-resource pair and for associating the
activity-resource pair with the data store record.
9. The method of claim 8 further comprising: providing the browser
with an application program interface (API) that allows the
context/activity monitor to detect the user-initiated activity by
subscribing to a browser event corresponding to the activity.
10. The method of claim 9 further comprising: in response to the
context/activity monitor receiving an event corresponding to the
user-initiated activity, determining the identity of the activity
and the network resource associated with the event.
11. The method of claim 10 further comprising: determining a result
of the detected user-initiated activity related to the network
resource associated the event.
12. The method of claim 8 further comprising: configuring the
context/activity monitor to act as an activity interceptor that
detects a browser event corresponding to the user-initiated
activity, determines the network resource by identifying active
browser content through determining a browser page or page element
having focus, and assigns the activity ID to the detected
activity.
13. The method of claim 1 further comprising: configuring a browser
code module tasked with performing the user-initiated activity to
determine the network resource by identifying active browser
content through determining a browser page or page element having
focus, associate the detected user-initiated activity with the
network resource to form an activity-resource pair, and associate
the activity-resource pair with the data store record.
14. A client device for tracking user activity information related
to network resources, comprising: a context/activity monitor
associated with a browser, the browser configured to provide access
to a network resource, the context activity monitor configured to
detect a user-initiated activity related to the network resource;
the context/activity monitor further configured to associate the
user-initiated activity with the network resource to form an
activity-resource pair; and the context/activity monitor further
configured to associate the activity-resource pair with a record
included in the data store related to network resource or the
detected activity.
15. The client device of claim 14 wherein the context/activity
monitor is configured to update one or more of a history log,
summary statistics, and session statistics associated with the data
store record.
16. The client device of claim 14 wherein the browser includes one
or more content handlers for parsing and displaying data associated
with the network resource.
17. The client device of claim 14 wherein the context/activity
monitor is configured to monitor and record at least one of user
activities related to the network resource, including at least one
of a history of the activities and a time that the activities
start, stop, or have elapsed, and concurrent user activities,
including at least one of activities occurring in a browser window
or tab not directly associated with the network resource and
activities that occur in a sequence with the detected
user-initiated activity.
18. The client device of claim 17 wherein the context/activity
monitor is configured to determine an activity ID that identifies
the user-initiated activity and to associate the activity ID with
the network resource to form the activity-resource pair.
19. The client device of claim 18 wherein the browser includes an
API that allows the context/activity monitor to detect the
user-initiated activity by subscribing to a browser event
corresponding to the activity.
20. The client device of claim 18 wherein in response to the
context/activity monitor receiving an event, determining an
identity of the user-initiated activity and the network resource
associated with the event.
21. The client device of claim 20, wherein the event is associated
with a result of the detected user-initiated activity related to
the network resource.
22. The client device of claim 18 wherein the context/activity
monitor is configured to act as an activity interceptor that
detects user-initiated activity, determines the network resource by
identifying active browser content through determining a browser
page or page element having focus, and assigns the activity ID to
the detected activity.
23. The client device of claim 14 wherein the browser further
includes: a content manager for routing content including the
network resource and associated metadata to appropriate content
handlers; one or more content monitors coupled between the content
manager and corresponding content handlers for determining content
and contextual data related to the network resources; and a context
monitor coupled to the content manager and/or the content monitors
that receives data from the content manager and/or content monitors
for determining contextual data from relationships among the
content, the metadata, and the network resource.
24. The client device of claim 23 wherein the contextual
relationships related to the network resource include any
combination of: other resources received in the browser before or
after the network resource is received, attributes of other
resources arranged near the network resource in the browser,
attributes of mark-up language tags that include the network
resource, attributes of links to additional metadata associated
with the network resource, attributes of a user of the browser,
identifiers of other resources linked to the network resource, and
information indicating that content information related to the
network resource comes from a title or heading in the browser.
25. The client device of claim 23 wherein the content monitor is
configured to create an index for indexing content and/or
contextual information related to the network resource and to
transmit the index to a server on the network.
26. The client device of claim 25 wherein user activity and the
contextual information are sent to the server along with the index
to provide contextual searches related to the activity or the
network resource.
27. The client device of claim 25 wherein user activity and the
contextual information are sent to the server along with the index
and are combined with the context and activity data of multiple
users for performing marketing analysis related to the activity or
the network resource.
28. A computer-readable medium containing programming instructions
for, when executed by a processor, tracking user activity
information in a browser, the program instructions for,: detecting
in the browser a user-initiated activity related to a network
resource; associating the detected user-initiated activity with the
network resource to form an activity-resource pair; and associating
the activity-resource pair with a record in a data store related to
the detected activity or the network resource.
29. The computer-readable medium of claim 28 further comprising
program instructions for: updating one or more of a history log,
summary statistics, and session statistics associated with the data
store record.
30. The computer-readable medium of claim 28 further comprising
program instructions for: monitoring and recording user activities
related to the network resource, including at least one of a
history of those activities, a time that the activities start,
stop, or have elapsed, and concurrent activities, including at
least one of activities occurring in a different browser window or
tab and activities that occur sequentially.
31. The computer-readable medium of claim 28 further comprising
program instructions for: reporting at least a portion of data
derived from or included in the data store to a server on a network
to provide contextual information for searches related to the
activity or the network resource.
32. The computer-readable medium of claim 28 further comprising
program instructions for: reporting at least a portion of data
derived from or included in the data store to a server on a network
for combining the portion of data with data of multiple users for
performing marketing analysis related to the activity or the
network resource.
33. The computer-readable medium of claim 28 wherein the program
instructions for detecting the user-initiated activity further
comprise instructions for: determining an activity ID that
identifies the user-initiated event.
34. The computer-readable medium of claim 33 further comprising
program instructions for: including in the data store record a
universal resource indicator (URI) field for storing a URI
corresponding to the network resource, an activity ID field for
storing the activity ID that identifies the user-initiated
activity, a history reference field for storing a reference to a
history log associated with the activity the network resource, a
summary statistics field for storing usage statistics related to
the network resource and the activity over a lifetime of the use of
the activity or network resource, and a session statistics field
for storing usage statistics related to the network resource and
the activity that occurred during a current browser session.
35. The computer-readable medium of claim 33 further comprising
program instructions for: providing the browser with a
context/activity monitor for associating the activity ID of the
detected user-initiated activity with the network resource to form
the activity-resource pair and for associating the
activity-resource pair with the data store record.
36. The computer-readable medium of claim 35 further comprising
program instructions for: providing the browser with an application
program interface (API) that allows the context/activity monitor to
detect the user-initiated activity by subscribing to a browser
event corresponding to the activity.
37. The computer-readable medium of claim 36 further comprising
program instructions for: in response to the context/activity
monitor receiving an event, determining an identity of the
user-initiated activity and the network resource corresponding to
the event.
38. The computer-readable medium of claim 37 further comprising
program instructions for: determining a result of the detected
user-initiated activity related to the network resource
corresponding to the event.
39. The computer-readable medium of claim 35 further comprising
program instructions for: configuring the context/activity monitor
to act as an activity interceptor that detects a browser event
corresponding to the user-initiated activity, determines the
network resource by identifying active browser content through
determining a browser page or page element having focus, and
assigns the activity ID to the detected activity.
40. The computer-readable medium of claim 28 further comprising
program instructions for: configuring a browser code module tasked
with performing the user-initiated activity to determine the
network resource by identifying active browser content through
determining a browser page or page element having focus, associate
the detected user-initiated activity with the network resource to
form an activity-resource pair, and associate the activity-resource
pair with the data store record.
Description
RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 11/104,972 titled, "SYSTEM AND METHOD FOR
TRACKING USER ACTIVITY RELATED TO NETWORK RESOURCES USING A
BROWSER," filed Apr. 12, 2005, which is related to co-pending U.S.
patent application Ser. No. 11/022,133 (266/3326P) entitled "System
and Method for Generating a Search Index and Executing a
Context-Sensitive Search," filed on Dec. 21, 2004, both commonly
owned with this application, the entire disclosure of which is here
incorporated by reference.
TECHNICAL FIELD
[0002] The present invention relates to tracking user activity
during browsing, and more particularly to a system and method for
tracking user activity related to network resources using a
browser.
BACKGROUND
[0003] Methods for gathering usage statistics in document retrieval
and browsing are well-known. A common scenario is for site owners,
such as online retailers and online search services, to collect
large amounts of information about user browsing activity. Typical
solutions for analyzing browser session activity on a site are
server-based. During a session between a user's browser and a
server, the browser submits requests to the server to access
content of a site, and the server may record each of the requests
in some type of log. Each browser of a site is typically assigned
an electronic identifier that permits the server to record the
pages and links that a browser visits in the log. Site owners and
advertisers may then use the visitor identification information to
analyze usage activity of the site.
[0004] Another method for analyzing site usage data involves the
use of cookies. A cookie is typically set on the user's computer by
the site application while serving pages to the user's browser. The
browser may then convey the cookie used to identify the user
session as well as other information to an analytics engine upon
the user making subsequent requests to the site.
[0005] Using the above methods, sites can currently count page
hits, can classify hits from specific IP addresses or IP subnets,
map addresses or subnets to geographic locales, and can count the
rate of hits over given time intervals etc. For a particular site
or family of sites, servers can track requests from a particular
browser or address to detect browsing patterns. However, cookie
blocking, cookie deletion, and changing IP addresses make it
difficult for these methods to collect consistent and comprehensive
data.
[0006] These methods have other disadvantages as well. For example,
server gathered statistics encompass only a small slice of a user's
actual behavior. The statistics are often specific to the context
of the sites gathering the data and are thus not useful outside of
the particular context of the site. Further, combining data
gathered from several servers is difficult given that identifying
users is often difficult due to cookie blocking, anti-spyware, and
other privacy mechanisms.
[0007] Accordingly, what is needed is an improved system and method
for tracking user activity related to network resources during
browsing. The system and method should be capable of tracking both
user-initiated activities related to network resources in the
browser as well as any corresponding results received by the
browser as a result of the activities that are not accessible by
servers.
SUMMARY
[0008] A method and system are described for tracking user activity
related to network resources using a browser. According to an
exemplary embodiment, a user-initiated activity related to a
network resource is detected in the browser. The detected
user-initiated activity is associated with the network resource to
form an activity-resource pair. The activity-resource pair is
associated with a record in a data store related to the detected
activity or the network resource. According to another exemplary
embodiment, a client device is described for tracking user activity
information related to network resources. The client device
includes a browser for providing access to a network resource. A
context/activity monitor is included in the browser to detect a
user-initiated activity related to the network resource and for
associating the user-initiated activity with the network resource
to form an activity-resource pair. The context/activity monitor is
configured to associate the activity-resource pair with a record
included in the data store related to network resource or the
detected activity.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] FIG. 1 is a block diagram illustrating one embodiment of a
system for monitoring and recording content and contextual
information related to network resources using a browser.
[0010] FIG. 2 depicts an arrangement of a preferred embodiment for
tracking user activity related to network resources and for
associating that activity with the recorded content/contextual
information for those resources.
[0011] FIG. 3 is a flow diagram illustrating a process performed by
the arrangement depicted in FIG. 2 in accordance with a preferred
embodiment of the present invention.
[0012] FIG. 4 is diagram illustrating an exemplary activity record
included in an activity data store used in conjunction with the
arrangement shown in FIG. 2.
DETAILED DESCRIPTION
[0013] The present invention relates to tracking user activity
information related to network resources using a browser. The
following description is presented to enable one of ordinary skill
in the art to make and use the invention and is provided in the
context of a patent application and its requirements. Various
modifications to the preferred embodiments and the generic
principles and features described herein will be readily apparent
to those skilled in the art. Thus, the present invention is not
intended to be limited to the embodiments shown, but is to be
accorded the widest scope consistent with the principles and
features described herein.
[0014] The present invention provides a system and method for
tracking user activity information related to network resources
during browsing. Rather than tracking user statistics from a
server, the present invention provides browsers with components for
detecting and tracking user-initiated activity in the browser as
well as results of those activities that are not detectable through
monitoring requests issued by the browser to a particular site or
family of sites. The user context and activity data may then be
sent to a server for uses including customizing searches and
ranking search results initiated by the user, and combining the
context and activity data of multiple users for marketing
analysis.
[0015] FIG. 1 is a block diagram illustrating one embodiment of a
system 100 for monitoring and recording content and contextual
information related to network resources using a browser. The
system 100 includes a client device 102 operatively coupled to a
server 110 over a network, such as the Internet. The client device
102 may include a personal computer (PC), a personal digital
assistant (PDA), a notebook, or any other device that includes a
processor 104 capable of running a browser 106 that provides access
to sites on the network via a network connection 108. The server
110 typically serves a site and is accessible by the browser 106
over the network, e.g., via a uniform resource locator (URL). The
server 110 may comprise any type of computer or system with a
processor 112 and a network connection 114.
[0016] During a session between the browser 106 and the server 110,
user-initiated activities may cause the browser 106 to submit
requests to the server 110 to access the content of a site. In
response, the browser 106 receives network resources (or objects)
from the server 110, which may include pages, music, text and
graphic files, applets, and so on. Network resources available via
the Internet are assigned a unique name referred to as a uniform
resource identifier (URI). A URL is a particular type of URI that
specifies a location of a resource on the network.
[0017] The browser 106 includes a conventional set of content
handlers 120A through 120D (collectively referred to as content
handlers 120) for parsing the data and, if necessary, presenting
the various types of objects that the browser 106 receives, and a
content manager 117 for routing incoming data to the correct
content handler. For example, content handler 120A may be
responsible for processing and displaying text and HTML objects;
content handler 120B may be responsible for processing audio/midi
objects; content handler 120C may be responsible for processing and
displaying image objects; and content handler 120D may be
responsible for processing video objects.
[0018] According to the preferred embodiment of the present
invention, the browser 106 is further provided with components for
enabling the browser 106 to index content retrieved by the browser
106 and to gather contextual information concerning the content
that is not inherent in the content itself. The contextual
information can be classified into two categories, user provided
information which is information the user willingly provides about
him/her self such as in a profile or preferences, and information
detected based on the user's activities.
[0019] In one embodiment of the invention, the additional
components added to the browser 106 for client-side gathering and
indexing of content and contextual information related to network
resources include a context monitor 124 coupled to the content
manager 117, a set of one or more content monitors 118A through
118D (collectively referred to as content monitors 118) coupled
between the content manager 117 and corresponding content handlers
120A, 120B, 120C, and 120D, and a search engine agent 122 coupled
to the content monitors 118 for communicating with applications
and/or servers that use the indexed content and contextual
information.
[0020] According to the exemplary embodiment, the content monitors
118 and context monitor 124 parse the objects received by the
browser 106 for both content information and contextual information
associated with each object as described above. The content manager
117 is responsible for routing content to the appropriate content
handlers 120 through any intervening content monitors 118 that
record and index the content and any associated metadata from the
received objects/pages. As used herein, content information
includes information that is inherent to (or is directly related
to) the object itself. Content information may include information
about the object, such as its mime type (e.g., PDF, JPEG, or HTML),
name, title, author, creation date, and subject of the object, and
metadata associated with the object.
[0021] The context monitor 124 receives data from the content
manager 117 and/or content monitors 118 and determines further
contextual information by discovering the relationships among the
content, object contextual information, and the objects handled by
the content monitors 118. For example, for an HTML page the context
monitor develops a page context 126 using information concerning
page format and structure determining by the txt/html content
monitor 118A to discover context concerning the objects included in
or referred to by the page. For example, each tag in an HTML page
contains contextual information 128 about its contents and the data
arranged or received in the browser 106 before and/or after it.
[0022] Where the content monitors 118 gather and index the various
content and associated metadata in the data stream that is routed
from the content manager 117 to the corresponding content handlers
120, the context monitor 124 determines contextual relationships
that exist among the various pieces of content included in the data
stream. In contrast to content information, contextual information
includes information that is not inherent to (or is secondary,
additional or peripheral to) the object. Examples of contextual
information related to a received object include objects received
in the browser 106 before or after the object is received,
attributes of other objects arranged near the received object in
the browser 106, attributes of mark-up language tags that include
the object, attributes of links to additional metadata associated
with the object, attributes of a user of the browser 106, such as
interests and other non-personal information, identifiers of other
objects linked to the received object, and information indicating
that the object's content information comes from a title or heading
in the browser 106. In a preferred embodiment, an index may be
created in the client device 102 for indexing the content and/or
contextual information, and can either be stored in the client
device 102 or transferred to server 110.
[0023] FIG. 2 depicts an arrangement 200 of a preferred embodiment
for tracking user activity related to network resources and for
associating that activity with the indexed content/contextual
information for those resources. For clarity, the server 110 and
database 123 of the system 100 shown in FIG. 1 are not depicted in
the arrangement 200, and only a single content monitor/content
handler 118/120 pair is depicted in the browser 106. Nevertheless,
it will be understood that the absent components can be included in
the arrangement 200, and function as described above in conjunction
with the system 100.
[0024] According to the preferred embodiment, the browser 106 is
provided with a user context/activity monitor 202 for monitoring
and recording user activity taken with respect a network resource
included or referred to in the browser 106. As used herein, the
term "user activity" may include both user input and user-initiated
activities in the browser 106 and the corresponding results of
those inputs/activities. The context/activity monitor 202 is
configured to gather and record activities related to the network
resource including a history of the activities and the times that
the activities start, stop, or have elapsed. The context/activity
monitor 202 is further configured to record concurrent activities,
such as activities occurring in a browser window or tab not
directly associated with the network resource, and activities that
occur in a sequence with the detected user-initiated activity.
Thus, the context/activity monitor 202 monitors user activity
within the browser 106 and associates the activity with the network
resource and any resulting content. In the preferred embodiment the
context/activity 202 monitor interacts with the context monitor 124
to record user activity and to relate it to the content and
contextual information discovered by the content monitor 118 and
context monitor 124 in order to discover further contextual
information.
[0025] The user activity, i.e., the user's browser input collected
by the user context/activity monitor 202, and the
content/contextual information gathered and indexed using the
content manager 117, the context monitor 124, and the content
monitors 118 cannot be discovered by servers. For example, assume
that the user of client device 102 is browsing images. The server
110 can detect when a particular image is requested and retrieved
by the browser 106, but the server 106 does not know whether the
user instructs the browser 106 to save the image to a disk, or if
the user right clicks on the image displayed in the browser 106 and
selects an option "send to" from a menu to e-mail the image.
Monitoring such user activity and associating the activity with the
image can be used to determine whether certain type of images have
more significance than others to that user. The same goes for other
types of content, such as movies and pages. The context/activity
monitor 202 can be used to determine not only the page being
viewed, but also where the user clicks within the page, and if it
is a long page, where is the user spends the majority of the time.
By discovering this contextual information in the browser using the
context/activity monitor 202 and the content monitors 118, the user
activity information is gathered on the client-side, and then made
available to the server 110 to be used for intelligent uses, such
as context-sensitive searches or for marketing purposes.
[0026] In the case of searches performed by the server 110, the
user activity and indexed content and contextual information can be
used during the searches to provide contextual searches and to
improve search results. The user activity and indexed content and
contextual information may also be sent to a server and combined
with the context and activity data of multiple users for marketing
or group analysis. Whether or not a user of client device 102
generates a search index, the user may generate a context-sensitive
search by sending search criteria to the server 110 over a network
115, such as the Internet. The server 110 receives the search
criteria through a network connection 114. The search criteria
typically includes one or more keywords that, in the case of a
context-sensitive search, may include contextual information.
Examples of contextual information are presented above.
[0027] The server 110 may then search its databases or indexes
(which may be located on the client device 102) for one or more
objects that match the search criteria. The results of the search
(identifiers of the one or more matching objects and/or the objects
themselves) may then be transmitted to the user through the client
device 102.
[0028] Server 110 may include a processor 112 running a search
engine 116 and interfacing an index engine 119, a context engine
125, and a sort/rank engine 129. The server 110 may include a
database 123, or the database 123 may be external to the server
110, or located in the client device 102. Database 123 includes
keyword indices 121 and context tables 127.
[0029] To rank the results of the search, in another embodiment of
the invention, the server 110, prior to transmission to the user,
may receive ranking criteria from the user or apply customized
ranking criteria to the search results. Examples of ranking
criteria may include the number of accesses to each object by users
with certain criteria (for example, by users living in the same
area as the requesting user, or users who share the same interests
as the requesting user where the requesting user's interests are
determined based on the user's past behavior detected in the
browser, or users who download predominantly JPEG files), or the
number of users having accessed the object in the past (which may
be different from the number of links to a site with the keyword),
and so on. Ranking is typically done by the server 110, but may be
done by the client device 102.
[0030] FIG. 3 is a flow diagram illustrating a process performed by
the arrangement 200 depicted in FIG. 2 in accordance with a
preferred embodiment of the present invention. The process begins
in step 300 by detecting in the browser a user-initiated activity
related to a network resource. In a preferred embodiment, each
detected activity is assigned an activity ID, and any identifiers,
such as URIs or URLs, associated with the network resource and
results of the activity are determined. In step 302, the detected
user-initiated activity is associated with the network resource to
form an activity-resource pair. For example, the context/activity
monitor 202 can associate a URI/URL identifying the network
resource with the activity ID of the detected activity, creating a
URL/activity ID pair(s).
[0031] In step 304, the activity-resource pair is associated with a
record in a data store related to the detected activity or the
network resource. For example, the URL/activity ID pair(s)
described above can be stored in an activity record(s) 210 of an
activity data store 208, as shown in FIG. 2. The activity/context
monitor 202 can associate the URL/activity ID pair with records in
the activity data store 208 that relate to the network resource or
to the detected activity. By separately associating the
activity-resource pair with records in the data store 208 that
relate to the network resource and/or the detected activity, the
information in the data store 208 can be used to add context to
users' browsing activities that is unavailable with conventional
browser technology. Moreover, the information in the data store 208
can be combined with the indexed content and contextual information
provided by the content monitor 118 and context monitor 124 and
then mined to provide further insight in users' browsing
activities.
[0032] FIG. 4 is diagram illustrating an exemplary activity record
210 included in the activity data store 208. The activity record
210 can include a URL/URI field 400, an activity ID field 402, a
history reference field 404, a summary statistics field 406, and a
session statistics field 408. The URL/URI field 400 contains the
URL or URI of the network resource. The activity ID field 402
contains the activity ID that identifies the user-initiated
activity. The history reference field 404 contains a reference to a
history log associated with the URL or URI and the detected
activity. The history log can be stored in a separate table of the
data store 208. The summary statistics field 406 contains usage
statistics related to the network resource and the activity over a
user-definable lifetime of use of resource or detection of the
activity. The session statistics field 408 contains usage
statistics associated with the network resource or activity that
occurred during a most-recent or current browser session. The
summary statistics field 406 and the session statistics field 408
are preferably implemented as several fields, rather than a single
field.
[0033] The activity data store 208 may be partitioned to include an
activity index portion and an activity history portion. The
context/activity monitor 202 can be configured to store indexed
content and context data related to a network resource in the
activity index portion, and to log individual activities related to
the network resource in the activity history portion of the data
store 208. Summary and session statistics can be stored in the
activity index portion, but optionally can be calculated on demand
from the data in the activity history portion. A combination of
these methods can be used to limit the size of the history that
needs to be maintained.
[0034] According to an exemplary embodiment, the context/activity
monitor 202 can update the history log, summary statistics, and
session statistics associated with the activity record 210. The
context/activity monitor 202 can also report the history and/or
statistics to the server 110 in a case of a search engine, as
requested or configured. In the preferred embodiment updating and
reporting are performed through the context monitor 124.
[0035] The functionality of the context/activity monitor 202 may be
implemented in several ways. Referring again to FIG. 2, in a
preferred embodiment, the browser user interface (UI) 204 provides
a subscription interface that allows the context/activity monitor
202 to detect user-initiated activities by subscribing to browser
events that correspond to the activities. In this embodiment, the
browser UI 204 is responsible for sending events to browser
component subscribers at appropriate times. The browser UI 204 can
be used in conjunction with a library/input subsystem (not shown)
of an operating system of the client device 102 to abstract the
user-initiated activities into button events, such as a close
window command, a select menu item, a scroll command, a save as
command, a print command, and the like, and to send these events to
subscribers such as the user context/activity monitor 202. The
browser application also invokes code that implements the requested
activities.
[0036] Each event processed by the context/activity monitor 202
provides the context/activity monitor 202 with information related
to the user-initiated activity and the network resource (e.g., the
URL/URI). The activity ID (that identifies the activity) can either
be provided to the context/activity monitor 202 as data associated
with each event data provided by the browser UI 204 or can be
assigned by the context/activity monitor 202 based on data
associated with each event. In addition, each event can provide
other parameters and/or information related to a result of the
activity. The context/activity monitor 202 processes the
information associated with each event and associates the URL/URI
of the network resource, and optionally the content/context related
to the network resource, with the activity ID of the command that
the browser 106 invoked to form the activity-resource pair. As the
context/activity monitor 202 processes each event, the activity
record 210 is stored/updated in the data store 208 and statistics
are generated as described below.
[0037] The context/activity monitor 202, in conjunction with the
content monitor 118, and context monitor 124, can also record other
information depending on the detected user-initiated activity. For
example, in the case of the user initiating a "send to" command,
the context/activity monitor 202 can record not only that an image
was sent to someone, but also to whom it was sent. Many
activities/commands have parameters, and the context/activity
monitor 202 from the received events can determine and record the
values of the parameters for a current activity. This type of
design would allow configuration settings in the browser to
determine which activities are to be tracked and for which
resources records are to be made. This implementation can require
the cooperation of the browser 106 and/or browser plug-in
developers to be implemented.
[0038] In a second embodiment, the context/activity monitor 202 can
be configured to act as an interceptor. The interceptor design
pattern is well-known in the art of programming with design
patterns, and is outside the scope of this disclosure. With such an
arrangement, the context/activity monitor 202 can be configured to
detect/intercept user-initiated activity from the browser UI 204.
The context/activity monitor 202, acting as an interceptor, can
determine the network resource(s) by identifying the active content
associated with the activity, and in particular, by determining the
page or page element having focus. The context/activity monitor 202
can then associate the detected activity(ies) with an identify of
the network resource to form the activity-resource pair. Depending
on the design of the browser 106, multiple interceptors may have to
be placed at more than one location in the browser architecture to
monitor all relevant data.
[0039] A final embodiment is one where the functionality of the
context/activity monitor 202 is tightly integrated into each piece
of code in the browser 106 through an API provided by the
context/activity monitor 202. This embodiment is similar to the
method many programs use to record data in an event log. That is,
various components must be instrumented to call the
context/activity monitor 202 directly to provide it with the
information it needs. While this embodiment is not a preferred
arrangement, as it requires that numerous portions of the browser
code be separately modified to instrument the monitoring function,
the arrangement can be used to perform the operations described
above.
[0040] Examples of the type of user activity that the user
context/activity monitor 202, in conjunction with the content
monitor 118 and context monitor 124, may be configured to track and
associate with network resources in accordance with a preferred
embodiment include the following: [0041] 1. For links (URLs):
[0042] a. Sequence of links followed (i.e. a link trail). [0043] b.
Was a link opened in new window/tab? [0044] c. Were link properties
viewed? [0045] d. Was a link copied, saved, or bookmarked? Objects
that are bookmarked including grouped or tabbed bookmarks (e.g.,
via MOZILLA and FIREFOX browsers) or objects that are viewed in a
group of tabs imply some relationship among the objects as far as
the user is concerned. The pattern and repetition of these
relationships detected over a group of users can indicate that the
objects should be returned together in a search or given similar
ranking. [0046] 2. For flash objects, determining whether the
object is: [0047] a. Zoomed; [0048] b. Played; [0049] c. Looped;
[0050] d. Rewound; or [0051] e. Printed [0052] 3. Pages viewed
concurrently in multiple windows and/or tabs. Note: this is dynamic
so views of a set of pages can be timed, intersections of such sets
can be taken to detect common pages among sets, etc. [0053] 4.
Bookmarks, including: a rate of change, folder structure and
content of the bookmarks. [0054] 5. To indicate a trust level for a
given site or page: [0055] a. Are cookies allowed? (persistently or
by session). What cookie, popup, scripting policies are enforced by
the browser on a per page or per domain basis? This type of data
can be used to lower the importance or rank of associated objects.
For example, images from a site where a high percentage of browsers
are set to block cookies or block images or animation are images
that users likely have low interest in. [0056] b. Are scripts
allowed? [0057] c. Are pop-ups allowed? [0058] d. Are ads blocked?
[0059] 6. For a given image, determining whether the image: [0060]
a. Was resized on the client; [0061] b. Was viewed separate from
its surrounding page; [0062] c. Was downloaded; [0063] d. Was
manipulated by plug-ins; [0064] e. Was sent via instant messaging
(IM) or emailed (to whom); [0065] f. Was set as background; [0066]
g. Properties were viewed. [0067] 7. For pages, determining: [0068]
a. How it was reached (typed in location bar, via a link,
back/forward button, bookmark, history, reloaded, etc.); [0069] b.
Whether it was loaded into a page editor; [0070] c. Whether the
page source was viewed and/or saved; [0071] d. Whether the page
metadata was viewed; [0072] e. Whether the page privacy policy was
viewed; [0073] f. Whether the page security was viewed; [0074] g.
Which links on a page were followed; [0075] h. What text searches
were executed on a page or across a set of pages; [0076] i. Text
that was zoomed; or [0077] j. Whether a page was cached for offline
use. [0078] 8. Objects edited. An edited object implies an object
that has been used. [0079] 9. Saved data for auto fill-in of form
pages, such as a username, a password, or an address. [0080] 10.
Files that are downloaded. When the user downloads an image from
the browser, this information is used as an indication that the
image has value to the user. When such activity is reported to a
server, counting these downloads across a number of users provides
data that can be used to value specific pictures and thus rank
them. Tracking the specific images downloaded by a specific user
enables a profile to be created which can predict the user's
interests. This information can be used in ranking search results
for the specific user. [0081] 11. Printed objects. Objects that the
user prints through the browser, such as pages, files, images,
portions of pages, and the like, can be identified and categorized.
[0082] 12. Objects emailed directly from the browser to another
user. [0083] 13. Separate pages/objects viewed simultaneously
(e.g., in multiple browser windows or tabs). Objects, such as
images, that are viewed in a group of tabs imply some relationship
among the images as far as the user is concerned. The pattern and
repetition of these relationships detected over a group of users
can indicate that they should be returned together in a search or
given a similar ranking.
[0084] In both sets of examples, data can be partitioned on a per
browser session basis (e.g. from invocation of the browser to the
close) or across an entire lifetime of browser use. Further the
data can be used across a group or population of users or can be
used to create a profile for specific users.
[0085] According to the preferred embodiment, a browser 106 is
provided for monitoring user activity and for providing additional
metadata about the content that is browsed by the browser. This
provides several advantages, especially if the record of the user
activity data gathered on the client device 102 is made available
to the server 110, as the server 110 is provided with a view of not
only what the user is browsing, but also what is being done with
the content once received using the browser. With conventional
server-side techniques, usage statistics gathering can be more
implicit and less complete, mostly tracking that a user has visited
a site and perhaps how the user navigated there. In addition, with
conventional techniques, the user activity data can be gathered
without knowing anything personal about the user, and/or can be
gathered without the user providing preference data in terms of
wants/needs and likes/dislikes. With the client-side techniques
described here, the activity data can be used with personal data
and preferences as well as other search filtering and ranking
techniques.
[0086] The following are examples of information where the user
activity data can be gathered in a more comprehensive manner than
can be gathered from a server or family of servers:
1. Browsing history and patterns across unrelated sites (i.e.,
sites that don't share usage statistics). This data allows one to
detect browsing patterns of individuals and populations. For
example, if it is detected that a significant number of users
purchase online prints after downloading and saving an image, a
site can react by making ordering of prints easy immediately after
an image download. Detecting a high rate for home printing for
certain types of images would allow a search engine to advertise
printing, framing, and services for searches that return similar
types of images. 2. Subjects of interest across unrelated sites.
The advantages of having this type of data are similar to those
describe in the paragraph above. 3. eCommerce activity across
unrelated sites, including responses to advertising across
unrelated sites. The record of user activity can track user
activity for any site visited, allowing for cross-site analysis
techniques to be applied. For example, browsers often have more
than one browser window open at a time. With the present invention,
it can be determined that visitors of AMAZON may be looking for the
same item on EBAY, which is determined by monitoring user activity,
which cannot be determined on the server-side. As another example,
if a commonly observed pattern among users is to buy a computer at
DELL, buy software at AMAZON, and buy peripherals at PCCONNECTION,
then three sites could be ranked high in the paid advertising for
searches related to PC's (e.g., "PC ratings" keyword search). The
three sites could also do cross promotion and share revenue.
[0087] A system and method for tracking user activity information
related to network resources using a browser has been disclosed.
The present invention has been described in accordance with the
embodiments shown, and one of ordinary skill in the art will
readily recognize that there could be variations to the
embodiments, and any variations would be within the spirit and
scope of the present invention. Accordingly, many modifications may
be made by one of ordinary skill in the art without departing from
the spirit and scope of the appended claims.
* * * * *