`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
`
`
`
`US. Patent
`
`Aug. 18, 1998
`
`Sheet 3 of 7
`
`5,796,952
`
`m623
`
`magma;mom538m
`
`:83
`
`
`
`
`
`383888<E>._wmE<moomn023.05.:mmom30mmcmmzho
`mo”.hmmzcmmmo".hmmzcmm
`
`
`
`\
`
`mw<m<k<n
`
`.25...O...m><w
`
`38$
`
`oz<mN...<:._z_
`
`
`
`mmomaowmmmmozmm
`
`52.62.
`
`$89
`
`
`
`
`
`025.05:E<._.wo...mhmmacmmmum:
`
`
`
`
`
`55.005.mE..mogm><m._
`
`
`
`
`
`AmomwvE<mwommoz_xo<m._.
`
`256$:
`
`2<mooma
`
`383m55.3E«:53.52::
`
`mum—:co<
`
`
`
`SUEZ.oz_>m:.zmo_
`
`
`
`mmp<4204<oaz<
`
`
`
`2.:us:3923
`
`zmmm2:$5;NE
`
`._.zw_._o
`
`mo<a
`
`:83
`
`m2:9”.
`
`NETFLIX, INC. EXHIBIT 1003
`
`NETFLIX, INC. EXHIBIT 1003
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`f
`
`5,796,952
`
`8,zmmémzéh
`339g02¢59;:Mmwzonamm9:85:“.m5“HMS“.
`
`12:25;.
`
`
`Emcza:3,58%.538:ll
`
`
`
`mop.Emaomm
`
`
`0Lmuse.hmo”.526mmmmozmm
`
`seem.%38::025:Ed":wmc<§
`
`o<pnkm4am<v
`
`
`
`mm:2526”.;
`
`33$
`
`3:52:2.23mnoEoz822w$2.20oz_m><moz<roomymErPFmemaom<5552.6
`
`
`2me.25”.Sm><m228:5:
`
`
`7$353333
`
`
`
`
`28E
`
`“.0zmamm
`
`m=p<pm
`
`3°33
`
`mmm>mmw
`
`I:22mozmmmts
`
`<29:smz<E
`
`.o_vmv
`
`3:5:“652::
`
`33:332:
`
`us:a:
`
`mum:
`
`okmhmmzomm
`
`mo<am><m4
`
`Amoqmv
`
`._.zm30
`
`q2.5:.
`
`NETFLIX, INC. EXHIBIT 1003
`
`22:3
`
`
`
`5.3pzmzoit:
`
`
`
`wm=._h<okmm30m¢
`
`
`
`mm<m<p<o:oqm.
`
`z.m><m9255:38I-
`
`<mm>mmm
`
`NETFLIX, INC. EXHIBIT 1003
`
`
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Aug. 18, 1998
`
`Sheet 5 of 7
`
`5,796,952
`
`
`
`mm<m<h<ooz<mN_..<_.:z_
`
`
`
`mum:mo“..255
`
`
`
`.0m.zo_._.o<whmmacmmmum:
`
`
`
`.25.2~23z_mwomaommmmmm>mmm532mm
`
`
`
`323952.6
`
`393$
`
`:33
`
`
`
`32mm;mo...533m
`
`\.
`
`momhmm=0mm
`
`02:85:
`
`2<mcomm
`
`Amuommv
`
`
`
`mo“.5.38....
`
`23mm.
`
`mmomaommm5:8
`‘\<52mm
`
`
`zmI...oz<oz_xo<m._.
`
`
`
`
`
`._.Zm>mmmaoz.m0<n_m><m._o...
`
`
`
`
`
`mmz:.E<._.wmmSCU<simmer;
`
`oh<53
`
`3.5%,:.333
`
`25.35was.2:.
`023.3585;2:$9..
`
`m1...m5:omm¢<4m
`
`$83
`
`
`
`oz<SUEZ.._.zm_._o
`
`
`
`ME.mm...<._:o..<u
`
`383m52.3.
`
`lm2;:
`
`NETFLIX, INC. EXHIBIT 1003
`
`NETFLIX, INC. EXHIBIT 1003
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Aug. 18, 1998
`
`Sheet 6 of 7
`
`5,796,952
`
`mmm>mmm
`
`
`
`Emammarzo
`
`2.~38oz<<53
`
`mm<m<h<o
`
`383
`
`Emmémzék$88
`
`$5,:
`
`
`
`38$9:.Amdfiv
`
`5.3%2.0mm
`
`Dz<002.55.
`
`nowhozmx<2
`
`22ESE:
`
`
`
`
`
`255:.$052.55sz<
`
`
`
`mszmmmmhwmmm>mmm
`
`S:6%E:Ioza:8582
`
`
`
`con.532:.
`
`mums):hmw30mm
`
`532885:.Guam:
`
`:88
`
`#2540mmmahnzom2:hzwmmao
`
`2<mo._.m><m
`
`
`
`
`
`:2.22m22.:
`
`
`52.62593wfiwwmfiq_
`mmazqo20.25.85388
`wzgmmmoE2.8%85.3$822m$553>53925E32:2;SEE
`.33.2235:$520582338.mo
`
`fig.8$5.28Ea:mezzo:
`HM“
`
`2:833.3me
`
`
`
`zmnhmmzmzhmm
`
`no322053
`
`5:2:
`
`
`
`29259.2.>55
`
`Aaowmv
`
`mum:
`
`
`
`5:me8258m2:2:“5.535mg:m><m._0..3m_“—mEEm20.5582.92no.5:“55:38.33:03.
`<53:smzs:AVoaz<mozmmmta80m
`
`:53
`
`E"
`
`NETFLIX, INC. EXHIBIT 1003
`
`NETFLIX, INC. EXHIBIT 1003
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Aug. 18, 1998
`
`Sheet 7 of 7
`
`5,796,952
`
`
`
`szmmmo".530mm32m.
`
`
`5353225025:5.3.:
`
`
`
`38$“:35.mo:mm;
`mos):9:Amiga?3.5.65::
`
`22593:.
`
`mmahm<o
`
`4.2:.—hmuacmmI
`
`hzmzzooo
`
`«:5:33
`
`z.m><mnz<
`
`mm<m<h<n
`
`32$
`
`9:nos—v$2.
`
`mou—hmmDOmm
`
`
`$25:mom20mmm
`
`$92:GmscmmII
`
`
`
`
`
`wmzonfimm._.mw8°va
`
`
`
`mums):meme
`
`<mm>mmm
`
`2_m><moz<223:52"65:03
`
`<2522.6E562.8:.m5$5220:
`
`$553”.0Eoz3::E:222522.
`
`$236mo222522.
`
`:2.22m5.:59;:
`
`EE2m><mmzémmfio
`
`:23mag
`
`
`
`8:5:22:58:.
`
`
`
`
`
`2:szm2:hzmmmao5.3%
`
`
`
`"a535;.3:5:.8523
`
`32$
`
`8.34258
`
`32$
`
`wEEmE:35:2392«53°mum:
`
`8:5I:mozmmmtams:mos.mwmflE$.59...—
`2:9h535:83:8
`
`mmm>mmm
`
`a
`
`3.525:22
`
`
`
`NETFLIX, INC. EXHIBIT 1003
`
`2.wmomaommm
`
`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 may not be located
`on the same server that the HTML document was sent from
`Furthermore, HTTP allows for the transmission of certain
`information from the client to a server. This information can
`be embedded within the URL, can be contained in the HTTP
`header fields, or can be posted directly to the server using
`known HTTP methods.
`FIG. 2 is a block diagram of a representative "client"
`computer. The same or similar computer can also be used for
`each of the servers. The system unit 21 includes a system bus
`31 to which various components are coupled and by which
`communication between the various components is accom
`plished. The micropro