`Hoyle
`
`I 1111111111111111 11111 111111111111111 IIIII lllll lllll 111111111111111 11111111
`
`US006628314Bl
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 6,628,314 Bl
`Sep.30,2003
`
`(54) COMPUTER INTERFACE METHOD AND
`APPARATUS WITH TARGETED
`ADVERTISING
`
`Primary Examiner-Cao (Kevin) Nguyen
`(74) Attorney, Agent, or Firm-Reising, Ethington, Barnes,
`Kisselle, P.C.
`
`(75)
`
`Inventor: Martin David Hoyle, Destrehan, LA
`(US)
`
`(73) Assignee: B.E. Technology, LLC, Bay City, MI
`(US)
`
`( *) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 436 days.
`
`(21) Appl. No.: 09/699,705
`
`(22) Filed:
`
`Oct. 30, 2000
`
`Related U.S. Application Data
`
`( 62) Division of application No. 09/118,351, filed on Jul. 17,
`1998, now Pat. No. 6,141,010.
`Int. Cl.7 .................................................. G06F 3/00
`(51)
`(52) U.S. Cl. ........................................ 345/854; 345/853
`(58) Field of Search ................................. 345/854, 839,
`345/764, 781, 853, 835; 705/14, 26; 715/501.1,
`514
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5,937,392 A * 8/1999 Alberts ........................ 705/14
`5,948,061 A * 9/1999 Merriman et al. .......... 709/219
`* cited by examiner
`
`(57)
`
`ABSTRACT
`
`A method and apparatus for providing an automatically
`upgradeable software application that includes targeted
`advertising based upon demographics and user interaction
`with the computer. The software application is a graphical
`user interface that includes a display region used for banner
`advertising that is downloaded from time to time over a
`network such as the Internet. The software application is
`accessible from a server via the Internet and demographic
`information on the user is acquired by the server and used
`for determining what banner advertising will be sent to the
`user. The software application further targets the advertise(cid:173)
`ments in response to normal user interaction, or use, of the
`computer. Associated with each banner advertisement is a
`set of data that is used by the software application in
`determining when a particular banner is to be displayed.
`This includes the specification of certain programs that the
`user may have so that, when the user runs the program (such
`as a spreadsheet program), an advertisement will be dis(cid:173)
`played that is relevant to that program (such as an adver(cid:173)
`tisement for a stock brokerage). This provides two-tiered,
`real-time targeting of advertising-both demographically
`and reactively. The software application includes program(cid:173)
`ming that accesses the server on occasion to determine if one
`or more components of the application need upgrading to a
`newer version. If so, the components are downloaded and
`installed without requiring any input or action by the user.
`
`22 Claims, 14 Drawing Sheets
`
`Health
`lace Other Ad Here
`0 Viewlitle
`"Sports"
`8···
`•--'---4
`8··0 Baseball
`~ 8···0 Managers
`'····e Link4
`!
`@
`8-···D Players
`i L ... D Link3
`m___
`~ i······c::J Lhk I
`flu
`i.. .... 0 Li,k2
`
`80
`
`Twitter-Google Exhibit 1053
`
`
`
`i,-
`~
`,I;;..
`i,-
`~
`~
`N
`a-...
`_,.a-...
`r.,J.
`e
`
`'"""'
`,i;;..
`'"""' 0 ....,
`~ ....
`'JJ. =(cid:173)~
`
`8
`0
`N
`~ ~=
`~ '?
`'JJ.
`
`~ = ......
`~ ......
`~
`•
`r:JJ.
`d •
`
`Application
`Software
`Client
`
`FIG. 1
`
`I
`
`Server
`ADM
`
`I
`
`22
`
`~
`
`Internet
`
`r·
`
`20
`
`30
`
`32
`
`18
`
`Storage
`Banner
`
`TCP I IP
`
`~---------------~-~-----·
`
`r----1-----------------~
`10
`
`Storage
`User Data
`
`34
`
`Display
`
`24
`
`Your Ad Here
`.------,.....1-28
`
`26
`
`14
`
`,-------1------L.--
`
`Module
`ADM
`
`I
`
`Module
`
`GUI
`
`1,2 ! j
`
`
`
`i,-
`~
`,1;;;..
`i,(cid:173)
`~
`~
`N
`a-...
`_,.a-...
`rJ'J.
`e
`
`'"""'
`,i;;..
`0 ....,
`N
`~ ....
`'JJ. =(cid:173)~
`
`0 8
`~ ~=
`~ '?
`'JJ.
`
`N
`
`~ = ......
`~ ......
`~
`•
`r:JJ.
`d •
`
`FIG.2
`
`22
`
`ADM Server
`
`Internet
`
`20
`
`l::Son
`
`Software
`Client
`
`32
`
`I
`
`-1
`
`TCP I IP
`
`26
`
`Module
`ADM
`
`-
`
`Module
`
`GUI
`
`Display
`
`I_
`
`36
`
`38
`
`Banner
`
`User Data
`
`30
`
`34
`
`
`
`i,-
`~
`,I;;..
`i,-
`~
`~
`N
`a-...
`_,.a-...
`rJ'J.
`e
`
`~
`
`'"""'
`,i;;..
`0 ....,
`~ ....
`'JJ. =-~
`
`~ ~=
`~ '?
`'JJ.
`
`~
`0
`0
`N
`
`~ = ......
`~ ......
`~
`•
`r:JJ.
`d •
`
`46
`
`FIG. 3
`
`Database
`
`Demographics
`
`User/
`
`I I
`
`I Ad Database
`
`44,,
`
`40
`
`I
`
`Client
`
`\
`22
`
`I
`
`ADM Server
`
`Components
`
`Updated
`
`I
`
`48~
`
`Ad Servers
`
`50
`
`Internet
`~ ~ ~
`
`,
`
`'>-
`
`20/
`
`/
`
`I
`
`I ~
`
`Client
`
`I
`
`I
`
`Client
`
`Client
`
`40
`
`Client
`
`I
`
`L
`
`\
`
`I
`
`Client
`
`40
`
`Client
`
`
`
`i,-
`~
`,I;;..
`i,-
`~
`~
`N
`a-...
`_,.a-...
`rJ'J.
`e
`
`'"""'
`,i;;..
`0 ....,
`~ ....
`'JJ. =-~
`
`,i;;..
`
`~ ~=
`~ '?
`'JJ.
`
`~
`0
`0
`N
`
`~ = ......
`~ ......
`~
`•
`r:JJ.
`d •
`
`FIG. 4
`
`22
`
`I
`
`Server
`ADM
`
`:me~
`
`30
`
`Storage
`Banner
`
`Storage
`User Data
`
`34
`
`,--------
`
`56
`
`---------~------------------------
`
`Application
`Software
`Client
`
`Module
`Auxiliary
`
`~ all other modules
`rn~ Interfaces with
`
`Module
`Builder
`
`66
`
`62
`
`Module
`PDA
`
`Module
`ADM
`
`54
`
`Module
`
`1/0
`
`Module
`Login
`
`GUI Module
`
`Module
`Notes
`
`64
`
`60
`
`52
`
`I
`1
`
`26
`
`Display
`
`
`
`i,-
`~
`,1;;;..
`i,(cid:173)
`~
`~
`N
`a-...
`-..a-...
`rJ'J.
`e
`
`'"""'
`,i;;..
`0 ...,
`~ ....
`'JJ. =(cid:173)~
`
`Ul
`
`8
`0
`N
`9
`~
`~ '?
`'JJ.
`
`~ = ......
`~ ......
`~
`•
`r:JJ.
`d •
`
`~ FIG. 5a
`
`0
`
`FIG. 5
`
`~~DI]
`
`74
`
`I
`
`88
`
`GJ[g]IBJ
`
`111 hl~llwww.bumnb,.corn I
`~
`_ .
`
`84~ m, !:l;J
`86---U:ll►IH ~ ~ ~ rffi ~ div OJ
`70
`
`lools:
`
`80
`
`24
`
`82
`
`::~II ~ ~: ... ve Your Ad Here
`
`i... ... 0 Li1k2
`!······O Li1k I
`I
`l.. ... 0 Link3
`8··L] Players
`'···e Link4
`i
`8··0 Managers
`
`rElrn
`~
`~
`~
`
`El··O Baseban
`
`..o.. I ,.,, B···D "Sports"
`0 Viewlitle
`
`lace Other Ad
`
`Health
`
`80
`
`72
`
`86
`
`
`
`i,-
`~
`,1;;;..
`i,(cid:173)
`~
`~
`N
`a-...
`_,.a-...
`rJ'J.
`e
`
`'"""'
`,i;;..
`0 ....,
`~ ....
`'JJ. =(cid:173)~
`
`O'I
`
`8
`0
`N
`~ ~=
`~ '?
`'JJ.
`
`~ = ......
`~ ......
`~
`•
`r:JJ.
`d •
`
`---------~;=:J ____ FI G. 6
`
`---------'
`I
`I
`I
`I
`I
`I
`I
`I
`I
`
`Messaging
`
`Error Handling /
`
`114
`
`Component
`Flag Alert
`
`112
`
`I 98
`I
`I
`
`100
`
`-------------
`
`I
`[________ ~ 52
`
`I Toolbar Component
`
`Collapsible
`
`I ~
`
`;[ Banner Component
`l :_J
`
`I
`
`104
`
`Menu Component
`
`Collapsible
`
`Component
`
`User Profile Access
`
`~2
`
`URL Component
`
`I
`
`Toolbar Component
`
`I
`1
`:
`I
`----1
`
`,
`
`Component
`
`Timer I Display
`
`,
`-------
`C 110
`--------
`ADM Module
`
`,
`
`Component
`I •
`Key Event
`r-----;=Ios
`
`-----------c~;-------
`
`Component
`
`File I/O
`
`•------•1
`I◄
`I
`f 116 ~
`I
`r---------------------------,
`No~~Module ------------------,
`
`and Printing
`Reporting
`r-124
`I/O Module
`
`Component
`Notes Logic
`
`118----._
`
`128
`
`Component
`
`Streams
`r-126
`
`I
`I
`I
`I
`
`Drag Button
`
`Drag and Direct
`
`1
`
`______ L_
`
`,
`
`r----------
`
`GUI Module
`
`\__ 56
`
`-----------------\
`
`_______ I
`I
`I
`I
`Notes Send/Receive I :
`I
`122
`I
`I
`I
`
`Component
`
`Component
`
`Notes Registration
`
`120
`
`Component
`Notes Display
`
`90
`
`96
`
`
`
`i,-
`~
`,1;;;..
`i,(cid:173)
`~
`~
`N
`a-...
`_,.a-...
`rJ'J.
`e
`
`'"""'
`,i;;..
`0 ....,
`-..J
`~ ....
`'JJ. =(cid:173)~
`
`0 8
`~ ~=
`~ '?
`'JJ.
`
`N
`
`~ = ......
`~ ......
`~
`•
`r:JJ.
`d •
`
`FIG. 7
`
`High
`
`travel, entertainment
`
`BannerXX.gif www.last_link.com\cgi\login
`
`Medium
`
`www.sports.com
`
`www.espn.com
`
`www.nfl.com
`
`sports
`
`third link.com
`
`Banner03.gif
`
`High
`
`Control Panel:System
`
`Banner02.gif www.second_link.com \ products business, shopping, computers
`
`General
`
`Excel™, 123™
`
`www.microsoft.com\excel
`
`business, finance
`
`www.first link.com
`
`BannerOl.gif
`
`www.lotus.com\123
`
`Level
`Priority
`
`Programs
`Associated
`
`Links
`
`Associated
`
`Categories
`Associated
`
`Destination Link
`
`Image File
`
`
`
`U.S. Patent
`
`Sep.30,2003
`
`Sheet 8 of 14
`
`US 6,628,314 Bl
`
`Start
`
`User Download
`Request
`
`Send Form
`to User
`
`132
`
`134
`
`Assign Unique
`ID to User
`
`140
`
`Store ID Along
`with Demographic
`Data
`
`142
`--__J
`
`Transmit Client
`Application to User
`
`144
`
`138
`
`Request Correction
`ofForm
`
`Stop
`
`FIG. 8
`
`
`
`U.S. Patent
`
`Sep.30,2003
`
`Sheet 9 of 14
`
`US 6,628,314 Bl
`
`Start
`
`Display
`Login
`
`148
`
`150
`
`Yes
`
`No
`
`New
`Login Name
`?
`
`Yes
`
`154
`
`Yes
`
`160
`
`Access User Setup
`Preferences & Bookmarks
`from User Data Storage
`
`Request
`Demographic Data
`
`Display
`GUI
`
`Stop
`
`FIG. 9
`
`156
`
`164
`
`166
`
`162
`
`Required Data
`Present
`?
`
`Yes
`
`Report Demographic
`Data & Store New
`User Data
`
`Access Default
`Preferences & Bookmarks
`
`
`
`U.S. Patent
`
`Sep.30,2003
`
`Sheet 10 of 14
`
`US 6,628,314 Bl
`
`Start
`
`?
`
`No
`
`Yes
`
`FIG. 10
`
`Connection
`Available
`?
`
`No
`
`182
`
`Report computer
`Usage Information
`
`Download
`New Banners
`
`186
`
`184
`
`Reset
`Flag Alert
`
`188
`
`No
`
`Component
`
`Yes
`
`Builder
`Routine
`
`190
`
`170
`
`172
`
`No
`
`User
`Input
`?
`
`No
`
`Timer
`Expired
`?
`
`Yes ~ - - - - - -~
`
`Yes
`
`176
`
`No
`
`Process
`User Input
`
`Event
`?
`
`Yes
`
`Select &
`Display Banner
`
`174
`
`
`
`U.S. Patent
`
`Sep.30,2003
`
`Sheet 11 of 14
`
`US 6,628,314 Bl
`
`Start
`
`?
`
`No
`
`FIG. 11
`
`194
`
`Run Default
`Browser and open
`Banner Link
`
`196
`
`Yes
`
`Shortcut/
`Application
`Selected
`?
`
`198
`Set
`Priority = Medium
`
`200
`Execute Shortcut/
`Application
`
`204
`Set
`Priority = Medium
`
`------206
`Open Category
`Links Window
`
`208
`
`Yes
`
`210
`Set
`Priority = High
`
`212
`Run Default
`Browser and open
`Selected Link
`
`216
`Set
`Priority = High
`
`218
`
`Run Default
`Browser and open
`Specified Link
`
`Stop
`
`?
`
`No
`
`Selected
`?
`
`No
`
`Input
`?
`
`No
`
`
`
`U.S. Patent
`
`Sep.30,2003
`
`Sheet 12 of 14
`
`US 6,628,314 Bl
`
`Start
`
`Determine
`Priority Level
`
`Determine
`Banner Category
`
`220
`
`222
`
`Select & Display
`Banner
`
`230
`
`Record Event, Time,
`& Banner Display
`
`Increment
`Banner Count
`
`224
`
`226
`
`228
`
`FIG. 12
`
`No
`
`232
`
`234
`
`Move to Next
`Set of Banners
`
`Notify Flag
`Alert Component
`
`Stop
`
`
`
`U.S. Patent
`
`Sep.30,2003
`
`Sheet 13 of 14
`
`US 6,628,314 Bl
`
`Start
`
`Access Version Numbers for
`each Upgradable Component
`in Client Application
`
`236
`
`FIG. 13
`
`Generate
`Current
`Blueprint
`
`238
`
`240
`
`Access updated
`Blueprint from ADM
`Server
`
`242
`
`No
`
`Is Updated
`Blueprint Equal
`to current
`Blueprint?
`
`Yes
`
`244
`
`No Upgrading
`Necessary
`
`246
`
`Determine New
`Component(s) Needed
`
`248
`
`Pass Control to
`Auxiliary Module
`
`New
`Builder Module
`Needed
`?
`
`No
`
`252
`
`Terminate Builde
`Execution
`
`254
`
`Download and Install
`New Component(s)
`
`250
`
`Stop
`
`
`
`U.S. Patent
`
`Sep.30,2003
`
`Sheet 14 of 14
`
`US 6,628,314 Bl
`
`FIG.14
`
`Start
`
`256
`
`Access Updated
`Blueprint ID
`from ADM Server
`
`258
`
`Updated
`ID equal to
`current ID
`?
`
`No
`
`262
`
`260
`
`Send Current
`ID to ADM Server
`
`No upgrading
`Necessary
`
`264
`
`266
`
`Download & Install
`Updated Component( s)
`
`Restart
`GUI
`
`Stop
`
`
`
`US 6,628,314 Bl
`
`1
`COMPUTER INTERFACE METHOD AND
`APPARATUS WITH TARGETED
`ADVERTISING
`
`CROSS-REFERENCE TO RELATED
`APPLICATION
`
`This application is a divisional of U.S. Ser. No. 09/118,
`351, filed Jul. 17, 1998, now U.S. Pat. No. 6,141,010.
`
`TECHNICAL FIELD
`
`This invention relates in general to user interfaces for
`accessing computer applications and information resources
`and, in particular, to user interfaces that provide advertising
`obtained over a global computer network such as the Inter(cid:173)
`net.
`
`BACKGROUND OF THE INVENTION
`
`The continuing expansion of the Internet and other private
`and semi-private networks has led to the now widespread
`practice of electronic distribution of software to end users,
`whether as freeware, shareware, or fully paid-up licensed
`software. Traditionally, freeware programs have generally
`been small, unsupported single-purpose programs that are of
`limited use. Since no income was derived from these
`programs, there was little incentive for the creators of this
`type of software to undertake major development efforts.
`More recently, however, a new type of free software has
`emerged which, while free to end users, does provide
`income to the creator of the software via advertising incor(cid:173)
`porated into the software. This is of benefit both to the end
`user and advertiser, as the end user obtains useful software
`at no cost and the advertiser gets advertising exposure for its
`products or services. One well known example of this type
`of arrangement is in push technology products, such as
`Pointcast™, which permits a user to receive and display
`broadcasted information over the Internet. Using this
`software, new advertising is periodically received along
`with various requested types of news information (e.g.,
`financial, business, sports) and is stored locally on the user's
`computer for later retrieval and display by the program.
`The new advertising medium provided by the Internet has
`a number of significant advantages for advertisers. First, the
`users of the software within which the advertising is placed
`have, on average, much more disposable income to spend on
`products and services than the average user of other tradi(cid:173)
`tional advertising media, such as television or print. Second,
`the advertising can, in some instances, be targeted in various
`ways, such as demographically or reactively. An example of
`the latter of these is in push technology where the user
`requests certain types of information and this request is used
`to select the type of advertisement sent to the user along with
`the requested content. Third, the advertising can not only
`include audio and video elements as well as simple visual
`elements, but can also be interactive. For example, by
`clicking on the advertisement, the user can be provided with
`additional information about the advertised products or
`services and can even be given the opportunity to purchase
`the products or services electronically.
`One of the most common methods of advertising via the
`Internet is through the use of links (e.g., URLs) embedded
`within web pages. By using embedded links, the advertise(cid:173)
`ments need not be located on the same server as the web
`pages themselves. When the web page is loaded or reloaded,
`the advertising server is accessed to obtain a new advertise(cid:173)
`ment which is incorporated into the web page displayed on
`
`5
`
`2
`the user's screen. These advertisements are simple graphical
`images (such as animated gifs) that are retrieved from the
`advertising server along with an associated link to additional
`information about the advertised product or service. While
`this permits new advertising to be displayed each time a web
`page is loaded or refreshed, and while this allows geographi(cid:173)
`cally unlimited advertising, it at most permits targeting of
`the advertisement based upon the type of information con(cid:173)
`tained in the web page. Moreover, access to a new adver-
`10 tisement is only available during the period of time that the
`client computer is connected to the Internet.
`Currently-available computer programs that incorporate
`advertising into their user interface include the necessary
`programming built into the software itself. That is, the
`various parameters relating to the presentation of the adver-
`15 tisement is pre-determined and programmed into the soft(cid:173)
`ware. These parameters may include such things as where on
`the screen the advertisement is displayed, the display size,
`the duration of display, the number of times a particular
`advertisement is displayed, the conditions under which a
`20 particular advertisement is to be displayed, the type of action
`taken upon a user clicking on the advertisement, and so
`forth. One problem with these currently available programs
`is that these parameters can only be changed by replacement
`of the entire program with an updated, revised version,
`25 making it difficult to respond to desired changes in adver(cid:173)
`tising approaches.
`To provide demographically-targeted advertising, the
`advertiser or distributor of the advertising must obtain
`demographic data on its end users. Perhaps the most com-
`30 mon way to acquire demographic data regarding users via
`the Internet is to request the information using a form written
`in html (HyperText Markup Language) and provided to the
`user over the World-Wide Web (WWW) using http
`(HyperText Transfer Protocol). This is sometimes done as a
`35 prerequisite to allowing the user access to information
`resources or download software from a particular web site.
`While authentication of demographic information obtained
`this way is difficult and rarely done, it has been found that
`end users typically provide accurate demographic data in
`40 return for free download access to software. Furthermore,
`studies have shown that while people are concerned about
`privacy issues and, in particular, do not wish to provide
`specific information that identifies them (such as their name,
`address, or Social Security number), they generally do not
`45 mind providing demographic information, nor do they mind
`monitoring of their computer usage as long as their usage is
`not associated with any specific information that could be
`used to identify them.
`Various other arrangements have been suggested for
`50 obtaining and reporting information about an end user over
`a computer network such as the Internet. For example, U.S.
`Pat. No. 5,724,521 to Dedrick discloses an electronic adver(cid:173)
`tising system in which a user profile is created and trans(cid:173)
`ferred to a metering server where it is used along with other
`55 end user profiles to charge advertiser's according to a
`consumer scale. The profile data is also used by the metering
`server to select advertisement titles that are sent to the end
`user for viewing at the request of the end user. When a user
`requests an advertisement, the metering server sends the
`60 advertisement to the end user, charges the advertiser, and
`provides the advertiser with profile data on that end user. The
`system can include client-side software which acquires and
`compiles information concerning the user's interaction with
`the advertising or other content provided by the metering
`65 server.
`U.S. Pat. No. 5,732,218 to Bland et al. discloses a system
`for gathering data concerning an end-user's access to infor-
`
`
`
`US 6,628,314 Bl
`
`3
`mation resources and reporting the data back to the servers
`that contain the information resources. Data gathering at the
`client is accomplished using an applet, plug-in, or other
`browser extension that acquires the data and then reports
`that data to those servers accessed by the client, either 5
`periodically or in response to a specific request by the
`servers. In this way, the servers being accessed for their
`information resources get reported back to them information
`concerning the end-user's use of that information. Limited
`demographic information (e.g., time zone, locale, client
`hardware) can be included in this reporting as well.
`One of the disadvantages of prior art systems that acquire
`data regarding an end-user's computer usage is that they are
`generally limited to gathering information concerning only
`certain limited uses of the computer. For example, in Bland
`et al., the focus of the gathering and use of end-user data is 15
`in the user's interaction with web pages, whether over the
`Internet or otherwise. Similarly, in Dedrick, the compilation
`of data is directed to interaction between the end-user and
`the advertising or other content provided by the metering
`server itself. By limiting the reported data in this manner, it 20
`is difficult to develop accurate profiles for the individual
`users that are useful in targeting the advertising.
`U.S. Pat. No. 5,347,632 to Filepp et al. discloses a
`reception system in which both user demographics and
`individual system usage information can be used to target 25
`advertising. However, this information is used to select
`which advertisements are to be placed into an advertisement
`queue from which advertisements are then accessed, appar(cid:173)
`ently in the order in which they were placed in the queue.
`Thus, this system permits targeting of advertising generally, 30
`but does not provide real time targeting of advertising based
`upon user actions.
`Except as may be explicitly indicated otherwise, the
`following definitions shall apply:
`computer-An apparatus having a processing device that is
`capable of executing instructions.
`computer usage information-Data concerning a person's
`use of a computer, including such things as what programs
`they run, what information resources they access, what
`time of day or days of the week they use the computer, and
`so forth.
`data set-A group of data items; for example, links,
`keywords, or entries in an address book.
`display object-Data capable of display by a computer,
`including graphical images as well as multimedia presen(cid:173)
`tations or other display data that includes audio in addi(cid:173)
`tion to visually-perceived data.
`graphical image-Visually-perceived data stored in a
`graphic format ( e.g., jpeg, gif, bmp, tiff, pcx, etc.), includ(cid:173)
`ing electronically-reproduced photographs, graphics,
`animations, icons, and textual messages.
`information resource-A source of information stored on a
`server or other computer that is accessible to other com(cid:173)
`puters over a network.
`keyword-A textual data item used in locating related
`sources of information
`link-A data item that identifies the location or address of a
`program or information resource. A URL is a link, as is a
`path and filename of an information resource.
`non-volatile data storage device-A memory device that
`retains computer-readable data or programming code in
`the absence of externally-supplied power, including such
`things as a hard disk or a floppy disk, a compact disk
`read-only memory (CDROM), digital versatile disk
`(DVD), magneto-optical disk, and so forth.
`program component-A set of instructions stored in a file in
`computer-readable format, whether as object code or
`
`4
`source code, and whether written in a compiled language,
`in byte code (such as Java™), or in a scripting or other
`interpreted language.
`program module-One or more related program compo(cid:173)
`nents.
`program-One or more related program modules.
`reactively-in response to some type of user input, such as
`a mouse click on a particular user application or on a link
`to an information resource
`10 server-A computer on a network that answers requests for
`information.
`software application-A program and associated libraries
`and other files; for example, a word processing
`application, a spreadsheet application, or a personal infor(cid:173)
`mation management application.
`
`SUMMARY OF THE INVENTION
`In accordance with one aspect of the present invention
`there is provided an apparatus for use by a computer to
`provide a user of the computer with access to information
`resources via the Internet or otherwise. The apparatus com-
`prises a non-volatile data storage device with first and
`second program modules stored on the non-volatile storage
`device. The first program module is operable upon execution
`to display a graphical user interface comprising a window
`separated into a number of regions, with a first one of the
`regions including a number of user-selectable items, at least
`some of which are each associated with a different data set.
`The data sets are each representative of a different category
`of information ( e.g., financial, news, sports, etc.) and each of
`the data sets comprise a number of user-selectable links to
`different information resources. For example, the data sets
`can be groups of related URLs, whereby the information
`resources comprise web pages accessible via the Internet. A
`35 second one of the regions comprises an information display
`region which can display such things as banner advertise(cid:173)
`ments. The second program module is operable upon execu(cid:173)
`tion to select informational data to be displayed in the
`information display region. The first program module is
`40 operable in response to selection of a first one of the links to
`provide the user with access to its associated information
`resource and to notify the second program module of the
`selection of that first link. The second program module is
`operable in response to notifications from the first program
`45 module to select the informational data to be displayed from
`among a larger amount of informational data, and the second
`program module is further operable to store statistical data
`regarding the display of the selected informational data. This
`permits targeting of banner advertisements based upon the
`50 type of link (financial, news, sports, etc.) selected by the
`user.
`In accordance with another aspect of the invention, there
`is provided a computer-readable memory for use by a
`computer to provide a user of the computer with an
`55 automatically-upgradeable software application. The com(cid:173)
`puter readable memory comprises a non-volatile data stor(cid:173)
`age device and a program that is separated into a plurality of
`program modules that are stored on the non-volatile data
`storage device. Some or all of the program modules have at
`60 least one version identifier associated with them. One of the
`program modules is operable upon execution to access the
`stored version identifier(s) and at least one updated version
`identifier from a server via a global public network such as
`the Internet. These updated version identifier(s) represent
`65 updated program modules accessible from a server via the
`public network. This program module is further operable to
`download one or more updated program modules when the
`
`
`
`US 6,628,314 Bl
`
`6
`in the information display region a display object
`associated with the selected software application.
`These identifiers permit real time, reactively-targeted adver(cid:173)
`tising since the program can respond to user interaction with
`the computer to determine whether the input relates to a
`particular category of information and, if so, can select
`advertising related to that category of information.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`5
`
`5
`stored version identifier and the updated version identifier
`are different, with the updated program module(s) replacing
`one or more of the program modules. In this way, software
`upgrades can be carried out automatically without any user
`action required. Also, upgrading can be accomplished with-
`out having to download and install the entire software
`package.
`In accordance with another aspect of the invention, a
`method is provided for supplying demographically-targeted
`advertising to a computer user. The method includes the 10
`steps of:
`providing a server that is accessible via a computer
`network such as the Internet,
`permitting a computer user to access the server via the
`computer network,
`acquiring demographic information about the user (which
`includes information specifically provided by the user
`in response to a request for the demographic
`information),
`providing the user with download access to computer
`software that, when run on a computer, displays adver(cid:173)
`tising content, records computer usage information
`concerning the user's utilization of the computer, and
`periodically requests additional advertising content,
`transferring a copy of the software to the computer in
`response to a download request by the user,
`providing a unique identifier to the computer, with the
`identifier uniquely identifying information sent over
`the computer network from the computer to the server, 30
`associating the unique identifier with demographic infor(cid:173)
`mation in a database,
`selecting advertising content for transfer to the computer
`in accordance with the demographic information asso-
`ciated with the unique identifier,
`transferring the advertising content from the server to the
`computer for display by the program,
`periodically acquiring the unique identifier and the com(cid:173)
`puter usage information recorded by the software from
`the computer via the computer network, and
`associating the computer usage information with the
`demographic information using the unique identifier.
`In accordance with yet another aspect of the invention,
`there is provided a computer-readable memory for use by a 45
`computer to provide a user of the computer with targeted
`information. The memory comprises a non-volatile data
`storage device and a program stored thereon. The program
`is operable upon execution to display a window containing
`an information display region. The program is also operable 50
`to select and display informational data (such as a banner
`advertisement) in the information display region. The infor(cid:173)
`mational data comprises a plurality of display objects with
`at least some of the display objects each having a data set
`associated therewith. The data sets each include one or more 55
`of the following data items:
`a category identifier that indicates a category of informa(cid:173)
`tion to which the associated display object relates,
`wherein the program is operable in response to receiv(cid:173)
`ing user input relating to one of the categories of 60
`information to display in the information display region
`a display object having an associated category identifier
`that relates to that one category of information;
`a software application identifier that identifies a software
`application that may be accessible to the user via the 65
`computer, wherein the program is operable in response
`to user selection of the software application to display
`
`15
`
`A preferred exemplary embodiment of the present inven(cid:173)
`tion will hereinafter be described in conjunction with the
`appended drawings, wherein like designations denote like
`elements, and:
`FIG. 1 is block diagram of a first embodiment of the
`invention depicting a client software application comprising
`two program modules located on a computer connected to a
`server by way of the Internet;
`FIG. 2 is a block diagram of second embodiment that is
`20 a modified form of the that shown in FIG. 1;
`FIG. 3 is a block diagram depicting further details regard(cid:173)
`ing use of the server shown in FIG. 1;
`FIG. 4 is a block diagram of a third embodiment of the
`invention depicting a client software application broken into
`25 a number of modules including a builder module responsible
`for upgrading and addition of any of the program modules;
`FIG. 5 is an exemplary view of the graphical user inter(cid:173)
`face (GUI) generated by the client software application of
`FIG. 4;
`FIG. Sa is an exemplary view of a bookmark category
`window generated by the client software application of FIG.
`4;
`
`35
`
`FIG. 6 is block diagram that provides additional detail
`regarding the client software application depicted in FIG. 4;
`FIG. 7 depicts the structure of the banner database used by
`the client software application of FIG. 4;
`FIG. 8 depicts a method for providing access to the client
`software application and for obtaining and utilizing demo-
`40 graphic information regarding users of the software appli-
`cation;
`FIG. 9 is a flow chart of the portion of the client software
`application of FIG. 4 that handles user login as well as
`acquisition of demographic information for new users of the
`application;
`FIG. 10 is a flow chart depicting an overview of the core
`operation of the client software application of FIG. 4;
`FIG. 11 is a flow chart of the processing of user input that
`is carried out by the client software application of FIG. 4;
`FIG. 12 is a flow chart of the processing of key events that
`is carried out by the client software application of FIG. 4;
`FIG. 13 is a flow chart of the process used by the builder
`module of FIG. 4 to upgrade different program modules or
`components used in the client software application; and
`FIG. 14 is a flow chart of a alternative process that can be
`used by the builder module of FIG. 4 to upgrade program
`modules or components used in the client software applica(cid:173)
`tion.
`
`DESCRIPTION OF THE PREFERRED
`EMBODIMENTS
`
`Referring first to FIG. 1, there is shown an overview of a
`client software application 10 comprising a graphical user
`interface (GUI) program module 12 and an advertising and
`data management (ADM) program module 14. Working
`
`
`
`US 6,628,314 Bl
`
`10
`
`7
`together, these program modules act as a single software
`application that provides the computer user with a fully
`integrated interface to the other software applications loaded
`on the user's computer 18, as well as to information
`resources located on a private or public network, such as the 5
`Internet 20. Client application 10 may als