SYSTEM AND METHOD FOR ADVERTISING DURING A DATA
TRANSFER PROCESS
FIELD OF THE INVENTION
The present invention relates generally to advertising on personal computer systems and, more particularly, to a system and method for advertising and providing information on various topics during idle time on personal computer systems.
BACKGROUND OF THE INVENTION
Personal digital assistants, or PDA's, are commonly known hand-held computers that can be used to store various personal information including, but not limited to contact information, calendar information, etc. Such information can be downloaded from other computer systems, or can be inputted by way of a stylus and pressure sensitive screen of the PDA. Examples of PDA's are the Palm™ computer of 3Com™ Corporation, and Microsoft CE™ computers available from a variety of vendors.
Users of PDA's commonly do not rely solely on such units for storing important information. For example, full-size desktop computers are also used to store information during the course of other activities such as receiving and responding to electronic mail. This tends to lead to the generation of separate and discrete sets of information on both the PDA and desktop computer. Of course, maintaining multiple sets of information is undesirable due to obvious organization problems.
To overcome this difficulty, information on a desktop computer is often "synchronized" with information on a PDA. In other words, any new information in the form of additions, deletions, and/or changes that exists on either the desktop computer or the PDA is reflected on both. By frequently synchronizing data between the desktop computer and the PDA, a user is ensured to have one set of completely updated information which leads to increased organization.
Such frequent synchronization, however, requires a significant period of time during which the attention of the user is left unfocused. This wasted attention is compounded when synchronization is carried out over a network via access having limited bandwidth that may result in substantial delays. As such, the user is often left with little to occupy his or her attention during the synchronization process. The foregoing problem also arises during many other data transfer processes. For example, idle time occurs during most data transfers; e.g. downloads of data such as sports calendars, airline contact lists, etc.
In the past, prior art systems have only utilized idle time associated with "screen-savers" which are depicted on a computer screen when a computer has not been used for a predetermined amount of time. One example of such a system is the PointCast™ Network. When such screen- saver is executed, various advertisements and news-related information are displayed to occupy the attention of the user. It should be noted, however, that systems such as the PointCast™ Network do not utilize idle time during a communication process, i.e. synchronization, between the computer and a remote server.
There is thus a need for a system and method for capturing the attention of a computer user during a data transfer process by advertising and providing information on various topics.
DISCLOSURE OF THE INVENTION
A system and method is provided for advertising during a data transfer process. First, a connection is made with a server over a network. Next, an advertising window is opened on a client computer. A communication process is subsequently initiated between the client computer and the server. In one embodiment, the communication process may take the form of a synchronization process. Advertising data is received from the server which includes banner data and content data. Such banner data, content data, and communication process data are displayed in the advertising window.
In one embodiment of the present invention, the advertising data takes the form of a window that has various components relating to not only advertisements, but also various other types of information. As an option, the advertisements and information depicted on the window may be specifically selected as a function of the identity and demographics of the user. As such, the
attention of the user is most effectively utilized. Yet a further option includes using the communication data to indicate a status of the synchronization process on the window. This feature further focuses the attention of the user on the window.
In yet another embodiment of the present invention, the window may be terminated, or hidden, automatically upon completion of the synchronization process. In the alternative, the window may be automatically terminated after a predetermined time period after the initiation of the communication process. In still yet another embodiment, manual intervention by a user may be required prior to termination of the window. As an option, termination of the window may still require completion of the synchronization process in addition to the manual intervention by the user.
These and other advantages of the present invention will become apparent upon reading the following detailed description and studying the various figures of the drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
The foregoing and other objects, aspects, and advantages are better understood from the following detailed description of a preferred embodiment of the invention with reference to the drawings, in which:
Figure 1 is a general diagram of the interconnection between a server, a personal digital assistant, and a computer in accordance with one embodiment of the present invention;
Figure 2 is a block diagram of an exemplary component configuration for the computer of Figure 1 ;
Figure 3 is an illustration of the user interface of one embodiment of the present invention;
Figure 3 a is an illustration of the user interface of one embodiment of the present invention;
Figure 4 is a general flowchart delineating a process of one embodiment of the present invention;
Figure 5 is a general flowchart illustrating the details associated with a process, or subroutine, of one embodiment of the present invention; and
Figure 6 is a more detailed flowchart illustrating the details associated with one of the operations of the flowchart of Figure 4 that calls the subroutine of Figure 5.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
With reference to Figure 1, one embodiment of the present invention includes a system 100 including at least one personal digital assistant (PDA) 102, a server 104, at least one computer 106 removably connected to the PDA 102, and a network 108 interconnected between the computer 106 and the server 104. Such network 108 may take the form of a wide or local area network. In the case of the wide area network, network protocol such as TCP/IP and IPX may be employed.
The PDA 102 may include a hand-held Palm™ PDA available from 3Com Corporation. In the alternative, the PDA 102 may take the form of any other type of portable data storage module which is capable storing, editing, and/or synchronizing personal data. This may be accomplished by any type of I/O mechanisms including, but not limited to a display, a plurality of push buttons, a data port, an electronic writing pad, and/or any other type of I/O mechanism capable of inputting and/or outputting personal data.
In some embodiments, the personal data stored within the PDA 102 may take the form of calendar information or contact information, i.e. mailing addresses, telephone numbers, facsimile numbers, electronic mail address, scheduled meeting, appointments, etc. In further embodiments, the personal data may include any useful information.
With continuing reference to Figure 1, the server 104 may include any data storage device located in any desired location. The server 104 may even take the form of a conventional computer 106. During use, the server 104 is capable of synchronizing server data stored thereon
with the personal data stored on the PDA 102. This is carried out upon communication being established between the server 104 and the PDA 102.
Figure 2 shows one embodiment of the computer 106 to which the PDA 102 is releasably connected. As shown, the computer 106 may include a microprocessor 110, read only memory
112, random access memory 114, a display 116, a data port 118, secondary storage memory 120 such as a hard disk drive or a removable floppy disk drive, and/or a plurality of additional I/O peripherals 122. These components are connected by way of at least one bus 124.
The computer 106 is adapted for allowing communication between the server 104 and the
PDA 102 by providing a communication link therebetween. The coupling between the computer 106 and the server 104 may, in one embodiment, include a local or wide area network 108. One example of a network that may be employed for affording the foregoing coupling is the Internet. In other embodiments, other types of coupling may be employed including RF, fiber optic, or any type of transmission medium capable of transferring data and control signals. It should be understood that any of the foregoing types of coupling may also be employed for affording a link between the PDA 102 and the computer 106.
In use, the processor 110 of the computer 106 is adapted for locally processing computer logic, i.e. software, stored in the memory of the computer 106 to generate output as a function of input. One component of the software is a conduit manager(not shown) which may be used to synchronize data among the PDA 102, the computer 106, and the server 104. It should be noted that data may also be synchronized between a plurality of different PDA's 102. More information regarding the synchronization process may be found in a co-pending application entitled "System and Method for Synchronizing Multiple Calendar Data Over a Wide Area Network".
During the synchronization of data, the user is required to wait until the process is terminated before moving on to other tasks. To effectively utilize this time period, the computer logic is adapted for controlling the processor to initiate the display of an advertisement page 300 upon the initiation of the synchronization process or any other local process run by the processor 110. One example of the advertisement page 300 is shown in Figure 3.
As shown in Figure 3, one embodiment of the advertisement page 300 includes a title bar 302 situated along an upper edge of the display 116. A title 301 is written on a left portion of the title bar 302 and a close icon 304 is positioned on a right portion of the title bar 302. Along a lower edge of the display 116 is a status bar 306 on which a status is written in a manner to be set forth later in greater detail. AUeas one advertisement 308 is positioned just below the title bar 302 on an upper half of the display 116. Finally, various information 310 is situated between the advertisement 308 and the status bar 306 on a lower half of the display 116. As an option, the information 310 or any other portion of the advertisement page 300 may include a link to additional information or the like. Further, a video may be displayed if desired.
As shown in Figure 3 a, another embodiment of the advertisement page 300 is shown to include at least one advertisement 308 that may be toggled between a set of predetermined advertisements 308. Below the advertisements 308 is a scrolling bar 311 which may include links to various URL's accompanied by a question or any other type of phrase to attract the attention of a user.
Figure 4 generally delineates the process associated with one embodiment of the present invention. Upon the start 400 of the illustrated process, a socket connection is made to the server 104 in order to initiate the synchronization process, or any other local process. Note operation 402 of Figure 4. Once the connection is made and the synchronization process is started, the operation associated with the advertisement page 300 is initiated, as indicated in operation 404. In an alternate embodiment, the advertisement page operation may also be executed without the connection being made.
As shown in Figure 5, once the operation associated with the advertisement page 300 is initiated, the advertisement page 300 is prepared in a process 500, or subroutine, called ADSYSTEM. As shown, an HTML window, or any other type of window, is generated in operation 502 after which the window is terminated, or hidden, in operation 504. At this point, the current process 500 waits until called with specific instructions in decision 506. Such instructions may include displaying or hiding the window in operation 508, setting the URL of the HTML window in operation 510, and/or setting the status on the status bar 306 in operation 512.
By setting the URL of the HTML window in decision 510 of Figure 5, the remote server 104 is accessed for displaying remotely stored data within the HTML window. The HTML window thus acts has a locally stored frame for remotely stored data. It should be noted, however, that the HTML window may, in alternate embodiments, be stored locally or remotely and may retrieve locally or remotely stored data. For that matter, the HTML window may comprise merely of one or more simplistic images stored locally or remotely.
In use, the process 500 of Figure 5 may be evoked by any operating system such as Microsoft™ Windows™. Examples of code that may be used are shown in Table 1.
TABLE 1
One example of code relating to operations 500, 502 and 504 of Figure 5 is as follows: BOOL CTrayApp::InitInstance() {
#ifdef_AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL #else Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
LoadStdProfileSettingsO;
CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate(
IDR_MAΓNFRAME,
RUNTIME_CLASS(CTrayDoc), RUNTIME_CLASS(CFrame), RUNTIME_CLASS(CTrayView));
AddDocTemplate(pDocTemplate) ;
CCommandLinelnfo cmdlnfo; ParseCommandLine(cmdlnfo);
if (!ProcessShellCommand(cmdInfo)) return FALSE; m_pMainWnd->ShowWindow(SW_HIDE); m_pMainWnd->Update Window() ;
return TRUE; }
One example of code relating to operations 506, 508, 510 and 512 of Figure 5 is as follows:
LRESULT CFrame::WindowProc(UTNT message, WPARAM wParam, LPARAM lParam) { if (m_messenger.IsAdViewMessage(message))
{ switch (wParam)
{ case CAdNiewMessenger::CloseDialogsMessage: close(calendarsDialog); close(contactsDialog); break;
case CAdNiewMessenger::SetStatusMessage: m_statusBar.SetWindowText(m_messenger.GetStringArgument()); break;
case CAdViewMessenger: : SetUrlMessage: {
CHtmlNiew& view = * static_cast<CHtmlNiew*>(GetActiveView()); if (&view != 0) view.Νavigate2(m_messenger.GetStringArgument());
} break;
case CAdViewMessenger: :ShowAdWindowMessage:
SetWindowPos(&wndTop, 0, 0, adWidth, adHeight, SWP_NOMONE); ShowWindow(lParam) ; } return 0;
} else return CFrameWnd::WindowProc(message, wParam, lParam); }
Figure 6 illustrates the manner in which the process 500 of Figure 5 is evoked and called. When the advertisement page 300 is ready for display by evoking process 500 in operation 600 of Figure 6, it is next determined whether the advertisement page 300 is to be shown in decision 601. This decision may be ultimately governed by an operating system of the computer 106 that also initiates the synchronization process. If the answer to decision 601 is "Yes", the process 500 of Figure 5 is called to display the HTML window and further to set the corresponding URL. See operation 602 of Figure 6.
The specific URL that is set may depend on numerous factors such as the identity or demographics of the user. Such specific information pertaining to the user may be retrieved and transmitted in various ways. For example, the PDA 102 or the computer 106 may specify a user identity or characteristics from which an appropriate URL is chosen and provided by the server. In the alternative, the PDA 102 or the computer 106 may specify a URL based on the user identity or characteristics. It should be noted that the URL may be chosen in any user desired manner that ensures that the URL is dependent on the specific user of the present invention.
With continuing reference to Figure 6, a loop is started after the HTML window is displayed wherein the status of the synchronization process is monitored in decision 604. Periodically, in operation 606, the process 500 of Figure 5 is called with the current status of the synchronization process for display on the status bar 306 of the HTML window. As an option, specific information may be included in the status window, as shown in Figure 3. When the operating system determines that the advertisement page 300 is to be hidden in decision 608, the
process 500 of Figure 5 is called once again to hide the HTML window. Note operation 610 of Figure 6.
In various alternate embodiments, the operating system may hide the HTML window upon certain conditions being satisfied. For example, the HTML window may be automatically hidden upon completion of the synchronization process run by the processor 110. In the alternative, the HTML window may be automatically hidden after a predetermined time period after the initiation of the synchronization process run by the processor 110. In still yet another embodiment, the HTML window may be hidden only after manual intervention by a user, i.e. "clicking" the close icon 304 on the advertisement page 300. In such embodiment, it may also be required that the HTML window "terminate" upon the manual intervention and further " stay resident" until after completion of the synchronization process run by the processor, thus "capturing" the attention of the user.
While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.