DATA ITEM REPLACEMENT IN A MEDIA STREAM OF A STREAMING MEDIA
BACKGROUND OF THE INVENTION
1. Field of the invention.
This invention relates in general to communications devices, and, more particularly, to a technique for data item replacement in a media stream (e.g., a particular channel) of a streaming media (e.g., radio or television).
2. Description of Related Art.
The Internet is a collection of computer networks that exchange information via Hyper Text Transfer Protocol (HTTP). Currently, the use of the Internet computer network for commercial and non-commercial uses is exploding. Via its networks, the Internet computer network enables many users in different locations to access information stored in data sources (e.g., databases) stored in different locations.
The World Wide Web (i.e., the "WWW" or the "Web") is a hypertext information and communication system used on the Internet computer network with data communications operating according to a client/server model. Typically, a Web client computer will request data stored in data sources from a Web server computer, at which Web server software resides. The Web server software interacts with an interface, which is connected to the data sources. These computer programs residing at the Web server computer will retrieve the data and transmit the data to the client computer. The data can be any type of information, including database data, static data, HTML data, or dynamically generated data.
More and more, computers are being used for "entertainment". In particular, radio stations are beginning to digitally encode their audio signals and transmit them via the Internet, a process known as "streaming" or "webcasting," in addition to or instead of traditional radio transmission, which involves wireless transmission of electromagnetic radiation within particular frequency ranges into which the sound has been converted. Some radio stations now make available over the Internet both a live stream containing the same content as the station's
simultaneous traditional broadcast, and an archive of previously broadcast material that can be accessed by the listener on demand.
For traditional radio broadcasts, advertisements (also referred to as "ads") are typically included in the broadcast signal, with a certain number of "spots," typically of 60 second duration, being reserved for advertising in each 60 minute period. Payments from the advertisers constitute the principal source of revenue for traditional radio stations, and the advertising thus supports the creation and distribution of the programming. Advertisers often attempt to target advertisements to particular demographic groups (e.g., residents of particular geographic locations, or particular genders or age groups). Advertising over traditional radio includes local spot radio advertising and network advertising. In local advertising, the advertiser places advertisements directly with individual stations whose broadcast signal can be received by people in the geographic area that the advertiser wishes to reach. In network advertising, the ads are placed within national network programs that are broadcast by satellite to affiliate stations around the country for re-broadcast to listeners. Through Internet distribution, radio programming can now be heard around the world, rather than being limited to a local area to which the transmitter can deliver the signal. But the local spot advertisements from the traditional broadcast are not suited to the remote listeners reached by the webcast. Yet these ads are duplicated, along with the program content, in existing radio station webcasts. It would be useful, then, if the advertisements in the traditional broadcast could be replaced, on a listener-by- listener basis, with advertisements geographically suitable for the listener (for example, an advertisement for a retail store in the locality of the listener).
Also, advertisements included in traditional radio broadcast are by their nature heard by anyone listening to that broadcast. Traditional radio advertisers wishing to reach particular demographic groups (for example, women rather than men, or persons aged 25-35 rather than children or older adults), must indirectly target these groups by purchasing ad spots during program content that they believe will be listened to by the target group. This is inherently imprecise and results in both under-inclusive and over-inclusive distribution of the ad. The interactive nature of the Internet makes it possible for advertisements to be directly targeted to the individual user based on that user's personal demographic profile. But to date targeting has been used only for visual banner advertisements, or for other advertisements that are placed
before or after discrete files that are downloaded by an individual, but not for audio or video advertisements placed in a continuous webcast stream. Thus, there is a need for a technique for targeted delivery of audio and video advertisements and other data items, for insertion within continuous media streams, and for replacement of the advertisements in traditional broadcast radio programming with targeted ads for the webcast.
SUMMARY OF THE INVENTION
To overcome the limitations in the prior art described above, and to overcome other limitations that will become apparent upon reading and understanding the present specification, the present invention discloses a method, apparatus, and article of manufacture for a technique for replacing data items in a media stream.
According to one embodiment of the invention, a queue point is located in a media stream received at a computer. The queue point indicates a beginning of one or more specific data items in the media stream. Next, the specific data items in the media stream are replaced with replacement data items. In one embodiment, the media stream is an audio stream and specific data items and replacement data items are spots or advertisements.
Queue points are placed into the media stream prior to the media stream being received at the computer. Then, as the computer receives the media stream, the queue points are located using a content identification list that identifies a sequential ordering of data items in the media stream.
The replacement data items are targeted to users of the computer. In particular, registration information (e.g., demographic information) and user usage information is collected from a user. Then, data items are selected by matching demographic information associated with the replacement data items with demographic information associated with a user. Additionally, the data items may be selected based on zero or more psychometric profiles, zero or more campaign metrics, and zero or more business rules. From these selected data items, replacement data items are chosen using history information about the replacement data items and using content identification list information.
In another embodiment, a client computer is connected to a server computer via a network. Then, the replacement data items are downloaded to the client computer from the
server computer. The data items maybe downloaded based on the amount of activity at the client computer or based on a bandwidth of the network connecting the client computer and server computer. In particular, data items are selected at the server computer by matching demographic information associated with the data items to demographic information associated with a user of the client computer. Then, replacement data items are selected from the selected data items. Additionally, the client computer receives a list of data items from the server computer and then requests data items from the server computer. The replacement data items may be a combination of data items retrieved from a local cache or streamed from another computer. Additionally, periodically, data items may be removed from the local cache. When data items are played for a user, the client computer periodically forwards a data items played notification to the server computer.
In yet another embodiment, a user-interface is provided for accessing the media stream. The user-interface comprises access to a database of radio stations, a web button that enables access to a web site associated with a selected radio station, and comprises a chat button that enables access to a web chat site associated with a selected radio station. Additionally, the user- interface comprises pre-set buttons for programming access to radio stations.
In a further embodiment, the data items are advertisements and a user interface is provided for creating a campaign (e.g., an advertisement campaign). The user interface enables creation of advertisements while associating demographic information with the advertisements.
BRIEF DESCRIPTION OF THE DRAWINGS
Referring now to the drawings in which like reference numbers represent corresponding parts throughout:
FIG; 1 is a schematic diagram illustrating a client/server computer environment of an embodiment of the-invention.
FIG.2 is a schematic diagram illustrating a hardware environment used to implement a client computer in one embodiment of the invention.
FIG. 3 is a schematic diagram illustrating a hardware environment used to implement a server computer in one embodiment of the invention.
FIG. 4 illustrates a registration window that is used to obtain registration information
FIG. 5 illustrates a radio window that is displayed after registration information is collected successfully.
FIG. 6 illustrates a station selection window that is displayed when a tune-in button is selected.
FIG. 7 illustrates a radio window after a station has been selected.
FIG. 8 is a schematic diagram illustrating an environment in which an embodiment of the invention is used.
FIG. 9 illustrates an Encoder Agent for encoding a media stream.
FIG. 10 illustrates a flow of processing for adding queue points to a media stream.
FIG. 11 illustrates a campaign window for creating a campaign.
FIG. 12 illustrates a first ad definition window for defining an ad.
FIG. 13 illustrates a second ad definition window for selecting an ad file.
FIG. 14 illustrates a third ad definition window listing an ad that has been defined using first and second ad definition windows.
FIG. 15 illustrates a view campaign window listing a campaign that has been created using a campaign window.
FIG. 16 illustrates a flight manager window that is displayed upon selection of a New Banner Flight button of FIG. 15.
FIG. 17 illustrates a quote window that specifies price information for a campaign flight that has been purchased.
FIG. 18 illustrates a view campaign window listing a flight that has been purchased.
FIG. 19 illustrates a flight details window that provides information about a selected flight.
FIG. 20 illustrates a media stream, which has a commercial break that is replaced by cached spots.
FIG. 21 illustrates a media stream for which a commercial break is filled with cached spots and remote spots.
FIG. 22 is a flow diagram illustrating a process performed by a Data Item Replacement System.
DETAILED DESCRIPTION In the following description of embodiments of the invention, reference is made to the accompanying drawings which form a part hereof, and which are shown by way of illustration specific embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized as structural changes may be made without departing from the scope of the present invention.
Data Item Replacement in a Media Stream
The invention is comprised of a collection of components, which will be referred to as a "Data Item Replacement System". It is to be understood that these components may be combined in many different ways to form a variety of combinations within the scope of the invention. Generally, the Data Item Replacement System obtains "customized" or "user- specific" data items (e.g., ads) for a user at a communications device, such as a client computer, from another communications device, such as a server computer, across a network. Additionally, the Data Item Replacement System downloads a media stream (e.g., a radio signal from a radio station). The Data Item Replacement System replaces general data items (e.g., ads) in the media stream with customized or user-specific data items (e.g., ads) for the user of the client computer in real time.
The Data Item Replacement System provides delivery of rich media (audio and video) data items. The Data Item Replacement System works in conjunction with systems that support media streams (e.g., a radio station that streams audio via the Internet, referred to as an Internet radio). In particular, the Data Item Replacement System points to the radio station's stream via a Uniform Resource Location (URL), which identifies the location of a media stream.
One advantageous feature of the Data Item Replacement System's strategy includes the ability to demographically target data items and provide data item replacement on media streams (e.g., Internet radio channels) of those targeted data items. Additional elements or features of the Data Item Replacement System include:
Targeted data item (e.g., advertisement) insertion
Graphical banner, such as a rotating graphical advertisement banner
Customizable graphical content than enables co-branding
3000-plus station database, searchable and sorted by format, city and country
Zero or more radio station presets
Links to each station's website
Links to Data Item Replacement System sponsored chat sites for the station
Online HTML help
Viral tell-a-friend online email form
Graphical/visual content (e.e., video synchronized with audio)
FIG. 1 is a schematic diagram illustrating a client/server computer environment of an embodiment of the present invention, and, more particularly, illustrates a typical distributed computer system using the network to connect a communications device, such as, a client computer 100 executing computer programs to a bank of communications devices, such as, server computers, referred to as Data Center servers 110, executing computer programs, and to connect the server computer 110 to data sources that may be geographically distributed.
A typical combination of resources may include a client computer 100 that is a personal computer or workstation, and Data Center servers 110 that are personal computers, workstations, minicomputers, or mainframes. These systems are coupled to one another by various networks, including LANs, WANs, and the Internet. The client computer 100 is bi-directionally coupled with the Data Center servers 110 over a line or via a wireless system.
The server computers include a Data Collection server 112, a Data Item server 114, a Data Item Content server 116, and a Data Item Exchange server 118. One skilled in the art would recognize that the Data Center servers may comprise many different combinations of servers, including, for example, multiple Data Item Content servers.
Initially, a user at the client computer invokes a streaming media application 102 that enables the user to access a media stream. In one embodiment, the streaming media application is a user interface, referred to as a "Tuner", that enables the user to listen to radio stations. In one embodiment, the Tuner is a browser-bound application, and, in other embodiments, the "Tuner" works in conjunction with a browser application.
A Data Item Manager 104 works with the streaming media application 102 to replace data items (e.g., ads) in the media stream 120 received by the streaming media application 102.
The Data Item Manager 104 includes the following components: a Data Item Agent 106 and a Data Item Scheduler 108. When the streaming media application 102 is invoked, the Data Item Manager 104 requests the user to enter registration data 130. The registration data 130 includes, without limitation, age, gender, and demographic information. The Data Item Manager 104 forwards the registration data 130 to the Data Collection server 112. The Data Collection server 112 returns a user id 132. Periodically, the Data Item Manager collects and transmits usage data 134 to the Data Collection server 112. The usage data 134 includes data on the user's usage of the system, such as which radio stations the user listened to. Additionally, the Data Item Manager 104 periodically forwards a Data Items Played Notification 135 to the Data Collection server 112 to indicate which data items have been played and how frequently each has been played.
At the beginning of a session of receiving media (e.g., a session of listening to radio over the Internet), the Data Item Agent 106 requests data items 136 from the Data Item server 114 that are to be provided to the user. The Data Item server 114 returns a list of data items 138 (i.e., a Data Item list identifying ads or spots) that are selected based on various factors, including, but not limited to, data on a user in the Data Collection server 112 (e.g., a psychometric profile), campaign metrics or business parameters in the Data Item Exchange server 118 or one or more media streams being accessed. The Data Item Agent 106 checks this list of data items 138 against a cache of previously downloaded data items. If a data item on the list 138 is not available in the local cache, the Data Item Agent 104 begins downloading the data item, and continues this until all data items in the current list of data items are locally available (i.e., cached data items, such as ads or spots). In particular, the Data Item Agent 104 requests data item content 140 from the Data Item Content server 116, which transmits the data item content 142 to the Data Item Agent 106. The Data Item Agent 106 caches the data item content 140.
As the sfreaming media application 102 is receiving media stream 120, the Data Item Scheduler 108 uses the queue points to determine starting points of, for example, commercial breaks. Additionally, the Data Item Scheduler selects data items from the received list of data items 138 using history information and content identification list information 122. In particular, the history information includes, without limitation, a history of particular data items, such as when and how often a particular data item was played, and a history of all data items played,
such as what types (e.g, banners or audio) of data items have been played. The content identification list 122 is used to determine information such as the length of the data to be replaced (e.g., the length of a commercial break). Then, the Data Item Scheduler 108 replaces "general" data items in the media stream with "customized" or "user-specific" data items that are cached. That is, when the media stream is played and a queue point is reached, which indicates that, for example, a commercial break of a certain duration is to occur, the Data Item Scheduler 108 intelligently chooses one or more cached data items of that duration to play in lieu of items already embedded in the stream.
Additionally, the Data Item Manager 104 performs cache management. In particular, the Data Item Manager 104 removes data items in the cache based on a variety of factors, including the age of a data item, the frequency of selection of the data item, an expiration date specified by for that data item (which is identified using business rules/parameters in the Data Item Exchange server 118), and the size of the cache. In one embodiment of the invention, low and high watermarks are set for determining when to stop caching data items and when to retrieve additional data items.
As stated above, one embodiment of the invention is comprised of a collection of components, which will be referred to as an "Data Item Replacement System". It is to be understood that the illustration of these components is to provide an example only of one embodiment, and the components may be combined to form a variety of combinations (e.g., the Data Item Exchange and Data Item Content Network servers may be one component) within the scope of the invention. Additionally, rather than having a client/ server architecture, all of the components of the Data Item Replacement System may be located on one computer or in some other architecture (e.g., in a multi-client/multi-server architecture).
The computer programs executing at each of the computers are comprised of instructions which, when read and executed by the computers, cause the computers to perform the steps necessary to implement and/or use the present invention. Generally, the computer programs are tangibly embodied in and/or readable from a device, carrier, or media, such as memory, data storage devices, and/or data communications devices. Under control of an operating system, the computer programs may be loaded from the memory, data storage devices, and/or data communications devices into the memory of each computer for use during actual operations.
Thus, the present invention may be implemented as a method, apparatus, system, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof. In one embodiment, the Data Item Manager 104 is a "replacer" in an apparatus. The term "article of manufacture" (or alternatively, "computer program product") as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media, including the internet. Of course, those skilled in the art will recognize many modifications may be made to this configuration without departing from the scope of the present invention.
Those skilled in the art will recognize that the environment illustrated in FIG. 1 is not intended to limit the present invention. Indeed, those skilled in the art will recognize that other alternative hardware environments may be used without departing from the scope of the present invention. For example, other hardware environments may include, without limitation, communications devices, such as appliances, personal digital assistants (PDAs), wrist watches, stand alone Internet radios, set top boxes, television systems, mainframe computers, minicomputers, or personal computers. These may be used in various configurations, such as in a local area network or in conjunction with the Internet. These other environments may work with each other or may work independently.
FIG.2 is a schematic diagram illustrating a hardware environment used to implement a client computer in one embodiment of the invention. The present invention is typically implemented using a client computer 200, which generally includes a processor 202, random access memory (RAM) 204, data storage devices 206 (e.g., flash, CMOS, floppy, CD-ROM disk drives, etc.), data communications devices 208 (e.g., modems, network interfaces, etc.), display devices 210 (e.g., CRT, LCD display, etc.), and input devices 212 (e.g., retinal eye movement, touch screen, voice activation, mouse pointing device, keyboard, CD-ROM drive, etc.). It is envisioned that attached to the client computer 200 may be other devices, such as read only memory (ROM), a video card, bus interface, printers, etc. Those skilled in the art will recognize that any combination of the above components, or any number of different components, peripherals, and other devices, may be used with the client computer 200.
The client computer 200 operates under the control of an operating system (OS) 214. The operating system 214 is booted into the memory 204 of the client computer 200 for
execution when the client computer 200 is powered-on or reset. In turn, the operating system 214 then controls the execution of one or more computer programs 216, such as a Data Item Manager, a Data Item Agent, and a Data Item Scheduler, by the client computer 200. The computer programs 216 may use one or more data item lists or content identification lists stored on a data storage device 206. The present invention is generally implemented in these computer programs 216, which execute under the control of the operating system 214 and cause the client computer 200 to perform the desired functions as described herein.
The operating system 214 and computer programs 216 are comprised of instructions which, when read and executed by the client computer 200, causes the client computer 200 to perform the steps necessary to implement and/or use the present invention. Generally, the operating system 214 and/or computer programs 216 are tangibly embodied in and/or readable from a device, carrier, or media, such as memory 204, data storage devices 206, and/or data communications devices 208. Under control of the operating system 214, the computer programs 216 may be loaded from the memory 204, data storage devices 206, and/or data cornmunications devices 208 into the memory 204 of the client computer 200 for use during actual operations.
Thus, the present invention may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof. The term "article of manufacture" (or alternatively, "computer program product") as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. Of course, those skilled in the art will recognize many modifications may be made to this configuration without departing from the scope of the present invention.
Those skilled in the art will recognize that the environment illustrated in FIG. 2 is not intended to limit the present invention. Indeed, those skilled in the art will recognize that other alternative hardware environments may be used without departing from the scope of the present invention.
FIG. 3 is a schematic diagram illustrating a hardware environment used to implement a server computer in one embodiment of the invention. The present invention is typically implemented using a server computer 300, which generally includes a processor 302, random
access memory (RAM) 304, data storage devices 306 (e.g., hard, floppy, and/or CD-ROM disk drives, etc.), data communications devices 308 (e.g., modems, network interfaces, etc.), display devices 310 (e.g., CRT, LCD display, etc.), and input devices 312 (e.g., mouse pointing device and keyboard). It is envisioned that attached to the server computer 300 may be other devices, such as read only memory (ROM), a video card, bus interface, printers, etc. Those skilled in the art will recognize that any combination of the above components, or any number of different components, peripherals, and other devices, may be used with the server computer 300.
The server computer 300 operates under the control of an operating system (OS) 314. The operating system 314 is booted into the memory 304 of the server computer 300 for execution when the server computer 300 is powered-on or reset. In turn, the operating system 314 then controls the execution of one or more computer programs 316. The present invention is generally implemented in these computer programs 316, which execute under the control of the operating system 314 and cause the server computer 300 to perform the desired functions as described herein.
The operating system 314 and computer programs 316 are comprised of instructions which, when read and executed by the server computer 300, causes the server computer 300 to perform the steps necessary to implement and/or use the present invention. Generally, the operating system 314 and/or computer programs 316 are tangibly embodied in and/or readable from a device, carrier, or media, such as memory 304, data storage devices 306, and/or data communications devices 308. Under control of the operating system 314, the computer programs 316 may be loaded from the memory 304, data storage devices 306, and/or data communications devices 308 into the memory 304 of the server computer 300 for use during actual operations.
Thus, the present invention may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof. The term "article of manufacture" (or alternatively, "computer programproduct") as usedherein is intended to encompass acomputer program accessible from any computer-readable device, carrier, or media. Of course, those skilled in the art will recognize many modifications may be made to this configuration without departing from the scope of the present invention.
Those skilled in the art will recognize that the environment illustrated in FIG. 3 is not
intended to limit the present invention. Indeed, those skilled in the art will recognize that other alternative hardware environments may be used without departing from the scope of the present invention.
Sfreaming Media Application (Tuner)
In one embodiment, the Data Item Replacement System provides a sfreaming media application comprised of a user interface that resembles a radio tuner. This streaming media application will be referred to as a Tuner. The Tuner executes on various platforms/operating systems and may, instead, be a browser-bound application. For example, in one embodiment, the Tuner is a Microsoft Windows® desktop application that provides users with the ability to easily listen to a large variety of Internet radio stations. The Tuner itself is written in C++ using a component object module (COM) architecture that executes on various Microsoft Windows® platforms, including, without limitation, Windows NT®, Windows 95®, Windows 98®, and Windows 2000® platforms. (Note that Microsoft, Windows NT, Windows 95, Windows 98, Windows 2000 are trademarks or registered trademarks ofMicrosoft Corporation in the United States and/or other countries.) The Tuner may be customized for different applications or different companies.
In one embodiment, a Data Item Manager 104 on the client computer is embedded in the Tuner or works in conjunction with the Tuner. The Tuner may be downloaded via a network, such as the Internet or may be provided on a data storage device. Once downloaded, the Tuner may be invoked and used. The first time the tuner is executed, the user will be prompted for registration information. FIG. 4 illustrates a registration window 400 that is used to obtain registration information. The registration information that is requested includes: Gender 402, Year of Birth 404, City 406, State 408, Country 410, Postal Code 412, and E-mail address (optional). In other embodiments, other information may be requested, mcluding, without limitation, an education level, an income level, hobbies, and interests. When a user has input this information, the user selects the Register button 416 to continue or the Quit button 418 to terminate. The Tuner will not run unless the registration information is successfully filled out. When the registration information is successfully filled out, the user interface is displayed to a user at the client computer.
In particular, FIG. 5 illustrates a radio window 500 that is displayed after the registration
information is collected successfully. When a tune-in button 502 is selected, a user is able to view a database of stations. Once a user selects a station, the user may play music by selecting a play button 504, stop playing music by selecting a stop button 506, and adjust volume by selecting a volume button 508. Additionally, a user may select a web button 510 to access a web site for a selected station or select a chat site button 512 to access a web site used for chatting with others tuning in to the selected station. Pre-set buttons 514 may be used to pre-set 8 station selections by selecting a pre-set button 514 while listening to a radio station until that stations identifier (e.g., KHS) is displayed by the pre-set button 514. Once pre-set, a user may select one of the pre-set buttons to listen to a set station. The radio window 500 also provides additional information, such as Tuner Tips, FAQs (frequently asked questions), and Updates.
FIG.6 illustrates a station selection window 600 that is displayed when the tune-in button 502 is selected. The station selection window 600 enables a user to view music categories by COUNTRY, CITY , or FORMAT. In this example, FORMAT has been selected by clicking on the tab 602 by the arrow key until FORMAT is displayed. The format category includes: Sports for a sports radio station, Talk for a talk radio station, and Top 40 for a station that plays songs falling in a "Top 40" category, along with many other groups. For this example, the Top 40 format has been selected. Once a format is selected, the stream identifiers airing that format of music are listed 604 (e.g., KDWB, KHS, and KLRS). In one embodiment, chcking on a stream identifier once provides additional information about the radio station. The information may include, for example, the broadcasting city of the station along with the location of the station on an AM/FM dial radio. For this example, the radio station represented by KQS has been selected to obtain information. In order to find a particular station or a type of music, a user may enter information (e.g., keywords, such as "jazz" or "KIIS") into data field 605. Then, the user may select a Search button 606, and the invention searches for the specified information. Stations matching the specified information are than displayed for the user. To listen to that radio station, a user would double-click on the stream identifier with a mouse or select the Play button 608.
FIG.7 illustrates a radio window 700 after a station has been selected. The radio window 700 contains information about the station 702 that has been selected, along with Author, Title, and Copyright information 704.
Sfreaming Media Tuner Hardware
In one embodiment, the Data Item Replacement System provides a hardware device that resembles a radio. This device will be referred to as a Hardware Tuner. The Hardware Tuner is a physical electronic device that provides users with the ability to easily hsten to a large variety of Internet radio stations or other media streams. The Hardware Tuner may be customized for different applications or different companies. For example, it may take the form of what is known as a "set-top box", that is, an electronic controller box which attaches to a television set and/or stereo system in order to enhance the capabilities and functions of that TV/system. It may also take the form of a wireless Internet appliance, resembling a transistor radio that tunes to worldwide signals via a wireless Internet connection.
The user is able to view a database of stations. Once a user selects a station, the user may play streams by pressing a play button, stop playing streams by selecting a stop button, and adjust volume by turning a volume knob. Pre-set buttons may be used to pre-set a number of station selections. While hstening to a radio station the user depresses a pre-set button until a beep is heard and that station's identifier (e.g., KITS) is displayed. A user may subsequently press one of the pre-set buttons to hsten to a set station.
In one embodiment, a Data Item Manager is embedded in the Hardware Tuner. The first time the Hardware Tuner is used, the user will be prompted for registration information similar to that information collected by the Tuner embodiment. In a wireless embodiment, the Hardware Tuner may ascertain its current location through use of systems such as GPS (Global Positioning Satellite) and may use this location data to deliver media having local relevance.
Client/Server Interaction
Once the registration information is collected with the Tuner user interface, the Data Item Manager 104 at the client computer packages the registration information into an Extensible Mark-up Language (XML) stream and transmits this to the Data Collection server 112. The Data Collection server 112 issues a user identification number (userlD) that is sent back to the Data Item Manager 104. The Data Item Manager 104 saves the userlD in a registry or data file and uses the userlD in every transaction with the Data Center servers 110. This uniquely identifies the user. In embodiments in which different Tuners are available the Data Item Manager 104 also transmits a
Tuner identifier (TunerlD) to the Data Center servers 110 to identify the Tuner being used. Furthermore, the Data Item Manager 104 fransmits a stream identifier to the Data Center servers 110 to enable those servers to identify data items to be played for that station.
As a user is using the Tuner to access Internet radio stations, the Data Item Manger 104 communicates with the Data Center servers 110 to:
1. Download station database updates.
2. Download product updates.
3. Upload user-profiling data.
4. Upload data items played notifications.
5. Coordinate the flow of data item content to the client computer.
The Data Item Manager 104 intermittently queries the Data Center servers 110 to verify that the user's stations database is current. The Data Item Manager 104 receives an XML stream that describes the operations necessary to update the database. Stations can be individually updated, added or deleted from the database. The station database files reside locally (e.g., on a disk) at the client computer in an encrypted form.
A web update component of the Tuner intermittently queries the Data Center servers 110 to insure that the user has the current version of Tuner product components and latest product settings. The web update component issues an XML stream containing the tunerlD to the product update servlet running on one of the Data Center servers 110, which in return sends back an XML stream that describes components and their download locations. The web update component then downloads each component into a temporary download directory. The product update XML schema also defines actions required on each downloaded component, which enables the web update component to run executables (.EXE, .COMand .BAT files), register COM components, and update registry settings for the Tuner. The web update component uploads user-profiling data after every ten tuner events. Tuner events are classified as the following actions on the tuner: tuning into a station, going to the station's website or chat site, setting a preset, or clicking on a displayed item, such as an advertisement. The user profiling data is logged to disk and is flushed after each delivery to the Data Center servers 110.
The profiling data is used by the Data Item Content server 116 for generation of specialized Internet radio listenership reports, but more importantly, this data is used by the Data Item server 114 rules engine that generates a near real-time psychometric profile of the user, based on their most recent behaviors). The Data Item server 114 creates a prioritized and targeted data item list (e.g., a spot-list). The Data Item server 114 utilizes a rules engine and dynamic rule base to determine how to both target data items and categorize users. In one embodiment, users are classified by their registration information, additional survey information, and their behavior (e.g., ads that they select or radio stations to which they hsten). The rules engine at the Data Item server 114 executes based on events that supply information that contribute to enhancing a user's real-time psychometric profile. This profile is used to identify data items to be targeted to a user when creating a list of data items. The rules engine of the Data Item server 114 also interfaces with a campaign manager that prioritizes data items according to campaign metrics to ensure campaigns are successfully implemented. For example, the Data Item Content server 116 may select data items based on demographics. In this case, if an advertiser wants a particular campaign to be targeted at males living in Los Angeles, then the Data Item Content server 116 uses the userlD to obtain the user's gender and city and determines whether the user is a male living in Los Angeles and determines whether the user matches the characteristics sought by one or more data items in the campaign. The Data Item Content server 116 may identify data items by the user's past behavior. For example, if the user often clicks on automobile advertisements, the Data Item Content server 116 may show the user other automobile advertisements.
The Data Item Content server 116 may also identify data items based on business parameters. In one embodiment, the business parameters are based on agreements with advertisers to have their data items placed into media streams. For example, an advertiser may want to specify some split of data items, such as that 60% of the data items should be their data items, and the remaining 40% of the data items would be other advertiser's data items. An advertiser may also want to specify that a specified number of their data items are to be played (e.g., 3000) during a particular period of time (e.g., one or more weeks), and the Data Item Content server 116 monitors the number of data items played for that advertiser and plays the data items with a frequency determined by the number of data items remaining to be played and the duration of the period in which they are to be played. The Data Item Content server 116 identifies data items and creates a data item list (e.g., a spot-list). The data
item Ust contains a hst of data items with associated URLs that are used to obtain the content of the data items. The Ust of data items has information, including, without limitation, a length of the advertisement, a name for the advertisement, an expiration period of the advertisement, a flight identifier, and a format (e.g., play on certain stations).
The Data Item Agent 106 is responsible for the caching structure of advertisement content on the client computer. The Data Item Agent 106 initially issues a request with the userfi for advertisement material to the Data Item server 114, which processes the request and responds with a prioritized and targeted hst of data items (e.g., a spot-Ust). The Data Item Agent 106 pulls down the actual advertisement content in an unobtrusive and governed manner, in order not to impact the performance of the cUent computer. During this "stealth" download process, the data items are placed into the caching structure in accordance to their priority and length.
The "stealth" download may occur in many different forms. In one embodiment, the data items are downloaded when there is little or no user activity. The amount of activity may be determined by determining whether a screen saver is being displayed at the cUent computer or the last time of user input via a keyboard, mouse, or other input device. In another embodiment, the Data Item Replacement System determines the bandwidth of the line over which the download will occur and selects a percentage of that bandwidth as the amount of advertisement data that will be downloaded at any given time. For example, if the total bandwidth is 56K, and 10% is to be used for downloading data items, then 5.6K of the bandwidth will be dedicated to downloading data items. This results in minimal intrusion on the user's use of the line. The percentage selected may be predetermined by the Data Item Replacement System based on the amount of bandwidth, may be set by a Data Item Replacement System administrator, or may be customized by a user. In yet another embodiment, the Data Item Replacement System determines the amount ofbandwidth of the line that is to be used for downloading data items by mapping the total bandwidth available to a set amount. For example, a total bandwidth of 56K may map to 8K, which results in 8K of the line being used to download data items. In a further embodiment, the Data Item Replacement System monitors the line and downloads data items when there is little or no activity on the line.
In one embodiment, the Data Item Manager 104, Data Item Agent 106, and Data Item Scheduler 108 coordinate with the Data Center servers 110 to deliver near real-time targeted audio advertisements that replace the in-sfream audio advertisements from the radio station. In particular,
the radio stations that agree to be part of this system will allow the Data Item Replacement System to place queue points in the media stream from the radio station.
The queue points, discussed in more detail below, are used to locate the portions of the media stream that comprise specific data items, such as ads. A queue point encoding agent, which is part of the Data Item Replacement System, is responsible for placing encrypted queue points into the stream to coordinate the placement of data items and other information in a media stream. As the Data Item Manager 104 encounters queue points in the media sfream, the Data Item Manager's 104 selection technique chooses one or more data items that are to be played. The Data Item Manager 104 logs all data items that are played and sends this information back to the Data Item Content server 116 to track campaigns. On a periodic basis, the Data Item Manager 104 inspects the data item cache and, if any low watermark conditions are met, another request for data item material is issued to the Data Item Content server 116. The Data Item Manager 104 also monitors the age of data items, such that dormant data items that are never or no longer played are removed from the cache.
Queue Points
FIG. 8 is a schematic that illustrates an environment in which an embodiment of the invention is used. In one embodiment, the invention replaces data items (e.g., ads) in Uve streams (e.g., a radio or other signal from a satelhte 801) or archived/on-demand streams (e.g., a movie stored on a data storage device). However, one skilled in the art would recognize that the invention could replace data items in other media (e.g., in a television signal). In one embodiment, a Stream Automation System 800 manages a content identification list 804 (i.e., a Usting of items to be played, for example, songs to be played). A Queuing Agent 802 of the invention works with the Stream Automation System 800 to manually insert queue points in the sfream and to manage traffic when frammittingthe content identification Ust 804 and a media stream 806 (i.e., the content of the items in the content identification Ust) to an Encoding System 810. In particular, the Queuing Agent 802 fransmits the content identification list 804 and the media stream 806 to a Queue Point Encoding Agent 812. In another embodiment, the Queuing Agent 802 creates the content identification Ust 804. In an alternative embodiment, queue points are added manually, by, for example, an engineer.
The Queue Point Encoding Agent 812 encodes the media sfream 806 with queue points. That is, the Queue Point Encoding Agent 812 inserts queue points into the media stream 806 based
on data in the content identification Ust 804. A queue point indicates the points at which data items have been inserted into the audio stream originaUy and provide information on the data item (e.g., whether the data item is a jingle or an emergency broadcast signal, the length of the data item, etc.). These data items are typically directed to listeners in a general geographic area, rather than customized for a particular user.
Then, the content identification Ust 804 and media stream 806 with queue points are transmitted across a network, such as the Internet. The transmission is a signal with queue points graphically illustrated as EO, El, and E2.
The client computer 820 receives the content identification Ust 804 and media stream 806. The Data Item Manager 822 at the cUent computer obtains data items from one or more Data Item Lists 824 and replaces the original data items in the media stream 806 with data items from the Data Item Lists 824. The data items from the Data Item Lists 824 are customized for the user of the computer, who then accesses (e.g., Ustens to or views) the media stream with customized data items 826 from a media player, such as a speaker and/or display device.
FIG. 9 illustrates an Encoder Agent 900 for encoding a media stream (e.g., an audio stream) in more detail. The media stream may be received by the Encoder Agent 900 as analog or digital input. If the media sfream is in analog form, the Encoder Agent 900 converts the analog to digital form. The media sfream includes content such as audio and/or video data and includes other information, such as information about device drivers.
A content identification Ust 912 is received by a Communication Interface 912 and forwarded to the Encoder Agent 900. The Encoder Agent 900 identifies queuing information 914 from the content identification Ust 912. The Encoder Agent 900 passes the media stream 906 and the queueing information 914 to an Encoder Interface 920. The Encoder Interface 920 is an interface to an Encoder 922. Example Encoders include, without limitation, RealPlayer ®, QuickTime®, or Windows® Media Player. (RealPlayer is a registered trademark of RealNetworks Inc. in the United States and/or other countries. QuickTime is a registered trademark of Apple Computers Inc. in the United States and/or other countries. Windows and Windows Media are trademarks of Microsoft Corp. in the United States and/or other countries.) The Encoder 922 inserts one or more encoded queue points 930 into the media stream, resulting in an encoded media stream 940.
FIG. 10 illustrates a flow of processing for adding queue points to a media stream. Initially, a content identification list 1000 is input to a Parse Data component 1002 that parses the content
identification Ust 1000. This parsed data is forwarded to a Notify Agent component 1004. The Notify Agent component 1004 monitors for events 1006 (i.e., points in the content identification Ust that need to be tagged, such as the start of an ad). Upon receiving an event 1006, the Notify Agent component 1004 forwards the event 1006 to a Tagging component 1010. The Tagging component 1010 receives the event 1006 along with a media stream 1008 (e.g., an audio sfream) and tags the media stream 1008 with event scene information based on the event 1006. An Encoded Media Stream component 1012 encodes the tagged media sfream received from the Tagging component 1010 and forwards the encoded and tagged media stream 1014 to other components.
Data Item Creation and Maintenance
In one embodiment of the invention, data items are advertisements. For simpUcity, the following discussion will focus on advertisements. It is to be understood that the techniques to be discussed below are applicable to any type of data item. The Data Item Exchange 118 enables advertisers to create a campaign. If a particular advertiser desires to deUver one or more data items to a particular demographic, the advertiser can use a user interface provided by the Data Item Replacement System to create a campaign. Each campaign has one or more flights. Each flight may be directed to a different demographic group. Additionally, the information (e.g., demographic information or number of advertisements to play) users input in creating a campaign is used by a business rules component to apply business rules to select advertisements. When a data item is created, the data item content is loaded into the Data Item Exchange 118 and then uploaded to the Data Item Server 116.
FIG. 11 illustrates a campaign window 1100 for creating a campaign. A user may select an Add New Campaign button 1102 to create a new campaign. When this button 1102 is selected, the user is prompted for a Campaign Name 1104 and a Campaign Description 1106. When this data is entered, a user selects the Add Campaign button 1108. After this, the user may select the Go To Ad Manager button 1110 to continue creating the campaign. Additionally, the user may select the View Campaign button 1112 to view the campaign or select the Delete Campaign button 1114 to delete the campaign.
FIG. 12 illustrates a first ad definition window 1200 for defining an ad. When the Add
Campaign button 1108 is selected, an ad definition window 1200 is displayed. Note that FIG. 12 illustrates the ad definition window 1200 after two ads 1202 and 1204 have already been defined for
the campaign. To define an ad, a user identifies a Spot Type 1206. A Spot Type 1206 may be a banner ad, a gateway ad, or an audio ad. In this example, an Audio Inserted Ad has been selected. Then, the Duration 1208 of the ad is input, which in this example is 5.2 seconds. Then a Description 1210 of the ad is input. Then, a user may select a Submit Ad Information button 1212 to continue processing.
FIG. 13 illustrates a second ad definition window 1300 for selecting an ad file. The second ad definition window 1300 is displayed when a user selects the Submit Ad Information button 1212 of FIG. 12. At this time, the user is prompted to select an ad file in the Select Ad File text area 1302. The user may Browse 1304 for ad files. Once an ad file is selected, the user selects the Submit Ad button 1306. FIG. 14 illustrates a third ad definition window 1400 Usting an ad that has been defined using the first and second ad definition windows 1200 and 1300. The ad definition window 1400 is displayed when a user selects the Submit Ad button 1306 of FIG. 13. In ad definition window 1400, a new audio ad 1402 is Usted for the campaign.
Once a campaign is created with one or more ads, the next step is to create a "flight". A flight - defines the target audience of an ad, the period of time during which a particular ad is to air, and the number of times it is to air. When the View Campaign button 1112 of FIG. 11 is selected, a view campaign window 1500 is displayed, as illustrated in FIG. 15. The view campaign window 1500 displays the selected campaign 1502, which was created as described above using FIGS. 11-14. The view campaign window 1500 displays flight information 1504, but, in this example, this information is blank as a flight has not yet been created. To create a flight, a user may select a New Banner Flight button 1506, a New Gateway FUght button 1508, or a New Audio FUght button 1510. Once a flight has been created, a FUght Details button 1512 provides details about the flight, a Get A Quote button 1514 automatically provides a price quote for a selected flight, a Buy FUght button 1516 purchases a flight at the quoted price, and a Terminate Flight button 1518 terminates a flight that has been purchased. .
For this example, the New Banner FUght button 1506 of FIG. 15 has been selected. FIG. 16 illustrates a flight manager window 1600 that is displayed upon selection of the New Banner Flight button 1506 of FIG. 15. The flight manager window 1600 collects information about the Name 1602 of the flight, the number of Impressions 1604 (i.e., ads) to be displayed for the flight, and the Description 1606 of the flight. At this time, the Price 1608 and CPM 1610 wiU be determined after additional information is entered and the Submit and Get Quote button 1612 is selected.
The Start Date 1614 and End Date 1614 are used to specify the period of time during which the flight is to run. For each Market 1622, an Age 1618 and a Gender 1620 may be selected. The Age 1618 category provides a drop down Ust box that allows selection of "All Ages" or of a range of years (e.g., 0-4, 5-9, etc.). The Gender 1620 category provides a drop down list box that enables selection of "Male", "Female", or "Both". The Market 1622 category provides a drop down Ust box that lists 250 demographic areas, which have become a standard for use in the broadcasting field. The banner ad 1624 selected for the flight is for the campaign created above, it is a banner ad, with a duration of 5.2 seconds, and its status is Approved. Note that the Status at this time may be Unapproved or Approved. The Approval process is performed by a Data Item Replacement System administrator who ensures that the content of the ad falls within legal guidelines (e.g., is not a threat to harm someone) and is actually the duration that is identified (e.g., is actuaUy 5.2 seconds and not 5.7 seconds).
In this example, 3000 impressions of a banner ad 1624 are to be displayed between April 10, 2000 and May 10, 2000 to males of aU ages Uving in Colorado Springs - Pueblo, Los Angeles, and New York. In one embodiment, the Data Item Replacement System matches a user's registration information to the flight information to select ads for that user.
Once all of the information is entered into the flight manager window 1600, a user selects the Submit and Get Quote button 1612, which displays quote window 1700 of FIG. 17. The quote window 1700 is similar to flight manager window 1600, but quote window 1700 specifies a Price 1702, a CPM 1704, and a Purchased AvailabiUty 1706.
If the Commit and Buy button 1708 of FIG. 17 is selected, the revised view campaign window 1800 of FIG. 18 is displayed. The revised view campaign window 1800 now shows a flight 1802 with a status of Committed. In this window 1800, the status of a flight may be Priced (if priced but not committed), Committed (if priced and committed), Completed (if the number of impressions purchased have been output), or Terminated (if a flight is terminated after being committed). If the FUght Details button 1804 is selected, the flight details window 1900 of FIG. 19 is displayed. The flight details window 1900 provides information about the flight, including the number of Impressions 1902 that have been filled out of the ones that have been bought already.
A campaign may have multiple flights, and each flight may have multiple ads. Once a campaign and a flight have been defined and purchased, the Data Item Replacement System forwards the collected information (e.g., age, gender, market, duration, type of ad, and total number of ads
purchased) to the Data Item server 114. The Data Item server 114 uses this information to identify ads to be output to particular users. Once the requested number of ads have been played, the campaign expires.
An Alternate Technique for Downloading Data Items
In one embodiment of the invention, at the beginning of a session of receiving media (e.g., a session of Ustening to radio over the Internet), the Data Item Agent 106 requests data items 136 from the Data Item server 114 that are to be provided to the user. The Data Item server 114 returns a list of data items 138 (i.e., an Ad or Spot Ust) that are selected based on data on the user in the Data Collection server 112. The Data Item Agent 106 checks this Ust of data items against a cache of previously downloaded data items. If an ad on the Ust is not available in the local cache, the Data Item Agent 104 begins downloading the ad, and continues thus until aU data items in the current Ust of data items are locally available (i.e., cached ads or spots). In particular, the Data Item Agent 104 requests ad content 140 from the Data Item Content server 116, which transmits the ad content 142 • to the Data Item Agent 106. The Data Item Agent 106 caches the ad content 140.
As the streaming media appUcation 102 is receiving media stream 120, the Data Item Scheduler 108 uses the content identification Ust 122 to determine where to place data items in the mediastream 120. Then, the Data Item Scheduler 108 replaces the "general"data items in the media stream with "user-specific"data items that are cached. That is, when the media stream is played and a queue point is reached, which indicates that a commercial break of a certain duration is to occur, the Data Item Scheduler 108 intelUgently chooses cached data items to play in Ueu of those embedded in the sfream. FIG. 20 illustrates a media sfream 2000, which has a commercial break 2002 that is replaced by cached spots 2004.
Under some circumstances (e.g., limited bandwidth, limited time), however, it may not be possible to download enough spots, soon enough to fill all available commercial breaks. It is not uncommon for stations to play 15 to 20 minutes of commercials per hour.
One possible solution would be to have no locally-stored cached spots. Instead, all spots would be kept on a remote Data Item server. The cUent computer would simply switch from the station stream to the first remote spot in a commercial break, then to the next, and so on, until finally switching back to the station stream. However, in some systems, switching streams requires connection and buffering time, which can be tens of seconds long. This can create an unacceptable
audience experience.
Therefore, another solution is to use a hybrid process melding remote spots with cached spots. The first and last spots in a commercial break are chosen by the Data Item Scheduler 106 from the cached spots. The intervening spots are all remote spots. FIG.21 illustrates a media sfream 2100 for which a commercial break is fiUed with cached spots 2102 and remote spots 2104. The cached spots 2102 play while the remote spots 2104 are downloaded and buffered. Thus, there is no "lost time" due to buffering the remote spots 2104. Once the remote spots 2104 have been played, the media stream resumes 2108. Rebuffering time 2106 requires only one-third to one-half of the amount of time that it takes to estabhsh the initial connection to the media stream. In one embodiment, this is eliminated by using a second cached spot while rebuffering. Also, in some embodiments, the rebuffering time 2106 may be eliminated when using particular media players, such as Windows® Media Player.
It has been shown by experimentation that, when a series of remote spots are all housed on the same server, switching from one to the next is seamless and instant with virtuaUy no re- ■ connection or buffering times. When initially switching from a station's stream to a sfream of remote spots there is a connection/buffering period. Similarly, when switching back from the remote spot stream to the station stream, there can be buffering. During these buffering times the cached spots would play. The first spot in a commercial break is played from the cached spots, thus covering the buffering as the station stream switches to the remote spot sfream. Similarly, the last spot is played locally to mask the buffering on return to the station's sfream.
So, in a situation where there are two 10-minute commercial breaks in a given hour, only 4 spots would need to be downloaded from the Data Item Content server 116, as opposed to 20 or more when using the cached spots without using remote spots. And these downloaded spots need only be 10 to 30 seconds long, further decreasing download times and heft.
The durations of the two buffering periods are highly variable, being dependent on transient Internet conditions. The Data Item Scheduler 108 would monitor the progress of a commercial break, dynamically predicting the actual duration of the break versus the ideal duration as communicated in the queue point. The Data Item Scheduler 108 would then choose a last spot with the most appropriate length, "stretching" or ''shrinking" it, or dropping it entirely.
The remote spot sfream is a file having a .RAM (real audio media) file extension or a . ASX file extension (i.e., a textual command file that manages streaming of ASF in a compressed file
format that can store audio and video information and is designed to run over the Internet) composed of a Ust of the remote spots' URLs followed by the URL of the station sfream. For example,
http://www.digitoy.com/spots/spot5690.ra http://www.digitoy.com/spots/spotl423.ra http://www.digitoy.com/spots/spot928577.ra pnm://www.newcastle.edu.au/2nur.ra
This technique is advantageous in that there is considerably less downloading of spots from the Data Item Content server 116. Additionally, this technique opens the possibihty that multistation tuners and Data Item Manager-only situations could present station-specific spots. This could be done without the need to create many different and large spot caches on a user's cUent computer.
Summary
Some of the overall concepts of the invention will be discussed with reference to FIG. 22. In particular, FIG. 22 is a flow diagram illustrating a process performed by the Data Item Replacement System. In block 2200, the Data Item Replacement System initially enables users (e.g., advertisers) to create one or more campaigns targeting specific demographic groups. For example, a campaign may have one or more flights, each directed to a different group (e.g., one directed to males of all ages in Los Angeles and another directed to females of all ages in Los Angeles). The campaign has associated campaign metrics (e.g., a particular data item should be played 300 times during a three month period). Additionally, there are typically agreements with the campaign creators regarding business metrics (e.g., the campaign creators ads are to be played at specified times).
In block 2202, the Data Item Replacement System collects registration and user usage information. The registration information is typically collected once, when a user initiaUy uses a sfreaming media appUcation (e.g., the Tuner user interface) that works with the Data Item
Replacement System. The user usage information is collected as the user uses the sfreaming media application to access media streams (e.g., listen to music on a radio channel), to view and "click-on"
(via an input device, such as a mouse) data items, or to access station web sites. The registration information and user usage information is used to create a psychometric profile.
In block 2204, the Data Item Replacement System selects a subset of data items from the
available data items based on a combination of factors. In particular, the Data Item Replacement System matches one or more data items from one or more campaigns to a user's regisfration and user usage mformation. For example, if data items from a campaign are directed to females of all ages in Los Angeles, when a user's regisfration information indicates that the user is female and Uves in Los Angeles, the data items from that campaign will be selected for that user. That is, data items are selected by matching demographic information associated with the data items with demographic information associated with a user. Additionally, the data items may be selected based on zero or more psychometric profiles, zero or more campaign metrics, and zero or more business rules.
In block 2206, the Data Item Replacement System downloads one or more data items in the subset of data items using a "stealth" download process. During this "stealth" download process, the data items are placed into the caching structure in accordance to their priority and length.
As a user is accessing a media sfream, in block 2208, the Data Item Replacement System selects one or more replacement data items from the subset of data items to replace data items already in the media stream using history information about the data items and using content identification - Ust information. Then, in block 2210, the Data Item Replacement System replaces general data items (e.g., ads targeted at a general geographic group) in the media sfream with selected data items targeting the user.
The Data Item Replacement System is advantageous in many ways. For example, the Data Item Replacement System enables advertisers to associate demographic information with data items, so that the demographic information may be matched to a user's demographic information. Thus, the data items in a particular media stream (e.g. , a particular sfream from a radio station) may be targeted specifically to different users, even if they are Uving the same geographic area.
Additionally, the Data Item Replacement System replaces existing data items in a media sfream, rather than just adding appending data items or overwriting a pre-deterrnined portion of the media (e.g., the beginning). The Data Item Replacement System determines the points in the media sfream at which to replace data items, "mutes" the existing data items, and then replaces those data items with ones targeted to the user.
CONCLUSION This concludes the description of the preferred embodiment of the invention. The following describes some alternative embodiments for accompUshing the present invention. For example, other
hardware environments may include, without limitation, communications devices, such as appliances, personal digital assistants (PDAs), wrist watches, stand alone Internet radios, set top boxes, television systems, mainframe computers, minicomputers, or personal computers. These may be used in various configurations, such as in a local area network or in conjunction with the Internet. These other environments may work with each other or may work independently. Additionally, although a compact disc was used as an example, the invention is appUcable to other storage media, such as floppy discs. The apparatus on which the invention is implemented need not be a cUent computer, but could be a compact disc player or other appUance.
The foregoing description of the embodiments of the invention have been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in Ught of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto.