INTERSTITIAL ADVERTISING IN A GAMING ENVIRONMENT
A method of advertising within a game is provided in accordance with an exemplary embodiment. The method comprises identifying a frame of the game, wherein the frame is capable of receiving an advertisement. The identified frame can be presented to a player of the game before, during, or after game play. A time when the identified frame is presented to a player of the game is determined. The method further comprises rendering an advertisement over at least a portion of the frame at the determined time.
Latest Patents:
The subject of the disclosure relates generally to advertising within a gaming environment. More specifically, the disclosure relates to a method and computer-readable medium for in-game interstitial advertising which is implemented without modifying the game's source code.
BACKGROUNDGame developers have traditionally generated their revenue from game sales. However, in recent years, in-game advertising has been utilized to provide game developers with a secondary revenue stream. In-game advertising generally refers to inserting paid advertisements into a game such that the advertisements can be displayed to a player of the game. Traditionally, the advertisements are inserted into the game by incorporating a third party software development kit (SDK) or other code into the source code of the game. As such, the advertisements can be presented to the player as billboards within the game, as banners within the game, as trademarks placed on products which are used during the game, etc.
Because in-game advertisements are incorporated into the source code, advanced planning and programming is required during the game development phase to implement in-game advertising. For example, placing advertisements on billboards within a gaming environment requires programmers to set aside space for and/or create billboard surfaces within the source code. As a result, game programmers require more time to create the game. Unfortunately, this additional time spent developing the game pushes back the release date of the game and increases the overall cost of placing the game on the market. Incorporating advertisements into the source code also limits the ability of game developers to add advertisements to games which are already on the market. To place advertisements in released games, the game developers must hire programmers to rewrite the game's source code, re-package the game, and/or redistribute the game.
Thus, there is a need for an in-game advertising method which allows a game developer to insert advertisements into a game without advanced planning or modification of the game's source code. Further, there is a need for an in-game advertising method which allows a game developer to easily incorporate advertisements into a game which is already on the market.
SUMMARYA method of advertising within a game is provided in accordance with an exemplary embodiment. The method comprises identifying a frame of the game, wherein the frame is capable of receiving an advertisement. The identified frame can be presented to a player of the game before, during, or after game play. A time when the identified frame is presented to a player of the game is determined. The method further comprises rendering an advertisement over at least a portion of the frame at the determined time.
In another exemplary embodiment, a method of advertising within a game is provided. The method comprises identifying a frame of a game, wherein the frame is capable of receiving an advertisement. Requests from the game to a graphics library are monitored to identify a time when the game requests a graphical element which is associated with the frame. Advertisement display logic is used to render the advertisement on a surface which overlays at least a portion of the frame at the identified time.
A computer-readable medium having computer-readable instructions stored thereon that, upon execution by a processor, cause the processor to render an advertisement is also provided in accordance with an exemplary embodiment. The instructions include identifying a frame of a game, wherein the frame is capable of receiving an advertisement. A time is determined when the identified frame is presented to a player of the game. Further, an advertisement is rendered over at least a portion of the frame at the determined time.
Other principal features and advantages will become apparent to those skilled in the art upon review of the following drawings, the detailed description, and the appended claims.
Exemplary embodiments will hereafter be described with reference to the accompanying drawings.
In an exemplary embodiment, the receiving frame(s) can be frames which are non-intrusive such that an advertisement overlaid on the receiving frame(s) does not interrupt game play. For example, the receiving frame(s) can be one or more startup or introductory screens displayed to the player prior to commencement of actual game play. Alternatively, the receiving frame(s) can be one or more game selection screens, one or more pause screens, one or more loading screens, one or more transition screens in between game levels, one or more game over screens, etc. presented to the player during or after the game. In an alternative embodiment, the receiving frame(s) can be one or more screens presented to the player during actual game play.
The identified frame(s) can be identified by software, by hardware, by an individual, and/or by any other method known to those of skill in the art. For example, frame identifying hardware and/or software can be programmed to automatically identify non-intrusive frames, frames which are presented prior to non-intrusive frames, and/or frames which are presented subsequent to non-intrusive frames. The identified frames can be identified based on function calls from the game, frame timing, frame duration, results from an optical character recognition process run on the frame, results from a voice recognition process run on audio associated with the frame, actions performed by source code of the game, actions performed by an executable file of the game, or based on any other criteria known to those of skill in the art. Alternatively, an individual can watch various frames of the game and identify one or more frames which are not intrusive with respect to game play. The individual can do this by watching a player play the game, watching a computer play the game, watching a game demo, or by any other method known to those of skill in the art. In an exemplary embodiment, an individual observes a game being played and selects specific times during game play where an ad could be displayed without being overly intrusive. These candidate frames can also be identified based on goals related to delivering ads with a particular frequency. These candidate frames are then analyzed to determine whether they can be uniquely identified based on graphical elements present in the rendering of that frame. It is also possible that advertisement candidate frames can be identified in an automated fashion especially with the cooperation of game publishers. Alternatively, a game publisher adds a unique graphical element to interstitial advertisement candidate game frames. This graphical element is not necessarily visible to the user but would serve as a marker to the “watcher” that the frame is a candidate for ad delivery. At run-time, additional time or environment-based constraints may be used to determine whether an advertisement should be displayed in a particular frame. For example, these additional constraints may specify that the user not be shown an advertisement if they have seen more than X ads in the last Y minutes, or the operating environment on their machine does not meet specific criteria (e.g. CPU usage, RAM usage, network connectivity).
In an operation 105, a graphical element associated with each identified frame is identified. In an exemplary embodiment, the identified graphical element can be any element which is displayed on or otherwise associated with the frame. In another exemplary embodiment, the identified graphical element can be a graphical element which is in some way uniquely associated with one or more identified frames. The identified graphical element can be used to help determine when the identified frame is displayed such that an advertisement can be rendered over the receiving frame(s). The graphical element can be included in a graphics library of an operating system or a graphics library which is otherwise associated with the game. Alternatively, the graphical element can refer to any audio, text, symbol, character, function, etc. which is associated with the frame. In an alternative embodiment, other events can be used to identify specific points in game play such as sound effects, changes in user input patterns, disk activity, memory usage. In an exemplary embodiment, a single graphical element can be identified for each identified frame. Alternatively, a plurality of graphical elements can be identified for any of the identified frames. In another alternative embodiment, one or more graphical elements which are common to a plurality of the identified frames can be identified.
The graphical element can be identified by software, by hardware, by an individual, and/or by any other method known to those of skill in the art. For example, graphical element identifying hardware and/or software can be programmed to automatically identify the graphical element based on uniqueness of the graphical element relative to the identified frame, position of the graphical element within the identified frame, size of the graphical element within the identified frame, or based on any other criteria known to those of skill in the art. Alternatively, an individual can examine frames which are presented to a player of the game before, during, or after the game to manually identify graphical elements which are in some way unique to one or more identified frames. The individual can do this by watching the player play the game, watching a computer play the game, watching a game demo, or by any other method known to those of skill in the art. An exemplary embodiment combines an individual's expertise with custom tools to identify the specific graphical elements that uniquely identify an interstitial ad candidate frame. The tools are responsible for extracting the individual graphical elements from each frame of the game. The user observes the game play and can provide input to mark specific frames and/or graphical elements that they believe uniquely identify the interstitial ad candidate frames.
In an operation 110, a game monitor is used to determine a time when the game requests the identified graphical element. The game monitor can be any software and/or hardware which is capable of monitoring communication between the game and a graphics library associated with the game. In an exemplary embodiment, the game monitor can intercept and inspect all calls made from the game to the graphics library to determine when the game calls for the identified graphical element. The game monitor can also forward the intercepted calls to the graphics library. Because the identified graphical element is associated with an identified frame, the game monitor can use the calls to determine the time when the identified frame is being displayed. In another exemplary embodiment, the game monitor can be linked to an executable file of the game such that the executable file automatically loads the game monitor. The executable file of the game (identified on computers running the Windows operating system by an “.exe” file extension) is the output that is produced when the source code for the game is compiled and linked. That is, it is the ultimate realization of all the logic embodied in the source code in a form that can be executed on a specific computer running a specific operating system. The process of compiling the source code into an executable file is a one-way operation. That is, one cannot reliably reverse engineer the source code from the binary executable representation of that source code. In the exemplary embodiment, the game monitor is “linked” to an executable file. The linking can be accomplished by altering the binary executable in a subtle way such that when the executable is run by the user, it will as its first action, cause the game monitor library to be loaded into the game process. Alternatively, the game monitor can be linked to the graphics library such that the game monitor can monitor graphical element requests received by the graphical library and/or graphical elements provided by the graphical library. It is also possible to “inject” the game monitor into a running game process, however many digital rights management (DRM) and/or copy protection solutions present in commercially distributed games cause a game to fail if a dynamic link library (DLL) is injected into a running game process. There are a handful of different techniques that can result in a DLL being injected into a running process. For the reasons related to DRM interference and other security implications of the “injection” technique, the exemplary embodiment uses the static linking with the executable file over run-time injection. In one embodiment, the game monitor can also include a set of instructions which allow the game monitor to identify the frame(s) and/or the graphical element(s).
In an operation 115, the game can be suspended such that the advertisement can be rendered over the receiving frame(s) while the game is not executing. For example, a “game over” frame can be an identified frame and the game can be suspended when the “game over” frame is presented such that advertisement display logic can render the advertisement over the single game over frame. As such, the identified frame and the receiving frame are one and the same. Alternatively, the identified frame can be a frame which is presented prior to the game over frame such that presentation of the identified frame can alert the advertisement display logic that the game over frame is about to be presented. As such, the identified frame and the receiving frame can be distinct frames. The game can be suspended for an advertisement duration of any length. In an exemplary embodiment, suspension of the game can be similar to or the same as temporarily pausing the game. Suspension of the game can be implemented by causing a standard game pause function to be executed, by overriding an executable file of the game to temporarily stop game execution, or by any other method known to those of skill in the art. The game can be suspended by the game monitor, advertisement display logic, or any other software or hardware capable of suspending the game. More specifically, the game can be effectively suspended by blocking the execution of the game's user-interface thread while having the advertisement display logic run on a separate thread. This approach results in the game user interface remaining frozen while the advertisement is displayed. An alternative embodiment allows the game's user-interface thread to continue its execution while placing “hooks” in place to capture all user input actions whether they be from the keyboard, mouse, joystick or other input device. This results in the game's user interface remaining active, but the user's interaction with it is suspended while the advertisement is displayed.
In an alternative embodiment, the game may not be suspended, and the advertisement can be rendered over one or more receiving frames while the game is executing. For example, a first identified frame can be a first loading frame within a sequence of loading frames and a second identified frame can be a last loading frame within the sequence of loading frames. Each loading frame within the sequence of loading frames can include a load progress indicator such that the player can gauge the length of time before game play commences or resumes. Presentation of the first identified frame (i.e., the first loading frame) can trigger advertisement display logic to render an advertisement and presentation of the second identified frame (i.e., the last loading frame) can trigger the advertisement display logic to remove the advertisement. The first loading frame and/or the last loading frame may or may not be receiving frames depending on the embodiment. A second loading frame, a third loading frame, a fourth loading frame, etc. in between the first loading frame and the last loading frame can be receiving frames such that the advertisement can be continuously rendered over the sequence of loading frames. In an exemplary embodiment, the second loading frame, the third loading frame, the fourth loading frame, etc. are not identified frames because they are not needed to trigger a commencement or termination of advertisement rendering. Alternatively, each loading frame within the sequence of loading frames can be an identified frame. In another alternative embodiment, the first identified frame can be a frame which is presented prior to the first loading frame and/or the second identified frame can be a frame which is presented subsequent to the last loading frame.
In an operation 120, advertisement display logic is used to render an advertisement over at least a portion of a receiving frame. As described above, the receiving frame can be an identified frame and/or any frame which is presented to the player of the game before or after an identified frame is presented to the player of the game. The advertisement display logic can be any logic capable of rendering the advertisement at or after the time determined by the game monitor. In an exemplary embodiment, the advertisement display logic can include the advertisement. Alternatively, the advertisement display logic can obtain the advertisement from an external source such as an advertisement database. The advertisements come both from a local advertisement database on the user's machine as well as from a remote server. Advertisements may be served from the local database regardless of whether the user's computer is connected to a network at the time the ad is delivered. The local advertisement database may interact with the remote ad server opportunistically when a network connection is present to communicate data regarding ads served while the user engaged in game play while offline, and also to update the advertisements available in the local ad database. It is also possible that when the user is online while playing a game that advertisements will be served directly from the remote server. In an exemplary embodiment, the advertisement display logic can be linked to an executable file of the game such that the executable file automatically loads the advertisement display logic. Alternatively, the advertisement display logic can be linked to or incorporated within the game monitor.
In an exemplary embodiment, the advertisement display logic can render the advertisement on a surface such that the advertisement overlays at least a portion of the receiving frame. The advertisement display logic can render the advertisement in the center of the receiving frame, on a side of the receiving frame, at the top of the receiving frame, at the bottom of the receiving frame, or at any other location(s) relative to the receiving frame. Alternatively, the advertisement can cover the entire receiving frame. The advertisement can be an interstitial video advertisement, stationary text advertisement, scrolling text advertisement, or any other type of advertisement known to those of skill in the art. Alternatively, the advertisement can be an audio only advertisement. As a result, advertisements can be provided in any game without requiring any advanced planning or alteration of the game's source code.
In one embodiment, a distinct advertisement can be rendered for each receiving frame. For example, a first advertisement can be rendered over a receiving startup frame, a second advertisement can be rendered over a receiving game pause frame, a third advertisement can be rendered over a receiving game over frame, etc. Alternatively, the same advertisement can be rendered for all of the receiving frames. In another alternative embodiment, an advertisement can be randomly selected from a pool of advertisements for rendering on any given receiving frame or frames.
In an exemplary embodiment, a player of the game can be prevented from removing the advertisement during the advertisement duration during which the advertisement is presented. In another exemplary embodiment, the player can be prevented from taking any actions within the game during the advertisement duration. The primary mechanism for taking control away from the user is to install “hooks” that capture all the user input before they are processed by any other process on the system. In this fashion, keystrokes, mouse clicks and other user actions that would otherwise close the advertisement display, switch to another window, kill processes, etc. can be intercepted and either ignored, processed or passed on as desired. Alternatively, the player can be allowed to exit or turn off the game during the advertisement duration. In another alternative embodiment, the player may be allowed to remove the advertisement. For example, if the advertisement is rendered over a pause screen which is initiated by the player, the advertisement can be removed when the player un-pauses the game to resume game play. In an operation 125, the advertisement is removed and the suspension of the game is ended. The player can also resume full control over the game. In an exemplary embodiment, the advertisement can be removed after the expiration of the advertisement duration. Alternatively, the advertisement can be removed when an identified frame which triggers removal of the advertisement is presented. The surface and the advertisement can be removed by the advertisement display logic or any other hardware and/or software capable of removing the advertisement.
The game monitor can also identify the skull and crossbones 210 or any portion of the skull and crossbones image 210 as a graphical element associated with the receiving frame 205. The skull and crossbones 210 can be identified based on instructions included in the game monitor. For example, the game monitor can include instructions to identify a graphical element which is only displayed in an identified frame. Thus, the skull and crossbones image 210 can be the identified graphical element if the skull and crossbones image 210 is not displayed on any other frames within the game, or if the skull and crossbones image 210 is displayed only on the receiving frame 205 and one or more additional identified frames. Alternatively, the game monitor can include instructions to identify a graphical element which is uniquely positioned on an identified frame. Thus, if the skull and crossbones image 210 is positioned in the center of the receiving frame 205 and not in the center of any other frame within the game, the skull and crossbones image 210 can be the identified graphical element for the receiving frame 205 regardless of whether the skull and crossbones image 210 is presented at the top, bottom, sides, etc. of other frames. Alternatively, the game monitor can include instructions to identify a graphical element based on a unique size of the graphical element. Thus, the skull and crossbones image 210 can be the identified graphical element for the receiving frame 205 as long as a skull and crossbones of the same size is not presented in any other frame. Alternatively, the game monitor can include any other instructions or combination of instructions which allow the game monitor to identify the skull and crossbones image 210 as the graphical element associated with the frame.
In an alternative embodiment, the skull and crossbones image 210 may not be an identified graphical element. For example, the text ‘game over’ can be an identified graphical element. Alternatively, a game over song, other text, other graphical elements, and/or any other information associated with the receiving frame 205 can be an identified graphical element. In another alternative embodiment, an individual can manually identify the graphical element. Alternatively, graphical element identifying software and/or graphical element identifying hardware can be used to identify the graphical element associated with the receiving frame 205. In another alternative embodiment, the identified graphical element may be associated with an identified frame which is presented to the player of the game prior to presentation of the receiving frame 205.
As described with reference to
The advertisement display logic can render the advertisement 200 by presenting the advertisement 200 on a surface 215 which overlays the receiving frame 205. The advertisement 200 can be any type of advertisement known to those of skill in the art. In an exemplary embodiment, the surface 215 can be stationary relative to the receiving frame 205. However, in alternative embodiments, the surface 215 can constantly or intermittently move relative to the receiving frame 205. For example, the advertisement 200 can be rendered in a first location within the receiving frame 205 for three seconds, a second location within the receiving frame 205 for three seconds, a third location within the receiving frame 205 for five seconds, etc. The advertisement 200 can be displayed for an advertisement duration which can be the length of time which the receiving frame 205 is normally displayed by the game, thirty seconds, sixty seconds, or any other length of time. Once the advertisement duration expires, the advertisement display logic can remove the advertisement 200 and the surface 215.
One or more flow diagrams have been used herein to describe exemplary embodiments. The use of flow diagrams is not meant to be limiting with respect to the order of operations performed. In addition, for the purposes of this disclosure and unless otherwise specified, “a” or “an” can mean “one or more.” Any patents, applications, references and publications cited herein are incorporated by reference in their entirety to the same extent as if they were individually incorporated by reference.
The foregoing description of exemplary embodiments has been presented for purposes of illustration and of description. It is not intended to be exhaustive or limiting with respect to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of the disclosed embodiments. It is intended that the scope of the invention be defined by the claims appended hereto and their equivalents.
Claims
1. A method of advertising within a game, the method comprising:
- identifying a frame of a game;
- determining a time when the identified frame is presented to a player of the game; and
- rendering, based on the determined time, an advertisement over at least a portion of a first receiving frame of the game, wherein the first receiving frame is presented to the player of the game.
2. The method of claim 1, wherein the first receiving frame is the identified frame.
3. The method of claim 1, wherein the first receiving frame is presented to the player of the game after the identified frame is presented to the player of the game such that the advertisement is rendered after the determined time.
4. The method of claim 1, further comprising also rendering the advertisement over at least a portion of a second receiving frame of the game, wherein the second receiving frame is presented to the player of the game after the first receiving frame is presented to the player of the game.
5. The method of claim 1, further comprising suspending the game for an advertisement duration during which the advertisement is rendered over at least the portion of the first receiving frame.
6. The method of claim 5, further comprising preventing the player from removing the advertisement during the advertisement duration.
7. The method of claim 1, further comprising identifying a graphical element associated with the identified frame.
8. The method of claim 7, wherein determining the time comprises determining when the game requests the graphical element associated with the identified frame.
9. The method of claim 8, wherein the game requests the graphical element from a graphics library.
10. The method of claim 1, further comprising providing a game monitor which is capable of determining when the game requests a graphical element associated with the identified frame.
11. The method of claim 1, wherein the first receiving frame is a startup frame which is presented prior to game play.
12. The method of claim 1, wherein the first receiving frame is a game over frame which is presented after the game is over.
13. The method of claim 1, wherein the first receiving frame is presented during game play.
14. The method of claim 1, further comprising:
- identifying a second frame of the game;
- determining a second time when the second identified frame is presented to the player of the game; and
- removing the advertisement based on the second time.
15. The method of claim 14, wherein the advertisement is removed prior to the second time.
16. The method of claim 14, wherein the advertisement is removed at the second time.
17. The method of claim 14, wherein the advertisement is removed subsequent to the second time.
18. A method of advertising within a game, the method comprising:
- identifying a frame of a game;
- monitoring requests from the game to a graphics library to identify a time when the game requests a graphical element which is associated with the identified frame; and
- rendering, using advertisement display logic and the identified time, the advertisement on a surface which overlays at least a portion of a first receiving frame.
19. The method of claim 18, wherein the first receiving frame is the identified frame.
20. The method of claim 18, wherein the first receiving frame is presented to a player of the game after the identified frame is presented to the player of the game such that the advertisement is rendered after the identified time.
21. The method of claim 18, further comprising also rendering the advertisement over at least a portion of a second receiving frame of the game, wherein the second receiving frame is presented to the player of the game after the first receiving frame is presented to the player of the game.
22. The method of claim 18, wherein the requests from the game to the graphics library are monitored by a game monitor.
23. The method of claim 22, wherein the game monitor is loaded by an executable file of the game.
24. The method of claim 18, wherein the advertisement display logic is loaded by an executable file of the game.
25. The method of claim 18, further comprising suspending the game for an advertisement duration during which the advertisement is rendered over the first receiving frame.
26. The method of claim 25, further comprising preventing a player of the game from removing the advertisement during the advertisement duration.
27. A computer-readable medium having computer-readable instructions stored thereon that, upon execution by a processor, cause the processor to render an advertisement, the instructions comprising:
- identifying a frame of a game;
- determining a time when the identified frame is presented to a player of the game; and
- rendering, based on the determined time, an advertisement over at least a portion of a first receiving frame.
28. The computer-readable medium of claim 27, wherein determining the time comprises identifying a request from the game to a graphics library for a graphical element associated with the identified frame.
29. The computer-readable medium of claim 28, wherein the graphics library is an operating system graphics library.
30. The computer-readable medium of claim 27, wherein the advertisement is rendered by advertisement display logic which is loaded by an executable file of the game.
Type: Application
Filed: Feb 23, 2007
Publication Date: Aug 28, 2008
Applicant:
Inventors: Kelly Slough (Northampton, MA), Steven Woods (Los Altos Hills, CA)
Application Number: 11/678,253
International Classification: A63F 9/24 (20060101);