The present invention provides systems, computer program products and methods that are useful for online advertising through a computer, personal digital assistant, mobile phone, or other Web-enabled device having an installed Web browser application. The method displays an advertisement in a Web browser window when the window becomes deactivated or idle for a period of time. Accordingly, a user returning to their computer after minutes away or reactivating the Web browser window after working in another window will first see the advertisement. Preferably, the advertisement will cover or replace the Web content that had been previously loaded and displayed in the Web browser window. However, it is desirable for the Web content to remain loaded in memory so that the Web content may be “flipped” or quickly displayed after reactivating the window or detecting user interaction with the window. However, the advertisement preferably remains for a brief delay period after either reactivation or detection of user interaction in order to enhance advertising effectiveness and provide the user with a brief opportunity to read the advertisement or click on a hyperlink for more information. In a further option, the advertisement might include a specific rollover area that would allow the user to intentionally retain the advertisement regardless of exceeding the brief delay period, so that an interesting advertisement could be read and considered more carefully. After the delay period and removing the mouse from the rollover area, it is preferred that the Web content automatically return to display in the client area of the Web browser window.
The method of the invention may be performed or executing in accordance with instructions provide by the hyper text markup language (HTML) that provides the Web page content, along with an embedded program. The embedded program may be written in any suitable language, including, without limitation, a suitable scripting language like JavaScript or a program such as a Java applet. The embedded program may interact with an application programming interface (API) of the windows operating system or the Web browser application in order to display the advertisement or Web content and to detect activation/deactivation of the browser window and/or user input directed to the browser window.
The Web page content and at least one advertisement are downloaded to a user's Web-enabled device from a Web server into a Web browser application capable of opening a window having a client area. The Web page content is selected by the user by entering a uniform resource locater (URL) into the address bar of the Web browser. The Web content is then displayed in the client area of the Web browser window in an apparently conventional manner and user interaction with the Web browser window is monitored.
The embedded program is loaded into memory and implements the method of the present invention. As a result of the Web browser window experiencing an event selected from the group consisting of becoming deactivated, becoming idle and combinations thereof, at least a portion of the content displayed in the client area of the Web browser window is substituted with the at least one advertisement. Most preferably, the at least one advertisement fills the Web browser window at the present size of the client area of the window. The advertisement is preferably maintained within the window and remains until the window is activated after becoming deactivated or detects user interaction with the window after exceeding an idle timeout period.
One embodiment of the invention includes the use of a plurality of advertisements. These advertisements may be downloaded along with the Web content or at one or more different points in time. The advertisements may be displayed simultaneously, sequentially or in some dynamic display, such as scrolling advertisements or a slideshow. It is possible for sequential advertisements to be used in a manner in which only one advertisement is used in each deactivation/idling cycle of the Web browser window or in a manner where two or more advertisements are sequentially displayed one after the other until the activation/interaction of the Web browser window. Optionally, window activation or user interaction with the window can be setup to cause the browser to reload or refresh the current page of the Web content, and maintain the display of the advertisement until the reloading is complete.
Then, after the Web browser window experiences an event selected from the group consisting of becoming activated, receiving user input, and combinations thereof, the at least one advertisement is removed in order to display the Web page content in the client area of the Web browser window. The Web browser window can become deactivated through activation of a second window, which may run another instance of the Web browser or a different application program.
Optionally, the at least one advertisement may be downloaded along with the Web content or downloaded earlier or later, such as at the time the Web browser window becomes deactivated or idle. When the at least one advertisement is available before it is needed, the at least one advertisement may be preloaded into memory prior to the Web browser window experiencing an event selected from the group consisting of becoming deactivated, becoming idle and combinations thereof.
In one embodiment of the method, the at least one advertisement includes a plurality of advertisements. Accordingly, the method may further comprise substituting at least one different advertisement from the plurality of advertisements each time the Web browser window experiences an event selected from the group consisting of becoming deactivated, becoming idle, and combinations thereof.
In another embodiment, the method includes a delay period after the Web browser window experiences an event selected from the group consisting of becoming activated, receiving user input, and combinations thereof, before removing the at least one advertisement. Optionally, the at least one advertisement may include at least one hyperlink that is executable during the delay period.
While the methods and apparatus that are included in the field of data processing comprise a wide variety of programs and programming languages, those having ordinary skill in the art will appreciate that the present invention may be implemented without limitation to a particular program or programming language, a particular application program or a particular system.
In particular embodiments of the present invention, the Web content or the Web browser application interacts or communicates with an application program interface (API) of the windows operating system. For example, an API is a set of routines, protocols and/or tools associated with a known operating system and/or application program. The API provides an interface with the operating system and/or application program for which it is associated. Therefore, an appropriate API may be selected that identifies the size and location of various application windows, including the Web browser window. A specific API may then be utilized to determine whether the Web browser window is activated or deactivated, and the level of user interaction with the Web browser window.
Specifically, the WINDOWS operating system (WINDOWS is a registered trademark of the Microsoft Corporation, Seattle, Wash.) may send a notification or message whenever a window belonging to a different application than the active window is about to be activated. This message, such as a WM_ACTIVATEAPP message, is sent to the application whose window is being activated and to the application whose window is being deactivated. This is just one example of how the online advertising application program of the present invention might determine that the window is being activated or deactivated.
Similarly, a JAVA applet may be programmed to detect these conditions or receive a windows message regarding window activation, window deactivation, and user interaction with the window. For example, the JAVA command WindowDeactivated can be used to identify when the window has become deactivated and can then take other steps to cause the Web browser window to display an advertising image instead of the Web content. The JAVA command WindowActivated can also be used to identify when the window has become activated and can then take other steps to cause the Web browser window to display the Web content, preferably after a short delay.
Once the consumer computer 12 establishes a communication link with the Web Server 14, the Web Server 14 transfers Web content to the consumer computer 12. In accordance with one embodiment of the present invention, the Web content contains an embedded advertisement program and advertisement image. However, it should be recognized that the advertisement image may be sent directly from the advertisement server 18 to the consumer computer 12, such as in response to request from the embedded program, or the advertisement image may be sent to the consumer computer 12 from the Web Server 14, which may originate the image or obtain it from a direct link 19 to an advertisement server 18.
The personal computer 20 further includes a hard disk drive 35 for reading from and writing to a hard disk 27, a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29, and an optical disk drive 30 for reading from or writing to a removable optical disk 31 such as a CD-ROM or other optical media. Hard disk drive 35, magnetic disk drive 28, and optical disk drive 30 are connected to system bus 23 by a hard disk drive interface 32, a magnetic disk drive interface 33, and an optical disk drive interface 34, respectively. Although the exemplary environment described herein employs hard disk 27, removable magnetic disk 29, and removable optical disk 31, it should be appreciated by those skilled in the art that other types of computer readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, RAMs, ROMs, and the like, may also be used in the exemplary operating environment. The drives and their associated computer readable media provide nonvolatile storage of computer-executable instructions, data structures, program modules, and other data for the personal computer 20. For example, the operating system 40 and application programs 36 may be stored in the RAM 25 and/or hard disk 27 of the personal computer 20.
A user may enter commands and information into personal computer 20 through input devices, such as a keyboard 55 and a pointing device 42. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to processing unit 22 through a serial port interface 46 that is coupled to the system bus 23, but may be connected by other interfaces, such as a parallel port, game port, a universal serial bus (USB), or the like. A display device 47 may also be connected to system bus 23 via an interface, such as a video adapter 48. In addition to the monitor, personal computers typically include other peripheral output devices (not shown), such as speakers and printers.
The personal computer 20 may operate in a networked environment using logical connections to one or more remote computers 49. Remote computer 49 may be another personal computer, a server, a client, a router, a network PC, a peer device, a mainframe, a personal digital assistant, an Internet-connected mobile telephone or other common network node. While a remote computer 49 typically includes many or all of the elements described above relative to the personal computer 20, only a memory storage device 50 has been illustrated in the figure. The logical connections depicted in the figure include a local area network (LAN) 51 and a wide area network (WAN) 52. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet.
When used in a LAN networking environment, the personal computer 20 is often connected to the local area network 51 through a network interface or adapter 53. When used in a WAN networking environment, the personal computer 20 typically includes a modem 54 or other means for establishing high-speed communications over WAN 52, such as the Internet. Modem 54, which may be internal or external, which is connected to system bus 23 via serial port interface 46. In a networked environment, program modules depicted relative to personal computer 20, or portions thereof, may be stored in the remote memory storage device 50. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
A number of program modules may be stored on hard disk 27, magnetic disk 29, optical disk 31, ROM 24, or RAM 25, including an operating system 40, application programs 36, a Web browser program 38 and the advertising program 39 associated with the Web content receiving in accordance with the present invention. Program modules include routines, subroutines, programs, objects, components, data structures, and the like, which perform particular tasks or implement particular abstract data types. Aspects of the present invention may be implemented in the form of a Web browser program 38 for receiving Web content including an advertising program 39, where the advertising program will manages and displays advertising images or content in accordance with the invention. The advertising program 39 generally comprises computer-executable instructions for, inter alia, identifying whether the window of a Web browser 38 is deactivated or idle, displaying advertisements in the Web browser window during deactivated or idle periods, and monitoring user interaction with the window.
The example shown in
It should be recognized therefore, that embodiments of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In particular embodiments, including those embodiments of methods, the invention may be implemented in software, which includes but is not limited to firmware, resident software and microcode.
Furthermore, the invention can take the form of a computer program product accessible from a computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate or transport the program for use by or in connection with the instruction execution system, apparatus or device.
While inventive embodiments of methods are demonstrated in the following flow charts of the figures that follow, it should be realized that the demonstrated methods are exemplary methods provided by the present invention and may be implemented using computer code and/or a suitable system.
In
In
Furthermore, it should be recognized that although the prior page of Web content 64 extended “below the fold”, meaning that the content could not be seen immediately without scrolling downward, it is preferred that the advertisement remain “above the fold.” The advertising program may resize an advertising image file to fit the window by retrieving the coordinates of the window's client area from the operating system. Furthermore, if the advertising image 68 will be removed after activating the associated Web browser window 62, then even an attempt to scroll the advertising image would lead to removal of the advertising image.
The method continues at state 92 to determine whether the Web browser window has been deactivated. If the Web browser has been deactivated, then in state 94 an advertising image is displayed in the client area of the Web browser window. This advertising image may be the only image available or it might be the next image in a set of advertising images. After displaying an advertising image, it is determined, in state 96, whether the Web browser window has been reactivated. If the window has not been reactivated, then the advertising image continues to be displayed. However, if the Web browser window has been reactivated, then the method waits for a delay period, in state 98, and displays the Web page content, in state 100, before returning to state 90 to monitor for further user input related to the Web browser window.
If it is determined, in state 92, that the Web browser window has not been deactivated, then it is determined, in state 102, whether the active Web browser window has been idle for greater than an inactivity period, such as a setpoint period of some seconds or minutes. If the window has not been idle for the inactivity period, then the Web page content continues to be displayed in state 100. However, if the window has been idle, then the advertising image is displayed in the client area of the Web browser window in state 104. Next, it is determined whether the active Web browser window has detected user interaction with the window in state 106. If there is not user interaction detected, then the advertising image continues to be displayed. However, after detecting user interaction with the window, the Web page content is displayed in state 108. If state 110 determines that the Web browser window has not been closed, then the method continues back to state 90 to further monitor for user input. However, if the window has been close, the method ends in state 112.
It should be understood from the foregoing description that various modifications and changes may be made in the preferred embodiments of the present invention without departing from its true spirit. The foregoing description is provided for the purpose of illustration only and should not be construed in a limiting sense. Only the language of the following claims should limit the scope of this invention.