throbber
United States Patent 19
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket