A system and method for placing ads on a client-side video replay system during a pause mode.
|
1. An apparatus for display of an ad, the apparatus comprising:
a processor;
a non-transitory storage medium that contains program content displayable by a display device;
a first software application that is configured to pass program content, selected by a user and contained in the storage medium, to the display device;
an ad placement engine that comprises, for each ad of a plurality of ads, a set of rules that describes the ad, indicates an expiration date of the ad and includes an ad placement value rule to re-determine a placement value of the ad, and the ad placement engine is configured to (i) receive a context update from a second software application, (ii) use, in response to the ad placement engine receiving the context update, the ad placement value rule for each ad to re-determine the placement value of that ad, and (iii) determine a first ad, evaluated to have a greatest placement priority value after re-determining the placement values of the plurality of ads, to place based on the re-determined placement values of the plurality of ads, and
a timer that counts, in response to the apparatus entering a pause mode in response to a user action comprising a pause key being pressed, a user-configurable amount of time, greater than zero seconds, that the apparatus passes paused user-selected program content to the display device before the apparatus begins passing the first ad to the display device instead of the paused user-selected program content.
23. A method comprising:
storing, by a non-transitory storage medium within a client-side replay device, program content displayable by a display device;
passing, by a first software application within the client-side replay device, program content selected from the storage medium by a user to the display device;
receiving, by an ad placement engine within the client-side replay device, a context update from a second software application, wherein the ad placement engine comprises, for each ad of the plurality of ads, a set of rules that describes the ad, indicates an expiration date of the ad and includes an ad placement value rule to re-determine a placement value of the ad;
using, by the ad placement engine in response to receiving the context update, the ad placement value rule for each ad to re-determine the placement value of that ad;
determining, by the ad placement engine, a first ad, evaluated to have a greatest placement priority value after re-determining the placement values of the plurality of ads, to place based on the re-determined placement values of the plurality of ads; and
counting, by a timer in response to the client-side replay device entering a pause mode in response to a user action comprising a pause key being pressed, a user-configurable amount of time, greater than zero seconds, that the client-side replay device passes paused user-selected program content to the display device before the client-side replay device begins passing the first ad to the display device instead of the paused user-selected program content.
24. A client-side replay device comprising:
a processor; and
a computer-readable data storage medium storing program content displayable by a display device and computer-readable program instructions, that when executed by the processor, cause a set of functions to be performed, the set of functions comprising:
passing program content selected from the storage medium by a user to a display device;
receiving, by an ad placement engine within the client-side replay device, a context update from a second software application, wherein the ad placement engine comprises, for each ad of the plurality of ads, a set of rules that describes the ad, indicates an expiration date of the ad and includes an ad placement value rule to re-determine a placement value of the ad;
using, by the ad placement engine in response to receiving the context update, the ad placement value rule for each ad to re-determine the placement value of that ad;
determining, by the ad placement engine, a first ad, evaluated to have a greatest placement priority value after re-determining the placement values of the plurality of ads, to place based on the re-determined placement values of the plurality of ads; and
counting, by a timer in response to the client-side replay device entering a pause mode in response to a user action comprising a pause key being pressed, a user-configurable amount of time, greater than zero seconds, that the client-side replay device passes paused user-selected program content to the display device before the client-side replay device begins passing the first ad to the display device instead of the paused user-selected program content.
2. The apparatus of
a video capture engine that comprises a tuner to select program content to receive from a broadcaster,
wherein the video capture engine receives the user-selected program content from the broadcaster, and
wherein the broadcaster is a television broadcaster, a cable broadcaster, or a pay-per-view broadcaster.
3. The apparatus of
an asset manager that passes tuning data to the video capture engine, wherein the tuning data indicates a television or cable channel has been changed by a user.
5. The apparatus of
6. The apparatus of
wherein the first software application is configured to cause the first ad to be removed from the display device in response to a second user action, and
wherein if the second user action comprises pressing a pause or play key, the display device resumes playing the user-selected program content.
7. The apparatus of
11. The apparatus of
12. The apparatus of
13. The apparatus of
14. The apparatus of
15. The apparatus of
16. The apparatus of
wherein the set of rules for a given ad of the plurality of ads includes at least one weight value, and
wherein the re-determined placement value for the given ad is adjusted by a weight value of the at least one weight value prior to recalibration of an order of the ads in a heap data structure.
17. The apparatus of
18. The apparatus of
wherein the at least one weight value for the given ad includes a first weight value and a second weight value,
wherein the first weight value is used to weight the placement value associated with the given ad before the given ad is placed into the heap data structure,
wherein the second weight value is used to force the given ad to go to the bottom of the heap data structure after the given ad is displayed, and
wherein the second weight value is a variable weight proportionate to time passed since the given ad was displayed.
19. The apparatus of
20. The apparatus of
21. The apparatus of
22. The apparatus of
wherein the ad placement engine comprises a heap data structure pertaining to the plurality of ads,
wherein the ad placement engine recalibrates an order of the ads in the heap data structure based on the re-determined placement value of each ad, and
wherein a first ad having a greatest placement priority value after recalibrating the order of the ads is represented at a top of the heap data structure.
|
This application is a continuation application of U.S. patent application Ser. No. 09/978,170, which was filed on Oct. 15, 2001, entitled “Method and System for Pause Ads,” and claims priority under 35 U.S.C. §119(e) to both U.S. Provisional Application No. 60/240,715, filed Oct. 15, 2000, and entitled “Method and System for Dynamic Ad Placement,” and U.S. Provisional Application No. 60/240,714, filed Oct. 15, 2000, and entitled “Method and System for Pause Ads.” U.S. patent application Ser. No. 09/978,170, U.S. Provisional Application No. 60/240,715, and U.S. Provisional Application No. 60/240,714 are each incorporated by reference herein in their entirety.
The present invention relates generally to video data recorders and, more specifically, to a method and system for determining and playing ads in video data recorders.
Advertisers have long tried to make sure that the right people are watching their advertisements. Television advertisers spend large amounts of money trying to make sure their advertisements (“ads”) are aired during television shows having the proper demographics. Thus, television advertisers attempt to match the ad to the demographics of the audience for particular television programs, purchasing advertising slots for those television programs that they hope will attract the proper audience for their ads. Unfortunately, there is no way for the advertisers to know in real time whether people are watching their ads or whether the ads are reaching the targeted demographic groups. Similarly, there is no way for television advertisers to determine the viewing patterns of individual viewers or to target ads to individual viewers since the same ads are broadcast to everyone watching a particular program.
Advertisers on the Internet have been targeting their ads for several years. An Internet advertiser can currently register for an ad-serving service, which attempts to distribute the advertiser's ads to users who will be receptive to the ads. To view a web page on the Internet, a user enters the URL of the web page or clicks on a link to the web page. The web page itself is fetched from the appropriate web server, and an ad is fetched from the ad service. The ad service attempts to determine which ad to send to the user based on which web page the user has requested and on various other factors known about the user (such as, for example, information about the user gleaned from cookies or from user registration procedures). Because the ad service is located on the server side, the ad service generally relies on one-size-fits-all rules to determine which ads to display for a particular page request. Because the ad selection process is centrally located, performance requirements often necessitate a simplification of the logic used to select an ad.
In addition, an Internet ad service is “coupled” to the user request. An Internet ad server bases the ad it serves, at least partly, on the URL of the requested web page. It is also important to note that the Internet ad server needs to send an ad to the user as quickly as possible, because the user is expecting to receive the requested web page (along with any other third party content, such as ads) as soon as possible. The fact that the typical Internet ad server is time-constrained makes it more difficult for the ad server to perform elaborate methods to determine which ads to send. Overcoming this problem typically requires the use of very high-end computers to serve the ads.
Ultimately, Internet ad serving solutions are request-based. That is, an ad is served from the central server in response to a request. Because many requests are fulfilled in parallel, ads for competing products may be served for each of the separate requests. White in theory the server could track ads being served to each client and eliminate the serving of two competing ads to the same client, the centralized ad serving environment, with millions of users and with ad serving distributed over many actual servers, makes this extremely difficult.
Moreover, an Internet ad server needs to be in substantially constant communication with the Internet, since ad requests are received constantly. Such a system was not designed to work in situations where the ad-receiving client is only intermittently connected to the Internet.
What is needed is a way to deliver ads to receptive audiences where there is ample time to determine who might be the best target for each particular ad and where the decision is sensitive to the context in which the ad request was made. In addition, it is desirable to be able to place ads extremely quickly for each individual user. Lastly, it is desirable to locate opportunities to insert additional ad content to the video playback.
The described embodiments of the present invention display an ad or similar video picture during a pause interval that occurs when the user places the video replay device in a pause mode. The pause ad (or other video) can be a still or a moving picture. One embodiment displays an advertisement (either a still or a moving picture). One embodiment displays a user-selected ad or wallpaper design (such as family photos or video movies).
The process of determining which ad to display is called the ad selection process. The described embodiments decouple the ad selection process from the request for ad content. It should be understood that the invention can be employed in a variety of devices, such as video data recorders and set-top boxes, where the device is not in continuous communication with an initial ad source.
The context in which the described embodiment operates is an individual user's video replay system, although the invention is not intended to be limited to video replay systems. In a video replay system, a user selects program content by replaying previously “taped” content from a hard drive or similar storage medium or by turning on his television (or other content source) and selecting a program or show to watch. In the latter case, the selected program content is received by the replay system; it is first stored on the storage medium and then displayed on a display device such as a television set or monitor. A dynamic ad placement engine of a preferred embodiment preferably operates within the video replay system and needs to select ads only for a single video replay system. The ad placement engine in a particular video replay system always selects ad content for that video replay system and does not have to spend time trying to determine the identity and preferences of every possible viewer of the content since only a very small subset of viewers watch content on a particular video replay system.
In the described embodiment, the device containing the dynamic ad placement engine is not necessarily always in communication with an initial source of ads. For example, an ad source might communicate with a video replay system periodically, such as once a day or several times a week, either at a set time or in response to an instruction or query, to obtain information about ads that may be displayed on the device.
Additionally, in the described embodiment, a dynamic ad placement engine knows about the current context of the system before an ad request is received. In the described embodiment, the ad selection process is “decoupled” from the ad content delivery process. Various software applications in the video replay system can determine at which times and under to which circumstances they desire to display ads. The applications do not necessarily rely on whether the user has changed the content being viewed to determine when to request and display ads. This system is CPU-efficient and allows ads to be evaluated “at leisure” before they are served.
The described embodiments of the present invention do not select ads for placement at the time that the user selects his viewing content. Instead, the described embodiment of the present invention allows the user to select content as a separate function. Ad selection is not performed at the time of user content selection, but instead, is asynchronous to the user's actions in selecting programming to watch. Thus, the ad selection engine gains evaluation time to make a more informed decision about which ad should be displayed next by the video replay system.
Embodiments of the present invention are now described with reference to the figures where like reference numbers indicate identical or functionally similar elements.
The described embodiment contains a dynamic ad placement engine as one component in an advertising system. The described advertising system is preferably located in a device, such as a video replay system, (for example, a video replay system sold by ReplayTV, Inc. of Mountain View, Calif.), although the present invention can be used with other devices, including other video replay systems, including but not limited to interactive TV, set-top applications and devices, and handheld video players.
1. Example Video Replay System
The client-side video replay system 104 receives control information 128, such as ads and program guides, from a server and sends control information 129, such as ad impressions and accounting information, to the server. It should be understood that the system can receive various types of programming, including but not limited to cable content, television content, high definition TV content, digital TV content, pay per view content, and content broadcast over the Internet. It should also be understood that display device 106 can be any appropriate type of display device, including but not limited to a digital or analog television set, an Internet appliance, a cellular device, or a wireless device. The video replay unit and the display device may be separate (as shown), integrated together, or broken into even more functional units than shown.
It will be understood that one implementation of the video replay system uses a telephone line to implement one or more of control lines 128/129. The information is passed to and from the client side 104 on a regular basis (such as every 24 hours). Thus, the system downloads ads from the server relatively infrequently. In the described embodiment, the system receives information over a telephone line and receives daily all the ads it is going to place for the next 24 hours. Other implementations use an Internet connection as control lines 128/129 and connect regularly or on a more frequent basis.
2. Client-Side Video Replay System
a. Ad Placement Engine
The primary responsibility of an ad placement engine in accordance with the described embodiments is evaluation, placement, and logging of advertising placement on its individual video replay system. In a described embodiment, a software application requests an ad (or indicates the existence of an ad opportunity). These ads may be, for example, ads displayed during a user-initiated pause in the displayed video stream. Other types of ads include main ads to be placed in a main menu of the video player and ads to be placed in banners or in areas of the display reserved for ads. The described embodiments of the present invention can be used in any client side element with any software application that places ads in an appropriate location and circumstance.
The described embodiments decide which ads to place based on factors such as the context, history, user profile, and constraints specific to each ad. One example of user context might include the program currently being viewed by the user. It should be noted that the user may have been viewing this current program for any previous amount of time (hours, minutes, or seconds). In some implementations, ad placement may occur after a user's initial request for a video program or other content.
Server 102 includes an advertising section 120 that allows a user to create ad campaigns, perform ad management, and perform advertisement tracking (both placement and viewing tracking); an asset manager 122 that manages distribution of ads, tracking information, etc.; a program guide creation section 124, and one or more replay servers 126. Lineups 114 of programs to be broadcast in the future are sent to program creation guide 124, which creates program guide data 123 that is passed to the client side 104 via replay server 126. Asset manager 122 collects, tags, and creates scheduling rules for ads (digital assets 125). Digital assets 125 (such as ad content and ad rule sets) are passed to the client side 104 for display in accordance with the present invention. A broadcast schedule (such as scheduling rules) is passed to the client side 104 for use in electronic programming guide applications. As discussed below, some of the electronic programming guide data may also be used in guiding placement of ads. Information passed to client side 104 from replay server 102 is designated as reference numeral 128.
The client 104 includes the video capture engine 131, which passes captured programming content to asset manager 130. Asset manager 130 also passes tuning data to video capture engine 131, indicating when the user has, for example, changed the television or cable channel.
The client side 104 also includes an ad placement engine 132 that communicates with asset manager 130. Ad placement engine 132 is described in detail below. One or more applications 133 communicate with ad placement engine 132 to register ads. It will be understood that the described system is but one possible example of a video replay system incorporating the present invention.
When application 133 detects a viewing context change (or soon thereafter), it sends a context update 310 to ad placement engine 132. Ad placement engine 132 updates its context information as discussed below. (For example, the global parameter g_programtitle as shown in
As shown in
When a screen with an ad opportunity is to be displayed, application 133 requests 320 an ad from ad placement engine 132. In the described embodiment, an application might request an ad in several situations. For example, the user can choose to “pause” programming that he is currently viewing. Because the programming is “spooled” in video capture engine 131 (or was previously stored in video capture engine 131 and is now being replayed), the video capture engine 131 saves the incoming programming signal during the period that the display is “paused.” In the described embodiment, the pause function begins to display an ad for a predetermined period of time after the pause occurs. For example, the ad may be displayed 10 or 20 seconds after the display has been paused. In the described embodiment, the ad displayed in pause mode is generally a full-page ad (see
After an ad is selected, it is returned 322 to the application 133, where it is displayed.
In another embodiment, the application interjects ads into predetermined areas of the electronic programming guide (see, for example,
After an ad is successfully displayed, application 133 sends a request 330 to log placement of the ad.
Lastly, after the ad has been displayed, application 302 sends logging information 330 to ad placement engine 132 to inform ad placement engine 132 that the ad has been displayed. Ad placement engine 132 logs the logging information and eventually passes the logging information to server 102.
In this embodiment, ads maintain their own state (for example, through local parameters discussed below). Rules for an ad reference that ad's local state, as well as global context parameters, permitting some flexibility in the values returned by the rule.
When a new ad is loaded from server 102, executable ad placement software 302 loads the ad control file containing the rule set that describes the ad and stores it as a new rule set in rule sets 351 on the executable side. In certain embodiments, ads have a rule that determines the ad's expiration date. For each ad, executable ad placement software 302 evaluates the interpreted rules 304 to determine whether an older version of the loaded rule has expired 360. If the older version of the ad has expired, its rule set is removed from the system. In any case, the new rule set for the new ad is stored in rule sets 351. A status is returned 362 from the expiration request.
When a context change is received (or a trigger event occurs as described below), the placement and weight of the ads are reevaluated 370 in accordance with the placement and weight rules of the respective ads. A placement and weight result is returned 372 for each ad and the position of the ads in the heap are modified accordingly.
When an application indicates that it has placed an ad, a state update is sent to interpreted rules 304 so that the local parameters of the rule set for the ad can be updated. A status of the update is returned 382.
b. Example Ad Control File
As shown in
c. Ad Parameters
d. Data Structures
In the described embodiment, heap 350 is ordered according to the following formula for each ad:
Placement value*weight.
Thus, each ad has a placement value as defined by the ad's placement value rule. Some ads have weights, as defined by one or more weight rules. Whenever an ad is reevaluated, the ad's placement value is re-determined and multiplied by its weight(s), if any. This may result in ads being added to or deleted from heap. In the described embodiment, if an ad has a placement value of “0” it is moved to the bottom of the heap. Otherwise the ad is placed on the heap 350 in a location in accordance with its weighted placement value.
e. Flowcharts
f. Placement Rules
The following paragraph discusses the example placement rule exp_placement. Each ad in the system has an associated ad placement rule. This placement rule will be delivered to the client through the same mechanism that other ad-specific parameters are delivered. The rule is a Boolean construct, with the following syntax:
Expression:
Operand | Operand Binary-op Operand
Operand:
Number | String | NULL | Identifier | ″(″ Expression ″)″
String:
“ “ “ ASCII-characters “” “
Number:
Integer-constant | Floating-constant
NULL:
“N” “U” “L” “L”
Binary-op:
“+” | “−“ | “/” | “*” | “==” | “!=” | “<” | “>” | “>=” | “<=”
| “∥” | “&&”
An operand that references an undefined parameter evaluates to 0 or “ ”, depending on the context.
In the described embodiment, placement rules can determine the placement of an ad in accordance with one or more parameters relating to context (for example, program title); history (for example, number of total occurrences ever displayed on this system); user profile (for example, a viewer category number might be pushed to the device from a server or might be derived); and frequency (for example, time in epoch seconds of last ad placement).
Example Placement Rules:
/* viable if time has exceeded 968630400 (epoch seconds) */
exp_placement = g_time>=968630400
/* viable if time of day is between 79200 and 75540 seconds */
exp_placement = (79200<=g_tod)&&(g tod<=75540)
g. Ad Weighting
The evaluation of a placement rule for an ad is a value that is used by default to weight the placement of the ad among all other currently viable ads.
Note that this functionality could be embedded into the placement rule itself with no change in logic, but for the sake of clarity may be separated into separate weighting evaluation. This separation also models the fact that the “business rules” or placement logic may be defined in a separate phase of the ad sales process than the weighting. Weighting will most likely be defined as part of the trafficking or post-sales process.
Thus, the separation into two parameters allows the placement and weighting logic to be constructed during separate phases of the sales process.
Example Weighting Rules:
/* a constant weight throughout the life of the campaign */
exp_weight = 40
/* an increasing weight proportionate to time passed */
exp weight 40 + (((g time − 968630400)/2419200)*20)
h. Expiration Rules
In the described embodiment, expiration rules are evaluated at load time and before and after placement
The same namespace and syntax used for a placement rule can be used to implement an expiration rule. An expiration rule is evaluated whenever the ad list is rehashed and periodically during operation. An evaluation that yields non-zero indicates that the advertisement has expired. The expiration rule will be delivered as a parameter called “rule expiration.”
Example Expiration Rules:
/* ad is expired if occurrences exceeds 50 or a time is passed */
exp_expired = ((l_occs>=50)∥(g time>=969580800))
i. State Update Rules
Every ad will store a limited number of local parameters that are used in the evaluation of the ad's placement, weighting, and expiration rules. Following placement of an ad, any of these parameters can be updated according to a set of state update rules. The syntax for these rules is:
Assignment-list:
Assignment-statement
Assignment-list
Assignment-statement: Identifier “=” Expression “;”
Note: Expression is defined as above in the Placement Rules section.
The state update rule is evaluated once following each successful placement of the ad. Other embodiments implement several state update mechanisms, including one for successful placement, one for failed placement, etc.
Example state update rules:
/* bump local count of occurrences */
stmt_winner_update = l_occs=l_occs+1;
/* set time and occurrence count of placement */
stmt_winner update = l_last time=g_time;l_last occ=g_occs
j. Round-Robin Placement with Priority
In the described embodiments, an order of priority rotates through ads in round-robin fashion. An ad's position in rotation should be preserved through reboots. Deletion, substitution, or addition of an ad does not reset its position in the rotation. As described above, this order of rotation is currently implemented using the weight2 parameter which forces an ad to the bottom of the heap 350 after the ad is placed.
k. Other Rules in the Example
The following paragraphs discuss other rules in the example of
Ad_id 502: an identifying number for this ad.
Ad_rev 504: a revision number for this ad. This parameter allows an ad to expire if other ads with the same name have a higher ad_rev value.
Ad_type 506: This specifies a type of ad request for which this ad will be placed. For example, this ad will only be placed when an application requests a “pause” ad. In the described embodiment, pause ads are of a size to fill the entire screen (in contrast to banner ads, which are smaller). Other types include banner ads and ads appearing on a zone page, next to a type of programming zone.
Ad_pools 508: This specifies a type of programming for which the ad will be placed. For example, the value “9002” may indicate that the ad will be placed only for science fiction programming. Pools may also reflect geographic groups.
Ad_files 510: This specifies one or more “collateral” files needed to display the ad. For example, a collateral file may include a bitmap graphic needed to display the ad. Collateral files can also be broadcast separately from the ad control file.
Ad_triggers 512: as discussed above, the parameter TOD is a trigger for this ad. Any parameter can be a trigger.
Ad_genre 514: currently unused.
Exp_placement 516: placement rule for this ad. This ad is placed when the expression yields a value of true. It is evaluated whenever the context changes.
Exp_expired 518: expiration rule for this ad.
Exp-weight 520 and Exp weight2 522: The first weight is used to weight the placement value for this ad before the ad is placed in the heap. The second weight is used, in this embodiment, to force the ad to go to the bottom of the heap after it is displayed. This helps in aiding a round robin placement order.
Exp_winner 524: This string is passed to the application to tell it which file to display representing the ad.
Stmt winner update 526: This causes the specified local variables to be updated when the ad is popped off the stack.
Exp_winner log 528: This string gets written to the log when the ad is displayed.
Ad_preserve list 530: This indicates local parameters that are to be kept for this ad.
L_occs: L_last_time: L_last_occ 532: These are local parameters used for this ad.
3. Pause Ads
As described above, one type of ad that can be displayed is a pause ad. A pause ad is an advertisement (or similar video picture or movie) displayed during a pause interval, which occurs when the user places the video replay device in a pause mode. The pause ad (or other video) can be a still or a moving picture (such as a video clip). One embodiment displays an advertisement (either a still or a moving picture). One embodiment displays a user-selected ad or wallpaper design (such as family photos or video movies).
In some embodiments, the application requests an ad as soon as the user presses the pause button. In other embodiments the ad is requested a predetermined amount of time after the user presses the pause button. For example, the ad may be displayed 10 or 20 seconds after the display has been paused to give the user time to view the paused display. The amount of time before an ad is displayed can be user-definable. In a preferred embodiment, the ad displayed in pause mode is generally a full-page ad (see
A preferred embodiment includes an ad type representing user-supplied content. For example, the user may decide that he wants a candid photo from his last vacation to appear on the screen when the pause button is pressed. The user might also select a short moving video clip. In a preferred embodiment, these pictures or moving video clips are obtained from any appropriate source, such as the user's home computer (connected to the video replay unit directly or via a network such as the Internet) or from another user over a network such as the Internet. In such an embodiment, the video replay unit includes functionality to interface with the source of the video and to download the video and store it within the video replay unit. Alternately, the video could be stored externally to the video replay unit and retrieved when needed. The video replay unit could also interface with another video replay unit to allow users to exchange videos (moving or still) over a network such as the Internet.
The application then performs various functions depending on the next key pressed 1012. If the user indicates that the unit should display a channel guide, replay guide, or replay zone menu 1016, the ad is removed from the display. If the user selects an exit function 1018, the ad is removed from the display, although the video remains frozen and the audio remains muted 1020. In the described embodiment, the configurable delay value is changed to 60 seconds.
If the user indicates a stop function 1024, the application removes the ad and displays a stop bitmap. If the user indicates a play function or indicates pause for a second time (i.e., toggles the pause) 1028, 1030, the application removes the ad and resumes live or recorded playback 1032. If the user indicates a fast forward function 1034, the application removes the ad and renders the video frame by frame 1038 until another key is pressed 1040.
Steps 1042-1070 are similar to steps 1012-1040. Steps 1042-1070 are performed when a key is pressed before the pause ad has been displayed (i.e., when the configurable delay time of step 1008 has not yet timed out) and the user had indicated new functionality
In both steps 1040 and 1070, when a key has not been pressed, but a predetermined time period (such as 60 seconds) has elapsed, control returns to step 1004 and a new pause ad is obtained and displayed. Thus, in the described embodiment, the ads displayed during pause mode are changed periodically. Other embodiments may not change the pause ad. This would be desirable, for example, if the pause ad was a user-selected family photograph.
4. Example Method
A method of displaying an ad on a video replay system comprising: (i) determining that the video replay system should enter pause mode, (ii) obtaining an ad, and (iii) displaying the ad on a display of the video replay system during pause mode. Determining that the system should enter pause mode includes detecting that the user has pressed a pause button.
From the above descriptions, it will be apparent that the present invention disclosed herein provides a novel and advantageous method and system for assessing which ads to place on a client side video replay engine. The foregoing discussion discloses and describes merely exemplary methods and embodiments of the present invention. As will be understood by those familiar with the art, the invention may be embodied in other specific fauns without departing from the spirit or essential characteristics thereof. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims and equivalents.
Rosenberg, Scott A., Self, Matthew H.
Patent | Priority | Assignee | Title |
10728619, | Dec 31 2017 | PUCS, INC | Systems and methods for playback responsive advertisements and purchase transactions |
9538122, | Nov 01 2010 | DIGITAL BROADCASTING SOLUTIONS, LLC | System and method for time shifting at least a portion of a program |
Patent | Priority | Assignee | Title |
4588901, | Feb 14 1985 | Pentalux Corporation | Timer control for television |
5307173, | Dec 23 1988 | Rovi Guides, Inc | Apparatus and method using compressed codes for television program record scheduling |
5543743, | Jun 05 1995 | Adjustable reference signal delay device and method | |
5631743, | Jul 23 1993 | Sony Corporation | Broadcast reception method and apparatus which controls recording of a broadcast video signal and detects a changed reception channel without using extra memory |
5649181, | Apr 16 1993 | SYBASE, Inc. | Method and apparatus for indexing database columns with bit vectors |
5724420, | Sep 28 1994 | Wilmington Trust, National Association, as Administrative Agent | Automatic call distribution with answer machine detection apparatus and method |
5740549, | Jun 12 1995 | Meta Platforms, Inc | Information and advertising distribution system and method |
5754939, | Nov 29 1994 | Apple Inc | System for generation of user profiles for a system for customized electronic identification of desirable objects |
5758257, | Nov 29 1994 | Pinpoint Incorporated | System and method for scheduling broadcast of and access to video programs and other data using customer profiles |
5758258, | Aug 21 1995 | Microsoft Technology Licensing, LLC | Selective delivery of programming for interactive televideo system |
5848397, | Apr 19 1996 | JUNO ONLINE SERVICES, INC | Method and apparatus for scheduling the presentation of messages to computer users |
5850218, | Feb 19 1997 | Time Warner Cable Enterprises LLC | Inter-active program guide with default selection control |
5884141, | Aug 31 1994 | Sony Corporation | Near video-on-demand signal receiver |
5999689, | Nov 01 1996 | TeleVentions, LLC | Method and apparatus for controlling a videotape recorder in real-time to automatically identify and selectively skip segments of a television broadcast signal during recording of the television signal |
6039574, | Mar 11 1999 | Time monitoring portable game system | |
6108645, | Nov 26 1997 | International Business Machines Corporation | Method and apparatus for efficient profile matching in a large scale webcasting system |
6226444, | Sep 30 1997 | HANGER SOLUTIONS, LLC | Method and apparatus for recording program data without commercials |
6332127, | Jan 28 1999 | MEDIATEK INC | Systems, methods and computer program products for providing time and location specific advertising via the internet |
6452612, | Dec 18 1998 | ParkerVision, Inc | Real time video production system and method |
6483987, | Sep 30 1997 | HANGER SOLUTIONS, LLC | Method and apparatus for recording program data without commercials |
6698020, | Jun 15 1998 | Microsoft Technology Licensing, LLC | Techniques for intelligent video ad insertion |
7017173, | Mar 30 1999 | COX COMMUNICATIONS, INC | System enabling user access to secondary content associated with a primary content stream |
7117439, | Oct 19 2001 | Microsoft Technology Licensing, LLC | Advertising using a combination of video and banner advertisements |
7159231, | Aug 01 2001 | Cisco Technology, Inc. | Intermission content |
7225142, | Aug 01 1996 | TWITTER, INC | Interactive multimedia advertising and electronic commerce on a hypertext network |
7716700, | Nov 25 2002 | Time Warner Cable Enterprises LLC | Technique for delivering entertainment programming content including commercial content therein over a communications network |
8078493, | Oct 15 2000 | DIRECTV, LLC | Method and system for pause ads |
20010013009, | |||
20010049820, | |||
20020026457, | |||
20020072972, | |||
20020077900, | |||
20020083438, | |||
20020083439, | |||
20020090198, | |||
20020097235, | |||
20020100041, | |||
20020174438, | |||
20030037068, | |||
20030097659, | |||
20040233811, | |||
20050091682, | |||
20060256133, | |||
20070162951, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Dec 16 2001 | ROSENBERG, SCOTT A | SONIC BLUE INCORPORATED | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 027453 | /0745 | |
Dec 25 2001 | SELF, MATTHEW H | SONIC BLUE INCORPORATED | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 027453 | /0745 | |
Apr 24 2003 | SONIC BLUE INCORPORATED | Digital Networks North America, Inc | ASSET PURCHASE AGREEMENT | 027456 | /0454 | |
Apr 24 2003 | REPLAYTV, INC | Digital Networks North America, Inc | ASSET PURCHASE AGREEMENT | 027456 | /0454 | |
Dec 12 2007 | Digital Networks North America, Inc | The DIRECTV Group, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 027453 | /0950 | |
Nov 29 2011 | The DIRECTV Group, Inc. | (assignment on the face of the patent) | / | |||
Jul 28 2021 | The DIRECTV Group, Inc | DIRECTV, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 057018 | /0460 | |
Aug 02 2021 | DIRECTV, LLC | CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT | SECURITY AGREEMENT | 057695 | /0084 | |
Aug 02 2021 | DIRECTV, LLC | THE BANK OF NEW YORK MELLON TRUST COMPANY, N A AS COLLATERAL AGENT | SECURITY AGREEMENT | 058220 | /0531 |
Date | Maintenance Fee Events |
Dec 15 2017 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Feb 28 2022 | REM: Maintenance Fee Reminder Mailed. |
Aug 15 2022 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Jul 08 2017 | 4 years fee payment window open |
Jan 08 2018 | 6 months grace period start (w surcharge) |
Jul 08 2018 | patent expiry (for year 4) |
Jul 08 2020 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 08 2021 | 8 years fee payment window open |
Jan 08 2022 | 6 months grace period start (w surcharge) |
Jul 08 2022 | patent expiry (for year 8) |
Jul 08 2024 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 08 2025 | 12 years fee payment window open |
Jan 08 2026 | 6 months grace period start (w surcharge) |
Jul 08 2026 | patent expiry (for year 12) |
Jul 08 2028 | 2 years to revive unintentionally abandoned end. (for year 12) |