`Davis et al.
`
`III
`USOO57969.52A
`11
`Patent Number:
`45
`Date of Patent:
`
`5,796,952
`Aug. 18, 1998
`
`54 METHOD AND APPARATUS FOR
`TRACKNG CLIENT INTERACTION WITH A
`NETWORK RESOURCE AND CREATING
`CLENT PROFILES AND RESOURCE
`DATABASE
`
`Primary Examiner-Robert B. Harrell
`Attorney, Agent, or Firm-Adams & Wilks
`57)
`ABSTRACT
`
`75) Inventors: Owen Davis, New York; Vidyut Jain.
`Brooklyn, both of N.Y.
`73) Assignee: Dot Com Development, Inc. New
`York, N.Y.
`
`(21) Appl. No.: 821,534
`22 Filed:
`Mar 21, 1997
`(S1)
`int. Cl. ................. G06F 3/00
`52 U.S. Cl. ...................................................... 395/20054
`58) Field of Search ....................... 364/DIG. MS File,
`364/DIG. 2 MS File: 380/4; 395/2003,
`200.31, 200.32, 200.33, 200.54, 280, 381,
`670, 680, 712
`
`56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`4,977.594 12/1990 Shear .......................................... 380/4
`5,638,443
`6/1997 Stefik et al. ................................ 38.074
`5,675.510 10/1997 Coffey et al. ..
`364/514 A
`5,682,525 10/1997 Bouve et al. ........................... 395/65
`5,706.502
`l/1998 Foley et al. ............................. 395/682
`5,708,780
`1/1998 Levergood et al.
`395/2002
`5,710.918
`1/1998 Lagarde et al. ......................... 395/680
`5,715,453 2/1998 Stewart ................................... 395/615
`OTHER PUBLICATIONS
`S. Gundavaram. CGI Programming on the World Wide Web
`(O'Reilley & Assoc. Inc.), pp. 202-204.
`G. Cornell and S. Horstmann. Core Java (The Sunsoft
`Press), pp. 562-579.
`
`A method for monitoring client interaction with a resource
`downloaded from a server in a computer network includes
`the steps of using a client to specify an address of a resource
`located on a first server, downloading a file corresponding to
`the resource from the first server in response to specification
`of the address, using the client to specify an address of a first
`executable program located on a second server, the address
`of the first executable program being embedded in the file
`downloaded from the first server, the first executable pro
`gram including a software timer for monitoring the amount
`of time the client spends interacting with and displaying the
`file downloaded from the first server, downloading the first
`executable program from the second server to run on the
`client so as to determine the amount of time the client
`interacts with the file downloaded from the first server. using
`a server to acquire client identifying indicia from the client.
`and uploading the amount of time determined by the first
`executable program to a third server. The first executable
`program may also monitor time, keyboard events, mouse
`events, and the like. in order to track choices and selections
`made by a user in the file, and may execute upon the
`occurrence of a predetermined event, as well as monitoring
`or determining the amount of information downloaded by
`the client. The monitored information and client identifying
`indicia is stored on a database in a server for use in analysis
`and for automatically serving out files assembled according
`to user interests and preferences.
`
`71 Claims, 7 Drawing Sheets
`
`
`
`CAPURE CEN
`DATA ANOSAWEN
`DATABASE
`(S603A)
`
`SET RESPNSE
`HEAOER AND
`RETURN
`TRANSPAREN
`MAGE
`(S603B)
`
`
`
`
`
`
`
`CAPTRESCIENT
`NFORMATION
`(S607A)
`
`our YAAASE
`TO DETERMENE
`HStORCA
`PROFLE
`(S6078)
`
`Return
`CSTOZE
`INFORMATION
`S607C)
`
`SERVERB
`
`
`
`OATA
`BASE
`(S604)
`
`
`
`CAPTRE
`CLENT
`DATA
`AND
`SAWEN
`DAA
`BASE
`(S511A)
`
`RERN
`OF
`STAS
`S611B)
`
`
`
`|
`
`
`
`r
`
`SERVER
`A
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`REUEST Hital dOCUMENT
`
`(S601)
`ReQUEST FOR
`Resource using.
`The IMG TAG
`(S603)
`
`RECES MAGES
`(S602)
`
`RENER MAGES
`(S605)
`
`BEGIN START
`METHO ANC
`AKENOE OF
`CURRENTE
`(S608)
`
`MONITOR USER
`ACTION SUCH AS
`MOUSE CLCKS
`OR KEYBOARD
`ENTRY
`(S609)
`
`EQUEST For
`APPLET USING
`APPE, TAG
`c
`(S504)
`
`SAVE TO RA
`THEN
`N NIT
`METC).
`NSCENT
`CONACT CGl
`SCRIPT AND
`RECEW
`CUSTOIZE
`NFORMATION
`(S607)
`
`USR
`REQUESS to
`LEAWEPAGE
`(S60)
`CLENT
`
`RUN SOP METHOD AND
`CALCULATE HE TIME
`DIFFERENCE AND
`TRANSMIT DATA
`(S611)
`
`
`
`NETFLIX, INC. EXHIBIT 1003
`
`
`
`U.S. Patent
`
`Aug. 18, 1998
`
`Sheet 1 of 7
`
`5,796,952
`
`ed
`s
`
`t &
`
`
`
`S2
`
`A
`565 ls
`g5 Ne
`- a
`2
`
`n
`
`a.
`
`d a
`as
`2 l
`s
`2
`
`Af7 7
`
`CD
`m
`OS
`O)
`
`s
`
`Sn
`
`
`
`(2
`SYS
`WZAS W
`() V
`
`w
`
`NETFLIX, INC. EXHIBIT 1003
`
`
`
`U.S. Patent
`
`Aug. 18, 1998
`
`Sheet 2 of 7
`
`5,796,952
`
`Figure 2
`
`
`
`OPERATING
`SYSTEM
`
`BROWSER
`
`21
`
`35
`
`MEMORY
`
`MNGEMENT
`
`32
`
`MICRO
`
`33
`
`50
`
`Rou
`
`
`
`DIGITAL
`SIGNAL
`PROCESSOR
`
`42
`
`
`
`
`
`CO
`ROM
`
`36
`
`37
`
`
`
`
`
`
`
`4.
`
`
`
`HARD
`DISK
`
`FLOPPY
`DSK
`
`KEYBOARD
`CONTROLLER
`
`MOUSE
`CONTROLER
`
`WDEO
`CONTROLLER
`
`AUDO
`CONTROLLER
`
`
`
`
`
`22
`
`
`
`GRAPHC
`DISPLAY
`
`
`
`
`
`NETFLIX, INC. EXHIBIT 1003
`
`
`
`U.S. Patent
`
`Aug. 18, 1998
`
`Sheet 3 of 7
`
`5,796,952
`
`gJaAlas
`
`aSVavivd
`
`QNV3ZITVILINI
`
`LN3IN9NI
`
`(poes)
`
`ONINOVUL
`
`WYHDOUd
`
`
`
`VIVOSLINSNVYL
`
`(gogs)aH3AH3SOL
`
`LN3119
`
`39Vd
`
`(20€S)
`
`
`
`VISIGNIONIASILNAG!
`
`SAaYINDIV
`
`SAaLVINOWOGNV
`
`
`
`LVHLAWILG3Sdv13
`
`¢ainbi4
`
`NETFLIX, INC. EXHIBIT 1003
`
`(Soes)
`
`WVHOLAAVS
`
`S39HNOSAYH3S0N3H
`
`(10¢s)
`
`—
`
`
`
`
`WVYD0ddONINOVHL]|SJDYNOS3YYAHLO
`ONINOVYULLHVLSOlSLSANODIAYH3SN
`
`
`
`
`
`¥OdLS3ANDSYWOdLS3N03Y
`WVHDOHd3HL'39Vd3AV3I
`
`
`(zoes)(coes)VYJ8Al9S
`
`
`(90€S)WVH5D04dDONINDVHL
`
`
`aDvd@3M4O4dLS3NDSY
`N33SSVHYSM3IASHL
`
`NETFLIX, INC. EXHIBIT 1003
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Aug.18, 1998
`
`Sheet 4 of 7
`
`5,796,952
`
`
`
`
`
`
`
`
`asvaviva
`
`
`
`QOHL3WLININNYJO3LONANVW(g0¢s)Ni3AVSGNV(20¢S)SWILLNSYHNDvivdLN3I19
`
`
`aYNLdVONA3HLWVHOL3AVSGNVGOHLAW
`
`
`
`(pors)SDVWILyO3LSAN03YYH3S0N3H
`
`
`
`
`
`
`
`“VivaNUNL3Y
`
`
`
`asvaNAYVdSNVHL
`
`ONYH3QV3H(eovs)(ops)
`
`3SNOdSauOVL<OWI>SHLS35¥WI
`
`
`
`LasONISNlsanoaya¥O4JDHNOS3Y
`
`LS3N03uY
`
`
`
`SauNLdV9LS3nNd3Y
`
`
`
`asvaviva(Lovs)
`
`NI3AVSONYinawnoog[_viva
`
`LN3IN9WLH
`
`
`
`(veors)
`
`VHSAHA3S
`
`(geors)
`
`
`
`ONISNLaldd¥
`
`
`
`DVL<L3aIddv>
`
`(90¢S)
`
`SIDVWI
`
`(sors)
`
`
`
`LYVISNID38
`
`(worrs)
`
`JONHYNL3Y
`
`SNLVLS
`
`(aobrs)
`
`3WIL3HL
`
`
`
`GOHLIWdOLSNNY
`
`¥3SN
`
`ILVINOWSANY
`
`OlSLS3NOSY
`
`qYSAYSS
`
`(ops)
`
`|_|]GNV3ONaY344I0
`
`
`
`WLVGLINSNVHL
`
`
`
`39VdJAV31
`
`(60¢s)
`
`LNAI19
`
`poinbig
`
`NETFLIX, INC. EXHIBIT 1003
`
`NETFLIX, INC. EXHIBIT 1003
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Aug. 18, 1998
`
`Sheet 5 of 7
`
`5,796,952
`
`
`
`WVYO13AVSNIS394NOS3Y@HSAYHSSWaQNa
`
`
`
`(geoss)1IN3119
`
`(veoss)
`
`
`
`LIVMoeONV4ZIIVILIN!
`
`Y3aSNWOd
`
`
`
`"DA-NOILOVSLSANOIYYaSN
`
`
`N3HLONVONIIOVEL
`
`
`
`IN3Aa3aSNOW‘J9VdJAVAOL
`
`
`
`aOvd@amHOdLSaNoaY
`
`(oss)
`
`yHO4LS3ND3yY
`
`
`y¥O4dLS3ano3y
`
`—
`
`(yzoss)
`
`WVY90ud
`
`(azoss)
`
`ONINOVYL
`
`S39H4NOS3YYAHLO
`HH¥YaAURS
`
`
`
`
`
`
`
`H3WILLHYVILSdYINDIVWVEYDOud
`
`ONINOVHLGAM3IASVHHasn
`
`
` OLVLVGSLINSNVHL_(soss)
`WyvHDOud39Vd3HL
`
`JHLAWILO3SdV13
`
`(poss)
`
`
`
`ONYVIOIGNILNSIT9
`
`
`
`4aHLSALVINITVD
`
`(90S)@H3AH3S
`
`LNAIT9
`gainbi4
`
`NETFLIX, INC. EXHIBIT 1003
`
`NETFLIX, INC. EXHIBIT 1003
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Aug.18, 1998
`
`Sheet 6 of 7
`
`5,796,952
`
`
`
`NYnl3ayYNYNLaY
`
`40aaziIwoisnd
`
`(1198)
`
`(2098)
`
`(geo9s)
`
`3Wd0ud
`
`
`
`
`
`JOVANIONISNL31ddV
`
`OVL<Lalddv>
`
`(po9s)
`
`WVHOLSAVS
`
`LIN]NQYN3HL
`
`(vitgs)(azogs)
`
`
`NOILVNHOANIAWLNA
`
`
`3HL||ONISN3OHNOS3SY
`OVL<OWI>
`404LS3NO3Y
`
`S39VWILSandaY
`403LONAVA
`
`LYVLSNID39
`ONVGOHLAW
`
`
`@¥aA8aS
`
`
`
`1N3I19AYNLdVO
`
`NIFAVSONYVLvd
`
`asvaviva
`
`(veo9s)
`
`
`
`LNAWNDO”INLHLSanoay
`
`(109s)
`
`(Z09s)
`
`
`
`(a4i9s)(92098)SWIL3HLalvinowvo||zevaaavan||OANBI4
`asvaNUNLSY|S3DVWIY30N34Y¥-VLVGONVYsq0VaH
`
`
`
`aunldv2NOILVWHOSNI(809S)
`SALVISNOILVWHOANIGNVGOHL3WdOLSNNH||OLSLSSNOaY
`
`
`
`
`
`ASNOWNSasvSYLVaAWanoGNVLdIH9SSVHONSNOILOV
`
`
`
`
`(po9s)INSYVdSNVUL¥O4dLSaNoOaY(s09s)
`
`
`asva5YDIOLSIHa3ZIWwOLSN9DGHYVOSAayHO
`
`
`anyDDLOVINODH3SNHOLINOW
`
`
`vivaaNIWHa130OL3AI3O3uYSx9I19
`LNaI19(vz09s)“4onl!
`
`aSNOdS3H13S(e098)H3AY3S
`
`
`
`LN3I19SAYNLdVOS3WILLNSYYND
`vivaLINSNVHL198)9GNV39N3uaddIC019s
`
`
`
`|LN3179|
`
`(609)
`
`¥3SN
`
`NETFLIX, INC. EXHIBIT 1003
`
`NETFLIX, INC. EXHIBIT 1003
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Aug. 18, 1998
`
`Sheet 7 of 7
`
`3,796,952
`
`LS3NDaHjy!
`
`
`
`
`VivdLNaIN9LUVLSNID38JH1SHOLINOW
`NI3AVSONYGNVGOHLAW30LNNOWY
`
`
`
`(abies)pt)SONATASSWILa9vdaAvaOLainbi4
`
`
`asvavivaJO3LON2NVWFHLNOLLVWHOANI
`auNldvdYO(NOILYVWHOSNI
`
`SNiVLS3HLaLvInowoany}|S4S3N038wasn
`
`
`JONUNLAYGOHL3WdOLSNNY
`
`
`
`(witzs)aWILLN3WYNDLilddv
`
`LNAUVdSNVHLDNISNLAIddy
`
`
`
`NHN1ayHO4LSano3y(sozs)
`
`(geozs)(9028)Dvdgam
`
`
`
`JOVIDVL<1dIddv>SRIUSNDLaTdd¥
`
`@H3AU3S(tizs)AN3I19|lVLVO
`
`3uNnLdvd
`
`
`
`vivdLN3I19
`
`NI3AVSGNV
`
`3Svaviva
`
`(yveozs)
`
`
`
`IN3WN900IWLH
`
`GNYHaqv3H
`
`
`
`3SNOdS34y13s(¢02S)
`
`OVL<OWI>AHL
`
`
`
`S39VWIYS0N4Y
`
`ONISAJDUNOS|AY
`
`
`404dLSANDAYy
`
`
`SSDVWILSanoayL|_|
`
`(z02S)
`
`LINNOYN3HLHaqvaH
`
`
`
`WVOLJAYSaNIWH3L30
`
`
`
`(02S)3ZIs)
`
`
`
`dOHLaWNOILVWHOSNI
`
`OLS29uNOSaY
`
`(g0zs)
`
`SaVOINMOG
`
`(60zS)
`
`SLINSNVHLONY
`
`
`
`H3HLO(ozs)
`
`VYSAYaS
`
`NETFLIX, INC. EXHIBIT 1003
`
`NETFLIX, INC. EXHIBIT 1003
`
`
`
`
`
`
`
`
`
`
`
`5.796,952
`
`METHOD AND APPARATUS FOR
`TRACKING CLIENT INTERACTION WITH A
`NETWORK RESOURCE AND CREATING
`CLENT PROF LES AND RESOURCE
`DATABASE
`
`O
`
`15
`
`20
`
`25
`
`30
`
`35
`
`FIELD OF THE INVENTION
`The present invention relates to a method and apparatus
`for monitoring client use of and interaction with a resource
`downloaded from a server on a computer network, for
`storing monitored data, for creating a database including
`profiles indexed by user and/or resource identity, and for
`generating customized resources based upon client profiles.
`BACKGROUND OF THE INVENTION
`The development of Software packages designed to permit
`simplified graphical user interface (GUI)-based access to the
`Wealth of electronic information available over the Internet
`and the World Wide Web has lead to a dramatic increase in
`the amount of information that is currently available over
`public computer networks. Unlike the highly controlled
`atmosphere of a private computer network, however, it is
`difficult to monitor user interaction with network resources
`on public networks. As a result, it is difficult for individual
`servers on a public network to determine how long indi
`vidual users have interacted with their resources, or how
`much information has been downloaded. It is equally diffi
`cult for individual servers to target specialized information
`to a particular audience or to learn the identity of individual
`users on a public network
`The techniques utilized in many private networks for
`monitoring client use and interaction do not lend themselves
`to public networks. For example, user access to a server in
`private networks is generally obtained through the use of a
`unique identification number provided by the server. Details
`of individual user interaction with the network are closely
`monitored by server-resident processes, and historic data
`bases are automatically generated and continually updated to
`track the nature and amount of information accessed by
`individual users, as well as their connection time. This
`information is generally used, for example, to maintain a
`subscriber-indexed billing database.
`In a public computer network, however, use of server
`resident monitoring techniques may be severely limited. In
`Some public networks, subscribers are given unlimited
`access, via a service provider, to a virtually unlimited
`number of servers, and no permanent connection is usually
`made between these servers and a client machine. The nature
`and amount of information downloaded by individual users
`is not easily monitored for each client machine and only
`limited information concerning individual user interaction
`with the network may generally be captured by a server (i.e.,
`so-called network ID and client ID).
`Due largely to the lack of advanced monitoring tech
`niques available to individual servers on a public network,
`the same information is generally served out to all clients on
`a completely untargeted basis. In other words, the same
`information is generally downloaded to all users that access
`a particular resource on a server, irrespective of individual
`user interests. There is therefore a need to provide servers on
`a public network with the ability to automatically monitor
`use of and interaction with resources downloaded by users
`So as to facilitate the targeted serving of information.
`While various methods are known for obtaining informa
`tion concerning user preferences, no such methods are
`automatic. For instance, one application, known as a "cus
`
`45
`
`50
`
`55
`
`65
`
`2
`tomizable home page", permits users, upon the request of a
`Server, to make certain choices. When a user who has done
`So contacts that server at a later date, the server assembles
`information for downloading to the user in accordance with
`the previously-selected choices. More specifically, the user
`visits a so-called “Web page” of a particular server where he
`or she is asked to fill in a blank form by selecting various
`preferences, such as links to favorite Web sites, interests in
`entertainment, sports, and the like. The user then submits
`this information to the server by clicking the so-called
`'submit” button of the fill-in form, which causes the client
`to transmit the information to the server. The server returns
`a Web page with a response header which creates, or “sets"
`an ID field located in a file on the client computer (this file
`is known as the "client ID" or "cookie") to include infor
`mation about the user's preferences. When the user later
`returns to a specified Uniform Resource Locator, or “URL".
`on the same server, the "client D' or "cookie" with the
`previously-set preference information is transmitted in the
`HTTP request header to the server, which can then return a
`Web page that is assembled according to the user-specific
`information. This application is disclosed, for example, in A.
`Gundavaram, CGI Programming on the World Wide Web,
`O'Reilly Press, 1996.
`While the "customizable home page" facilitates the serv
`ing of information on a limited targeted basis, it does not
`provide for the automatic determination of user interests.
`and inconveniences the user by requesting that he or she
`specify various preferences. Moreover, use of a customiz
`able home page is limited to individual Web sites and can not
`be "spread out" over multiple resources on different servers.
`In other words, while a customizable home page may be of
`use with respect to the particular resources located on a
`single server, it does not serve any purpose for other servers
`on a public network. A variation of this technique is used by
`some servers to download executable programs. For
`instance, one such application disclosed by G. Cornell and
`C. S. Horstmann, in Core Java, The SunSoft Press, 1996,
`involves the generation of "order forms" on client comput
`ers. In this application, the client machine loads a Web page
`from a server which has an embedded link to an executable
`program that downloads to and executes on the client
`machine. Upon execution in the client machine, the program
`contacts the server and retrieves a list of goods and associ
`ated prices. The program allows the user to order various
`goods and requires the user to fill out a form for billing
`purposes. The user "clicks" on the submit button of the fill-in
`form to transmit the information to the server. Like the
`customizable home page, this method of user-specific data
`acquisition requires the active participation of the user, and
`does not provide for the automatic determination of user
`preferences and interests.
`In addition to the inability to serve out information on a
`targeted basis, which is of enormous concern from a mar
`keting standpoint, the limited monitoring capabilities avail
`able to individual servers makes it difficult for servers and
`administrators to determine how long users have viewed
`their resources and how much information has been down
`loaded by individual users so as to be able to bill client use
`and interaction with network resources and to analyze the
`value and effectiveness of such resources. As a result, much
`of the information provided by a server over a public
`network is the same for all clients. In addition, while it is
`currently possible to track a user's links within the same
`resource, there is no standard way to track user's links across
`multiple resources on different servers. For example, a
`common occurrence in public networks is when a user is
`
`NETFLIX, INC. EXHIBIT 1003
`
`
`
`5,796,952
`
`5
`
`25
`
`10
`
`3
`viewing a first resource and "clicks on" a link to a second
`resource located on a different server. In such instances, the
`second resource is downloaded and the first resource is
`either discarded or held in background. However, there is
`generally no uniform way in which to monitor such occur
`rences. In addition. while it is currently possible to track the
`number of times a particular resource has been accessed, it
`has generally not been possible to track the length of time a
`particular resource has been viewed by a particular user.
`There is also a great deal of other valuable information
`concerning user interaction with a resource which would be
`useful to administrators, advertisers, marketing profession
`als and the like, but which can not be conveniently collected
`using current monitoring techniques.
`For example, one of the largest public networks, the
`"Internet”, has become an extremely popular advertising
`tool. Many companies have their own Internet “Web sites"
`and have also purchased advertising space within more
`popular Web sites of other companies. For instance, many
`advertisers purchase so-called "advertising banner" (or "ad
`banner") space within the Web page of a popular site.
`thereby allowing consumers to "click-through" (i.e. specify
`a link) to the Web site of the advertiser. In many cases, the
`use of an ad banner substantially increases the advertiser's
`exposure. Using the limited monitoring techniques available
`to Internet servers, however, it is difficult to determine the
`effectiveness of individual Web sites and ad banners. For
`instance. known monitoring techniques are generally limited
`to determining the number of times a Web page was down
`loaded. Similar techniques are used to determine the number
`of times an ad banner (which is embedded inside a Web
`30
`page) has been displayed, and how many times the banner
`was "clicked" on to visit the Web site of the advertiser.
`Generally, an ad banner is embedded inside a Web page
`located on a first server through the use of the known HTML
`<IMG> tag. When a client machine passes a TCP/IP request
`35
`for the Web page to the first server, the Web page is
`downloaded to the client, including the ad banner embedded
`using the <IMG> tag. The <IMG> tag is used to reference
`a resource (i.e., the "ad banner") stored on the same or a
`different server which captures the user's ID (via the HTTP
`request header) and dynamically returns an ad related image
`to the client for display within the Web page. At the same
`time, a counter representing the number of times the specific
`ad has been displayed is incremented. The ad banner itself
`may have an embedded address referring to yet another Web
`resource. In such an instance, if the user "clicks" on the ad
`banner, the client may load a resource on the second server
`which once again captures the user's D and forwards the
`user to a Web resource which is appropriate for the displayed
`ad (for example, a page on the advertiser's Web site). At the
`same time, a counter representing the number of times the
`specific ad was clicked on to go to the advertiser's Web site
`is incremented.
`While Web sites and ad banners have, in some cases, been
`valuable marketing tools, the limited monitoring capabilities
`available to servers on networks in which no permanent
`connection is made between a server and a client (such as the
`Internet) has prevented these marketing tools from being
`used to their full potential. Since HTTP or Web servers
`cannot automatically determine the amount of time and the
`frequency at which particular users interact with their
`resources. Web site administrators and advertisers cannot
`accurately determine the effectiveness of their resources.
`Since servers cannot automatically monitor user interaction
`and automatically obtain user preferences and interests,
`servers cannot assemble and serve resources targeted to
`individual user interests.
`
`4
`SUMMARY OF THE INVENTION
`In view of the foregoing shortcomings of the prior art, an
`object of the present invention is to provide a method for
`tracking the use and interaction of a user with a resource
`downloaded from a server on a network by use of a tracking
`program embedded in the resource and executable by a
`client. Another object of the present invention is to transmit
`the tracking information from a client to another computer
`connected to the network for storage and analysis.
`Still another object of the present invention is to create a
`database of server resources including, but not limited to, the
`number of times a resource has been displayed by clients.
`the amount of time displayed, and the type and amount of
`information that was displayed or transferred. This informa
`tion could be used by network administrators or servers to
`analyze the effectiveness of the resources made available on
`their network servers.
`Yet another object of the present invention is to provide
`means for creating a database of user profiles for use by
`advertisers and/or marketers to determine the effectiveness
`and value of network-based advertisements and/or market
`ing resources.
`Still yet another object of the present invention is to
`provide means for creating a database of user profiles
`containing details of individual user interaction with and use
`of network resources including for example. Network IDs
`(known as "IP address”) and client IDs (known as
`"cookies") that have accessed particular resources. the
`amount of time spent by users interacting with and/or using
`particular resources. and details of choices created by indi
`vidual users within a particular resource.
`It is still yet another object of the present invention to
`provide means for assembling a resource. such as a Web
`page or a highly targeted ad banner, in accordance with a
`historic user profile.
`In order to achieve the above-described and other objects
`and advantages, a tracking program is embedded in a file
`which is downloaded from a server to a client. The tracking
`program need not originate from the same server that sent
`the file, and may be obtained, for example. via an embedded
`URL that points to a different server. The tracking program
`may be part of a larger program that performs other opera
`tions (such as displaying animations, playing sounds, etc.).
`The tracking program is downloaded from a server and runs
`on the client to monitor various indicia, such as elapsed time.
`mouse events, keyboard events. and the like. in order to
`track the user's interaction with and use of the file or to
`monitor choices (such as selections or links to other
`resources or files) made by the user while within the file. The
`tracking program may also monitor the amount of data
`downloaded by the client. Operation of the tracking program
`commences after the program is downloaded and any
`required initialization occurs.
`After monitoring the user's interaction with and use of the
`file downloaded from the server, the tracking program then
`automatically sends the information acquired from the client
`back to a server for storage and analysis. The information
`may be sent before or as the client exits the file. or may be
`sent in response to a predetermined user action. The infor
`mation preferably includes any available client or network
`IDs.
`The acquired information is preferably stored on a server
`and used to build historical profiles of individual users, to
`serve out highly targeted information based upon user
`profiles, as well as to extract information about how much
`
`50
`
`55
`
`65
`
`NETFLIX, INC. EXHIBIT 1003
`
`
`
`5,796,952
`
`O
`
`5
`
`S
`data was downloaded by a respective client. and how long
`or how often specific files were displayed or in use by the
`client.
`Preferably, the tracking program is implemented in a
`network based upon the client/server model, and may be
`implemented in a public network such as the Internet or
`World WideWeb. The tracking program may monitor use of
`and interaction with any of the resources downloaded from
`a server, including an executable program, a database file, an
`interactive game, a multimedia application, and the like. In
`the case of the Internet, for example, the tracked resource
`may, for example, be a file such as a Web page or part of a
`Web page (such as an ad banner).
`In one embodiment of the present invention, the tracking
`program is embedded in an HTML document (such as a Web
`site. a Web page, or part of a Web page--e.g. an "ad
`banner"). ATCP/IP connection is used by a client to pass a
`request for the HTML document. The HTML document is
`stored in a server running an HTTP service and contains text
`and one or more first embedded URLs for pointing to one or
`more graphical images located on a server, the images being
`embedded inside the HTML document using an HTML
`<IMG> tag to specify the source URL for an image. The
`HTML document also contains a second embedded URL for
`pointing to a first executable program that runs on a server,
`the first executable program being embedded inside the
`HTML document using an HTML <IMG> tag to specify the
`source URL for the program. A second executable program
`is also embedded in the HTML document by using a third
`URL for pointing to the second executable program. Unlike
`the first executable program, the second executable program
`is downloaded and runs on the client. The second executable
`program is embedded using the proper HTML tag to indicate
`that it is a program that is executable on the client.
`After the HTML document is downloaded to the client,
`the graphical images are fetched using a TCP/IP connection
`to server resources specified by the one or more first URLs.
`In attempting to fetch the resource associated with the first
`executable program, the client causes the program to run on
`the server specified by the second URL. Upon execution of
`the first executable program, the server captures identifying
`indicia from the client, such as any network or client IDs
`resident in the HTTP request header sent by the client. The
`server stores this information in a client profile database.
`The client also fetches the second executable program,
`45
`which is the tracking program. The tracking program down
`loads to the client, and, after performing any required
`initialization, determines the current time. The tracking
`program also determines the current time upon the perfor
`mance of a predetermined operation on the client computer
`by a user, such as leaving the HTML document. After
`calculating the amount of time the user interacted with and
`displayed the HTML document, i.e., by determining the
`difference in time values, the tracking program uploads the
`calculated value to the server for storage in the user profile
`database.
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 is a diagram of a computer network in which the
`present invention may be implemented;
`FIG. 2 is a block diagram of a client computer which is
`used in connection with various preferred embodiments of
`the present invention;
`FIG. 3 is a flowchart diagram of a first embodiment of the
`present invention. which is a method for monitoring the
`65
`amount of time a Web page is displayed on a client com
`puter;
`
`55
`
`20
`
`25
`
`35
`
`6
`FIG. 4 is a flowchart diagram of a second embodiment of
`the present invention, which is a method for monitoring the
`amount of time a Web page is displayed on a client com
`puter;
`FIG. 5 is a flowchart diagram of a third embodiment of the
`present invention;
`FIG. 6 is a flowchart diagram of a fourth embodiment of
`the present invention; and
`FIG. 7 is a flowchart diagram of a fifth embodiment of the
`present invention.
`DETALED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`The teachings of the present invention are applicable to
`many different types of computer networks and may also be
`used, for instance, in conjunction with direct on-line con
`nections to databases. As will be appreciated by those of
`ordinary skill in the art, while the following discussion sets
`forth various preferred implementations of the method and
`system of the present invention, these implementations are
`not intended to be restrictive of the appended claims, nor are
`they intended to imply that the claimed invention has limited
`applicability to one type of computer network. In this regard,
`the teachings of the present invention are equally applicable
`for use in local area networks of all types. wide area
`networks, private networks, on-line subscription services,
`on-line database services, private networks, and public net
`works including the Internet and the World Wide Web.
`While the principles underlying the Internet and the World
`Wide Web are described in some detail hereinbelow in
`connection with various aspects of the present invention,
`this discussion is provided for descriptive purposes only and
`is not intended to imply any limiting aspects to the broadly
`claimed methods and systems of the present invention.
`The present invention, although equally applicable to
`public and private computer networks, is particularly useful
`for performing monitoring functions in connection with
`public networks which could not heretofore be performed.
`For this reason, implementation of the present invention will
`be discussed in detail in connection with the Internet and the
`World Wide Web. This discussion is equally applicable to
`any network based upon the client/server model.
`Accordingly, as will be appreciated by those of ordinary
`skill in the art, as used herein, the term "client” refers to a
`client computer (or machine) on a network, or to a process,
`such as a Web browser, which runs on a client computer in
`order to facilitate network connectivity and communica
`tions. Thus, for example, a "client machine" can store and
`one or more "client processes." The term "user" is used to
`broadly refer to one or more persons that use a particular
`client machine.
`FIG. 1 illustrates a known computer network based on the
`client-server model, such as the Internet. The network com
`prises one or more "servers" 10 which are accessible by
`"clients" 12, such as personal computers, which, in the case
`of the Internet, is provided through a private access provider
`14 (such as Digital Telemedia in New York City) or an
`on-line service provider 16 (such as America On-Line,
`Prodigy. CompuServe, the MicrosoftNetwork, and the like).
`Each of the clients 12 may run a “Web browser", which is
`a known software tool used to access the Web via a con
`nection obtained through an Internet access provider. The
`servers allow access to various network resources. In the
`Internet, for example, a Web server 10 allows access to
`so-called “Web sites" which comprise resources in various
`different formats. A location of a resource on a server is
`identified by a so-called Uniform Resource Locator, or URL.
`
`NETFLIX, INC. EXHIBIT 1003
`
`
`
`5.796,952
`
`O
`
`15
`
`25
`
`30
`
`35
`
`7
`The “World Wide Web” (“Web”) is that collection of
`servers on the Internet that utilize the Hypertext Transfer
`Protocol (HTTP). HTTP is a known application protocol that
`provides users access to resources (which can be informa
`tion in different formats such as text, graphics, images.
`sound, video, Hypertext Markup Language-"HTML" etc.,
`as well as programs). HTML is a standard page description
`language which provides basic document formatting and
`allows the developer to specify "links" to other servers and
`files. Links are specified via a Uniform Resource Locator or
`“URL". Upon specification of a link, the client makes a
`TCP/IP request to the server and receives information that
`was specified in that URL (for example another "Web page”
`that was formatted according to HTML) in return. The
`information returned may be generated in whole or in part by
`a program that executes on the server. Such programs are
`typically known as CGI (Common-Gateway-Interface)
`scripts and can be written using known programming lan
`guages or methods that the server supports, such as PERL or
`C++. A typical Web page is an HTML document with text,
`"links" that a user may activate (e.g. "click on"), as well as
`embedded URLs pointing to resources (such as images,
`video or sound) that the client must fetch to fully render the
`Web Page in a browser. These resources