Methods and systems for providing targeted content

Information

  • Patent Grant
  • 8132202
  • Patent Number
    8,132,202
  • Date Filed
    Tuesday, February 17, 2004
    21 years ago
  • Date Issued
    Tuesday, March 6, 2012
    12 years ago
Abstract
A method and system for providing targeted advertisements over a networked media delivery system, especially interactive television networks, the system comprising tracking and storing viewer selections, analyzing the selections, and delivering targeted advertisements that appeal to the particular subscriber making the selections, the system including a merge processor, a file server, a profile processor, and a broadcast server contained in a head end in communication with a plurality of set-top boxes through a distribution network. Based on a subscriber's viewing habits and account information, the present invention delivers different, customized advertisements to different viewers watching the same program or channel. The present invention delivers the advertisements as either still frame bit maps or as video streams advertisement insertion in a playlist or a broadcast media program.
Description
BACKGROUND

1. Field of the Invention


The present invention relates to the field of networked media delivery systems, and more particularly, to a method and system for providing targeted advertisements to specific consumers.


2. Background of the Invention


Traditionally, the preferred method of advertising has been to broadcast an advertisement to a large audience via mass media such as newspapers, magazines, radio, and television. This mass media advertising strategy seeks to reach the most number of viewers to increase the odds of contacting the ones most likely to purchase the advertised product or service. Although a large viewing audience may see the advertisement, advertisers understand that only a small percentage of that audience has a real interest in purchasing the advertised product or service. To some extent, advertisers can increase the probability of reaching purchasing consumers by creating advertisements that appeal to those potential consumers and broadcasting the advertisements in media that those same consumers are most likely to view. However, even using a popular medium to a typical potential consumer, advertisers will exclude potential consumers that do not use the medium and will include viewers of that medium who have no desire to purchase the product or service. Because of this underinclusion and overinclusion, advertisers necessarily waste at least a portion of their budgets on consumers who are not in the market to buy their product or service.


To offset this unnecessary spending, advertisers continually strive to narrow advertising efforts to a targeted purchasing audience. As briefly stated above, one targeting method distributes advertisements in media content that attract demographic groups likely to purchase the advertised product or service. For example, television shows often appeal to a particular type of audience, marked perhaps by age, income, or education. Usually, the specific sponsors of the shows sell products that appeal to the same particular audience. Similarly, in print media, advertisers choose magazines and newspapers with the content, style, and geographic coverage that attract readers likely to be interested in the advertised products or services.


In another targeting method, advertisers pay the mass media to deliver advertisements as a part of the media content. This method embeds the advertisement in the media content such that the viewer must view the advertisement to view the media content. For example, some radio and television programs incorporate advertising pitches into the program commentary or discussions. Other targeting techniques display advertisements concurrently with the media content, such as with corporate sponsored scoreboard icons in the corner of a television screen, or with logos incorporated into uniforms or equipment (e.g., race cars) that are repeatedly shown during a sports event broadcast. Another embedded advertising technique has film actors or actresses that use the advertiser's products during their acting.


Although the targeting techniques described above focus on a smaller consumer audience, the overinclusion and underinclusion inherent in mass media advertising remain their principal drawbacks. In each targeting strategy, advertisers waste money by reaching people who are not interested in the product or service or by excluding those people who are interested. Because these techniques assess consumer interest on the larger scale of program audiences instead of on an individual viewer basis, the techniques will always suffer from the squandered advertising dollars associated with overinclusion and underinclusion.


To address the drawbacks to mass media, advertisers sometimes use direct mailings and niche print media to reach targeted consumer audiences. Direct mailings and niche magazines focus on specific potential purchasers or classes of purchasers. For example, a pharmaceutical company can use targeted mailings to deliver its advertising materials directly to doctors practicing the particular type of medicine to which the advertised drug applies. As another example, boat manufacturers can advertise in a small number of magazines directed to boating enthusiasts. While these targeted print advertisements increase the efficiency of advertising efforts, they lack the powerful and influential images and sounds that a medium such as television can deliver. Thus, targeted print advertisements have only limited application and impact.


Recognizing the drawbacks to mass media and targeted print advertisements, advertisers have turned to the internet to isolate potential consumers and increase the power of their advertising dollars. On the internet, a user controls the content she views by navigating the worldwide web and accessing web pages and web advertisements. Using software, advertisers can intelligently monitor these user viewing selections, analyze viewing patterns, and deliver advertisements suiting the tastes and interests of the user. For example, if a user has repeatedly chosen to view internet advertisements for camping equipment, the software will retrieve all camping equipment advertisements that subscribe to the advertising plan and deliver them to the user. In addition, the software can retrieve advertisements for related products, such as hiking gear, and display those advertisements to the user as well. U.S. Pat. No. 5,948,061 discloses a method of delivering, targeting, and measuring advertising over networks that is representative of these types of internet targeted advertisements.


Although these internet targeted advertisements marginally increase the spending power of the advertising dollar, they still present notable disadvantages. First, despite a growing popularity, the internet has far fewer users than traditional media such as newspapers or television. The cost of purchasing a computer and maintaining internet access will continue to exclude potential consumers. In addition, many consumers, especially those of older generations, are intimidated by the seemingly complex internet technology and prefer the more familiar medium of television.


In addition to limited consumer audiences, bandwidth restrictions limit data transmission speed and hamper the quality and impact of targeted internet advertisements. Most internet users are thoroughly familiar with the long delays associated with downloading graphical information, especially video clips or other animation. These delays limit the types of advertisements that can be displayed and dampen the impact an advertisement can have on a user. Often, the consumer clicks through the web page without viewing the advertisement or occupies the downloading time with other activities such as watching television or reading.


Targeted internet advertising also has limited data from which to determine a customer profile. To collect data, the targeted internet advertising systems simply record user selections of internet advertisements, note words typed when searching web content, or read user information such as geographic location, domain type (e.g., commercial, education or government), and perhaps standard industry codes (SICs), which indicate such user characteristics as employer and type of employer. To target the advertising, the internet systems tend to deliver advertisements, e.g., banner advertisements, related to a user's previous advertisement selections or search terms without regard to the current and changing tastes of the user. In relying on previous advertisement selections or search terms, these internet systems miss the opportunity to display the types of advertisements that the user would be interested in, but has not yet seen or clicked through. Instead of being proactive and assessing a customer's tastes and delivering new, pertinent advertisements, these internet systems simply react to previous advertisement selections and deliver related advertisements.


SUMMARY OF THE INVENTION

The present invention is a system and method for providing targeted advertisements over a networked media delivery system. Broadly stated, the present invention tracks and stores viewing events (e.g., such as menu choices or changes in programming), analyzes the events, and delivers targeted advertisements that appeal to the particular subscriber generating the events. By collecting data on viewing habits and analyzing that data in light of other subscriber account information (from other subscriber databases), the present invention is able to intelligently select and display advertisements that offer products or services a viewer is truly interested in purchasing. Further, the present invention can deliver different advertisements to different viewers watching the same program or channel. Thus, the present invention reaches a large audience (e.g., a cable television audience), assesses the interests and tastes of each subscriber of that audience, and delivers advertisements to each subscriber for products or services that the subscriber is predisposed to purchase. The net result is a more efficiently spent advertising dollar for the sponsors and an increased profit margin for the network media providers.


As part of the present invention, the tracking and storing of event data is accomplished by use of a system for tracking network use, such as the Clickstream system of BellSouth Interactive Media Services. That network use tracking system is described in co-pending application Ser. No. 08/779,306, entitled “Method and System for Tracking Network Use,” by Batten, Grauch, Danner, Stefanik, and Swix, filed Jan. 6, 1997, which is assigned to the assignee of the present invention. As part of the present invention, event data gathered by a network use tracking system can include such viewing events as a channel viewed, a switch to another channel, use of a VCR or other ancillary device, or invocation of an interactive application and subscriber commands given to the system during the application. For identification and tracking, event data also includes a time stamp (to indicate, e.g., start and stop times) and the subscriber's set-top box identification.


The primary components of the present invention, as shown in FIG. 1, include a merge processor 100, a file server 102, a profile processor 104, and a broadcast server 105, connected to a plurality of set-top boxes 108. Together, these components record network use by individual subscribers, store and organize data associated with the network use, analyze the data to identify interests of an individual subscriber, classify the individual subscriber in a demographic group, and deliver an advertisement targeted for her demographic group to the individual subscriber. Merge processor 100, file server 102, and broadcast server 105 reside in a head end 110, typically operated by a media service provider, and are connected to a plurality of set-top boxes 108 through a distributed media delivery network 106, such as a satellite, cable, or fiberoptic network. Profile processor 104 also resides in head end 110 and is connected to merge processor 100 and file server 102.


A set-top box is a network media device comprising a microprocessor, a memory buffer for operating instructions and storage, and a control interface for receiving subscriber viewing commands from a remote control device or control panel. In addition to the term “set-top box,” such a network media device is sometimes referred to as a set-top terminal, a cable converter, or a home communications terminal. One or more of these terms apply generally to devices that are coupled to or made a part of a display device that shows programming to a subscriber. In addition, as used in this specification and in the claims, the term “set-top box” also includes a personal computer or any other computational device that communicates with a media delivery network and performs the functions described herein. When it is connected to a viewing device, e.g., a television set at a subscriber premises, the set-top box responds to and records the viewing selections (“event data”) of a subscriber. At predetermined intervals, the set-top box uploads this event data through the distributed network to the merge processor.


Merge processor 100 communicates with the plurality of set-top boxes through the distribution network. Merge processor 100 receives the event data from the set-top boxes, organizes the data, and stores the data in event lists arranged by subscriber account.


File server 102 stores display data to be delivered to the plurality of set-top boxes in response to a subscriber selection. For example, file server 102 can contain digital copies of pay-per-view movies or commercials. The display data can be in the form of text, graphic elements, bit maps, or video stream. Graphic elements are simple display images such as rectangles, lines, or circles. Bit maps define a display space, e.g., a still frame or picture, and define a color for each pixel or “bit” in the display space. Examples of graphic image file types that contain bit maps include GIF and JPEG files. Video streams are a series of frames or pictures that produce moving images or animation. Alternately, the display data could be a multimedia presentation, e.g., a Shockwave™, Flash™, or Java™ presentation.


In addition to storing and delivering display data, file server 102 also communicates with the plurality of set-top boxes, performing such functions as assigning each set-top box to a demographic group and directing each set-top box to tune to particular channels.


In contrast to the interactive sessions of file server 102, broadcast server 105 delivers a continuous stream of display data within a broadcast environment. Broadcast server 105 delivers multiple video streams on separate channels and, unlike file server 102, does not participate in dynamic interchange with the set-top boxes. Instead, the set-top boxes tune to the particular channels that contain programming corresponding to their individual demographic groups.


Profile processor 104 receives event data from merge processor 100 and additional data from several other sources to construct a consumer profile of a subscriber. In constructing a profile, profile processor 104 analyzes the data to identify a subscriber's viewing habits and corresponding interests. In addition to merge processor 100, the other data sources preferably include an interactive selection list from an interactive television database 120, subscriber data from a customer registration database 122, billing data from an accounting database 124, and perhaps questionnaire data from a survey database 126 that stores customers' specific responses to questions about their interests. Profile processor 104 uses an algorithm to systematically examine customer profile information, to determine the particular demographic group of the viewer, and to choose an advertisement that appeals to the interests of the viewer and the demographic group. Once the analysis is complete, profile processor 104 instructs file server 102 to deliver a particular advertisement to the set-top box of the viewer. Profile processor 104 performs data source analyses and issues instructions concurrently among multiple viewers so that multiple viewers watching the same show can receive different advertisements.


As is apparent to those skilled in the art, the present invention may be used with numerous types of networked media delivery systems. For example, the method or system of the present invention could be deployed on an interactive media delivery system or modified for use with a conventional cable television network, a wireless cable television network, or a home satellite television network.


Accordingly, it is an object of the present invention to provide a system and method for delivering targeted advertisements to the types of consumers most likely to purchase the advertised product or service.


It is another object of the present invention to provide targeted advertising that reaches a large audience, that monitors and assesses each viewer of that audience to determine purchasing interests, and that displays advertisements to each viewer corresponding to her purchasing interests.


It is another object of the present invention to use an easily accessible medium to deliver targeted advertisements to the consumers most likely to purchase the advertised product.


It is another object of the present invention to provide a targeted advertising system and method that displays both bit map and video stream advertising.


It is another object of the present invention to provide a means for displaying different commercials to individual viewers watching the same channel.


These and other objects of the present invention are described in greater detail in the detailed description of the invention, the appended drawings, and the attached claims. Additional features and advantages of the invention will be set forth in the description that follows, will be apparent from the description, or may be learned by practicing the invention.





DESCRIPTION OF THE DRAWINGS


FIG. 1 is a schematic diagram of the system architecture of the present invention.



FIG. 2 is a flowchart outlining the method of delivering custom advertisements targeted to specific consumers.



FIG. 3 is a schematic diagram illustrating progressive menu screens of a typical interactive television system.



FIG. 4 is a schematic diagram of the advertisement insertion playlist method of the present invention, showing an advertisement library and a playlist.



FIG. 5 is a schematic diagram of the broadcast advertisement insertion method of the present invention, showing the method by which set-top boxes switch from programming streams to advertisement insertion streams.





DETAILED DESCRIPTION OF THE INVENTION

The present invention is a system and method for providing targeted advertisements over networked media delivery systems, such as interactive media delivery systems, conventional cable television networks, wireless cable television networks, home satellite television networks, and other media delivery systems that allow duplex communication (perhaps with the return path via a separate, e.g., telephone, network) to a set-top box coupled to a subscriber's display device, such as a television. As an overview, the present invention records the viewing selections of a subscriber, compiles the viewing selection data along with other available data (e.g., interactive purchasing or questionnaire data), analyzes the data to formulate a customer profile, matches the customer profile to a demographic group, and displays for the customer a bit map or video stream advertisement that is customized for the customer or the customer's demographic group.


System Architecture


Referring to FIG. 1, the present invention includes a merge processor 100, a file server 102, a profile processor 104, and a broadcast server 105. A head end 110, typically operated by a media service provider, houses merge processor 100, file server 102, profile processor 104, and broadcast server 105. Merge processor 100, file server 102, and broadcast server 105 connect to a plurality of set-top boxes 108 through a distribution network 106, which is any media delivery network such as a coaxial or fiberoptic cable system. Profile processor 104 is connected to both merge processor 100 and file server 102, as shown in FIG. 2. Each set-top box resides at a subscriber's premises, connected to a viewing device, e.g., a television.


Each set-top box of the plurality of set-top boxes 108 provides a control interface through which a subscriber makes viewing selections by, e.g., using a remote control unit, a keyboard, or a control panel. In providing this interface, a set-top box performs the following functions: (1) routes traditional broadcast signals to the connected viewing device; (2) converts media content to a selected video format (e.g., NTSC or PAL) and presents the content to the subscriber; (3) for interactive systems, exchanges messages (including display data) with merge processor 100 over distribution network 106; (4) receives messages from a subscriber input device, such as a remote control unit; (5) translates video signals from a network-native format into a format that can be used by the viewing device; (6) inserts alphanumeric or graphical information into the video stream to overlay that information on the video image; and (7) provides graphic or audio feedback to the subscriber. Examples of commercially available set-top boxes that satisfy these functions include an SA Explorer 2000 set-top box by Scientific Atlanta, a DCT5000 set-top box by General Instruments, and a Z12C set-top box by Zenith.


With specific reference to the present invention, each set-top box completes many intelligent functions, including the collection, storage, exchange, and display of data. To satisfy these functions, the set-top box has a navigator, an operating system, and a memory buffer. The operating system is a computer program that, after being initially loaded into the set-top box by a bootstrap program, manages the other programs, or applications, running on the set-top box. The navigator is a software application running on top of the operating system. The navigator generates menu screens and accepts viewer menu selections such as movie orders, preview orders, or requests to watch an advertisement. Based on these selections, the navigator directs the file server to deliver the selected program, e.g., the server plays the selected movie. In addition, the navigator records viewer selections or event data in the memory buffer, and periodically (or on command) uploads the data through distribution network 106 to merge processor 100. Optionally, instead of the navigator, file server 102 could record the event data.


Merge processor 100 receives communications from the plurality of set-top boxes 108 through distribution network 106. The communications include the event data stored in the memory buffer of the plurality of set-top boxes 108. After receiving the event data, merge processor 100 organizes the data and stores the data in event lists arranged by subscriber account.


File server 102 stores the display data to be delivered to the plurality of set-top boxes 108. File server 102 delivers the data in response to subscriber viewing commands and instructions from profile processor 104. The display data can be in any form compatible with the networked media delivery system. However, the preferred forms are text, graphic elements, bit maps, and video stream. The content of the display data can be any media program, e.g., advertisements, television shows, news, movie trailers, movies, or still images, such as advertisement banners. Alternately, the display data could be a multimedia presentation.


Profile processor 104 performs the subscriber analysis and advertisement selection functions of the present invention. For subscriber analysis, profile processor 104 constructs a customer profile based on subscriber data and classifies the customer profile within a demographic group. For advertisement selection in an interactive session, profile processor 104 directs file server 102 to play an advertisement that appeals to the interests of the subscriber and the demographic group. Profile processor 104 performs subscriber analyses and issues instructions concurrently among multiple viewers so that multiple viewers watching the same show can receive different advertisements.


In addition to interactive sessions, profile processor 104 also targets advertisements within a broadcast environment in which several channels of programming, each corresponding to a different demographic group, are delivered to a customer. In FIG. 1, broadcast server 105 delivers the channels of programming in this broadcast model. To target the advertisements, file server 102 directs each set-top box to tune to a channel delivering an advertisement suitable for the customer's demographic group.


In constructing a customer profile, profile processor 104 receives the event data from merge processor 100 along with any other available data from other data sources. In the preferred embodiment of the present invention, profile processor 104 receives additional data from an interactive television database 120, a subscriber registration database 122, an accounting database 124, and a survey database 126. Interactive television database 120 provides data related to the services a customer has purchased or used over interactive television, such as video on demand. Subscriber registration database 122 provides all of subscriber data recorded at service initiation, such as a subscriber's address and employer. Accounting database 124 provides subscriber billing and purchasing information, such as service purchased, service rates, and payment aging. Finally, survey database 126 provides personal information gathered from subscribers using questionnaires that solicit responses about viewing habits and purchasing interests.


System Operation


Broadly stated, the operation of the present invention comprises collecting subscriber viewing selections, organizing and analyzing the selections, determining a subscriber's customer profile and demographic group, and delivering an advertisement targeted to the demographic group. In the preferred embodiment of the present invention, the system can deliver targeted advertisements as a part of an interactive television session or within a broadcast environment. Each method of delivery shares the same steps for gathering event data and analyzing a subscriber's interests.



FIG. 2 is a flowchart illustrating the steps involved in collecting and analyzing event data and delivering targeted advertisements for both the interactive session model and the broadcast model, according to a preferred embodiment of the present invention. While the steps described herein and illustrated in the flowchart contain many specific examples of information and media flow, these steps should not be construed as limitations on the scope of the invention, but rather as examples of steps that could be used to practice the invention. In step 200 of FIG. 2, a subscriber enters viewing commands into the set-top box using a remote control unit, a control panel, or another device. In step 202, the navigator provisioned on the set-top box records each command as event data in the memory buffer of the set-top box.


The navigator uploads the event data to merge processor 100 and clears the memory buffer in step 204. The time at which this upload occurs depends upon whether the system is delivering targeted advertisements as a part of an interactive television session or within a broadcast environment. For interactive sessions, the upload occurs at a predetermined interval or as commanded by merge processor 100, as shown in step 204a. For broadcast, the upload occurs when the set-top box first establishes communication with head end 110, as shown in step 204b. The upload also depends on whether the navigator or file server 102 is recording the event data. Although the flowchart and following description show the navigator performing this function, in an alternate embodiment of the present invention, file server 102 records and immediately processes the event data. Having file server 102 collect the event data is preferable for an internet application in which file server 102 is the web server.


Steps 200 through 204 repeat continually as the subscriber interacts with the networked media delivery system. The longer the subscriber interacts with the system, the more event data merge processor 100 will contain from which to analyze the subscriber's viewing habits and interests. In step 206, merge processor 100 compiles the event data into event lists organized by subscriber. With the event lists tabulated, merge processor 100 is ready to provide the information necessary to assess a subscriber's viewing interests.


In step 208, profile processor 104 retrieves the event lists from merge processor 100 to begin shaping a customer profile of the subscriber. In addition, profile processor 104 draws information from all available databases, including, for example, interactive television database 120, subscriber registration database 122, accounting database 124, and survey database 126. These databases provide profile processor 104 with additional subscriber information such as address, employer, income level, favored manufacturers, banking habits, and products purchased through interactive television.


By analyzing the event data and the subscriber data from the various databases, in step 210 profile processor 104 assigns a customer profile to the subscriber and matches the customer profile to a demographic group. Generally, this analysis involves searching the event lists and subscriber data for patterns such as key words, e.g., “action” movie or “western” movie, or repeatedly selected menu items, e.g., do-it-yourself home improvement videos. As a part of this search, merge processor 100 could count the number of key words cited, the number of menu item selections, or perhaps the amount of time the subscriber viewed particular menus, and if the number or amount exceeded a certain threshold, would assign the subscriber to a certain customer profile or demographic group. The method by which an individual media service provider analyzes the event data and subscriber data depends largely on the provider's particular market strategy and business resources. As such, the optimal analysis method will vary among different service providers.


Having assigned a customer profile and demographic group to the subscriber, the system is ready to retrieve and deliver a targeted advertisement when an advertisement slot becomes available, as called for in step 212. The method by which the system retrieves and delivers the advertisement depends on whether the system is delivering targeted advertisements as a part of an interactive television session (step 204a above) or within a broadcast environment (step 204b above). For an interactive session, as shown in step 212a, the subscriber makes a viewing selection that has advertisement insertion slots for targeted advertisements. In response, profile processor 104 chooses an advertisement corresponding to the subscriber's customer profile and demographic group, and file server 102 delivers the advertisement to the subscriber in a menu screen or playlist.


For the broadcast environment, as shown in step 212b, the set-top box receives its assigned demographic group from file server 102 when the set-top box first establishes communication with head end 110 or during subsequent communications. Based on the assigned demographic group, the set-top box then retrieves the corresponding targeted advertisements. In the broadcast environment, the method by which the set-top box retrieves the targeted advertisements varies. For example, if the advertisements are video streams, the set-top box could tune to broadcast channels delivering advertisements at the appropriate time, or, for bit map advertisements, the set-top box could tune to advertisements spooled in a broadcast carousel format.


As outlined in the flowchart of FIG. 2, in the preferred embodiment of the present invention, the system components deliver targeted advertisements in two principal ways. The first method displays bit map or video advertisements during an interactive television session as a part of menu screens or as a part of a dynamic advertisement insertion in a playlist, e.g., a playlist constructed in response to a pay-per-view movie order. The second method displays bit map or video stream advertisements as a part of a standard video broadcast.


The following descriptions and figures illustrate these methods of delivering targeted advertisements in more detail and according to preferred embodiments of the present invention. Although the present invention is applicable to any situation in which networked media delivery systems display advertisements to subscribers, the following descriptions and schematics trace the operation of the present invention in the context of bit maps and video streaming. While the method described herein and illustrated in the figures contains many specific examples of media flow steps, these steps should not be construed as limitations on the scope of the invention, but rather as examples of media flow steps that could be used to practice the invention. As would be apparent to one of ordinary skill in the art, many other variations on the system operation are possible, including differently grouped and ordered method steps. Accordingly, the scope of the invention should be determined not by the embodiments illustrated, but by the appended claims and their equivalents.


Each of the following methods for delivering targeted advertisements relies on the ability of head end 110 to identify a particular subscriber through the subscriber's set-top box. For each request for advertisement insertion, a set-top box can include its user identification so that head end 110 knows which event lists and database entries to consult. However, in the preferred embodiment of the present invention, the navigator of the set-top box identifies itself (and its subscriber) to head end 110 when the set-top box activates and establishes an interactive session. Thus, when the set-top box requests an advertisement insertion, head end 110 already knows the identity of the set-top box and its subscriber.


Interactive Session:


For interactive sessions, the preferred embodiment of the present invention delivers targeted advertisements during 1) interactive menu screens, or 2) in a playlist created in response to the selection of a program (e.g., a pay-per-view movie).


The delivery of a targeted bit map and video advertisement during an interactive session requires a communication between a set-top box and head end 110. Specifically, the navigator on the set-top box recognizes an advertisement insertion slot and queries head end 110 for an advertisement to insert. Based on the customer profile or demographic developed in steps 200 through 210 of FIG. 2, file server 102 of head end 110 delivers a suitable targeted advertisement.


1) Interactive Menu Screen:


In a preferred embodiment of the present invention, the advertisement insertion slot is in an interactive television menu screen. As an example, FIG. 3 shows progressive menu screens of a typical interactive television system. Each screen has an area 300 for displaying bit map or video advertisements forwarded by file server 102. In screen 302, the subscriber views the main menu having general viewing categories, such as movies, sports events, children's programs, and adult programs. After choosing “movies,” in screen 304 the subscriber is presented with types of available movies, such as comedies, action, drama, and westerns. Upon choosing “westerns,” screen 306 appears, giving the subscriber individual movie titles to order, such as “True Grit” and “High Noon.” Finally, after ordering a particular movie, “True Grit,” the interactive television system displays a marquee screen that provides information about the movie, such as lead actors, director, and running time.


During this interactive session, the navigator records each subscriber selection as event data. In the preferred embodiment, the navigator uploads the latest event data to merge processor 100 every time a new targeted advertisement must be inserted. In this manner, profile processor 100 has the latest event data, along with the data from other databases, to assess a viewer's current interests. Thus, for example, in screen 302, the present invention could display a bit map or video movie trailer advertisement enticing the subscriber to look further into the menu options but not necessarily targeting a specific customer profile or demographic group. Then, once the subscriber has chosen “movies” and moved to screen 304, the present invention could display a bit map or video advertisement for popcorn knowing that this particular subscriber has watched several movies in the last month (from the event data) and that the subscriber indicated a liking for popcorn in a recent consumer spending survey (from survey database 126).


As an alternative to uploading event data to merge processor 100 when a new targeted advertisement must be inserted, the upload could occur at any time, regardless of whether an advertisement insertion slot is available. In this manner, the present invention could create and save a customer profile and playlist in advance, and display the advertisements the next time the customer begins an interactive session.


After choosing “westerns,” in screen 306 the present invention could display an advertisement for a pickup truck based on the subscriber's interest in westerns (preferably, but not necessarily, from recent event data) and previous viewing selections focusing on truck and automotive programming (from event data). Finally, after ordering the movie “True Grit,” the present invention could display a bit map or video advertisement promoting a western style restaurant chain based on the subscriber's interest in western movies (from event data) and the subscriber's previous inquiries about western style restaurants over the interactive television system (from interactive television database 120).


The selection of a bit map or video advertisement depends largely on the individual customer profile and the library of available advertisements. Both the customer profiles and the available advertisements are classified in demographic groups. Thus, the present invention delivers advertisements classified under a certain demographic group to subscribers having customer profiles classified under the same demographic group. Preferably, the volume of advertisements in the library is large enough to satisfy a large number of demographic groups, thereby allowing more customized advertisements.


The present invention delivers bit map or video advertisements from file server 102 to the plurality of set-top boxes 108. File server 102 can download each advertisement when a set-top box requests an advertisement for an advertisement insertion slot. However, in the preferred embodiment, file server 102 downloads a whole library of advertisements to the navigator memory buffer when the set-top box is initially activated and then instructs the navigator to retrieve from the buffer a certain advertisement and play that advertisement to the subscriber. Although storing the advertisements in the navigator memory buffer eliminates the delay associated with downloading bit maps or video each time one is displayed, this “look ahead” buffer strategy is limited by the cache size of the navigator memory. If the cache size is small and an advertisement cannot be stored, then the navigator simply reverts to querying file server 102 and waiting for the downloading of the bit map or video advertisement. Also, to save cache capacity, preferably, head end 110 initially screens the advertisements that are to be loaded ahead of time on the set-top box and removes the advertisements that would not appeal to that specific subscriber whatsoever. For example, advertisements for women's wear would be removed from delivery to a male-only household.


2) Playlist Advertisement Insertion:


The playlist advertisement insertion method composes a series of advertisements and a program in response to a subscriber's ordering of the program, e.g., a movie. Once the subscriber orders the program, profile processor 104 assembles a playlist including the program and advertisements preceding and succeeding the program, e.g., movie trailers for other movies or perhaps CD soundtracks of the ordered movie. Such a playlist resembles the content of most movie videos rented from vendors such as Blockbusters™. As shown in FIG. 4, an example playlist 400 is three advertisements A1, A2, and A4, followed by the ordered movie M, followed by two advertisements A23 and A8.


Profile processor 104 chooses advertisements A1, A2, A4, A23, and A8 from library 402 based on the analysis performed in steps 208 through 212 of FIG. 2. Library 402 is stored in file server 102 (or, alternately, is downloaded to the navigator of a set-top box) and contains multiple advertisements A1 through AN, each classified by customer profile or demographic group. Thus, once profile processor 104 has assigned a customer profile to the subscriber, it merely looks for advertisements matching the profile in library 402 and inserts those advertisements into playlist 400.


The playlist advertisement insertion method enables head end 110 to dynamically build playlist 400 immediately after the subscriber has ordered a program. Thus, profile processor 104 of head end 400 can use the latest available event data of the subscriber to deliver advertisements that appeal to the subscriber's most recent interests and viewing habits.


EXAMPLE

An example of the video stream playlist method of the present invention is a pay-per-view movie service that shows commercials or movie trailers before and after a feature presentation. In this case, merge processor 100 would contain an event list of every viewing selection made by the subscriber up to the ordering of the movie. The event list could include data such as movie previews watched, movies watched, television programming watched, products ordered via interactive television, choices from interactive menus, commercials viewed, and commercials turned off. The historical extent of the data would depend on how long the present invention was active on the subscriber's television. In addition to event data, the media service provider would also have subscriber account information such as billing.


As the subscriber progresses through the pay-per-view menu screens, events (subscriber selections) are stored in the set-top box and periodically uploaded to the server. The server collects the data and organizes it into event lists. For example, the list may show that the viewer watched a movie trailer for a movie about white water rafting, then viewed an advertisement for outdoor adventure gear, then watched a movie trailer about a wilderness hiking disaster, and finally ordered the feature movie presentation about a wilderness survival competition.


According to the present invention, when the viewer orders the feature movie presentation, the pay-per-view service prepares to send the movie along with the commercials that will precede and follow the movie. At this point, profile processor 104 analyzes the event data and additional data, classifies the viewer in a certain demographic group, and delivers a commercial targeted for that group. As an example, given the viewer's interest in outdoor adventures, a suitable advertisement would be a commercial for a sport utility vehicle with specialized accessories that carry outdoor adventure gear. The present invention would deliver this advertisement as a full screen video stream played prior to or after the showing of the feature movie presentation.


Broadcast Advertisement Insertion:


The broadcast advertisement insertion method inserts targeted advertisements at predetermined advertisement insertion slots in a continuous broadcast program. Broadcast server 105 delivers the continuous broadcast program in one channel and delivers other programs and advertisements in other channels. By this method, when an advertisement slot comes up, file server 102 directs each set-top box to switch for the duration of the advertisement insertion slot from the continuous broadcast program to a channel running an advertisement targeted for the individual subscriber of each set-top box. After the duration, at the end of the advertisement insertion slot, each set-top box switches back to the continuous broadcast program. Optionally, instead of file server 102, a separate component called a session controller or session manager (not shown in FIG. 1) could direct the set-top boxes to switch channels.



FIG. 5 illustrates the method by which the set-top boxes switch from the programming streams to the advertisement insertion streams. Program broadcast 500 is a continuous broadcast running on a particular quadrature amplitude modulation (QAM) channel in a particular program identification (PID). In FIG. 1, broadcast server 105 delivers this program broadcast 500. The continuous broadcast indicates the beginning of an advertisement insertion slot with a signal in the broadcast transmission, known as a q-tone 502. Ad 1 in program 500 would be, for example, a national advertisement that is not targeted. In contrast, Ad A, Ad B, and Ad C would be targeted local advertisements running on broadcasts 510, 512 and 514, respectively. Program broadcast 500 and broadcasts 510, 512, and 514 would each have different PIDs.


Thus, at q-tone 502, head end 110 communicates to each set-top box two items of tuning information. Knowing the customer profile or demographic group of the subscribers, head end 110 tells each set-top box 1) which PID to tune to, and 2) for how long, i.e., the duration of the advertisement insertion slot. Accordingly, the set-top boxes off-tune to the separate advertisement channel for the specified duration and tune back to program broadcast 500 after the advertisement insertion slot to resume watching the continuous broadcast program. In this manner, two subscribers watching the same program broadcast 500 can receive two different advertisements appealing to their individual tastes and viewing habits.


The separate advertisement channel can be either another programming channel whose advertisement insertion slots coincide with program broadcast 500 or can be a continuous stream of advertisements with no programming. The continuous stream of advertisements is preferred if the intervals of the advertisements line up with the programming channels that switch to it. In FIG. 5, channel 516 represents a continuous stream of advertisements to which program broadcast 500 can off-tune, e.g., to off-tune to Ad X for advertisement insertion slot 2. Optionally, instead of tuning to video advertisements, a set-top box could retrieve bit map advertisements spooled in a broadcast carousel format.


The advantage of off-tuning the set-top box is a savings in bandwidth. Instead of delivering a separate video stream with targeted advertisements to each demographic group of subscribers, the off-tuning uses only one continuous broadcasting channel and tunes to other channels to deliver targeted advertisements.


The foregoing disclosure of embodiments of the present invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many variations and modifications of the embodiments described herein will be obvious to one of ordinary skill in the art in light of the above disclosure. The scope of the invention is to be defined only by the claims appended hereto, and by their equivalents.


Exemplary embodiments use a collector, associated with a subscriber's set top box (“STB”), to obtain data about any “events”—subscriber actions or changes in programming—that are of interest. Data about virtually any events, from channels watched to volume changes to interactive applications invoked; may be captured with the collector. Event records comprising such data, as well as the identity of the application involved and the event time, are buffered. Periodically or on command, event records are uploaded from the buffer to a merge processor such as through an interactive network that allows for duplex communication with the STB. The merge processor, which may be a head end server or a workstation computer forming part of or coupled to the media delivery network, receives (1) the event data and (2) content data that identifies programming content broadcast or delivered throughout the region in which the system is deployed. Timelines showing particular events over time may then be generated for each subscriber. Rather than just determining the channel viewed and time of day, the event timelines describe the programming or interactive applications selected by or shown to a subscriber over a selected period of time (e.g., 24 hours).


Clickstream processor collects information to create a “journal” or log about all events or selected events of interest. An event is an action or a change in the state of a STB that is deemed important to building a knowledge base on subscribers or their viewing patterns. For example, an event can include key presses to change channels or volume, mute, to enter the navigator for the interactive system, to turn the STB off or on, to fast forward, to pause or to rewind a video obtained via the video on demand application. The events include applications called by the subscriber, such as interactive gaming applications, an electronic program guide, a video on demand or near video on demand application, a home-shopping application or a particular company's interactive application, such as The Weather Channel's weather on demand, World Span's travel on demand or Light Span's educational interactive application. Events include subscriber use of and control commands to peripheral devices coupled to the STB or a subscriber's display device, such as a VCR or videodisk player.


Each application residing on the STB interfaces with the clickstream processor to send selected data for maintaining a desired journal. Assuming that the system is used with an interactive system, many different applications may be deployed over that system and may be triggered by the subscriber. Some fairly typical applications that might be invoked include:

    • a cable television application that handles subscriber remote controls (like channel or volume changes);
    • an electronic programming guide application such as TV Data, Prevue or Star Sight interactive services;
    • an interactive game;
    • a video on demand or near video on demand application;
    • company specific applications, that might be offered by content provider such as the Weather Channel, MTV, Showtime, etc.; or
    • a navigator application to help the user choose options.


Each of these applications, as well as some internal applications that the system may wish to monitor, will be assigned a unique application identifier.


Clickstream processor interfaces with the various applications resident in the STB's operating system and any third party applications. Note that for systems using other types of STB's than the embodiment described in the Figures, those STB's need not have an operating system. Instead, all instructions can be written directly to the memories of those particular STBs. Applications can be added by either downloading entirely new software directly to memory or by downloading new tables as described below.


When an application reaches a point where an “event” of interest has been generated, the application stores an event record to memory. The application then launches to the clickstream kernel the event record, including information such as: (1) the application's identification code (e.g., the “Cable Television Application” or a particular interactive application); (2) a count of the amount of information (number of bytes) to be journaled; (3) a “time stamp” that defines a unique point in time, e.g., by defining the date and time of day, accurate to the hour, minute or second; (4) an identification code for the event, or (5) where the event data was stored. Clickstream kernel uses the information provided by the applications to collect the event data, format it and place it into a buffer. Table I shows the type of information that will be generally sent by the clickstream processor to the buffers.












TABLE I







Application Event Record
Size




















Timestamp
6
bytes



Assigned Application ID
16
bits



Number Bytes to Follow (length)
8
bits










Application Specific Data
Multiple



with customized formats and lengths
Bytes










Global table II defines events of interest that each application can identify, collect, store in the “Application Specific Data” field and notify the clickstream kernel. These events could be as simple as a broadcast channel change by pressing the “Chan Up” remote key. All of these event types can be accessed and used by each application. While each application may not use every possible event type, the number of events available for collection allows system to extract any pertinent usage information for analysis. Also, the use of the global table II increases system efficiency because event types can be modified, added or removed.









TABLE II







EVENT DEFINITIONS










Code
Event











Content Related Events










0x0000
Passive Content




Change







Direct Key Presses










0x0001
TV ⋄ ITV Pressed



0x0002
Power Pressed



0x0003
One (1) Pressed



0x0004
Two (2) Pressed



0x0005
Three (3) Pressed



0x0006
Four (4) Pressed



0x0007
Five (5) Pressed



0x0008
Six (6) Pressed



0x0009
Seven (7) Pressed



0x000A
Eight (8) Pressed



0x000B
Nine (9) Pressed



0x000C
Zero (0) Pressed



0x000D
Channel Up Pressed



0x000E
Channel Down Pressed



0x000F
Volume Up Pressed



0x0010
Volume Down Pressed



0x0011
Last Channel Pressed







Application/State Switching Related










0x0028
AC Power ON



0x0029
Application Switch (Normal)



0x002A
Application Switch (Abnormal)



0x002B
Application Terminated (Normal)



0x002C
Application Terminated (Abnormal)



0x002D
Soft Power OFF



0x002E
Soft Power ON



0x002F
OFF State Polling Event







General










0x0030
Direct Channel Change



0x0031
Mute



0x0032
Un-Mute



0x0033
Volume Change Below 50%



0x0034
Volume Change Below 25%



0x0035
Volume Change Below 10%



0x0036
Volume Change Above 50%



0x0037
Volume Change Above 25%



0x0038
Volume Change Above 10%



0x0039
Change to Interactive Mode



0x003A
Change to Broadcast Mode










Note that Table II defines relative volume changes (e.g. “volume change below 50%,” “volume change below 25%,” etc.). Although the applications could capture the actual key presses that lead to these relative volume changes, that level of detailed information is of little use to system operators. Also, capturing all that detail leads to more records and higher demands upon the transmission network when those records are uploaded. Applications could also be configured to “filter” other unwanted details about other subscriber activities. For example, when subscribers “channel surf” by quickly flipping through a number of channels in a short period of time, the application could be configured not to record channel changes unless the subscriber paused for greater than a certain selected time period (e.g., 15 to 30 seconds). Again, this eliminates information of little use and decreases network traffic.


Table III defines a small portion of a sample global channel identification table that proposes codes for identifying national and local broadcasters. Such a table allows any application journaling events which occur while subscribers are viewing broadcast or cable television programs to identify the network carrying the programming content by using a subset of the global table II. In this way channel lineups can be changed yet the identifier for a broadcast or cable network would stay the same. The use of this mapping scheme eliminates the need to map an ever-changing channel number to a network.









TABLE III





Broadcast Channel


Identification


















0x0100 to 0x011F
News/Talk Shows



0x0100
CNN



0x0101
Headline News



0x0102
The Weather Channel



0x0103
CNBC



0x0104
CSPAN



0x0105
CSPAN-2



0x0106
America's Talking



0x0107
Talk Channel



0x0108
Court TV



0x0109
The Crime Channel



0x010A
National Empowerment TV



0x0120 to 0x013F
Sports



0x0120
ESPN



0x0121
ESPN-2



0x0122
SportSouth



0x0123
The Golf Channel



0x0124
Classic Sports Network



0x0125
Prime Network



0x0126
NewSport



0x0140 to 0x015F
Music



0x0140
MTV



0x0141
VH-1



0x0142
Country Music Television



0x0143
The Nashville Network



0x0144
The Box



0x0145
Video Jukebox



0x0146
MOR Music TV



0x0147
Music Choice










Table IV below shows some possible identification codes for particular applications. Note that each application could be programmed to insert its application ID code into the event record without accessing table IV. But by having each application access the table IV during the journaling process, the system's ability to modify or add application ID codes easily is enhanced because such codes could be populated across system by downloading an updated table IV. Providing for downloading of new tables increases the application footprint and system complexity so tables can also be part of the application programming.









TABLE IV







Application Identifiers










ID Code
Content







0x0000
Operating System



0x0001-F
Operating System Sub-Systems



0x0010
Application Manager



0x0011
Cable Television Application



0x0012
Clickstream Kernel



0x0100
EPG System



0x0101
Digital Pictures - Interactive Game



0x0110-F
Viacom - MTV/Showtime, etc.



0x1000
Interplay Written Applications General ID



0x1001
Interplay Runtime Engine



0x1002
Interplay Navigator



0x1003
Interplay VOD



0x1004
Interplay NVOD



0x1005
Interplay TownGuide



0x1100
The Weather Channel, Weather On-Demand



0x1101
Worldspan - Travel On-Demand



0x1102
Lightspan - Educational Interactive Application



0xFFFF
Missed Events Record










Each particular application can simply reference the global application, event and channel identification tables (which periodically may be updated and then downloaded to STBs) in order to build an event record. Examples of application specific event records that may be created in this manner are shown in Tables V through VIII below and discussed in associated text.


A cable TV application may tune analog or digital broadcast services. When a command to change channels is entered, the cable TV application 33 is invoked. The cable TV application begins building an event record by inserting an application ID and time stamp into the record. Next, the application 33 determines the “event ID” by cross-referencing the command with the global event ID table II for the proper code. Then, the application journals the “Channel ID.”


Although the Channel ID could simply be the number of the channel, that information means little. The fact that channel 6 was watched more than channel 7 has little or no meaning unless networks and, ultimately, the content delivered by those networks are associated with particular channels. Accordingly, the Channel ID may be a field, like a 16 bit field, which uniquely identifies the broadcast network displayed on that particular channel. The Channel ID may be determined by programming the cable TV application to compare the channel number tuned with global broadcast channel identification table III, above, to determine the correct channel identification code. Correlating the channel number with the channel identification code found in Table III ensures accurate reporting even though channels may differ at different cable TV headends within a particular region or even though individual channel line-up changes may be made over a period of time. This correlation between channel number and channel identification code could be done also at the staging server after it receives all of the event records, provided that correlation there accounted for different regional channel lineups.










TABLE V





Cable TV Application Event Record
Size

















Application ID: See Application ID table IV
16
bits


Timestamp: Identifies event time
6
bytes


Event ID: See Global Event ID table II for Syntax
16
bits


Channel ID : See Broadcast Channel ID table III for Syntax
16
bits









Table VI below shows a navigator application that may be provided in order to give subscribers an interactive menu that assists them in selecting from the many available programs and applications in an interactive network. The “Event ID” refers to the identification codes for commands relating to the Navigator application, which codes may be located by referring to the global event ID table II above. Table VI also shows some of the features of the navigator that might be used by the subscriber and that could be useful to track. The right hand column under “Size/Data” shows, first, next to the “Application state ID” that 8 bits are allocated to that record and, second, in the various rows beneath, the particular code that is journaled in order to indicate a subscriber accessed the identified (e.g. Fly-Thru, Main Menu, etc.) screen. Such information lets system operators determine the screens that users are viewing heavily or lightly in order to replace less popular screens with more useful ones or to charge more for advertisements placed on heavy use screens.










TABLE VI





Navigator Application Event Record
Size/Data

















Application ID: See Application ID table IV
16
bits


Timestamp: Identifies event time
6
bytes


Event ID: See Global Event ID table for Syntax
16
bits


Application State ID: See below for information tracked:
8
bits








Fly-Thru
0x00


Main Menu
0x01


Information (Help) Screen or Video
0x02


Movies Sub-Menu
0x03


Movie Categories Sub-Menu
0x04


List of Movies Sub-Menu
0x05


Movie Info Screen
0x06


Movie Buy State
0x07









Table VII similarly shows the journaling information collected for a video on demand application that may be launched in an interactive service from the Navigator application above or its equivalent. Some of the information collected here may include the amount of pausing, fast forwarding and rewinding. Additionally, the service provider may want to determine whether viewers are recording a video in order to charge them a recording fee. Similar information could be collected for a near video on demand service, which typically allows only incremental pause, forward or rewind.










TABLE VII





Video on Demand Application Event Record
Size/Data

















Application ID: See Application ID table IV
16
bits


Timestamp: Identifies event time
6
bytes


Event ID: See Global Event ID table for Syntax
16
bits


Application State ID: See below for information tracked:
8
bits








Playing
0x00


Paused
0x01


Fast Forward
0x02


Rewind
0x03


Info (Help) Video or Screen Played
0x04


Reserved
0x05


Reserved
0x06


Reserved
0x07









Table VIII below shows the event record for the Electronic Program Guide (EPG) application. The EPG application records the application ID, timestamp and event ID records just as do the above applications described in tables V-VII. Additionally, it has an application state ID field that identifies which of the display screens were accessed by subscribers, as shown below.










TABLE VIII





Electronic Program Guide (EPG) Application Event Record
Size/Data

















Application ID: See Application ID table IV
16
bits


Timestamp: Identifies event time
6
bytes


Event ID: See Global Event ID table for Syntax
16
bits


Application State ID: See below for information tracked:
8
bits








Initial Display Screen
0x00


Look Ahead Display 4 Hour
0x01


Look Ahead Display 8 Hour
0x02


Look Ahead Display 12 Hour
0x03


Look Ahead Display 16 Hour
0x04


Look Ahead Display 20 Hour
0x05


Look Ahead Display 24 Hour
0x06


Reserved
0x07









Generally, similar information about other applications, such as home shopping, interactive gaming or any other new applications deployed over an interactive or other media delivery system, can be tracked in a similar fashion. Additionally, the journaling process may be used to track errors within the system, with clickstream kernel journaling such errors using the same method as described above.


Over time, the journaling needs of system, or system itself may evolve. Applications may be changed or new ones deployed. New events may become of interest to the operator of system. In order to provide flexibility for system, operators may download to STBs new or replacement applications that will include the necessary processes for journaling all events of interest.


Briefly, the aim of the merge and parse process is to merge each STB event records with various “metadata.” “Metadata” refers to (1) programming of virtually any type shown on system including the time and broadcast or cable network providing such programming or (2) interactive applications invoked by subscribers. For instance, metadata includes the following sources of data: EPG broadcast programming schedule data, broadcast advertising schedule data, local advertising schedule data or session-services advertising schedule data and session-services programming schedule data. As used herein, “session-services advertising” refers to advertising inserted by video server (or alternate insertion means) during particular interactive sessions with the subscriber (via the STB) that are the session-services programming.


Collectively, all of this data enters into a merge and parse engine that creates an event timeline for each STB. Merge and parse engine may be deployed upon staging server or the MKIS system. So deploying merge and parse engine on staging server allows collected event records to be merged and parsed. The resulting event timelines can be sent to MKIS system for further analysis.


Timeline provides a snapshot of activity on a particular STB for a selected period (e.g., 24 hours) or for a selected event—for instance, a timeline would be created for each STB tuning to a particular show or shows (e.g., a pay per view fight) that may occur over a selected period. Timeline is created by merging event records with metadata about programming available over the network for the selected time period.


To merge that data, proper priority must be assigned to data that otherwise may be conflicting. For instance, broadcast advertising data may indicate that a certain national ad was run at Time A. On the other hand, if the system is an interactive system and the interactive server provided a targeted advertisement (“ad”) also at Time A, as indicated by session-services advertising data, that targeted ad was inserted over the national ad at Time A. Thus, by assigning session-services advertising data a priority higher than national broadcast advertising data, the merge and parse engine is able to create an accurate timeline of programming delivered to a particular STB. Similarly, even a traditional cable or wireless cable network requires priority assignments. Typically, local cable operators typically are allowed to insert local ads over certain national ads (assuming they can sell that local ad time).


Priority assignments and several sources of data, such as EPG metadata, National and Local Insert ad metadata and Interactive Sessions metadata, are included. EPG metadata is usually very broad—for instance, showing a football game on channel 1 from 1:00 to 4:00 p.m. Thus, EPG metadata is assigned a priority lower than that of national ad metadata because a particular national ad will be overlayed into a particular time slot broadly defined by the EPG. In turn, local insert ad metadata trumps national ad metadata because the national ad metadata may not account for situations where a local network or affiliate inserts a local ad over the national ad scheduled for a particular timeslot. Finally, interactive sessions metadata, which reflects subscriber selections, has the highest priority as it shows the subscriber stopped watching a particular channel and instead invoked an interactive session.


Applying these priority rules produces a timeline for each subscriber. Additional filtering criteria are applied by the merge and parse engine in order to generate a further refined timeline. For example, event records may include such highly granular and specific information as the number of volume ups or channel ups that a particular subscriber entered. One set of filtering criteria may ensure that the timeline includes only channels that were viewed for more than a threshold (e.g., 15 seconds) time period. This eliminates any very fast channel changes made by the subscribers, thereby simplifying the event timeline because event records that do not meet the criteria are filtered out of the event timeline.

Claims
  • 1. A method for providing a targeted advertisement, the method comprising: sending event data describing viewing habits of a subscriber;sending a request for the targeted advertisement to insert into an advertisement insertion slot;uploading latest event data describing recent viewing habits of the subscriber with the request for the targeted advertisement; andreceiving the targeted advertisement selected to appeal to the viewing habits of the subscriber.
  • 2. The method of claim 1, further comprising sending the targeted advertisement in response to the request.
  • 3. The method of claim 1, further comprising assigning a demographic to the event data.
  • 4. The method of claim 1, further comprising sending video content in response to the request.
  • 5. The method of claim 1, further comprising assigning a profile to the event data.
  • 6. The method of claim 1, wherein the targeted advertisement includes visual display data, and further comprising inserting the visual display data into programming.
  • 7. The method of claim 1, wherein the targeted advertisement includes visual display data, and further comprising overlaying the visual display data onto programming.
  • 8. A method of claim 1, wherein receiving the event data comprises receiving at least one of a selected movie preview, a selected movie, a programming selection, an ordered product, an interactive menu selection, a viewed commercial, a selection to turn off commercials, and a change in programming.
  • 9. A system for providing a targeted advertisement, the system comprising: a processor executing instructions stored in memory that cause the processor to:upload event data describing viewing habits of a subscriber;send requests for targeted advertisements to insert into advertisement insertion slots;upload latest event data describing recent viewing habits with each request for the targeted advertisement; andretrieve the targeted advertisement selected to appeal to the subscriber's viewing habits.
  • 10. The system of claim 9, wherein the targeted advertisement comprises video content.
  • 11. The system of claim 9, wherein the instructions further cause the processor to clear the event data stored in the memory after each upload.
  • 12. The system of claim 9, wherein the instructions further cause the processor to retrieve the targeted advertisement from the memory.
  • 13. The system of claim 9, wherein the instructions further cause the processor to receive the advertisement from a channel.
  • 14. The system of claim 9, wherein the event data comprises at least one of a selected movie preview, a selected movie, a programming selection, an ordered product, an interactive menu selection, a viewed commercial, a selection to turn off commercials, and a change in programming.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 09/467,889, by Scott Swix et al., filed Dec. 21, 1999, and now issued as U.S. Pat. No. 6,718,551, which is itself a continuation-in-part of U.S. patent application Ser. No. 08/779,306, by Batten et al., filed Jan. 6, 1997, and now abandoned. This application is also a continuation-in-part of U.S. patent application Ser. No. 09/496,825, by Grauch et al., filed Feb. 1, 2000. All these applications are herein incorporated by reference in their entirety.

US Referenced Citations (242)
Number Name Date Kind
677209 Chernock et al. Jun 1901 A
3798610 Bliss et al. Mar 1974 A
3886302 Kosco May 1975 A
4130833 Chomet Dec 1978 A
4258386 Cheung Mar 1981 A
4361851 Asip et al. Nov 1982 A
4488179 Kruger et al. Dec 1984 A
4566030 Nickerson et al. Jan 1986 A
4567591 Gray et al. Jan 1986 A
4598288 Yarbrough et al. Jul 1986 A
4602279 Freeman Jul 1986 A
4688248 Tomizawa Aug 1987 A
4689661 Barbieri et al. Aug 1987 A
4697209 Kiewit et al. Sep 1987 A
4698670 Matty Oct 1987 A
4720873 Goodman et al. Jan 1988 A
4816904 McKenna et al. Mar 1989 A
4890322 Russell, Jr. Dec 1989 A
4912552 Allison, III et al. Mar 1990 A
5010585 Garcia Apr 1991 A
5038211 Hallenbeck Aug 1991 A
5046090 Walker et al. Sep 1991 A
5046092 Walker et al. Sep 1991 A
5055924 Skutta Oct 1991 A
5173900 Miller et al. Dec 1992 A
5191645 Carlucci et al. Mar 1993 A
5208665 McCalley et al. May 1993 A
5247347 Litteral et al. Sep 1993 A
5249044 VonKohorn Sep 1993 A
5251324 McMullan, Jr. Oct 1993 A
5287181 Holman Feb 1994 A
5335277 Harvey et al. Aug 1994 A
5339315 Maeda et al. Aug 1994 A
5343240 Yu Aug 1994 A
5357276 Banker et al. Oct 1994 A
5374951 Welsh Dec 1994 A
5382970 Kiefl Jan 1995 A
5389964 Oberle et al. Feb 1995 A
5404393 Remillard Apr 1995 A
5410326 Goldstein Apr 1995 A
5410344 Graves Apr 1995 A
5440334 Walters et al. Aug 1995 A
5444499 Saitoh Aug 1995 A
5446490 Blahut et al. Aug 1995 A
5446919 Wilkins Aug 1995 A
5481294 Thomas et al. Jan 1996 A
5497185 Dufresne et al. Mar 1996 A
5500681 Jones Mar 1996 A
5504519 Remillard Apr 1996 A
5532732 Yuen et al. Jul 1996 A
5534911 Levitan Jul 1996 A
5537143 Steingold et al. Jul 1996 A
5559548 Davis Sep 1996 A
5579124 Aijala et al. Nov 1996 A
5585838 Lawler et al. Dec 1996 A
5585865 Amano Dec 1996 A
5589892 Knee et al. Dec 1996 A
5596994 Bro Jan 1997 A
5600364 Hendricks et al. Feb 1997 A
5600366 Schulman Feb 1997 A
5606359 Youden et al. Feb 1997 A
5608448 Smoral et al. Mar 1997 A
5619247 Russo Apr 1997 A
5630119 Aristides May 1997 A
5659350 Hendricks Aug 1997 A
5661516 Carles Aug 1997 A
5721827 Logan et al. Feb 1998 A
5724521 Dedrick Mar 1998 A
5724525 Beyers, II et al. Mar 1998 A
5724607 Brandt Mar 1998 A
5740549 Reilly et al. Apr 1998 A
5752159 Faust et al. May 1998 A
5754939 Herz May 1998 A
5758257 Herz May 1998 A
5758259 Lawler May 1998 A
5774170 Hite Jun 1998 A
5778182 Cathey et al. Jul 1998 A
5794210 Goldhaber et al. Aug 1998 A
5796952 Davis et al. Aug 1998 A
5798785 Hendricks et al. Aug 1998 A
5809481 Baron et al. Sep 1998 A
5818438 Howe Oct 1998 A
5838314 Neel Nov 1998 A
5848396 Gerace Dec 1998 A
5848397 Marsh et al. Dec 1998 A
5850249 Massetti et al. Dec 1998 A
5854897 Radziewicz et al. Dec 1998 A
5861906 Dunn Jan 1999 A
5867226 Wehmeyer et al. Feb 1999 A
5872588 Aras et al. Feb 1999 A
5892508 Howe Apr 1999 A
5892536 Logan et al. Apr 1999 A
5917481 Rzeszewski Jun 1999 A
5945988 Williams et al. Aug 1999 A
5948061 Merriman et al. Sep 1999 A
5973683 Cragun Oct 1999 A
5983227 Nazem Nov 1999 A
5991735 Gerace Nov 1999 A
5991799 Yen et al. Nov 1999 A
6002393 Hite et al. Dec 1999 A
6005597 Barrett Dec 1999 A
6015344 Kelly et al. Jan 2000 A
6026368 Brown et al. Feb 2000 A
6029045 Picco et al. Feb 2000 A
6029195 Herz Feb 2000 A
6076094 Cohen Jun 2000 A
6081840 Zhao Jun 2000 A
6100916 August et al. Aug 2000 A
6119098 Guyot et al. Sep 2000 A
6128009 Ohkura et al. Oct 2000 A
6134531 Trewitt et al. Oct 2000 A
6160570 Sitnik Dec 2000 A
6163644 Owashi et al. Dec 2000 A
6172674 Etheredge Jan 2001 B1
6177931 Alexander et al. Jan 2001 B1
6185614 Cuomo Feb 2001 B1
6199076 Logan et al. Mar 2001 B1
6202210 Ludtke Mar 2001 B1
6226618 Downs et al. May 2001 B1
6236975 Boe et al. May 2001 B1
6252586 Freeman Jun 2001 B1
6279157 Takasu Aug 2001 B1
6282713 Kitsukawa et al. Aug 2001 B1
6286042 Hasselberg et al. Sep 2001 B1
6314568 Ochiai Nov 2001 B1
6314577 Pocock Nov 2001 B1
6327574 Kramer et al. Dec 2001 B1
6345256 Milsted et al. Feb 2002 B1
6353929 Houston Mar 2002 B1
6397057 Malackowski et al. May 2002 B1
6400408 Berger Jun 2002 B1
6408437 Hendricks et al. Jun 2002 B1
6434747 Khoo et al. Aug 2002 B1
6446261 Rosser Sep 2002 B1
6457010 Eldering Sep 2002 B1
6463468 Buch Oct 2002 B1
6463585 Hendricks et al. Oct 2002 B1
6477704 Cremia Nov 2002 B1
6487538 Gupta et al. Nov 2002 B1
6496818 Ponte Dec 2002 B1
6505348 Knowles Jan 2003 B1
6507839 Ponte Jan 2003 B1
6510417 Woods Jan 2003 B1
6530082 Del Sesto et al. Mar 2003 B1
6631360 Cook Oct 2003 B1
6647548 Lu et al. Nov 2003 B1
6675383 Wheeler et al. Jan 2004 B1
6698020 Zigmond et al. Feb 2004 B1
6714992 Kanojia et al. Mar 2004 B1
6718551 Swix et al. Apr 2004 B1
6738978 Hendricks et al. May 2004 B1
6757691 Welsh et al. Jun 2004 B1
6766524 Matheny et al. Jul 2004 B1
6810527 Conrad et al. Oct 2004 B1
6845396 Kanojia et al. Jan 2005 B1
6850988 Reed Feb 2005 B1
6950804 Strietzel Sep 2005 B2
6970641 Pierre Nov 2005 B1
6976268 Courtney Dec 2005 B2
6983478 Grauch et al. Jan 2006 B1
7000245 Pierre Feb 2006 B1
7010492 Bassett et al. Mar 2006 B1
7020336 Cohen-Solal Mar 2006 B2
7020652 Matz Mar 2006 B2
7039599 Merriman May 2006 B2
7039932 Eldering May 2006 B2
7086075 Swix Aug 2006 B2
7212979 Matz et al May 2007 B1
7260823 Schlack et al. Aug 2007 B2
7269835 Swix Sep 2007 B2
7441260 Kurapati Oct 2008 B1
7444658 Matz Oct 2008 B1
7587323 Matz Sep 2009 B2
7593858 Matz Sep 2009 B2
7617508 Gray Nov 2009 B2
7661118 Matz Feb 2010 B2
20010004733 Eldering Jun 2001 A1
20020013757 Bykowsky Jan 2002 A1
20020016964 Aratani et al. Feb 2002 A1
20020032906 Grossman Mar 2002 A1
20020035600 Ullman et al. Mar 2002 A1
20020046099 Frengut et al. Apr 2002 A1
20020049631 Williams Apr 2002 A1
20020049967 Haseltine et al. Apr 2002 A1
20020056109 Tomsen May 2002 A1
20020056118 Hunter et al. May 2002 A1
20020078443 Gadkari et al. Jun 2002 A1
20020083441 Flickinger et al. Jun 2002 A1
20020087573 Reuning et al. Jul 2002 A1
20020092017 Klosterman et al. Jul 2002 A1
20020092019 Marcus Jul 2002 A1
20020100064 Ward et al. Jul 2002 A1
20020123928 Eldering et al. Sep 2002 A1
20020133817 Markel Sep 2002 A1
20020143647 Headings et al. Oct 2002 A1
20020157108 Kitsukawa et al. Oct 2002 A1
20020157109 Nakano et al. Oct 2002 A1
20020169709 Kitayama Nov 2002 A1
20020199197 Winter Dec 2002 A1
20030028432 Troyansky et al. Feb 2003 A1
20030028873 Lemmons Feb 2003 A1
20030049967 Narumo et al. Mar 2003 A1
20030067554 Klarfeld Apr 2003 A1
20030093792 Labeeb et al. May 2003 A1
20030110489 Gudorf et al. Jun 2003 A1
20030110497 Yassin et al. Jun 2003 A1
20030149975 Eldering et al. Aug 2003 A1
20030172374 Vinson et al. Sep 2003 A1
20040133467 Siler Jul 2004 A1
20040163101 Swix Aug 2004 A1
20040193483 Wolan Sep 2004 A1
20040194131 Ellis et al. Sep 2004 A1
20040261127 Freeman et al. Dec 2004 A1
20050060759 Rowe et al. Mar 2005 A1
20050071863 Matz Mar 2005 A1
20050132419 Gray Jun 2005 A1
20050137958 Huber et al. Jun 2005 A1
20050235318 Grauch Oct 2005 A1
20050251820 Stefanik Nov 2005 A1
20050278741 Robarts et al. Dec 2005 A1
20050283401 Swix Dec 2005 A1
20050283792 Swix Dec 2005 A1
20060031882 Swix Feb 2006 A1
20060075456 Gray Apr 2006 A1
20060253884 Gray Nov 2006 A1
20060271438 Shotland et al. Nov 2006 A1
20060288367 Swix Dec 2006 A1
20070226761 Zalewski et al. Sep 2007 A1
20070250846 Swix Oct 2007 A1
20070255622 Swix Nov 2007 A1
20080004962 Muthukrishnan et al. Jan 2008 A1
20080104634 Gajdos et al. May 2008 A1
20080147497 Tischer Jun 2008 A1
20080148311 Tischer Jun 2008 A1
20080167943 O'Neil Jul 2008 A1
20080263586 Thomas Oct 2008 A1
20090292703 Matz Nov 2009 A1
20100083298 Gray Apr 2010 A1
20100088725 Swix Apr 2010 A1
20100100435 Matz Apr 2010 A1
20100191601 Matz Jul 2010 A1
20100257037 Matz Oct 2010 A1
Foreign Referenced Citations (17)
Number Date Country
0 424 648 Sep 1990 EP
0 424 648 Feb 1991 EP
0 424 648 Feb 1991 EP
1162840 Dec 2001 EP
WO 9222983 Dec 1992 WO
WO 94 17609 Aug 1994 WO
WO 96 07270 Mar 1996 WO
9831114 Jul 1998 WO
WO 9831114 Jul 1998 WO
WO 99 04561 Jan 1999 WO
WO 99 04561 Jan 1999 WO
WI 99 45702 Sep 1999 WO
WO 99 45702 Sep 1999 WO
WO 99 45702 Oct 1999 WO
WO 99 52285 Oct 1999 WO
WO 99 52285 Oct 1999 WO
WO 0147156 Jun 2001 WO
Related Publications (1)
Number Date Country
20040163101 A1 Aug 2004 US
Continuations (1)
Number Date Country
Parent 09467889 Dec 1999 US
Child 10778345 US
Continuation in Parts (3)
Number Date Country
Parent 08779306 Jan 1997 US
Child 09467889 US
Parent 10778345 US
Child 09467889 US
Parent 09496825 Feb 2000 US
Child 10778345 US