`Davis et al.
`
`USOO5796952A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,796,952
`Aug. 18, 1998
`
`[54] METHOD AND APPARATUS FOR
`TRACKING CLIENT INTERACTION WITH A
`NETWORK RESOURCE AND CREATING
`CLIENT PROFILES AND RESOURCE
`DATABASE
`
`Primary Examiner-Robert B. Harrell
`Attorney, Agent, or F inn-Adams & Wilks
`
`[57]
`
`ABSTRACT
`
`[75] Inventors: Owen Davis‘ New York; Vidyut Jain‘
`Brooklyn. both of NY.
`
`[73] Assignee: Dot Com Development, Inc.. New
`York N -Y-
`
`[21] Appl' No‘: 821534
`[22] Filed:
`Mar. 21, 1997
`
`[51] Int. Cl.6 .................................................... .. G06F 13/00
`[52]
`_____________ __ 395/2005‘;
`[58] Field of Search ..................... .. 364/DIG. 1 MS File.
`364/116. 2 MS File; 330/4; 395/200}
`200.31. 200.32. 200.33. 200.54. 280. 381.
`670- 680~ 712
`
`{56]
`
`References Cited
`
`US. PATENT DOCUMENTS
`
`4,977.594 12/1990 Shear ........................................ .. 380/4
`5.638.443
`6/1997 Ste?k et a1,
`..... .. 380/4
`51675510 10/1997 C0583’ et a1- --
`364/514 A
`5.682.525 10/1997 Bouve etal. ......................... .. 395/615
`5,706,502
`1/1998 Foley et a1. ........................... .. 395/682
`5,703,730
`1/1993 Levergood et a1_
`_ 395/2001;
`5.710.918
`1/1998 Lagarde el al- . - - -
`- - - . .- 395/680
`5,715,453
`2/1998 Stewart ................................. .. 395/615
`OTHER PUBLICATIONS
`
`S. Gundavaram. CG] 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
`_
`l
`.
`the steps of using a client to specify an address of a resource
`located on a ?rst server. downloading a ?le corresponding to
`the resource from the ?rst server in response to speci?cation
`of the address. using the client to specify an address of a ?rst
`executable program located on a second server. the address
`of the ?rst executable program being embedded in the ?le
`
`downloaded from the ?rst Sarvcr‘ the ?rst executable pro’
`gram including a software timer for monitoring the amount
`of time “16 Client SP¢nds im?racting with and displaying the
`?le downloaded from the ?rst sewer. downloading the ?rst
`executable program from the second server to run on the
`client so as to determine the amount of time the client
`interacts with the ?le downloaded from the ?rst server. using
`a server to acquire client identifying indicia from the client.
`and uploading the amount of time determined by the ?rst
`executable program to a third server. The ?rst executable
`program may also monitor time. keyboard events. mouse
`events. and the like. in order to track choices and selections
`made h
`set in the ?le
`d m cxccum u on the
`y a “
`_
`~ 3“
`Y
`P_
`_
`occurrence of a predetermined event. as well as monitoring
`or determining the amount of information downloaded by
`tbs Client‘ The monitor?d infonnation and cum.“ idgntifying
`
`indicia is stored on a database in a server for use in analysis
`and for automatically serving out ?les assembled according
`to user interests and preferences.
`
`71 Claims, 7 Drawing Sheets
`
`REQUEST HTML DOCUMENT
`{560"
`‘
`y
`
`CAPTURE CLIENT
`_. DATA AND sAvE IN
`DATABASE
`_|'
`REQUEST F°R —
`(5603A)
`‘I
`RESOURCE USING
`"*5 ‘MG’ “5
`SET nEsPDNsE
`lsml
`HEADER AND
`RErunN
`REQUEST FOR ‘__ " rnANsPAnENr
`L’ APPLET usms ___+
`mAcE
`<APPLET> TAG
`[55035)
`(550‘)
`
`CGI SCFUPTl
`
`‘ll
`
`SEHVEH
`A
`
`REuuEsT mAeEs
`(5502)
`
`l’
`RENDER mAeEs
`[55051
`
`BEGIN sum
`METHOD AND
`MAKE NOTE or
`CURRENT TIME
`(8608)
`
`CAPTURES CLIENT
`-> tNFOFiMATlON
`(8607A)
`'
`
`*
`SAVE To “A”
`THE" “UN IN"
`METHOD.
`INSIDE INIT
`CONTACT cat
`scam AND _ ?ffgi'igmé“
`RECEIVE
`H‘STOR'CAL
`CUSTOMIZED
`PROFILE
`INFORMATION \
`‘55078)
`($601)
`'
`_____|
`RETURN
`\ CUSTOMIZED
`INFORMATION
`(5507;)
`CG‘ SCR'" 3
`
`i
`momma USER
`ACTION SUCH As
`MOUSE cucxs
`OR KEYBOARD
`ENTRY
`(5509)
`l’
`usER
`REQUESTS TO
`LEAVE PAGE
`saw
`(
`)
`CLIENTI
`
`->
`
`RUN STOP METHOD AND
`CALCULAgEgHE TIME
`DIFFER N E AND
`TRANSMIT DATA
`(sen)
`
`[SERVER 5
`
`I
`CAPTURE
`CLtENT
`DATA
`> AND
`mm m
`DATA
`BASE
`(5511A)
`.
`RETURN
`0F
`STATUS
`(5511s)
`CGI scrum
`
`Hulu
`Exhibit 1015
`Page 0001
`
`
`
`US. Patent
`
`Aug. 18, 1998
`
`Sheet 1 of 7
`
`5,796,952
`
`3
`
`2
`
`w/ i
`8,
`
`51/11;
`
`‘J. l w _
`
`
`
`$33 .5252
`
`595%
`
`_ 25ml
`
`9
`
`Hulu
`Exhibit 1015
`Page 0002
`
`
`
`US. Patent
`
`Aug. 18, 1998
`
`Sheet 2 0f 7
`
`5,796,952
`
`Figu re 2
`
`OPERATING /50
`SYSTEM
`I
`BROWSER k
`62
`
`32
`/
`MICRO
`PROCESSOR
`
`CACHE
`\
`63
`
`RAM
`21
`
`33
`/
`
`50
`\
`
`56
`/
`
`01cm
`SIGNAL
`PROCESSOR
`\
`43
`
`R0“
`
`MODEM
`
`Q 35
`/
`MEMORY
`MANAGEMENT 31
`/
`42
`\
`c0
`R0“
`
`36
`\
`HARD
`msx
`
`37
`5
`FLOPPY
`DISK
`
`38
`/
`KEYBOARD
`CONTROLLER
`
`39
`/
`MOUSE
`CONTROLLER
`
`4O
`/
`VIDEO
`CONTROLLER
`
`41
`/
`AUDIO
`CONTROLLER‘
`
`KEYBOARD
`/
`22
`
`MousE
`/
`23
`
`GRAPHIC
`25B
`DISPLAY
`F'—_"1
`/
`R
`PM;
`24
`25A/ SPEAKE
`s
`
`Hulu
`Exhibit 1015
`Page 0003
`
`
`
`U.S. Patent
`
`Aug. 13, 1998
`
`Sheet 3 of 7
`
`5,796,952
`
`
`
`
`
`mo“.5m=cmEmo".Emaoum
`
`mo<._$;E:Smacmm
`
`:83
`
`\..
`
`
`
`
`
`
`
`E53.88.<._m>._mms:EooEoz_v.o<Emmomaommc$1.8
`
`mSiam
`
`mm<mE<o
`
`:5...O...m><w
`
`E59
`
`
`
`mmomaommmmmazmm
`
`pzmso2.
`
`$33
`
`oz<m~_..<:._z_
`
`
`
`0z_v_o<m_._.»m<._.w2.mpmmacmmEm:
`
`_2<moOmn_m_.:.moimam:
`
`
`Amonw.s_<mo.~m..oz:_o<E
`
`uz§u<E
`
`z<moom¢
`
`383m53mm3«:53.5245
`
`mmm_:oo<
`
`
`
`<.o_oz_oz;.._:zmo_
`
`
`
`mm»<4=o4<oaz<
`
`
`
`2.:ms:$m._<._m
`
`
`
`zmmmmi.mm=sm_>mi
`
`._.zw_._o
`
`mo<a
`
`:89
`
`m2:9...
`
`Hulu
`
`Exhibit 1015
`
`Page 0004
`
`Hulu
`Exhibit 1015
`Page 0004
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Aug. 13, 1993
`
`Sheet 4 of 7
`
`5,796,952
`
`
`z_m><moz<Covwv
`
`<.._.<O._.zm_:_Ums:.r._.zmmm:o
`
`
`
`
`
`oozfis:z_23.
`
`mE=E<o
`
`E522O...m><m
`
`Amnaem.
`
`ozaam._.:<
`
`o<»Ahm4am<v
`
`.moem.
`
`wmu<2_
`
`.mo¢m.
`
`._.m<._.m26$
`
`22oofms
`
`zmahmm
`
`22$93.:mgxw
`mwzoammmo<pus.mzp
`
`._.m
`
`mmop.Gmsomm
`
`
`
`cza:momsommm
`
`zmm<¢mz<m~
`
`
`
`
`
`mo<=_»mouhmmaommmmozmm
`
`
`
`<»<o»zm:oJEPI
`
`
`
`mm=Ȣ<okmmaomm
`
`
`
`mm<m<p<ocoqm.
`
`2.m><m92EmsaoooII
`
`Qmocmv<E>$m
`
`noE02E22
`
`.<o_¢m.
`
`m=»<»m325.5;
`
`.mc.em.
`
`m$>mmm
`
`I.22mozmfiio
`
`<»<o.:smz<m»
`
`.o.¢mv
`
`going3522.
`
`mE:=3<o22
`
`ms:2:
`
`mum:
`
`ohmhmmacum
`
`uu<am><m4
`
`.mo¢m.
`
`hzmso
`
`w2:9"-
`
`HLflu
`
`Exhibit 1015
`
`Page00O5
`
`Hulu
`Exhibit 1015
`Page 0005
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Aug. 18, 1998
`
`Sheet 5 of 7
`
`5,796,952
`
`
`
`mm<m<._.<Qoz<m~_..<Ez_
`
`
`
`mmm:E0“.._._<>>
`
`
`
`5.5.2~23z_mmomaommmmE>$mEazmm
`
`
`
`38$.»zu_._o
`
`.533
`
`:33
`
`m9:_mm_sE:Zmaomm
`
`\.
`
`mompmmaomm
`
`oz=_o<E
`
`2<mcomm
`
`Ammommv
`
`
`
`mo“.Smacum
`
`.<3...m.
`
`mmomaommmmete
`‘\<$>$m
`
`
`._.Zm>mmm:Os_m0<n_m><m._O...
`
`zmI._.n_z<.oz_xo<E
`
`
`
`
`
`.Gm.zO_._.U<wpmmaommmmm:
`
`
`
`
`
`mms:._.._.m<._.mmm:DCU<E<mOOmn_
`
`:83
`
`
`
`oz<<_oaz_._.zm_.._o
`
`
`
`m:._.m.n:<.5o._<u
`
`
`
`m:._.ms:Sm¢<._m
`
`oz§o<E
`
`m:smz<E.333
`
`s_<mooEom;m_w,<m<w_=mmm:
`
`
`
`op<._.<o
`
`333m$>$m
`
`%m2:9".
`
`Hulu
`
`Exhibit 1015
`
`Page 0006
`
`Hulu
`Exhibit 1015
`Page 0006
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Aug. 18, 1993
`
`Sheet 6 of 7
`
`5,796,952
`
`mmm>mmm
`
`
`
`_.zm_._omm..:._<o
`
`z_m><moz<<:3
`
`mm<m<»<o
`
`28$.
`
`mmzommmmEmmm>mmm
`
`9262_vm:._.Ioz_m=momzommm
`
`
`
`mo".Bmaamm
`
`mums):pmmaomm
`
`
`
`Emsaooo.55Zmacmm
`
`:88
`
`oz...ESE:
`
`
`
`
`
`zE:.mm.flog.Eazmm<
`
`
`
`:mm<._mz<Esome
`
`moss
`
`
`
`38$.9:.a.m._&<v
`
`:2526$
`
`oz<oo:.Es_
`
`
`
`mom_._.ozmv_<_2
`
`
`
`
`
`25.o._.m><w
`
`
`
`._.zm_.._0mmE...E<omsz...hzwmmflo
`
`pzmso225$.oo:Es_
`
`:2.wez_
`
`.<:m£
`
`5.3».
`
`
`
`zmammzmafim
`
`noam~_so5=o
`
`m._:oE
`
`
`
`zo_._.<sEou_z_>m._.zm
`
`Awoumv
`
`$9..
`
`
`
`z_mimwz_sEmEoohm>.womE8.0.8mmaoz
`
`
`.wmpam_._<oEo$_:omN_s_o5:oam<om>m§mo
`
`mama.88:m.8E:8:22
`mm<m<:EEmsc22EE32:25zo_S<
`
`
`
`
`<53:s_mz<EA.0E2m_ozm$&_a33
`
`:53
`
`E"
`
`
`
`zo:<:mEz_92no.5:n_o$22.8.Emmaoum3:3.833.ms:2:m:<.53<omos.m><m._0..3m_u_m.:<$
`
`Hulu
`
`Exhibit 1015
`
`Page 0007
`
`Hulu
`Exhibit 1015
`Page 0007
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Aug. 18, 1998
`
`Sheet 7 of 7
`
`5,796,952
`
`
`
`25:3.murwmmhmmummm$29
`
`
`
`
`
`._.2mmm_...:V.n«%__%<m._.w<._.£.m._..._m<vmmamac$.53.
`
`
`38$.Aochwvm0<mmm>>
`
`n2<mma<m:.
`
`wmzommmmEmAmomm.
`
`o<.—82vm.._._.
`
`mm=»m<o
`
`«:5:33
`
`2.min22
`
`mm<m<h<o
`
`22:».
`
`
`
`mo“.Bmaomm
`
`
`az_m=mumaommm
`$32.GmzommII
`
`
`
`
`
`
`
`pzmssooa4.2»:ZuzanaU
`
`
`
`mums...mmozmm
`
`<mm>Em
`
`z_m><moz<22aofms"6.:sos_<
`
`
`
`«:3:m_._oE56zawmmi.mxozzos
`
`
`
`mm<mE<..._u_oEoz322mE.zo:<s¢ou_z_
`
`m:=:n_<omo.zo_::.Eou_z_
`
`:2.23.22:mmofiz
`
`s_<mO...m><mmz_sEm:mo
`
`:23mag
`
`
`
`oozfizzo:<=mou_z_
`
`
`
`
`
`2:552:.wzmmmaoE.E._<
`
`mozE:.mm8:52.8522.
`
`32$
`
`mo<o._z.soo
`
`32$
`
`w_:EmE:m:<.So._<oE2fimmacmm53
`3:5.I:mozmmmiams:was.man:2m._:m_..._
`2.5.N«:35:83:9
`
`mmm>mmm
`
`a
`
`m:s_wz<E22
`
`
`
`Hulu
`
`Exhibit 1015
`
`Page 0008
`
`
`
`O...mmomsommm
`
`Hulu
`Exhibit 1015
`Page 0008
`
`
`
`
`
`
`
`
`
`
`
`
`
`5.796.952
`
`1
`METHOD AND APPARATUS FOR
`TRACKING CLIENT INTERACTION WITH A
`NETWORK RESOURCE AND CREATING
`CLIENT PROFILES AND RESOURCE
`DATABASE
`
`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
`pro?les indexed by user and/or resource identity. and for
`generating customized resources based upon client pro?les.
`
`BACKGROUND OF THE INVENTION
`The development of software packages designed to permit
`simpli?ed 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 dif?cult 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 dif?
`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 identi?cation 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
`
`15
`
`25
`
`35
`
`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 ?ll 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-czdled
`“submit” button of the ?ll-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 ?eld located in a ?le on the client computer (this ?le
`is known as the “client ID” or “cookie") to include infor
`mation about the user’s preferences. When the user later
`returns to a speci?ed Uniform Resource Locator. or “URL”.
`on the same server. the “client ID” 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-speci?c
`information. This application is disclosed. for example. in A.
`Gundavararn. CG] 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 dilferent 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 ?ll-in
`form to transmit the information to the server. Like the
`customizable home page. this method of user-speci?c 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
`
`Hulu
`Exhibit 1015
`Page 0009
`
`
`
`5.796.952
`
`4
`SUMMARY OF THE INVENTION
`
`15
`
`25
`
`3
`viewing a ?rst 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 ?rst 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
`page) has been displayed. and how many times the banner
`was “click ” on to visit the Web site of the advertiser.
`Generally. an ad banner is embedded inside a Web page
`located on a ?rst server through the use of the known HTML
`<lMG> tag. When a client machine passes a TCP/[P request
`35
`for the Web page to the ?rst 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 speci?c
`ad has been displayed is incremented. The ad banner itself
`may have an embedded address referring to yet another Web
`45
`resource. In such an instance. if the user “clic ” on the ad
`banner. the client may load a resource on the second server
`which once again captures the user’s ID 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
`speci?c 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.
`
`50
`
`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 elfectiveness 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 pro?les 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 pro?les
`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 pro?le.
`In order to achieve the above-described and other objects
`and advantages. a tracking program is embedded in a ?le
`which is downloaded from a server to a client. The tracking
`program need not originate from the same server that sent
`the ?le. 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 tracln'ng 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 ?le or to
`monitor choices (such as selections or links to other
`resources or ?les) made by the user while within the ?le. 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
`?le 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 ?le. 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 pro?les of individual users. to
`serve out highly targeted information based upon user
`pro?les. as well as to extract information about how much
`
`55
`
`65
`
`Hulu
`Exhibit 1015
`Page 0010
`
`
`
`5.796.952
`
`5
`data was downloaded by a respective client. and how long
`or how often speci?c ?les 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 Wide Web. The tracking program may monitor use of
`and interaction with any of the resources downloaded from
`a server. including an executable program. a database ?le. 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 ?le 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-cg. an “ad
`banner”). A TCP/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 ?rst 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 ?rst executable program that runs on a server.
`the ?rst 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 ?rst 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 speci?ed by the one or more ?rst URLs.
`In attempting to fetch the resource associated with the ?rst
`executable program. the client causes the program to run on
`the server speci?ed by the second URL. Upon execution of
`the ?rst 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 pro?le database.
`The client also fetches the second executable program.
`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
`di?erence in time values. the tracking program uploads the
`calculated value to the server for storage in the user pro?le
`database.
`
`20
`
`25
`
`30
`
`35
`
`6
`FIG. 4 is a ?owchart 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 ?owchart diagram of a third embodiment of the
`present invention:
`FIG. 6 is a ?owchart diagram of a fourth embodiment of
`the present invention: and
`FIG. 7 is a ?owchart diagram of a ?fth embodiment of the
`present invention.
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`The teachings of the present invention are applicable to
`many di?'erent 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 ‘?iser" 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 Microsoft Network. 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
`identi?ed by a so-called Uniform Resource Locator. or URL.
`
`45
`
`55
`
`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 ?owchart diagram of a ?rst 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:
`
`Hulu
`Exhibit 1015
`Page 0011
`
`
`
`5.796.952
`
`20
`
`25
`
`35
`
`7
`The “World Wide Web” (“Web”) is that collection of
`servers on the Internet that utilize the Hypertext Transfer
`Protocol ( HTI‘ P). 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
`?les. Links are speci?ed via a Uniform Resource Locator or
`“URL”. Upon speci?cation of a link. the client makes a
`TCP/IP request to the server and receives information that
`was speci?ed 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
`CH. 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. H'ITP 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 ?elds. or can be posted directly to the server