U.S. patent application number 15/821186 was filed with the patent office on 2018-04-05 for method and apparatus for remotely monitoring a social website.
The applicant listed for this patent is Seethroo. Invention is credited to Jason Frankovitz.
Application Number | 20180096070 15/821186 |
Document ID | / |
Family ID | 39464925 |
Filed Date | 2018-04-05 |
United States Patent
Application |
20180096070 |
Kind Code |
A1 |
Frankovitz; Jason |
April 5, 2018 |
Method And Apparatus For Remotely Monitoring A Social Website
Abstract
A computer method, apparatus, system and computer program
product for remotely monitoring a social website includes
monitoring user activity (events) and producing user activity data.
The resulting data may be processed separately from the social
website. The processed user activity data may be stored and
information indicative of the data may be reported. Monitoring user
activity may be in response to a call from a social website. Thus,
a plurality of websites may be monitored and data from these
websites may be normalized. Remotely monitoring a plurality of
social websites allows the invention system to identify
activity/data trends, such as individual or group user trends, or
larger societal trends identifiable across the plurality of
websites. The invention may monitor user activity in a
substantially real-time manner or alternatively may store
indicative user activity data for later processing. User activity
data may also be encrypted/decrypted and/or authenticated to ensure
data integrity.
Inventors: |
Frankovitz; Jason; (Los
Angeles, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Seethroo |
Los Angeles |
CA |
US |
|
|
Family ID: |
39464925 |
Appl. No.: |
15/821186 |
Filed: |
November 22, 2017 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11833018 |
Aug 2, 2007 |
9858341 |
|
|
15821186 |
|
|
|
|
60835257 |
Aug 2, 2006 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
H04L 43/00 20130101;
G06Q 10/10 20130101; G06F 16/951 20190101; H04L 67/025 20130101;
H04L 67/20 20130101; G06Q 30/02 20130101 |
International
Class: |
G06F 17/30 20060101
G06F017/30; G06Q 10/10 20060101 G06Q010/10; G06Q 30/02 20060101
G06Q030/02; H04L 12/26 20060101 H04L012/26; H04L 29/08 20060101
H04L029/08 |
Claims
1. A method to remotely monitor a social website, comprising:
monitoring user activity on a remote social website, resulting in
user activity data; processing the user activity data separate from
the social website; storing the processed user activity data; and
reporting information indicative of the processed user activity
data.
2. The method according to claim 1 wherein monitoring user activity
is in response to a call from the social website triggered by user
activity at the social website.
3. The method according to claim 2 wherein the call is an API
call.
4. The method according to claim 1 wherein monitoring includes
polling a monitoring service installed on the remote social website
periodically, aperiodically, or on an event driven basis.
5. The method according to claim 1 wherein the step of monitoring
effectively logs or records user activity.
6. The method according to claim 5 wherein user activity data is
represented in the form of a uniform resource locator (URL).
7. The method according to claim 1 wherein processing includes
parsing the user activity data from at least one social website and
normalizing the parsed user activity data.
8. The method according to claim 1 wherein storing includes storing
the processed results in a centralized, searchable data store.
9. The method according to claim 1 wherein processing includes
performing on-the-fly analysis of the user activity data.
10. The method according to claim 1 further including querying a
classification service (CS) prior to displaying a requested web
page at the social website, wherein the CS determines user target
information.
11. The method according to claim 1 wherein reporting includes
communicating the stored processed user activity data to a
third-party location.
12. The method according to claim 1 wherein monitoring includes
locally tracking and accumulating user activity at the social
website and communicating the resulting user activity data to a
classification service (CS), wherein the CS determines user target
information periodically, aperiodically, or on an event-driven
basis.
13. The method according to claim 1 wherein reporting includes
reporting user activity data represented by metadata.
14. The method according to claim 1 wherein reporting includes
generating a targeted advertisement based on user activity
data.
15. The method according to claim 1 wherein reporting includes
communicating data representative of user activity to an
advertisement server.
16. The method according to claim 1 wherein processing includes
processing user activity data in a substantially real-time
manner.
17. The method of claim 1 wherein the method remotely monitors a
plurality of social websites.
18. The method of claim 1 wherein the social website is a website
allowing use of tagging or bookmarking associated with website
content.
19. An apparatus to remotely monitor a social website, comprising:
a monitoring unit configured to monitor user activity on a remote
social website, resulting in user activity data; a processing unit
configured to process the user activity data separate from the
social website; a storage unit configured to store the processed
user activity data; and a reporting unit configured to report
information indicative of the processed user activity data.
20. The apparatus according to claim 19 wherein the monitoring unit
is configured to monitor user activity in response to a call from
the social web site triggered by user activity at the social
website.
21. The apparatus according to claim 20 wherein the call is an
Application Programming Interface (API) call.
22. The apparatus according to claim 19 wherein the monitoring unit
configured to poll a monitor service installed on the remote social
website on a periodic, aperiodic, or event-driven basis.
23. The apparatus according to claim 19 wherein monitoring unit
configured to effectively log or record user activity.
24. The apparatus according to claim 23 wherein user activity data
is represented in the form of a uniform resource locator (URL).
25. The apparatus according to claim 19 wherein the processing unit
is configured to parse the user activity data from at least one
social website and normalize the parsed user activity data.
26. The apparatus according to claim 19 wherein the storage unit is
configured to store the processed results in a centralized,
searchable data store.
27. The apparatus according to claim 19 wherein the processing unit
is configured to perform on-the-fly analysis of the user activity
data.
28. The apparatus according to claim 19 further including a
querying unit configured to query a classification service (CS)
prior to displaying a requested web page at the social website,
wherein the CS determines user target information.
29. The apparatus according to claim 19 wherein the reporting unit
is configured to communicate the stored processed user activity
data to a third-party location.
30. The apparatus according to claim 19 wherein the monitoring unit
is configured locally track and accumulate user activity at the
social website and communicate the user activity data to a
classification service (CS), wherein the CS determines user target
information on a periodic, aperiodic, or event-driven basis.
31. The apparatus according to claim 19 wherein the reporting unit
is configured to report user activity data represented by
metadata.
32. The apparatus according to claim 19 wherein the reporting unit
is configured to generate a targeted advertisement based on user
activity data.
33. The apparatus according to claim 19 wherein the reporting unit
is configured to report data representative of user activity to an
advertisement server.
34. The apparatus according to claim 19 wherein the processing unit
is configured to process user activity data in a substantially
real-time manner.
35. The apparatus according to claim 19 wherein the apparatus is
configured to remotely monitor a plurality of social websites.
36. The apparatus according to claim 19 wherein the social website
is a website where users associate a tag or bookmark with website
content.
37. A computer program product for remotely monitoring a social
website, the computer program product comprising a computer
readable medium having computer readable instructions stored
thereon, which, when loaded and executed by a processor, causes the
processor to: monitor user activity on a remote social website,
resulting in user activity data; process the user activity data
separate from the social website; store the processed user activity
data; and report information indicative of the processed user
activity data.
38. A system to remotely monitor a social website, comprising:
means for monitoring user activity on a remote social website,
resulting in user activity data; means for processing the user
activity data separate from the social website; means for storing
the processed user activity data; and means for reporting
information indicative of the processed user activity data.
Description
RELATED APPLICATION(S)
[0001] This application is a continuation of U.S. application Ser.
No. 11/833,018, filed Aug. 2, 2007, which claims the benefit of
U.S. Provisional Application No. 60/835,257, filed on Aug. 2, 2006.
The entire teachings of the above application(s) are incorporated
herein by reference.
BACKGROUND
[0002] The amount of time that consumers spend on the Internet has
steadily increased, as has the variety of web content, such that
the Internet is often the first place many people turn to when
searching for information, news, or entertainment. Consumers use a
variety of methods to search for desired information on the
Internet such as entering terms in a search engine. When a site of
interest is found, users often times will bookmark the site to
facilitate return visits. Over time, a user may develop a list of
relevant sites based on a number of different topics. However, the
constantly increasing number of websites has increased the time and
effort it takes to weed through relevant websites.
[0003] Social networks provide another method for consumers to more
quickly locate websites of interest. One example of social websites
are social bookmark sites where users share their bookmarks with
other users. The user will save bookmarks or tags associated with a
web page of interest at the bookmark website. Users may also "tag"
a website by associating a term or label with the website allowing
the categorization of different sites based on the tag.
[0004] Thus, rather than using a search engine where software alone
searches for a website based on content, social bookmark sites
effectively use human beings (i.e., the users themselves) to rate
and sort websites. Consequently, because a user found a webpage
relevant enough to bookmark or tag, websites based on a particular
topic are likely to be more relevant than software generated
searches. Users may search other users' bookmarks based on the
topic they are interested in to quickly locate relevant web
sites.
[0005] In addition, the very nature of a user's bookmarking and
tagging behavior inherently identifies a user's interest in
particular topics--much more than current methods which rely on
page content, often, a simple "keyword presence" or in some cases,
a more sophisticated linguistic processing of the page the user is
viewing. Furthermore, while the user may arrive at a page of
interest, most techniques do little to "know" the actual intentions
of the user. While there are some techniques that try to deduce
actual intention by performing tracking on a user's past behavior,
they do so on the basis of identifying which pages have already
been browsed by the user, thereby assuming that viewing a page
indicates significant personal interest in the topics on that page
where no such significant interest may actually exist.
SUMMARY
[0006] The present invention addresses the foregoing problems in
the prior art. In particular, the invention provides a method and
apparatus for remotely monitoring a social website for the purpose
of centrally aggregating activity.
[0007] In a preferred embodiment, the inventive computer
implemented method and system for remotely monitoring a social
website comprises (a) monitoring user activity on a remote social
web site that results in user activity data, (b) processing the
user activity data separately from the social website that is being
monitored, and (c) storing the processed user activity data.
Information indicative of the processed user activity data may be
reported.
[0008] In accordance with an example embodiment of the invention,
monitoring user activity may be a response to a call from the
social website triggered by user activity at the social website,
for example, an application programming interface (API) call.
Alternatively, the system may monitor user activity by polling a
monitoring service installed on the remote social website on a
periodic, aperiodic, or event driven basis. Monitoring may
effectively log or record user activity, and may be further
represented in the form of a uniform resource locator (URL).
[0009] In accordance with another example embodiment, the invention
may parse user activity data from a plurality of social websites
and then "normalize" or "standardize" the parsed user activity
data. The processed results may be stored in, for example, a
searchable data store such as a database. The results from the
plurality of websites may also be centralized in a common database.
Processing user activity data may include performing on-the-fly
analysis of the data or the data may be stored and analyzed at a
later time.
[0010] In another embodiment, a classification system (CS) may be
queried prior to displaying a requested web page at the social
website. The classification system determines user target
information as a part of the invention processing user activity
data. A report may be communicated to a remote third-party or back
to the social website, and may communicate the stored processed
user activity data.
[0011] In accordance with yet another example embodiment, user
activity may be monitored by locally tracking and accumulating user
activity at the social website. The accumulated activity may be
communicated to a classification service (CS), and may be performed
in a substantially real-time manner, or in a periodic, aperiodic,
or event driven basis. The classification system determines user
target information as a part of the invention processing user
activity data. The reported user activity data may be in the form
of metadata, and may take the form of, for example, user ID,
timestamp information, IP address, etc.
[0012] According to one example embodiment of the invention the
report may include communicating data representative of other user
activity to a third party, such as an advertisement server.
According to another embodiment, communicated information may be
encrypted prior to communicating or transmitting the data, and may
similarly be decrypted at a receiving location. In addition, or
alternatively, data may also be authenticated in order to, for
example, circumvent requests from unauthorized third parties.
[0013] In another embodiment, user activity data may be processed
in a substantially real-time manner. The invention may remotely
monitor a plurality of social websites, where, for example, tagging
all bookmarking website content by the user is allowed.
BRIEF DESCRIPTION OF THE DRAWINGS
[0014] The foregoing will be apparent from the following more
particular description of example embodiments, as illustrated in
the accompanying drawings in which like reference characters refer
to the same parts throughout the different views. The drawings are
not necessarily to scale, emphasis instead being placed upon
illustrating embodiments.
[0015] FIG. 1 is a flow diagram of an example embodiment of the
present invention.
[0016] FIG. 2 is a flow diagram of an alternative example
embodiment of the present invention.
[0017] FIG. 3 is a flow diagram of another alternative embodiment
of the present invention.
[0018] FIG. 4 is a block diagram illustrating different components
of a remote monitor system embodying the present invention.
[0019] FIG. 5 is a schematic illustration depicting dataflow
according to one embodiment of the present invention.
[0020] FIG. 6 is a schematic illustration depicting dataflow
according to an alternative embodiment of the present
invention.
[0021] FIG. 7 is a schematic view of a computer network environment
in which the principles of the invention may be implemented.
[0022] FIG. 8 is a block diagram of the internal structure of a
computer from the FIG. 7 computer network environment.
DETAILED DESCRIPTION
[0023] A description of example embodiments follows.
[0024] The teachings of all patents, published applications and
references cited herein are incorporated by reference in their
entirety.
[0025] A description of example embodiments of the invention
follows.
[0026] The popularity of social networks and social bookmarking
websites has grown dramatically such that they now number in the
hundreds. The higher the number and variety of users a social
bookmark site attracts, the more likely relevant websites will be
found. However, recent analysis of a number of social websites has
revealed that large number of bookmarks and tags are from a
disproportionately small number of highly active users, thus,
potentially skewing a particular website's effectiveness across the
general public. To make better use of social networks, it would be
useful to remotely monitor and centrally aggregate social websites
to provide a larger number and variety of user bookmarks and tags
from which to derive and analyze user activity thereby improving
trend identification and targeting advertisements.
[0027] A user's bookmark and tag information may be valuable as
market research data. For example, a user who has bookmarked or
tagged digital photography sites would be of interest to
photographic equipment suppliers. Furthermore, as discussed above,
aggregating user activity data across the large number of social
websites would facilitate the identification of user and societal
trends. For example, if webpages associated with the term "water
parks" are bookmarked/tagged at a high frequency, ads displayed to
users with those bookmarks could command an additional cost
premium.
[0028] The current invention provides a technique for remotely
monitoring one or more social websites 410 (FIG. 4) where the
resulting user activity data is processed and stored remotely,
i.e., separately from the social website 410. To monitor user
activity data or "events" on a remote social website 410, the
technique may install a small amount of software code into the
social website's operating code. The code generates a
specially-formed "Observer" uniform resource locator (URL) that is
sent to a remote monitor 415 when an event occurs. The parameters
in the Observer URL describe the event that a user 405 performs on
the social website 410. The monitoring process tracks multiple
kinds of bookmark and tag events, so the code may be installed in
the subject social website's code where those events actually
happen and may be invoked using, for example, UNIX's "curl",
"lynx", or "wget" programs, or any compatible application that can
reliably generate a standards-compliant HTTP GET query.
[0029] The format of the Observer URL may be as follows:
[0030]
http://ob1.seethroo.us:8000/event/lg?user=a&bookmark=b&title=c&tag=-
d&event=e
&ipnum=f×tamp=g&string=h&site=i&adtag=j
[0031] Each parameter of the Observer URL holds a different piece
of information about the event being monitored. The letters `a`
through `j` in the example Observer URL above will be replaced with
actual values when installing it on the social website's server,
such as the following:
[0032] In user=a, the "a" may be replaced with the escaped
(Web-safe) user ID of the person performing the event. For example,
if the user is "jsmith", the parameter would be "user=jsmith". The
monitoring process does not require an actual user name--any unique
identifier that is consistently associated with the same user on
the social website is permitted. For example, if the user is
"jsmith" and a unique ID for jsmith is
05b7f505fb63e9737dd1fce86d8ca2a97d21654f, the parameter would be
"user=05b7f505fb63e9737dd1fce86d8ca2a97d21654f".
[0033] In bookmark=b, the "b" may be replaced with the escaped
(Web-safe) URL of the bookmark involved in the event, if any. If
the event is exclusively tag-related (see below) and there is no
bookmark involved, the parameter is left blank in one embodiment.
For example: if the bookmark is "http://www.cnn.com/health", the
parameter would be "bookmark=http%3A//www.cnn.com/health"
[0034] In title=c, the "c" may be replaced with the escaped
(Web-safe) title of the bookmark involved in the event. If the
event is exclusively tag-related (see below) and there is no
bookmark title involved, the parameter is left blank in one
embodiment. For example, if the title is "CNN.com-Health", the
parameter would be "title=CNN.com%20-%20Health".
[0035] In tag=d, the "d" may be replaced with the escaped
(Web-safe) tag (or comma-separated list of tags) involved in the
event. If the event is exclusively bookmark-related (see below) and
there is no tag involved, the parameter is left blank in one
embodiment. If there is only one tag, the trailing comma may be
omitted. For example, if there are three tags named "news, health,
exercise", the parameter would be "tag=news%2Chealth%2Cexercise".
If there is one tag named "microsoft", the parameter would be
"tag=microsoft".
[0036] In event=e, the "e" may be replaced with the escaped
(Web-safe) text describing what the event is and may include a
variety of event-specific tokens, such as these examples:
[0037] add_bkmk (used when a new bookmark is added to the user's
account)
[0038] click_bkmk (used when the user clicks on one of their
bookmarks)
[0039] del_bkmk (used when the user erases a bookmark)
[0040] add_tag (used when the user first adds a tag onto a
bookmark(s), or to their account in general)
[0041] view_tag (used when the user views bookmarks assigned with
the same tag)
[0042] del_tag (used when the user erases a tag from a bookmark or
their account)
[0043] search (used when a search is performed, either of the
user's own bookmarks/tags or across the entire social website)
[0044] import (used when the user uploads or imports their
bookmarks)
[0045] For example, if the user is adding a bookmark to his
account, the parameter would be "event=add_bkmk." Users may also
import large files containing several bookmarks.
[0046] In ipnum=f, the "f" may be replaced with the escaped
(Web-safe) IP number of the remote host using the social website.
For example, if the user's remote computer has an IP number of
"207.69.101.5", the parameter would be "ipnum=207.69.101.5".
[0047] In timestamp=g, the "g" may be replaced with the escaped
(Web-safe) timestamp of when the event occurred, using any suitable
format, such as the ISO8601 format. The timestamp "Sat Sep 02 2006
00:21:13 GMT-0400 (EDT)" would be "2006-09-02T00:21:13-04:00" in
ISO8601 format, for example. Thus, if the event has a timestamp of
"Sat Sep 02 2006 00:21:13 GMT-0400 (EDT)" the parameter would be
"timestamp=2006-09-02T00%3A21%3A13-04%3A00.
[0048] In string=h, the "h" may be replaced with the escaped
(Web-safe) text the user performed a search on. For example, if the
event is "search" and the user performed a search for "electronic
arts bond", the parameter would be
"string=electronic%20arts%20bond". If the event parameter does not
indicate a search, then this parameter may be left blank.
[0049] In site=i, the "i" may be replaced with the escaped
(Web-safe) id of the social website. For example, if the website is
"Connectedy.com", the parameter would be "site=connectedy." As in
the user parameter (above), the monitoring process does not require
the actual name of the social website--any unique identifier that
is consistently associated with the same social website is
permitted.
[0050] In adtag=j, the "j" may be replaced with any value,
including "y" or "n", indicating that a targeted ad should be sent
back to the social website after the Observer URL has been
processed by the monitoring server.
[0051] Thus, using the above examples, the complete URL could look
like the following:
[0052]
http://ob1.seethroo.us:8000/event/lg?user=05b7f505fb63e9737dd1fce86-
d8ca2a97d21654f&bookmark=http%3A//www.cnn.com/health&title=CNN.com%20-%20H-
ealth&tag=news%2Chealth%2Cexercise&event=add_bkmk&ipnum=207.6
9.101.5×tamp=2006-09-02T00%3A21%3A13-04%3A00&string=&site=connectedy-
&adtag=y
[0053] In this manner, the event of "adding a new bookmark" on the
social website may be monitored by performing the following
sequence of actions:
[0054] 1. A developer locates the specific commands in the social
website's 410 program code that are invoked when a user 405 adds a
new bookmark to his account.
[0055] 2. Immediately preceding or following these commands, the
developer edits the program to insert an additional command. This
additional command, when executed, sends the Observer URL to the
remote monitor 415. The exact command used to send the Observer URL
is dependent on the programming language and web serving
environment used by the social website 410.
[0056] 3. The developer associates each parameter in the Observer
URL with whatever specific variables are used by the social website
410 to describe the event. For example, the parameter in the
Observer URL that holds the name of the bookmark is called "title".
If the subject social website's code normally uses "$bookmark_name"
to represent this, the developer would edit the Observer URL to say
"title=$bookmark_name". Note that the specifics of this will also
vary, depending on the programming language and web serving
environment used by the social website 410.
[0057] 4. The developer repeats this process, adding the Observer
URL to each place in the program code that performs each of the
events that the remote monitor tracks, and adding the correct names
of variables used by the social website 410 that match the Observer
URL's parameters.
[0058] 5. Once the command that sends the Observer URL to the
remote monitor 415 has been installed into the correct places in
the social website's code, the remote monitor 415 can begin
receiving events in real-time from the social website 410.
[0059] 6. When a user 405 of the social website 410 adds a bookmark
to his account, the social website 410 performs the task as normal.
At virtually the same moment (either immediately preceding or
following), the Observer URL is sent via a global computer network
70 (e.g., the Internet) to the remote monitor 415. The parameters
in the Observer URL contain all the details describing the event,
such as the name of the bookmark, the encrypted ID of the person
who is adding the bookmark, the bookmark's URL, any tags used with
the bookmark, the time the bookmark is being added, the IP number
of the person's computer, and whatever other metadata have been
included in the Observer URL.
[0060] 7. The remote monitor 415 continually waits for Observer
URLs to be sent. When the remote monitor 415 receives a request
containing the Observer URL, it accepts the URL as input and the
monitoring program 455, 470 runs.
[0061] 8. The monitoring program 455, 470 accepts the request and
parses the text of the URL to assign each parameter into a
dedicated field in a local database 480. The URL's parameters are
separated, decoded/unescaped and used to construct a new data
record in memory 480.
[0062] 9. Once the data record is assembled and stored in memory,
the record is written into the storage unit (e.g., database) 480.
At this point the original event at the social website 410 has been
effectively duplicated and recorded by the remote monitor 415.
[0063] 10. Once the record has been saved in, for example, a
storage unit (e.g., database) 480, the remote monitor 415 may or
may not reply. If the "adtag" parameter in the Observer URL has a
value of `n`, the monitoring server 415 may close the network
connection without any reply to the social website 410. This is to
ensure that the social website 410 will continue performing its
normal tasks as quickly as possible, without waiting for a
monitoring response that may not arrive, perhaps due to a network
error, programming bug, or some other problem. Alternately, if the
"adtag" parameter in the Observer URL has a value of `y`, then the
remote monitor 415 will use the information from the Observer URL
to choose an advertisement that is a suitable match.
[0064] 11. The selection of the ad can be done either locally, by
accessing a store of ads to be sent to the social website 410 in
reply to the monitored event, or remotely, by sending a descriptive
token or keyword to a third-party ad server 420, which then selects
an ad and returns it to be displayed on the social website 410.
[0065] Referring now to FIG. 1, a flow diagram illustrating an
example embodiment of the invention is depicted. The process 100
begins 105 and monitors user activity on a social website at step
110. The monitoring step/process results in user activity data such
as that described above. The resulting user activity data is
processed separately or remotely from the social website that step
115. After processing step 115, the invention process 100 may store
(step 120) processed user activity data in, for example, a
searchable data store. Information indicative of the processed user
activity data may be reported at step 125. The process 100 may then
end 130.
[0066] FIG. 2 is a flow diagram illustrating an alternative example
embodiment of the invention. The invention process 200 begins 205
with a user accessing a social website 210 whereby a variety of
events are generated (step 210). For example, users 405 of a social
bookmarking site 410 may access their bookmarks thereby generating
events involving bookmark links and tags, such as "add bookmark,"
"click bookmark," and "add tag." These events may be sent to a
social website (step 215) via a computer or other communication
network, such as the Internet, as requests to the social
bookmarking server.
[0067] The social website 410 may act on the events (step 220). For
example, a social bookmarking site 410 may receive the bookmarking
and/or tag events and the server may perform actions to process the
request. The social bookmarking site 410 records the request (or
otherwise acts on it, executing whatever code is programmed). The
social bookmarking site 410 may also parse the details of the
request and construct a representation of user activity (step 225),
such as a GET-style URL (such as that discussed above) to describe
the event that was just recorded. Next, the social website 410
sends the representation of user activity (e.g., the GET URL) to a
classification service (CS) 460 (in FIG. 4) at step 230 in FIG.
2.
[0068] The classification service 460 receives the representation
of user data and parses it to extract generated events (step 235),
such as parameters describing the event that was just recorded, or
the URL can remain unparsed and recorded unchanged, for later
processing. The classification service 460 then acts on the events
(step 240), such as recording the request (or executing whatever
code is programmed). The process 200 then ends 245.
[0069] FIG. 3 is a more detailed flow diagram illustrating an
example embodiment of the present invention. The process 300 begins
305 with a user 405 at a social website 410 requesting content
(step 310) via a web browser, for example, a page containing the
user's bookmarks. The social web site 410 then calls a
classification service 460 to get targeting information for the
user (step 315). To ensure integrity of the received data, the
social website 410 may authenticate the information at step 320.
The process 300 continues and at step 325 the social website 410
sends either a signed token describing the user 405 and request to
the classification service 460, or at step 330 sends an
unauthenticated version of the information describing the user 405
and request to the classification service 460.
[0070] The classification service 460 determines target information
at step 335, such as appropriate keywords and may also record the
event. The classification system 460 then sends target information
to the social website at step 345, or may optionally authenticate
the information at step 340 and send a digitally signed token
describing the target information to the social website at step
350. The social website 410 then constructs a webpage combining its
own content, the target information and advertisement server code
and delivers it to the user at step 355. The user's browser
interprets the returned page's content and executes the
advertisement server's code to request an ad from the advertisement
server 420. Next, the advertisement server 420 selects a targeted
ad based on the targeted information or token and then sends the ad
back to the user's browser at step 365. After receiving the
targeted ad, the users browser renders the content, for example,
the combined requested bookmark page and the targeted ad at step
370. The process 300 then ends 375.
[0071] FIG. 4 is a block diagram of a remote monitoring system 400
according to an example embodiment of the invention. The remote
monitoring system 400 may contain a remote monitor 415 which
includes a monitoring unit 455, classification service (CS) 460,
reporting unit 465, processing unit 470, storage unit 480,
encryption/decryption unit 485, and digital signature unit 490. The
system 400 may remotely monitor user 405 activity on at least one
remote social website 410. The social website 410 may include an
encryption/decryption unit 425, digital signature unit 430, storage
unit 435, querying unit 440, monitor service 445, and calling unit
450. A monitoring service unit 445 may be configured to monitor
user activity 405 on a remote social website 410, resulting in user
activity data. The processing unit 470 is configured to process the
results user activity data separately from the social website 410,
in a substantially real-time manner, or processed at a later time.
The user activity data may be stored in the storage unit 480. The
reporting unit 465 may be configured to report information
indicative of the processed user activity data.
[0072] The monitoring unit 455 may be configured to monitor user
405 activity in response to a call from the social website's 410
calling unit 450 that may be triggered by the user's activity at
the social website. The call may be an application programming
interface (API) call, or similar call known in the art.
Alternatively the monitoring unit 455 may be configured to poll the
monitor service 445 that is installed on the remote social website
410 on a periodic, aperiodic, or event-driven basis. In either
case, the monitoring unit 455 effectively logs or records the
user's activity. In one embodiment the user activity data may be
represented in the form of a uniform resource locator (URL). And in
another example embodiment, a monitoring unit 455 may be configured
to locally track and accumulate user activity at the remote social
website 410, and may communicate the user activity data to the CS
460 where the CS determines user target information on a periodic,
aperiodic, or event-driven basis.
[0073] The processing unit 470, through use of a parsing unit 472
may parse the user activity data results from the remotely
monitored social websites(s) 410. The normalizing unit 474 may
"normalize" or "standardize" the parsed user activity data. That
is, social websites 410 may store particular data fields using
slightly different identifiers. For example, one social website 410
may store the user's identity in a field labeled "user" and another
social website 410 may store the same information in a field
"userID" and still another social website may use the label
"username." Thus, the invention normalizing unit 474 effectively
standardizes non standardized field names from a variety of social
websites 410 using a common label or identifier allowing the
aggregation of user activity data from virtually every social
website. Advantageously, the invention aggregates data from a
plurality of social websites 410 allowing the identification of
trends not currently identifiable, such as trends across a large
number of users or more broadly such as societal trends. To
facilitate this analysis, the storage unit 480 may be configured to
store the processed results in a centralized, searchable data store
such as a database where the normalizing unit 474 has standardized
the results data. Alternatively this information may be distributed
across multiple storage units 480 to provide data redundancy,
increased search speeds, and other benefits known in the art.
[0074] The processing unit 470 may also be configured to perform
on-the-fly analysis of the user activity data, or alternatively,
may store the user activity data for analysis at a later time. The
querying unit 440 of the social website 410 may also be configured
to query the CS 460 before the social website displays the user
requested page where the CS 460 determines user target information.
In an example embodiment, the reporting unit 465 may be further
configured to communicate and transmit the stored process user
activity data to a third party, such as an advertisement server
420. The reporting unit 465 may also be configured to report user
activity data represented in the form of metadata or other data or
file formats known in the art. Alternatively, or in addition, the
reporting unit 465 may also be configured to generate a targeted
advertisement based on user activity data and may communicate that
advertisement to a third-party 420 or to the social website 410 for
display in the user's 405 browser.
[0075] The user activity data may be protected using a variety of
data protection techniques known to those skilled in the art. For
example, the encryption/decryption unit 485 of remote monitor 415
may encrypt data prior to transmitting the data to the social
website 410 where in turn the encryption/decryption unit 425 of the
social website 410 will then decrypt the information. It should be
understood that in order to provide effective data protection the
encryption/decryption process may occur throughout the entire chain
of data transmission, including but not limited to, from the social
website 410 to the remote monitor 415, from the remote monitor 415
to the third-party server 420, from the third-party server 420 to
the remote monitor 415, and from the remote monitor 415 to the
social website 410. Alternatively, or in addition, the digital
signature unit 490 may be used to authenticate data according to
data authentication techniques known in the art. This may be useful
in circumventing fraudulent requests (e.g., metadata, spam, etc.)
from unauthorized third parties, for example, preventing a
third-party from writing bogus data to the remote monitoring unit
415.
[0076] The social website 410 may be a website where users are
allowed to associate a tag or bookmark to the social website's
content. Social websites have proliferated at an increasingly rapid
rate such that there are now hundreds of social websites currently
in operation. The invention 400 may also be used in conjunction
with other social websites 410, such as blogs or any other website
that allows the use of tags to be added and/or associated with
content.
[0077] FIG. 5 is a schematic diagram representing data flow in an
example embodiment 500 of the invention. The remote monitoring
system 500 may comprise a classification system (CS) 515
implemented using, for example, a processor (not shown). A user 505
may request a bookmark page from a social website 510 (step 1). The
social website 510 then calls the CS 515 in order to obtain user
targeting information (step 2). As mentioned above this
communication may be encrypted, and digitally signed or otherwise
made secure. The CS 515 may record the event in a storage unit 530,
such as a searchable database. The CS 515 may also analyze previous
and/or current activity data for the user 505 as previously
recorded in storage unit 530 in order to determine an appropriate
keyword or multiple keywords (step 3). In this embodiment, the CS
515 is guaranteed to record the event before the CS performs its ad
selecting analysis.
[0078] The CS 515 then returns the determined keyword(s) either as
it is, or encrypted, or as a digitally signed token back to the
social website 510 (step 4). The social website 510 then combines
its page with the CS keyword/token and advertisement server code
(step 5). Alternatively, the CS can return both the keyword(s) and
the advertisement server code together. Next, in response the
user's browser interprets the received combined page and executes
the advertisement server code (step 6). The advertisement server
code may then request an ad using the received keyword/token (step
7). The advertisement server 520 may determine the best ad based on
the subject keyword/token (step 8). The advertisement server 520
then delivers the determined ad to the user's browser (step 9)
where the user's browser then renders the user's requested page
(step 10).
[0079] FIG. 6 is a schematic diagram representing data flow in and
alternative example embodiment 600 of the invention. This
embodiment similarly begins with the user 605 requesting, for
example, a bookmark page from a social website 610 (step 1). Here,
however, the social website 610 constructs a webpage and returns
the page to the user 605 with additional scripting code (step 2).
The users browser 605 executes the scripting code while preparing
the requested webpage for display (step 3). Next, the scripting
code may use a forked process to request the advertisement server
620 to display in the ad where the request includes a
representation indicating a specific user (step 4A) and may also
send a message to the CS 615 recording the action just performed by
the user (step 4B). Because this embodiment 600 uses a forked
process, the CS 615 is not guaranteed to record the event before
the CS performs its ad selecting analysis.
[0080] Next, the advertisement server 620 receives a request from
the user's web browser 605 (step 5) and then calls the CS 615 for
targeted information for that specific user (step 6). The CS 615
responsively analyzes the request and determines an appropriate
keyword (step 7). The CS 615 then returns a keyword or digitally
signed token to the advertisement server 620 (step 8). If the data
was authenticated the advertisement server 620 confirms the token's
authenticity using CS's public key or other authentication
techniques known to one skilled in the art. Next, the advertisement
service 620 selects a targeted ad based on the received
token/keyword (step 9) and returns the determined ad to the user's
browser 605 (step 10). Then the page returned by the social website
610 (step 2) is combined with the targeted ad and sent to the
user's browser 605 for rendering (step 11).
[0081] As mentioned previously, various communications may be made
secured digitally signed encrypted/decrypted between the various
modules (405, 410, 415, 420, 505, 510, 515, 520, 605, 610, 615,
620) in FIGS. 4, 5 and 6.
[0082] The block diagrams of FIGS. 4, 5, and 6 are merely
representative and that more or fewer units may be used, and
operations may not necessary be divided up as described herein.
Also, a processor executing software may operate to execute
operations performed by the units, where various units, separately
or in combination may represent a processor, field programmable
gate array (FPGA), application specific integrated circuit (ASIC),
or the like. It should be understood that the block diagrams may,
in practice, be implemented in hardware, firmware, or software. If
implemented in software, the software may be any form capable of
performing operations described herein, stored on any form of
computer readable-medium, such as RAM, ROM, CD-ROM, and loaded and
executed by a general purpose or application specific processor
capable of performing operations described herein.
[0083] FIG. 7 illustrates a generalized computer network 700 or
similar digital processing environment in which the invention may
be implemented.
[0084] Client computer(s)/devices 50 and server computer(s) 60
provide processing, storage, and input/output devices executing
application programs and the like. Client computer(s)/devices 50
can also be linked through communications network 70 to other
computing devices, including other client devices/processes 50 and
server computer(s) 60. Communications network 70 can be part of a
remote access network, a global network (e.g., the Internet), a
worldwide collection of computers, Local area or Wide area
networks, and gateways that currently use respective protocols
(TCP/IP, Bluetooth, etc.) to communicate with one another. Other
electronic device/computer network architectures are suitable.
[0085] FIG. 8 is a diagram of the internal structure of a computer
50, 60 (e.g., client processor/device 50 or server computers 60) in
the computer system of FIG. 7. Each computer 50, 60 contains system
bus 79, where a bus is a set of hardware lines used for data
transfer among the components of a computer or processing system.
Bus 79 is essentially a shared conduit that connects different
elements of a computer system (e.g., processor, disk storage,
memory, input/output ports, network ports, etc.) that enables the
transfer of information between the elements. Attached to system
bus 79 is I/O device interface 82 for connecting various input and
output devices (e.g., keyboard, mouse, displays, printers,
speakers, etc.) to the computer 50, 60. Network interface 86 allows
the computer to connect to various other devices attached to a
network (e.g., network 70 of FIG. 7). Memory 90 provides volatile
storage for computer software instructions 92 and data 94 used to
implement an embodiment of the present invention (e.g., remote
monitoring, processing, storing and reporting code 63 detailed
above). Disk storage 95 provides non-volatile storage for computer
software instructions 92 and data 94 used to implement an
embodiment of the present invention. Central processor unit 84 is
also attached to system bus 79 and provides for the execution of
computer instructions.
[0086] In one embodiment, the processor routines 92 and data 94 are
a computer program product (generally referenced 92), including a
computer readable medium (e.g., a removable storage medium such as
one or more DVD-ROM's, CD-ROM's, diskettes, tapes, etc.) that
provides at least a portion of the software instructions for the
invention system. Computer program product 92 can be installed by
any suitable software installation procedure, as is well known in
the art. In another embodiment, at least a portion of the software
instructions may also be downloaded over a cable, communication
and/or wireless connection. In other embodiments, the invention
programs are a computer program propagated signal product 107
embodied on a propagated signal on a propagation medium (e.g., a
radio wave, an infrared wave, a laser wave, a sound wave, or an
electrical wave propagated over a global network such as the
Internet, or other network(s)). Such carrier medium or signals
provide at least a portion of the software instructions for the
present invention routines/program 92.
[0087] In alternate embodiments, the propagated signal is an analog
carrier wave or digital signal carried on the propagated medium.
For example, the propagated signal may be a digitized signal
propagated over a global network (e.g., the Internet), a
telecommunications network, or other network. In one embodiment,
the propagated signal is a signal that is transmitted over the
propagation medium over a period of time, such as the instructions
for a software application sent in packets over a network over a
period of milliseconds, seconds, minutes, or longer. In another
embodiment, the computer readable medium of computer program
product 92 is a propagation medium that the computer system 50 may
receive and read, such as by receiving the propagation medium and
identifying a propagated signal embodied in the propagation medium,
as described above for computer program propagated signal
product.
[0088] Generally speaking, the term "carrier medium" or transient
carrier encompasses the foregoing transient signals, propagated
signals, propagated medium, storage medium and the like.
[0089] In some embodiments computer system 40 employs a Windows.TM.
(Microsoft) operating system, in other embodiments a Linux
operating system, and in other embodiments a UNIX.TM. operating
system. Other operating systems and system configurations are
suitable. Applicant claims trademark rights to the terms
"Seethroo", "Seethroo Observer", and "Observer URL."
[0090] While this invention has been particularly shown and
described with references to preferred embodiments thereof, it will
be understood by those skilled in the art that various changes in
form and details may be made therein without departing from the
scope of the invention encompassed by the appended claims.
[0091] For example, the present invention may be implemented in a
variety of computer architectures. The computer network of FIGS. 7
and 8 are for purposes of illustration and not limitation of the
present invention.
[0092] While example embodiments have been particularly shown and
described, it will be understood by those skilled in the art that
various changes in form and details may be made therein without
departing from the scope of the embodiments encompassed by the
appended claims.
* * * * *
References