The present invention addresses the deficiencies of current solutions by providing a mechanism in which ads—formatted for display within a particular presentation environment—can be served directly into content displayable within the same presentation environment. In this manner, the served ads enjoy the benefits of executing within the presentation environment (e.g., complying with the presentation environment's security restrictions, ability to directly communication with the content via an API, etc.) without having to originate from the content itself.
Upon receiving and processing this web page, the browser (100) understands that the site's content is formatted for display within a particular presentation environment in the referenced content source file (115) and is to be rendered by the referenced application engine (120), which is embedded in the browser (100). If the application engine (120) had not been embedded in the browser (100), the browser (100) could have downloaded it from the appropriate location referenced in the web page.
The browser (100) subsequently sends a content request (104) to the content provider (110) based on the received content source file reference (step 200). The content provider (110) returns (step 210) the requested content source file (115) to the browser (100) in a content response (106). The browser (100) then invokes (step 220) the application engine (120), which processes the content source file (115) to display the content (step 230).
Pursuant to an instruction in the content source file (115), the application engine (120) sends (step 240) an ad request (124) to an ad server (130), which returns (step 250) the requested ad source file (135)—which is formatted for display within the same presentation environment as the content—in an ad response (126). Once received, the application engine (120) integrates (step 260) the ad into the content display pursuant to the instructions provided in the ad source file (135) and content source file (115).
The content provider (110) and ad server (130) may or may not be affiliated with the same network domain. In the case the two are not affiliated (e.g., when the content provider (110) implements third-party advertising via its content), an additional mechanism such as that illustrated in
In
The API source file specifies how the application engine may implement serving ads from a domain other than that of the content provider (110). For example, the API source file may specify how the application engine is to grant security access to permit downloading of the ad source file (135) from the third party ad server (308), and also how to instantiate a process to facilitate communication in accordance with a pre-defined API between the content process (304) and an ad process (306) (a process run by the application engine 120 pursuant to the processing of the ad source file (135)).
Once the API source file is received by the application engine (120), the content process invokes (step 320) an API process (a process run by the application engine (120) pursuant to the processing of the API source file), which configures the application engine's (120) security settings to allow the third party ad server (308) to serve ads into the content (step 330). The API process may query the third party ad server (308) or some other server to discover which potential ad serving domains are in need of security clearance.
Upon establishing the proper security settings, the content process (304) calls the API process (302) to request the ad (step 340). In response, the API process (302) sends (step 350) the ad request (124) to the ad server (308), which returns (step 360) the requested ad source file (135)—which is formatted for display within the same presentation environment as the content—in the ad response (126). Once received by the application engine (120), the API process (302) serves to act as a communication interface between the content process (304) and the ad process (306).
Because the ad and content are processed by the application engine (120) within the same presentation environment, the ad and content are able to directly communicate with each other via a pre-defined API, in or not in conjunction with the API process described above, and alter the ad and/or content displays programmatically.
In
For example, when the content process (304) receives notification of a mouse-over event (i.e., when the user rolls the mouse over the ad display area), it can pause the content (if animated) or alter any text in the content display, such as changing all “s”s to “$”s if the ad relates to the financial services industry. (The content process (304) can determine the field to which the ad is related by querying the ad process (306) as described below in connection with
In
For example, the content process (304) could query the ad process (306) to determine ad metadata (e.g., pixel dimension), so that the content process (304) can adjust the content accordingly when the ad is to be displayed.
In
In
In
For example, the ad process (306) could query the content process (304) to determine what type of action or coloring is being rendered in the content display, so that the ad process (306) can adjust the ad presentation accordingly so as not to visually conflict with the content.
In
In accordance with an embodiment of the invention utilizing the Adobe Flash Player as the application engine (120), the content source file (115), ad source file (135) and API source file may all be provided in SWF format. Once loaded by the application engine (120), their associated processes may function as described above based on the programming (e.g., in ActionScript) provided in the respective source files. Any API specifying any desired function calls may be implemented in order to provide a communication channel between the ad process (306), content process (304) and/or API process.
The input device (1220) may include a keyboard, mouse, pen-operated touch screen or monitor, voice-recognition device, or any other device that accepts input. The output device (1230) may include a monitor, printer, disk drive, speakers, or any other device that provides output.
The storage (1240) may include volatile and nonvolatile data storage, including one or more electrical, magnetic or optical memories such as a RAM, cache, hard drive, CD-ROM drive, tape drive or removable storage disk. The communication device (1260) may include a modem, network interface card, or any other device capable of transmitting and receiving signals over a network. The components of the computing device may be connected in any manner, such as via electrical bus or wirelessly.
The software (1250), which may be stored in the storage (1240) and executed by the processor (1210), may include, for example, the application programming that embodies the functionality of the present invention (e.g., as embodied in the content source file (115) or ad source file (135)).
Communications may occur over any type of network (such as the Internet (102) for example), which may implement any communications protocol, which may be secured by any security protocol. Network links may include telephone lines, DSL, cable networks, T1 or T3 lines, wireless network connections, or any other arrangement that implements the transmission and reception of network signals.
The computing device may implement any operating system, such as Windows, Mac OS, Linux or UNIX. The software (1250) may be written in any programming language, such as C, C++, lava, Visual Basic, ActionScript and/or SQL.
Several embodiments of the invention are specifically illustrated and/or described herein. However, it will be appreciated that modifications and variations of the invention are covered by the above teachings and within the purview of the appended claims without departing from the spirit and intended scope of the invention.
For example, software that implements the present invention such as that embodied in content source file (115) or ad source file (135) may be spread across several files that together still provide the same functionality, and the data and flow diagrams of
In other embodiments, the application engine (120) need not be embedded within a web browser (100), but may act as a standalone application with its own connection to the Internet (102), content provider (110) and ad server (130). In such an embodiment, the application engine (120) would directly request and receive the content source file (115) from the content provider (110) prior to processing it, rather than being invoked by a browser (100) to process content referenced by a web page.