Not applicable.
Embodiments of the present invention provide computer-readable media, systems, and methods for integrating encapsulated advertisement controls. In embodiments, one or more embedding instructions are received for embedding one or more encapsulated advertisement controls within an application. The one or more encapsulated advertisement controls include logic for handling of one or more advertisements and presentation of the advertisements to a user of the application. Also, one or more configuration instructions are received for configuring the one or more encapsulated advertisement controls. Further, in embodiments, one or more advertisements are presented to the user in accordance with one or more presentation parameters.
It should be noted that this Summary is provided to generally introduce the reader to one or more select concepts described below in the Detailed Description in a simplified form. The Summary is not intended to identify key and/or required features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Illustrative embodiments of the present invention are described in detail below with reference to the attached drawing figures, which are incorporated by reference herein and wherein:
The subject matter of the present invention is described with specificity herein to meet statutory requirements. However, the description itself is not intended to limit the scope of the patent. Rather, the inventors have contemplated that the claimed subject matter might also be embodied in other ways, to include different steps or combinations of steps similar to the ones described in this document, in conjunction with other present or future technologies. Moreover, although the terms “step” and/or “block” may be used herein to connote different elements of methods employed, the terms should not be interpreted as implying any particular order among or between various stems herein disclosed unless and except when the order of the individual steps is explicitly described.
Embodiments of the present invention provide computer-readable media, systems, and methods for integrating encapsulated advertisement controls. In various embodiments, one or more embedding instructions are received for embedding one or more encapsulated advertisement controls within an application, the one or more encapsulated advertisement controls including logic for handling of one or more advertisements and presentation of the advertisements to a user of the application, and one or more configuration instructions are received for configuring the one or more advertisement controls. Further, in various embodiments, one or more advertisements are presented to the user in accordance with the one or more presentation parameters. As used herein, the phrase “development environment” is intended to include various types of software development tools. For instance, in various embodiments the development environment may be directed to an integrated development environment. As used herein, the integrated development environment may include a source code editor, a compiler, and a debugger. Additionally, in various embodiments, the integrated development environment may include various data structures for use in object oriented development. In various embodiments the integrated development environment may be graphical. And, in various other embodiments, the integrated development environment may be text-based. Still further, as used herein, the phrase “development environment” may include other types of software development environments such as command-line development and software development kits (SDKs). Each of these contexts is contemplated and within the scope of “development environment” as used in connection with the present invention.
The term “application” is used herein to describe various software applications. The term is intended to be defined broadly and, thus, includes, but is not limited to, thick client applications, thin client applications, web-based applications, websites, and device applications. Each of these is contemplated and within the scope of “application” as used in connection with the present invention.
Accordingly, in one aspect, the present invention is directed to one or more computer-readable media having computer-usable instructions embodied thereon for performing a method for integrating advertisements using encapsulated advertisement controls. The method includes receiving one or more embedding instructions for embedding one or more encapsulated advertisement controls within an application, the one or more encapsulated advertisement controls including logic for handling of one or more advertisements and presentation of the advertisements to a user of the application, and receiving one or more configuration instructions from for configuring the one or more encapsulated advertisement controls. Further, the method includes presenting one or more advertisements to the user in accordance with the one or more advertisement presentation parameters.
In another aspect, the present invention is directed to one or more computer-readable media having computer-usable instructions embodied thereon for performing a method for integrating advertisements using encapsulated advertisement controls. The method includes receiving a request for one or more advertisement presentation parameters from an advertisement control coordinator associated with one or more encapsulated advertisement controls, the one or more encapsulated advertisement controls configured to be embedded within an application utilizing a development environment and the encapsulated advertisement control including logic for handling of one or more advertisements and presentation of the advertisements to a user of the application. The method further includes communicating the one or more advertisement presentation parameters to the advertisement control coordinator, receiving a request for one or more advertisements from the advertisement control coordinator, and communicating the one or more advertisements to the advertisement control coordinator.
In yet another aspect, the present invention is directed to a computerized system for integrating advertisements using encapsulated advertisement controls. The system includes one or more advertisement control components configured to be embedded within an application utilizing a development environment and further configured to handle one or more advertisements and to manage presentation of the advertisements to a user of the application. The system also includes a control coordinating component configured to manage one or more advertisement control components. Further, the system includes a database for storing information associated with the encapsulated advertisement controls.
Having briefly described an overview of embodiments of the present invention, an exemplary operating environment is described below.
Referring to the drawing figures in general, and initially to
Embodiments of the present invention may be described in the general context of computer code or machine-usable instructions, including computer-executable instructions such as program modules, being executed by a computer or other machine, such as a personal data assistant or other handheld device. The phrase “computer-usable instructions” may be used herein to include the computer code and machine-usable instructions. Generally, program modules including routines, programs, objects, components, data structures, and the like, refer to code that performs particular tasks or implements particular abstract data types. Embodiments of the invention may be practiced in a variety of system configurations, including, but not limited to, hand-held devices, consumer electronics, general purpose computers, specialty computing devices, and the like. Embodiments of the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in association with both local and remote computer storage media including memory storage devices. The computer useable instructions form an interface to allow a computer to react according to a source of input. The instructions cooperate with other code segments to initiate a variety of tasks in response to data received in conjunction with the source of the received data.
Computing device 100 includes a bus 110 that directly or indirectly couples the following elements: memory 112, one or more processors 114, one or more presentation components 116, input/output (I/O) ports 118, I/O components 120, and an illustrative power supply 122. Bus 110 represents what may be one or more busses (such as an address bus, data bus, or combination thereof). Although the various blocks of
Computing device 100 typically includes a variety of computer-readable media. By way of example, and not limitation, computer-readable media may comprise Random Access Memory (RAM); Read Only Memory (ROM); Electronically Erasable Programmable Read Only Memory (EEPROM); flash memory or other memory technologies; CDROM, digital versatile disks (DVD) or other optical or holographic media; magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to encode desired information and be accessed by computing device 100.
Memory 112 includes computer storage media in the form of volatile and/or nonvolatile memory. The memory may be removable, nonremovable, or a combination thereof. Exemplary hardware devices include solid state memory, hard drives, optical disc drives, and the like. Computing device 100 includes one or more processors that read from various entities such as memory 112 or I/O components 120. Presentation component(s) 116 present data indications to a user or other device. Exemplary presentation components include a display device, speaker, printing component, vibrating component, and the like.
I/O ports 118 allow computing device 100 to be logically coupled to other devices including I/O components 120, some of which may be built in. Illustrative components include a microphone, joystick, game pad, satellite dish, scanner, printer, wireless device, etc.
Turning now to
Database 202 is configured to store information associated with encapsulated advertisement controls. In various embodiments, without limitation, such information may include video advertisements, audio advertisements, multimedia advertisements, appearance properties, business rules for advertisement rotation and event tracking, and various other types of configurable encapsulated advertisement control information. In various embodiments, database 202 is configured to be searchable so that encapsulated advertisement system 204, configuration server 206, and/or advertisement server 208 may retrieve encapsulated advertisement control information. Database 202 may be configurable and may include various information relevant to encapsulated advertisement controls. The content and/or volume of such information are not intended to limit the scope of embodiments of the present invention in any way. Further, although illustrated as a single, independent component, database 202 may, in fact, be a plurality of databases, for instance, a database cluster, portions of which may reside on a computing device associated with configuration server 206 and/or advertisement server 208, associated with encapsulated advertisement system 204, on another external computing device, or any combination thereof. Still further, although illustrated as independent from encapsulated advertisement system 204, in various embodiments, the entirety of database 202 may reside on a computing device associated with encapsulated advertisement system 204.
Encapsulated advertisement system 204 may be associated with a type of computing device, such as computing device 100 described with reference to
Before engaging in a discussion of the details of the various components included within encapsulated advertisement system 204, an exemplary overview discussion will be presented to help illustrate the overall functionality of system 204 in various embodiments. Accordingly, in embodiments, once the encapsulated advertisement controls have been embedded by a software developer into an application, various advertisement functionality is available to the application. While in the development environment, the software developer may also provide one or more configuration instructions to the encapsulated advertisement control defining the appearance of the encapsulated advertisement control within the application (size, shape, location, etc.). As previously stated, the encapsulated advertisement controls allow the software developer to include the sophisticated functionality associated with the advertisement controls without requiring extensive coding on the part of the software developer. The encapsulated advertisement controls provide the software developer with a new and useful tool because without encapsulated advertisement controls the developer must engage in extensive programming to provide a foundation for various advertisement functionality. Specifically, without encapsulated advertisement controls, a software developer must include advertisement-specific logic that enables an application to request an advertisement from an advertisement server, render the advertisement, monitor user interaction, and track presentation to determine advertisement rotation. Thus, the software developer is forced to expend extensive resources on development of the underlying advertisement functionality instead of focusing resources on the application development. Encapsulated advertisement controls integrated within a development environment relieve a software developer of this burden because the encapsulated advertisement controls already include the logic for presentation and handling of advertisements. Therefore, using encapsulated advertisement controls, a software developer may shift the resources presently expended on advertisement functionality, instead focusing those resources on application development.
The advertisement logic included within encapsulated advertisement controls is directed toward various advertisement functionality. For instance, in embodiments, the encapsulated advertisement control is capable of obtaining advertisement presentation parameters from a configuration server, such as configuration server 206, at run-time of the application. As discussed in more detail herein, the advertisement presentation parameters obtained may include, without limitation: advertisement request parameters configured to obtain one or more advertisement preferences from the user and to target advertisements to the user; advertisement rendering parameters configured to render presentation of one or more advertisements on a device, such as computing device 100 of
The encapsulated advertisement controls may also, in various embodiments, include functionality for controlling the rendering of advertisements received from an advertisement server, such as advertisement server 208. For instance, the encapsulated advertisement control may manage presenting a static image, initializing multimedia players, overlaying an advertisement on a video stream, outputting an advertisement into an audio stream, and various other rendering that may be necessary for effective presentation of the advertisement. Also, in various embodiments, encapsulated advertisement controls may monitor, trap, and report events associated with the presentation of various advertisements. For instance, events may be milestones such as whether the advertisement was displayed, whether the advertisement was in the viewing area for a certain amount of time, and whether a video played for a certain amount of time. Also, events may be user interactions such as a click, a mouse-over, and rewinding a video stream. The events discussed herein are intended for exemplary purposes, but embodiments of the present invention contemplate monitoring, trapping, and reporting various events depending upon the requirements of the business rules associated with a particular advertisement. Still further, in various embodiments, encapsulated advertisement controls may be used to determine the appropriate rotation of advertisements. For instance, rotation may be based upon the time an advertisement is displayed and user interaction with the advertisement. In this example, when the rotation criteria associated with an advertisement is met, a new advertisement request will be initiated. Display time, visibility, and user interactivity may all be used individually, or in combination, to determine the appropriate rotation of an advertisement. For example, an advertisement may be rotated only if at least 90 percent of the advertisement is visible on the screen for a specified period of time. Further, by way of example, the advertisement may be configured to rotate only where the user has used the mouse or the keyboard at least twice in the last minute. Therefore, various events may be used to assist the advertiser in ensuring that an advertisement was visible on the screen and the user was interacting with the same screen for a period of time. Thus, in addition to reporting events back to an advertisement server, such as advertisement server 208, encapsulated advertisement controls also monitor various presentation time and user interaction for advertisement rotation. The advertisement rotation determination may be based on information associated with a single advertisement or, where there are multiple advertisements within an application, the rotation determination may consider each of the presented advertisements. Thus, as previously stated, encapsulated advertisement system 204 may include logic that spans more than one advertisement control, where necessary, to coordinate the presentation of multiple advertisements on multiple controls.
Having provided an overview discussion of encapsulated advertisement system 204 with a number of exemplary embodiments, the various components of encapsulated advertisement system 204 will now be discussed. One or more advertisement control components 212 are configured to manage presentation and handling of one or more advertisements and further configured for embedding within an application using a development environment. In various embodiments, the advertisement control components 212 manage the surface onto which the advertisement is rendered within an executing application. Thus, the advertisement control components are embedded within the application by a software developer using a development environment. The advertisement control components 212 may include logic for determining presentation and user interaction with the advertisement (e.g., how much of the advertisement is visible, whether there is a click, etc.), which is used both for event reporting back to advertisement server 208 as well as determining advertisement rotation.
Control coordinating component 214 is configured to manage one or more advertisement control components. Thus, in various embodiments where there is more than one advertisement control component 212, control coordinating component 214 includes the logic that spans the multiple advertisement control components 212. Further, in various embodiments, control coordinating component 214 interfaces with the configuration server 206 and the advertisement server 208 to request advertisement presentation parameters and advertisements. For example, where an application includes three advertisement control components for presenting three advertisements, the control coordinating component 214 may provide logic to coordinate the three advertisement control components 212 consistent with various business rules. For instance, assume the advertisements in this example are image advertisements that appear simultaneously in a column along the side of an application window for 30 seconds each. Advertisers may not want to have the same advertisement presented more than once at any given time. Control coordinating component 214 may, in various embodiments, include the logic to ensure that if an advertisement is displayed in association with one advertisement control component 212, it will not be simultaneously displayed with another advertisement control component 212. This example is intended for illustrative purposes only and embodiments of the present invention contemplate various other coordinating features that may be provided by control coordinating component 214. For instance, in embodiments, an advertiser may want a number of advertisements to appear sequentially from top to bottom in a column of advertisement control components 212.
Configuration server 206 is configured to provide one or more advertisement presentation parameters to at least one of the control coordinating component 214 and the advertisement control component 212. Thus, in various embodiments, configuration server 206 may be in communication with encapsulated advertisement system 204 directly through control coordinating component 214, which will convey advertisement presentation parameters to advertisement control components 212. In various other embodiments, however, configuration server 206 may be in contact with encapsulated advertisement system 204 directly through advertisement control components 212. In yet other embodiments, configuration server 206 may communicate with both control coordinating component 214 and advertisement control components 212. Each of these embodiments is contemplated and within the scope of the present invention. As illustrated, configuration server 206 is separate and distinct from advertisement server 208. This is intended for illustrative purposes only and is not meant to limit the scope of the present invention to any particular compartmentalized configuration. For instance, in various embodiments, configuration server 206 and advertisement server 208 may reside on or comprise a single computing device. Each of these configurations, and others, are included within the scope of the present invention. As illustrated in
Advertisement server 208 is configured to provide one or more advertisements to at least one of the control coordinating component 214 and the advertisement control component 212. Thus, similar to configuration server 206, in various embodiments, advertisement server 208 may be in communication with encapsulated advertisement system 204 directly through control coordinating component 214, which will convey advertisement presentation parameters to advertisement control components 212. In various other embodiments, however, advertisement server 208 may be in contact with encapsulated advertisement system 204 directly through advertisement control components 212. In yet other embodiments, advertisement server 208 may communicate with both control coordinating component 214 and advertisement control components 212. As illustrated in
As discussed herein, advertisement server 208 is part of an online advertisement system that is in communication with the encapsulated advertisement system 204 which may be configured to reference the network directly. In various embodiments, however, advertisement server 208 may be part of a semi-connected advertisement system that periodically syncs with encapsulated advertisement system 204. For instance, encapsulated advertisement system 204 may reference advertisement information that was cached on a local store using a semi-connected advertisement system.
It will be understood and appreciated by those of ordinary skill in the art that additional components not shown may also be included within any of system 200, database 202, encapsulated advertisement system 204, configuration server 206, and advertisement server 208.
Turning now to
Next, as indicated at block 312, configuration instructions are received for configuring the encapsulated advertisement controls, e.g., by advertisement control component 212 of encapsulated advertisement system 204 of
Next, as indicated at block 314, one or more advertisements are presented to a user of the application in accordance with one or more advertisement presentation parameters. In various embodiments, the advertisements may be obtained from an advertisement server, such as advertisement server 208 of
Optionally, in various embodiments, as indicated at block 316, events are communicated to the advertisement server, e.g., advertisement server 208 of
Turning now to
Then, as indicated at block 414, a request is received for one or more advertisements, e.g., by advertisement server 208 of
Optionally, in various embodiments, as indicated at block 418, events are received from the advertisement control coordinator, e.g., control coordinating component 214 of encapsulated advertisement system 204 of
In of the exemplary methods described herein, various combinations and permutations of the described blocks or steps may be present and additional steps may be added. Further, one or more of the described blocks or steps may be absent from various embodiments. It is contemplated and within the scope of the present invention that the combinations and permutations of the described exemplary methods, as well as any additional or absent steps, may occur. The various methods are herein described for exemplary purposes only and are in no way intended to limit the scope of the present invention.
The present invention has been described herein in relation to particular embodiments, which are intended in all respects to be illustrative rather than restrictive. Alternative embodiments will become apparent to those of ordinary skill in the art to which the present invention pertains without departing from its scope.
From the foregoing, it will be seen that this invention is one well adapted to attain the ends and objects set forth above, together with other advantages which are obvious and inherent to the methods, computer-readable media, and systems. It will be understood that certain features and sub-combinations are of utility and may be employed without reference to other features and sub-combinations. This is contemplated by and within the scope of the claims.