Detailed Description
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It may be evident, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
In the following discussion, and with reference to the figures, like numerals refer to like parts throughout the several views.
Embodiments are described herein according to the following summary:
1.0 general description
2.0 exemplary content distribution System
3.0 automatic advertisement matching
4.0 Bid-based advertisement selection
5.0 exemplary advertisement presentation techniques
6.0 exemplary techniques for obtaining revenue from content distribution systems
7.0 implementation mechanisms-hardware overview
1.0 general description
According to one embodiment of the present invention, a portable device downloads (or has streamed to) content (e.g., audiovisual media content) from a plurality of remote content sources over the internet. In one embodiment of the invention, the portable device includes a storage mechanism for persistently storing the content on the portable device as the portable device receives the content. The portable device additionally includes communication mechanisms for (a) communicating with a remote content source via the internet and/or other networks, and (b) streaming content from the storage mechanism to a presentation device such as a television or monitor. The rendering device plays the received content to the person via the visual display and/or audio speakers.
In one embodiment of the invention, the portable device includes an ethernet interface and/or a wireless network interface through which the portable device communicates with a remote content source. In one embodiment of the invention, the portable device includes a High Definition Multimedia Interface (HDMI) or other interface through which the portable device transmits content to the rendering device. In one embodiment of the invention, a portable device includes solid state memory (e.g., flash memory, Compact Flash (CF) cards, Secure Digital (SD) cards and high capacity SD memory cards (SDHC), USB memory sticks, etc.) on which the portable device persistently stores content received by the portable device from a remote content source. In one embodiment of the invention, the portable device is small enough and light enough to be placed and carried in a person's pocket.
In some embodiments according to the invention, after a portable device user has caused the portable device to stream content stored by the portable device to one presentation device at one location, the portable device user may carry the portable device to another presentation device at another location. The owner of the portable device may then cause the portable device to stream the content stored by the portable device to another rendering device at a later location. Thus, according to some embodiments of the present invention, a portable device may be used to associate with a plurality of different presentation devices at different locations over different periods of time.
Embodiments of the present invention summarized above will be described in detail below in connection with some alternative embodiments of the present invention.
2.0 exemplary content distribution System
Fig. 1 is a block diagram illustrating a system for distributing content to people via portable devices in accordance with one embodiment of the present invention. The system includes a portable device 102, a Home Media Engine (HME) server 104, a web server 106, content providers 108A-N, content servers 110A-N, advertisers 112A-N, ad servers 114A-N, displays 116A-N, a metadata database 118, and the Internet 120. The exemplary system shown in FIG. 1 is but one of many different possible alternative embodiments of the present invention; alternative embodiments of the present invention may be implemented in alternative systems having fewer, larger, or different components than those shown in fig. 1. Displays 116A-N may include televisions, monitors, and other types of displays that may present dynamic video.
Each content provider 108A-N is an individual person or organization. In one embodiment of the invention, each content provider 108A-N creates and/or owns a different content item. As used herein, the term "content item" refers to any kind of media content. The content item may be an audiovisual medium such as a movie or a television program. The content item may be dynamic video content without audio. The content item may be audio without any video; for example, the content item may be music. The content item may be a single frame still image. The content item may be a computer-executable application; for example, the content item may be a video game. Each content provider 108A-N has a computer through which the content provider communicates with other components of the system (particularly the web server 106) via the Internet 120.
The content providers 108A-N store content on the content servers 110A-N. For example, each content server 110A-N may be a computer having a remote or local hard drive on which one or more content items are persistently stored. In one embodiment of the invention, different ones of the content servers 110A-N are owned and operated by respective ones of the content providers 108A-N. In an alternative embodiment of the present invention, content servers 110A-N are owned and operated by entities other than content providers 108A-N. Content servers 110A-N are configured to communicate with other components of the system via the internet 120. In one embodiment of the invention, the content providers 108A-N store content items on the content servers 110A-N by sending those content items over the Internet 120. Each content server 110A-N may be associated with a separate internet domain name. Each content item stored on one of content servers 110A-N may be associated with a unique Uniform Resource Locator (URL) that identifies both the content item and the content server on which the content item is stored.
Each advertiser 112A-N is an independent person or organization. In one embodiment of the present invention, each advertiser 112A-N creates and/or owns a different advertisement. The advertisements may be in the form of still images, audio, and/or sports audiovisual media. The advertisement may be in the form of an interactive offer that people can accept or decline; for example, the offer may invite people to purchase a particular merchandise item; if the person chooses to purchase the item, the offer may cause the entity to carry the item to the person's address. Additionally or alternatively, the advertisement may be in the form of a game and/or other interactive table. Each advertiser 112A-N has a computer through which the advertiser communicates with other components of the system (particularly the web server 106) via the Internet 120.
The advertisers 112A-N store the advertisements on the advertisement servers 114A-N. For example, each of the ad servers 114A-N may be a computer having a hard drive on which one or more advertisements are persistently stored. In one embodiment of the invention, each of the servers 114A-N (variance ones of ad servers) is owned and operated by each of the advertisers 112A-N (variance ones of ad servers). In an alternative embodiment of the present invention, the ad servers 114A-N are owned and operated by entities other than the advertisers 114A-N. The ad servers 114A-N are configured to communicate with other components of the system via the Internet 120. In one embodiment of the present invention, the advertisers 112A-N store the advertisements on the advertisement servers 114A-N by sending the advertisements over the Internet 120. Each of the ad servers 114A-N may be associated with a separate Internet domain name. Each advertisement stored on one of the advertisement servers 114A-N may be associated with a unique Uniform Resource Locator (URL) that identifies both the advertisement and the advertisement server on which the advertisement is stored.
The content providers 108A-N and the advertisers 112A-N interact with the web server 106 via the Internet 120. Web server 106 provides web pages containing user interfaces to the computers of content providers 108A-N and advertisers 112A-N. The content providers 108A-N and advertisers 112A-N submit information to the web server 106 via these user interfaces.
The content providers 108A-N submit information to the web server 106 indicating the URLs of various content items stored on the content servers 110A-N. With each such URL, the content providers 108A-N may submit metadata describing various aspects of the content item with which the URL is associated (e.g., title, year, supervisor, participant, tier level, summary, etc.). For each URL, the metadata submitted along with the URL may indicate one or more content keywords selected by the content provider that submitted the metadata. The content keywords are used to match advertisements to content items in an automated manner as discussed in detail below. In response to receiving the above information from the content providers 108A-N, the web server 106 stores the information in the metadata database 118. The web server 106 establishes an association in the metadata database 118 between the content item URLs and metadata (including content keywords) that is submitted with those content item URLs.
Advertisers 112A-N submit information to the web server 106 indicating the URLs of various advertisements stored on the advertisement servers 114A-N. With each such URL, the advertisers 112A-N may submit metadata describing aspects of the advertisement with which the URL is associated. For each URL, the metadata submitted along with the URL may indicate one or more advertising keywords selected by the advertiser that submitted the metadata. The advertisement keywords are used to match advertisements to advertising items in an automated manner as discussed in detail below. In response to receiving the above-described information from advertisers 112A-N, web server 106 stores the information in metadata database 118. The web server 106 establishes associations between the advertisement URLs and metadata (including advertisement keywords) submitted with those advertisement URLs in the metadata database 118.
The portable device 102 includes an interface through which the portable device 102 can communicate with other components of the system via the internet 120. For example, the portable device 102 may include an ethernet interface and/or a wireless network interface. The portable device 102 also includes HDMI, by which the portable device 102 can send video signals to any of the displays 116A-N; each display 116A-N has an HDMI to which the portable device 102 may be connected. Displays 116A-N may be located in different places; for example, display 116A may be located in one house and display 116B may be located in another house. The person carrying the portable device 102 may select the particular one of the displays 116A-N to which the person currently wants to connect the portable device 102. For example, the portable device 102 may be connected to a television or monitor with HDMI.
The portable device 102 receives the user interface commands and the HME server 104 sends the commands to the portable device over the internet 120. The user interface commands may, for example, conform to a specified remote display protocol. In response to receiving the user interface command from the HME server 104, the portable device 102 transmits a television signal to a particular television (one of the displays 116A-N to which the portable device 102 is currently connected) that causes the particular television to display the user interface element corresponding to the user interface command. The portable device 102 also receives viewer-selected user commands corresponding to certain user interface elements in wireless signals from a remote control held by a particular television viewer. Each user command triggers a corresponding event. The portable device 102 notifies the HME server 104 via the internet 120 of the occurrence of each such event. In response to the occurrence of various events, the HME server 104 may send various corresponding sets of user interface commands to the portable device 102. Thus, viewer selection of a user interface element (via a remote control) may cause HME server 104 to instruct portable device 102 to cause a particular television to display a user interface that is different from the user interface currently displayed by the particular television.
The HME server 104 queries the information in the metadata repository 118 to determine a set of content items stored on the content servers 110A-N. Based on the query results, the HME server 104 generates a set of user interface commands that will cause the portable device 102 to generate a television signal representing the content guide. The content guide identifies the set of content items stored on content servers 110A-N. For example, the content guide may include a ranked and/or filtered (based on particular rules) list of content items. The portable device 102 sends the set of user interface commands to the portable device 102 via the internet 120. In response to receiving the set of user interface commands, portable device 102 generates a television signal representing the content guide. The portable device 102 transmits these television signals to a particular one of the displays 116A-N to which the portable device 102 is currently connected. In response, the particular television displays the content guide.
Viewer selection (via remote control) of a particular content item displayed in the content guide causes portable device 102 to notify HME server 104 of the occurrence of an event corresponding to the selection of the particular content item. In this notification, the portable device 102 identifies the particular content item selected. In one embodiment of the invention, the HME server 104 receives the notification and, in response, sends the URL of the particular content item (as indicated in the association stored in the metadata database 118) to the portable device 102. The portable device 102 sends a request for a particular content item (also identified by a URL) over the internet 120 to a particular one of the content servers 110A-N associated with the URL. The particular content server receives the request and, in response, transmits the particular content item to the portable device 102 via the internet 120. Thus, the portable device 102 downloads the particular content item from the particular content server. While in one embodiment of the invention the portable device 102 downloads the content item, in an alternative embodiment of the invention the particular content server streams the content item to the portable device 102.
In one embodiment of the invention, in response to receiving the particular content item, the portable device 102 stores the particular content item in a solid state memory (e.g., flash memory, Compact Flash (CF) card, Secure Digital (SD) card, and high capacity SD memory card (SDHC), USB memory stick, etc.) included in the portable device 102. In one embodiment of the invention, the HME server 104 instructs the portable device 102 to play a particular content item. In response, the portable device 102 generates and transmits a television signal to a particular television that causes the particular television to present (e.g., play and/or display) the particular content item. The particular television set presents the particular content item represented in the television signal.
As discussed above, in one embodiment of the invention, in response to a user selection of the content item, the HME server 104 sends the URL of the selected content item to the portable device 102. However, in an alternative embodiment of the present invention, the HME server 104 may send multiple URLs for multiple content items to the portable device 102 and even override the user of the portable device 102 selecting any particular content item. For example, the HME server 104 may send the URL of each content item contained in the content guide discussed above (and possibly even the URLs of content items not contained in the content guide) to the portable device 102 even before the user selects any particular content item from the content guide. When the user actually selects a content item corresponding to one of those URLs, portable device 102 may store those received URLs for later use.
The content items may be stored in the content servers 110A-N in compressed and encoded form. For example, the content items may be stored in compliance with the Motion Picture Experts Group (MPEG) standard. Thus, in one embodiment of the invention, when the portable device 102 generates a television signal that the portable device 102 will transmit to a particular television, the portable device 102 decodes and decompresses the compressed and encoded content item to cause the particular television to present the content item. To preserve memory, content items may be held in compressed and encoded form in solid state memory (e.g., flash memory, Compact Flash (CF) card, Secure Digital (SD) card and high capacity SD memory card (SDHC), USB memory stick, etc.) of the portable device 102.
3.0 automatic advertisement matching
As discussed above, in one embodiment of the present invention, advertisers 112A-N store advertisements on advertisement servers 114A-N. As also discussed above, in one embodiment of the present invention, advertisers 112A-N submit information associated with (a) the URLs of the advertisements and (b) the metadata of the advertisements to web server 106. The web server 106 stores the association between the advertisement URL and the advertisement metadata in the metadata database 118. As discussed above, in one embodiment of the present invention, the metadata of the advertisement includes one or more advertisement keywords related to the content or subject matter of the advertisement. For example, the advertisement keyword may indicate a product type, a service type, and/or a brand name.
In one embodiment of the invention, when the HME server 104 detects an event that occurs indicating that the user of the portable device 102 has selected a content item from the content guide, the HME server 104 queries the metadata database 118 to determine a content keyword associated with the selected content item. The HME server 104 then queries the metadata database 118 to determine a set of matching advertisements. The HME server 104 determines the set of matching advertisements by finding, in the metadata database 118, advertisements that are associated with at least one advertisement keyword that will match, in the metadata database 118, at least one content keyword associated with the selected content item. The keyword may be a word; alternatively, the keyword may be a phrase including a plurality of associated words. For example, if the selected content item is associated with the content keyword "Zippy Cola," the HME server 104 may query the metadata database 118 to determine a set of advertisement URLs, each of which is associated with the advertisement keyword "Zippy Cola.
In one embodiment of the invention, after the HME server 104 has determined the set of matching advertisement URLs, the HME server 104 sends (via the internet 120) one or more matching advertisement URLs to the portable device 102 along with the URL of the selected content item. Some example techniques by which the HME server 104 may select from matching advertisement URLs are described in detail below. In one embodiment of the invention, the portable device 102 receives the advertisement URLs and, in response, downloads (via the Internet 120) advertisements associated with those advertisement URLs from appropriate ones of the advertisement servers 114A-N. Such advertisements may alternatively be streamed from the appropriate one of the ad servers 114A-N to the portable device 102. In one embodiment of the invention, the downloaded advertisement (via a particular one of the displays 116A-N to which the portable device 102 is currently connected) is played or displayed by the portable device 102 before, after, and/or during the interval in which the selected content item is played or displayed by the portable device 102. The advertisement URL need not be sent to the portable device 102 exactly when the advertisement is to be downloaded by the portable device 102. In one embodiment of the invention, the portable device 102 may prefetch content that the portable device 102 may need later. For example, in one embodiment of the invention, the portable device 102 receives a number of advertisement URLs associated with the URL of the user-selected content item, along with the URL of the user-selected content item. The portable device 102 may receive the advertisement located at the advertisement URL at the same time as receiving the user-selected content item. The portable device 102 may store such advertisements for subsequent display at appropriate time intervals relative to presentation of the content item-e.g., immediately after the content item has finished being presented.
In one embodiment of the invention, the HME server 104 instructs the portable device 102 to obtain content (e.g., content items and/or advertisements) and cache the content for possible subsequent presentation. The portable devices 102 may cache some content that the portable devices 102 never actually present to the user. HME server 104 may remotely manage the content cache of portable device 102, select content to be placed in the cache, and content to be evicted from the cache when the cache is full. The determination of the content to be buffered by the portable device 102 by the HME server 104 may be based on information relating to the use of the portable device 102 and/or the user of the portable device 102. For example, the HME server 104 may select content to be cached on a particular portable device based on the content viewing history of the user of the particular portable device. The HME server 104 may maintain such content viewing history using information sent to the HME server 104 in response to a user viewing the content portable device 102.
In one embodiment of the invention, whenever the portable device 102 presents an advertisement via a connected television, the portable device 102 sends a notification to the HME server 104 indicating (a) the identity of the advertisement (e.g., advertisement URL) and (b) the advertisement presented. To generate a television signal that will cause displays 116A-N to display those advertisements, portable device 102 may decode and/or decompress the downloaded advertisements. Some example methods of playing or displaying the downloaded advertisement by the portable device 120 are discussed further below.
4.0 Bidding-based advertisement selection
As discussed above, in one embodiment of the invention, the HME server 104 automatically determines a set of matching advertisements for the selected content item. In some cases, the number of matching ads may be large-too large for all matching ads to be displayed or played in a reasonable time along with the content item. In this case, the HME server 104 may select one or more advertisements from the matching advertisements based on the amount paid by the advertisers 112A-N to be willing to pay for presentation of those advertisements.
In one embodiment of the invention, when an advertiser 112A-N submits the advertising metadata to the web server 106, the advertiser also bids to present the associated advertisement. The web server 106 saves these bids within the advertising metadata, which the web server 106 stores in the metadata database 118. For example, advertiser 112 may submit information to web server 106 indicating a particular amount of money that advertiser 112A prefers to pay an operator of a service (e.g., TiVo Inc.) each time a particular advertisement is presented (e.g., to a user of portable device 102 or other similar portable device).
In one embodiment of the invention, after determining the set of matching advertisements in the manner described above, the HME server 104 determines the number of advertisement slots available for the selected content item; in one embodiment of the invention, the number is selected by the content provider and indicated in the content metadata associated with the selected content item. The HME server 104 ranks those matching advertisements based on the bid amounts associated with them. The HME server 104 then selects a number of matching advertisements from the matching advertisements associated with the highest bid amount that is equal to the number of available advertisement slots. The HME server 104 sends the URL of the selected matching advertisement to the portable device 102 via the internet 120. Using these URLs, the portable device 102 downloads the selected matching advertisement from the appropriate one of the advertisement servers 114A-N and presents it with the selected content item.
In one embodiment of the invention, the HME server 104 instructs the portable device 102 to obtain and cache advertisements even before the user of the portable device 102 selects any content items. More specifically, in one embodiment of the present invention, the HME server 104 periodically selects a limited subset of advertisements, from all available advertisements, that are currently associated with the highest bid. The HME server 104 periodically instructs the portable device 102 to obtain and cache these selected advertisements into the memory of the portable device 102 for later possible use and presentation (e.g., if the user actually later selects a content item along with which one of these advertisements should be presented). Thus, the portable device 102 may obtain (e.g., via download or streaming techniques) the advertisement currently associated with the highest bid, even though the user of the portable device 102 may never select a content item that requires presentation of one of those advertisements, and even though at least some of those advertisements may never be presented, and may eventually evict from the cache (e.g., if other advertisements eventually receive higher bids). In one embodiment of the invention, for "active caching" of the portable device 102, the HME server 104 selects not only the advertisement associated with the highest bid, but also the advertisement that is likely to be ultimately presented based on the user's past viewing history and selection of content items. Thus, in one embodiment of the invention, the HME server 104 determines the weight of each available advertisement based on a combination of: (a) how the current bid of the advertisement is ranked among the current bids associated with other advertisements, and (b) the probability that the advertisement will ultimately be presented to the user based on the viewing habits of the content item known to the user. The HME server 104 then instructs the portable device 102 to actively cache advertisements associated with the most important weights. The HME server 104 may instruct the portable device 102 to obtain and cache advertisements and other content at specified off-peak times of the day (e.g., in response to a user selecting times when those content items are unlikely to be being acquired by the portable device 102) so as not to over-use the bandwidth of the portable device 102 at time-sensitive times.
A service provider owning and/or operating HME server 104 may determine that certain "premium" content items are among those that the user of portable device 102 would like to view. Thus, in one embodiment of the present invention, the service provider causes the portable device 102 (via the HME server 104) to obtain and cache these content items that may be viewed. In the case where a "high-level" content item is currently stored in the cache of the portable device 102 but has not yet been presented, the HME server 104 may instruct the portable device 102 to present (along with another content item that the portable device 102 is currently presenting to the user) an advertisement that references the cached "high-level" content item and is specifically designed to entice the user to request presentation of the cached "high-level" content item. This helps to ensure that the cached "high-level" content item is actually requested by and presented to the user, so that bandwidth and memory used to cache the "high-level" content item is not unnecessarily used. In one embodiment of the invention, the producer, owner, or distributor of the "premium" content item contracts with the service provider in exchange for paying some specified fee for the service provider in order to (a) cache the "premium" content item on the portable device 102, and (b) present a dedicated advertisement that pushes the "premium" content item to the user of the portable device 102. In one embodiment of the invention, the service provider fails to cache the "high-level" content item as discussed above until such an agreement between the service provider and the producer of the item is established.
In one embodiment of the invention, whenever the HME server 104 sends an advertisement URL to the portable device 102, or, alternatively, whenever the HME server 104 receives a notification that the portable device 102 presents an advertisement associated with such URL, the HME server 104 bills a bank deposit, invoice, or credit card associated with one of the advertisers 112A-N that placed a bid for the advertisement. The HME server 104 bills out a bank account, invoice, or credit card for the specified amount bid for the advertisement. In one embodiment of the present invention, advertisers 112A-N submit bank deposit information and/or credit card information along with bids submitted through web server 106. In one embodiment of the invention, web server 106 stores these bank deposit information and/or credit card information in the metadata database 118 in advertisement metadata associated with the relevant advertisement URL.
In embodiments of the present invention as described above, the bid amount is associated with an advertisement URL. However, in an alternative embodiment of the present invention, the advertisers 112A-N submit bid amounts associated with the advertiser-selected keywords instead of the specified advertisement. The web server 106 stores associations between advertising keywords, bid amounts, and the identities of advertisers who submitted those bid amounts in a metadata database 118. In such an alternative embodiment of the present invention, the HME server 104 may select one or more advertisements from the set of matching advertisements that are associated with the advertisement keyword associated with the highest bid amount. Each advertisement may be associated with a plurality of different advertisement keywords.
5.0 exemplary advertisement presentation techniques
There are many different ways in which the portable device 102 may present the downloaded advertisement along with presenting the content item. In one embodiment of the invention, the portable device 102 presents one or more advertisements prior to presenting the content item. In one embodiment of the invention, the portable device 102 presents one or more advertisements after presenting the content item. In one embodiment of the invention, the portable device 102 presents one or more advertisements prior to presenting the content item and then presents one or more advertisements after presenting the content item. For example, the portable device 102 may play the advertisement 5 minutes before presenting the content item, and then the portable device 102 may play the advertisement 5 minutes after presenting the content item.
In one embodiment of the invention, the portable device 102 presents advertisements during the presentation of the content item. For example, in one embodiment of the invention, the HME server 104 determines the height-to-width ratio of the content item prior to the portable device 102 rendering the content item. In such embodiments of the invention, if the HME server 104 determines that the height-to-width ratio of the content item would leave a black bar above and below or on either side of the content item as compared to the height-to-width ratio of the television on which the content item is to be presented, the HME server 104 instructs the portable device 102 to play or display an advertisement in the display space not occupied by the content item. In response, the portable device 102 plays or displays these advertisements while the content item is being presented, but in the display space not occupied by the content item.
In one embodiment of the invention, the portable device 102 periodically interrupts the presentation of advertisements in the middle of the presentation of a content item. For example, the portable device may present a 10 minute content item, and then present one or more advertisements, and then present the next 10 minutes content item, then present one or more advertisements, and then present the next 10 minutes content item.
In one embodiment of the invention, when one of the content providers 108A-N submits information to the web server 106 along with the content item, as discussed above, the content provider includes an indication of one or more points in time in which the advertisement may be inserted. The web server 106 stores the one or more points in time in content metadata associated with the content item URLs in the metadata database 118. In this embodiment of the invention, the HME server 104 provides a list of time points to the portable device 102 before the portable device 102 presents the content items with which those time points are associated. According to one embodiment of the invention, when the portable device 102 plays the content item up to one of the points in time in the list, the portable device 102 notifies the HME server 104 that a point in time has been reached. In response to the notification, the HME server 104 instructs the portable device 102 to play one or more advertisements before continuing to present the content item until the next point in time in the list. However, according to an alternative embodiment of the present invention, instead of notifying the HME server 104 that a point in time has arrived, the portable device 102 independently selects one or more advertisements for play before continuing to present the content item. In this case, the portable device 102 may notify the HME server 104 of the advertisements that the portable device 102 has selected and presented (or is currently presenting). The portable device 102 may select an advertisement URL from a list of advertisement URLs stored locally at the portable device 102. Some such URLs may point to advertisements that are already stored in a cache maintained by the portable device 102, while other such URLs may point to resources stored or maintained by various advertisement servers 114A-N. Thus, in an alternative embodiment of the present invention, the presentation of advertisements by the portable device 102 is fully pre-computed and downloaded by the portable device 102 along with the content that the portable device 102 will play, advertisements are automatically inserted into the presentation stream using the portable device 102, and the HME server 104 is made aware of the advertisements that have been presented using the portable device 102 as those advertisements are presented by the portable device 102.
In one embodiment of the invention, in addition to the list of time points, the content provider indicates to the web server 106 a maximum amount of time during which the content provider allows advertisements to be played at each time point. In this embodiment of the invention, the HME server 104 instructs the portable device 102 to present advertisements at each point in time that all do not exceed a specified maximum amount of time in length.
In one embodiment of the invention, the content provider indicates to the web server 106 a list of time points as discussed above, and for each time point one or more content keywords associated with that time point. For example, the content provider 108A may associate the content keyword "soap" with a first point in time (e.g., tagged at 5: 00) and the content keyword "beer" with a second point in time (e.g., tagged at 10: 00). The content provider 108A may select content keywords to be associated with a particular point in time based on the content item topic to be presented at that point in time. Continuing with the above embodiment, since the content item may be a television program with one of the actors in the shower at the first point in time, the content provider 108A may select "soap" to be associated with the first point in time. Similarly, since, in the television program, one of the actors may drink a bottle of beer at the second point in time, the content provider 108A may select "beer" associated with the second point in time. In this embodiment of the invention, when the portable device 102 notifies the HME server 104 that a particular point in time has been reached when the content item was presented, the HME server 104 determines one or more advertisements associated with advertisement keywords that match at least one content keyword associated with the particular point in time in the metadata database 118. The HME server 104 instructs the portable device 102 to present one or more of these advertisements in a non-mandatory manner. For example, the portable device 102 may cause the television to present a banner or overlay on a portion of the screen while the content item is playing; the banner or overlay may include material from the matching advertisement. For another example, the portable device 102 may cause the television to present icons indicating additional information available at the corners of the screen in response to the viewer pressing a particular button on the remote control; in response to the viewer pressing the particular button while the icon is being displayed, the portable device 102 may cause the television to present the matching advertisement, temporarily interrupting presentation of the content item. In each of the above embodiments, the portable device 102 may perform the operations in response to instructions from the HME server 104.
In one embodiment of the invention, the fee charged to the advertiser by the content service provider is based at least in part on when those advertisements were displayed during the program, the advertiser's advertisements being displayed in the manner described above. For example, in one embodiment of the invention, the content service provider charges the highest fee for advertisements played during the beginning of the program and pays the lowest fee for advertisements played during the end of the program. For advertisements that are played between the beginning and end of a program, the content service provider may charge a fee based on the ratio between (a) the amount of the program that has been played and (b) the amount of the program that remains to be played, such that advertisements that are played near the beginning of the program are charged a higher fee than advertisements that are played near the end of the program. The HME server 104 may select advertisements to provide to the viewer from a plurality of advertisements having different associated fees based at least in part on the fees associated with playing those advertisements. For example, the HME server 104 may select a group of advertisements that will generate the highest fee amount, while remaining within a specified number of advertisements or a specified number of total ad time during the program.
6.0 exemplary techniques for obtaining revenue from content distribution systems
There are a number of different ways by which operators of the content distribution task (e.g., owners and operators of the web servers 106 and/or maintenance personnel of the metadata in the metadata database 118) can derive revenue from activities occurring in the content distribution system. As discussed above, in one embodiment of the present invention, advertisers 112A-N submit bids using the URLs of advertisements stored on the advertisement servers 114A-N. In this embodiment of the invention, the HME server 104 selects one of the keyword matching advertisements based on the bid amounts associated with those advertisements. The operator of the content distribution service (e.g., TiVo Inc) receives revenue from advertisers 112A-N in the bid amount associated with the advertisements actually presented by the portable device 102. Thus, in one embodiment of the present invention, the content distribution service operator utilizes the above-described online (via the web server 106) bidding process to sell advertising opportunities to the advertisers 112A-N.
In an alternate embodiment of the present invention, the content distribution service operator stores the advertisements of the advertisers 112A-N on a server owned or operated by the content distribution service operator. Advertisers 112A-N may find this prospect to be more attractive than storing advertisements on their own servers (e.g., advertisement servers 114A-N). In one embodiment of the invention, in exchange for the privilege of storing advertisements on the content distribution service operator's server, the advertisers 112A-N agree to pay the content distribution service operator a specified amount. For example, the content distribution service operator may pay a monthly fee to the advertiser 112A for the amount of money. The specified amount may be based on the size (e.g., in bytes) of the advertisement that the advertiser 112A is storing on the content distribution service operator's server, or alternatively, may be based on the bandwidth consumed in delivering the advertisement to the portable device.
In one embodiment of the invention, when a content provider 108A-N submits a content item URL and associated metadata to the web server 106, the content provider 108A-N enters into a legally binding agreement with the content distribution service operator (e.g., by detecting a box on a web page). The agreement specifies that the content provider gives the content distribution service operator permission to sell advertising opportunities to advertisers 112A-N. The agreement additionally specifies that the content provider will receive a specified portion of the revenue obtained from the advertisers 112A-N; the content distribution service operator will receive these benefits remaining. This protocol serves as a incentive for the content providers 108A-N to submit the URLs and associated metadata of their content items to the web server 106.
The techniques discussed above relate to obtaining revenue from advertisers 112A-N. Additionally or alternatively, the techniques for obtaining revenue from the content providers 108A-N may be implemented as discussed below. In one embodiment of the invention, the content providers 108A-N insert advertisements into their own content items stored on the content servers 110A-N. In this embodiment of the invention, those content providers 108A-N that insert advertisements into their own content items enter into agreements with the content distribution service operator. The agreement specifies to allow the content provider to insert advertisements into the content items downloaded (or otherwise received, e.g., via streaming techniques) and presented by the portable device 102 in exchange for the content provider agreeing to pay the content distribution service operator a specified amount of money each time one of the content items of the content provider is downloaded and/or presented by the portable device 102 (or similar device). Thus, in such embodiments of the invention, each time the portable device 102 downloads (or otherwise receives, e.g., via streaming technology) and/or presents a content item, the portable device 102 may notify the HME server 104. In response to receiving such a notification, the HME server 104 bills a bank account, invoice, or credit card associated with one of the content providers 108A-N, the portable device 102 receives and/or presents the content provider's content items. The HME server 104 bills a bank account, invoice, or credit card for the amount specified in the agreement with the content provider. In one embodiment of the invention, the content providers 108A-N submit bank account information and/or credit card information along with the content item URLs that the content providers 108A-N submit through the web server 106. In one embodiment of the invention, the web server 106 stores these bank account information, invoices and/or credit card information in the associated content metadata in the metadata database 118 using the relevant content item URL. Thus, in one embodiment of the invention, the content providers 108A-N, rather than the content distribution service operator, sell advertising opportunities to advertisers 112A-N, but in exchange for allowing the content providers 108A-N to do so, the content distribution service operator obtains revenue from the content providers 108A-N.
In one embodiment of the present invention, the content provider not only inserts advertisements into the content item, but also allows the content distribution service operator to sell some advertising opportunities to advertisers 112A-N. In one such embodiment of the invention, the content provider indicates (e.g., via the web server 106), in the content metadata associated with the content item URL in the metadata database 118, a set of points in time at which the HME server 104 may instruct the portable device 102 to insert a keyword matching advertisement. The content provider may additionally specify a maximum time interval for each point in time. In this embodiment of the invention, the HME server 104 instructs the portable device 102 to present advertisements at each point in time that all do not exceed a specified maximum amount of time in length. Thus, during presentation of the content item, the portable device 102 may simultaneously present (a) advertisements previously inserted into the content item itself by the content provider and (b) advertisements automatically selected and indicated for download by the HME server 104 (using keyword matching techniques as discussed above).
In one embodiment of the invention, when a content provider 108A-N submits a content item URL to the web server 106, the content provider 108A-N additionally specifies whether the corresponding content item is "premium" content. The web server 106 stores an indication of whether the corresponding content item is "high-level" in the content metadata associated with the content item URL in the metadata database 118. In such embodiments of the present invention, the content providers 108A-N additionally specify an amount for each "premium" content item that the operator of the portable device 102 is to bill for (for the operator of the device to use the portable device, the content distribution service operator may request a service subscription from each operator of the portable device; the content distribution service operator may maintain billing information for each such subscription), each time the portable device 102 receives (e.g., via streaming download or receipt) and/or presents the "premium" content item. In this embodiment of the invention, those content providers 108A-N that submit "premium" content item URLs enter into an agreement with the content distribution service operator. The protocol specifies that the content distribution service operator will receive the amount of the specified portion, which the operator of the portable device 102 bills when the portable device 102 downloads and/or presents the "premium" content item. In this embodiment of the invention, whenever the portable device 102 downloads and/or presents a "premium" content item, the HME server 104 bills the portable device 102 operator's bank account, invoice, or credit card, directs a specified portion of the amount of data billed to the content distribution server operator, and pays the remainder of the billing amount to the content provider. In one embodiment of the invention, the portable device 102 does not present any advertisements before, during, or after (or otherwise along with) presenting the "premium" content items for which the operator of the portable device 102 pays.
In exchange for providing the opportunity for the content providers 108A-N to temporarily and to a limited extent control the portable device 102, the content distribution service operator obtains revenue from the content providers 108A-N by charging the content providers 108A-N in one embodiment of the invention. As discussed above, in one embodiment of the present invention, the portable device 102 receives user interface commands from the HME server 104 and generates a television signal or display signal based on those user interface commands. In one embodiment of the present invention, in response to a user selecting a particular content item from the content guide presented by the portable device 102, the HME server 104 allows another server owned by the content provider submitting the particular content item to send certain approved user interface commands to the portable device 102 for a limited period of time (e.g., until the portable device 102 receives commands under the control of the HME server 104 to resume normal operation). In one embodiment of the invention, unlike the HME server 104, the content provider's server is not owned or operated by the content distribution service operator. Thus, in one embodiment of the present invention, the content providers 108A-N are given the opportunity to control, and more directly, the user interface generated by the portable device 102 and presented to the viewer via the displays 116A-N. In exchange for such opportunity to control the portable device 102, the content distribution service operator pays the content provider the amount of money specified and agreed upon in this embodiment of the invention.
When the content provider's server is controlling the portable device 102, the content provider's server may disable certain features of the portable device 102. For example, the content provider's server may disable the "ad skip" feature of selecting the portable device 102 as long as the content provider's server is controlling the portable device 102.
7.0 hardware overview
Fig. 2 is a block diagram illustrating an example of the internal components of the portable device 102 in accordance with an embodiment of the present invention. In the illustrated embodiment, portable device 102 includes an ethernet interface 202, a wireless network interface 204, an infrared receiver 206, solid state memory 208, a processor 210, an encryptor/decryptor 214, and an HDMI 212. The example apparatus shown in FIG. 2 is but one of many different possible alternative embodiments of the present invention; alternative embodiments of the invention may be implemented in alternative devices having fewer, larger, or different components than those shown in fig. 2.
In one embodiment of the invention, the portable device 102 includes either the ethernet interface 202 or the wireless network interface 204, but not both. In another embodiment of the present invention, the portable device includes both an ethernet interface 202 and a wireless network interface 204. The portable device 102 is capable of communicating with the content servers 110A-N, the ad servers 114A-N, and the HME server 104 via the internet 120 through an ethernet interface 202 and/or a wireless network interface 204.
The infrared receiver 206 is capable of receiving infrared signals from a remote control. In response to a user manipulating a button on the remote control, the remote control sends an infrared signal to the portable device 102. The infrared signal represents a command that the user wishes the portable device 102 to execute. The circuitry within the portable device 102 sends these commands in the form of electrical signals to the processor 210. Processor 210 may be any microprocessor or Application Specific Integrated Circuit (ASIC).
In one embodiment of the present invention, when the portable device 102 downloads content items and advertisements via the internet 120, the portable device 102 stores those content items and advertisements, at least temporarily, in the solid-state memory 208. In one embodiment of the present invention, the portable device 102 does not have any kind of hard drive, thereby reducing the weight, size, cost, and energy consumption of the portable device 102. In one embodiment of the present invention, the portable device 102 operates by power derived from replaceable batteries. The processor 210 reads data from the solid-state memory 208 and writes data to the solid-state memory 208.
In other features, the processor 210 is capable of receiving user interface commands from the HME server 104 and generating a television signal representing a user interface that follows those commands. The processor 210 outputs these television signals to any of the displays 116A-N to which the portable device 102 is currently connected over the HDMI 212. At the user's discretion, the HDMI 212 may be repeatedly connected and disconnected from a corresponding HDMI on each display 116A-N.
Further, in one embodiment of the invention, the processor 210 is capable of decoding and decompressing content items and advertisements that have been encoded and compressed (e.g., according to MPEG or other encoding or compression standards). In one embodiment of the invention, the processor 210 reads the encoded and encrypted content items stored in the solid-state memory 208, decodes and decompresses those content items, and generates a television signal representing those content items. The processor 210 sends the generated television signal out through the HDMI 212.
Although the portable device 102 includes solid state memory 208 in the embodiment of the invention illustrated in FIG. 2, in an alternative embodiment of the invention, the portable device 102 does not have solid state memory 208. In one embodiment of the present invention, instead of storing the content items and advertisements downloaded by the portable device 102, the portable device 102 streams these content items and advertisements directly over the HDMI 212 as the portable device 102 receives those content items and advertisements over the interface 202 or the interface 204.
In one embodiment of the present invention, the portable device 102 receives commands from a personal computer (not shown) via the internet 120 through either the interface 202 or the interface 204. The command instructs the portable device 102 to perform a specified operation. For example, such a command may instruct the portable device 102 to download and store a particular content item. Thus, in one embodiment of the invention, the portable device 102 may be remotely controlled via the Internet 120 by an approval device (e.g., an approved Internet-connected laptop computer) in a manner similar to that discussed above in which the portable device 102 may be more locally controlled by a remote control. In one embodiment of the present invention, the remote device sends (via the internet 120) these commands to the HME server 104, which then sends corresponding commands to the portable device 102 in order for the portable device 102 to execute those commands.
In one embodiment of the present invention, encryptor/decryptor 214 encrypts the unencrypted signals into encrypted signals and decrypts the encrypted signals into unencrypted signals.
FIG. 3 is a block diagram that illustrates a computer system 300 upon which an embodiment of the invention may be implemented. Computer system 300 includes a bus 302 or other communication mechanism for communicating information, and a processor 304 coupled with bus 302 for processing information. Computer system 300 also includes a main memory 306, such as a Random Access Memory (RAM) or other dynamic memory device, coupled to bus 302 for storing information and instructions to be executed by processor 304. Main memory 306 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 304. Computer system 300 further includes a Read Only Memory (ROM)308 or other static storage device coupled to bus 302 for storing static information and instructions for processor 304. A storage device 310, such as a magnetic disk or optical disk, is provided and coupled to bus 302 for storing information and instructions.
Computer system 300 may be coupled via bus 302 to a display 312, such as a Cathode Ray Tube (CRT), for displaying information to a computer user. An input device 314, including alphanumeric and other keys, is coupled to bus 302 for communicating information and command selections to processor 304. Another type of user input device is cursor control 316, such as a mouse, a trackball, or cursor direction keys to communicate direction information and command selections to processor 304 and to control cursor movement on display screen 312. The input device typically has degrees of freedom in two axes, a first axis (e.g., X) and a second axis (e.g., Y), that allow the device to specify positions on a plane.
The invention is related to the use of computer system 300 for implementing the techniques described herein. According to one embodiment of the invention, those techniques are performed by computer system 300 in response to processor 304 executing one or more sequences of one or more instructions contained in main memory 306. Such instructions may be read into main memory 306 from another machine-readable medium, such as storage device 310. Execution of the sequences of instructions contained in main memory 306 causes processor 304 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
The term "machine-readable medium" as used herein refers to any medium that participates in providing data that causes a machine to operation in a specific fashion. In an implementation implemented using computer system 300, various machine-readable media are used, for example, to provide instructions to processor 304 for execution. Such a medium may take many forms, including but not limited to storage media and transmission media. Storage media includes both non-volatile media and volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 310. Volatile media includes dynamic memory, such as main memory 306. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 302. Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications. All such media must be tangible to enable the instructions carried by the media to be detected by a physical mechanism that reads the instructions into a machine.
Common forms of machine-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
Various forms of machine-readable media may be involved in carrying one or more sequences of one or more instructions to processor 304 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 300 can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 302. Bus 302 carries the data to main memory 306, from which processor 304 retrieves and executes instructions. The instructions received by main memory 306 may optionally be stored on storage device 310 either before or after execution by processor 304.
Computer system 300 also includes a communication interface 318 coupled to bus 302. Communication interface 318 provides a two-way data communication coupling to a network link 320, network link 320 being connected to a local network 322. For example, communication interface 318 may be an Integrated Services Digital Network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 318 may be a Local Area Network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 318 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
Network link 320 typically provides data communication through one or more networks to other data devices. For example, network link 320 may provide a connection through local network 322 to a host computer 324 or to data equipment operated by an Internet Service Provider (ISP) 326. ISP 326 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the "Internet" 328. Local network 322 and internet 328 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 320 and through communication interface 318, which carry the digital data to and from computer system 300, are exemplary forms of carrier waves transporting the information.
Computer system 300 can send messages and receive data, including program code, through the network(s), network link 320 and communication interface 318. In an internet embodiment, a server 330 might transmit a requested code for an application program through internet 328, ISP 426, local network 322 and communication interface 318.
As the received code is received, and/or stored in storage device 310, or other non-volatile storage for later execution, it may be executed by processor 304. In this manner, computer system 300 may obtain application program code in the form of a carrier wave.
In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Thus, the sole and exclusive indicator of what is the invention, and is intended by the applicants to be the invention, is the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction. Any definitions expressly set forth herein for terms contained in such claims shall govern the meaning of such terms as used in the claims. Hence, without limitation, elements, properties, features, advantages or attributes that are not expressly recited in a claim should limit the scope of such claim in any way. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
1. A method for distributing content, the method comprising:
in response to receiving the content data, storing the content data into a memory of the device;
generating, at the device, a display signal based on content data stored in the memory; and
in response to determining that a point in time of the set of points in time has been reached in the presentation of the content by the device, notifying a server over the internet that the point in time has been reached;
receiving, from the server over the Internet, an identification of one or more specific advertisements of the set of advertisements stored in a cache of the device in response to the device notifying the server that the point in time has been reached;
in response to receiving the identification of the one or more specific advertisements from the server over the Internet at the apparatus, discontinuing presentation of the content and presentation of the one or more specific advertisements from the cache; and
rendering the content after rendering the one or more specific advertisements from the cache.
2. The method of claim 1, wherein the content is at least one of a movie, a television program, or music.
3. The method of claim 1, wherein the content data is encoded, and generating the display signal comprises decoding the content data at the device.
4. The method of claim 1, further comprising:
receiving, at the device, one or more user interface commands from a server via the Internet;
in response to receiving the one or more user interface commands, generating a user interface display signal representing a user interface; and
sending a user interface display signal from the device to the display.
5. The method of claim 1, further comprising:
receiving, at the device, advertisement data representing an advertisement from a first server via the internet;
in response to receiving the advertisement data, storing the advertisement data in the memory;
generating, at the device, a specific signal based on advertisement data stored in the memory; and
wherein receiving the content data comprises receiving the content data from a second server that is separate from the first server.
6. The method of claim 1, wherein receiving the content data comprises:
receiving, at the apparatus, a Uniform Resource Locator (URL) of the content data from a first server; and
in response to receiving the URL of the content data from the first server, the content data identified by the URL from the second server is downloaded into the device.
7. A non-transitory or volatile computer readable storage medium storing instructions that, when executed, cause one or more processors to perform steps comprising:
in response to receiving the content data, storing the content data into a memory of the device;
generating, at the device, a display signal based on content data stored in the memory; and
in response to determining that a point in time of the set of points in time has been reached in the presentation of the content by the device, notifying a server over the internet that the point in time has been reached;
receiving, from the server over the Internet, an identification of one or more specific advertisements of the set of advertisements stored in a cache of the device in response to the device notifying the server that the point in time has been reached;
in response to receiving the identification of the one or more specific advertisements from the server over the Internet at the apparatus, discontinuing presentation of the content and presentation of the one or more specific advertisements from the cache; and
rendering the content after rendering the one or more specific advertisements from the cache.
8. The computer-readable medium of claim 7, wherein the content is at least one of a movie, a television program, or music.
9. The computer-readable medium of claim 7, wherein the content data is encoded, and generating the display signal comprises decoding the content data at the apparatus.
10. The computer-readable medium of claim 7, wherein the steps further comprise:
receiving, at the device, one or more user interface commands from a server via the Internet;
in response to receiving the one or more user interface commands, generating a user interface display signal representing a user interface; and
sending a user interface display signal from the device to the display.
11. The computer-readable medium of claim 7, wherein the steps further comprise:
receiving, at the device, advertisement data representing an advertisement from a first server via the internet;
in response to receiving the advertisement data, storing the advertisement data in the memory;
generating, at the device, a specific signal based on advertisement data stored in the memory; and
wherein receiving the content data comprises receiving the content data from a second server that is separate from the first server.
12. The computer-readable medium of claim 7, wherein receiving the content data comprises:
receiving, at the apparatus, a Uniform Resource Locator (URL) of the content data from a first server; and
in response to receiving the URL of the content data from the first server, the content data identified by the URL from the second server is downloaded into the device.