SYSTEM FOR PROVIDING ENTERPRISE REVENUE MANAGEMENT FOR ON-LINE ADVERTISING CAMPAIGNS

Abstract: A system for providing on-line marketing campaign and revenue management is described. The system includes an event generating module that generates a set of events relating to a product to be advertised on a computer network. The event generating module generally resides on a client computer managed by the product advertiser. A server computer coupled to the client computer stores rules defined by the advertiser. An event and rule processing module residing on the server computer combines the events and rules to create or modify advertising banners that are to be displayed on the web site of a vendor computer. Depending on the events generated by the event generating module and the rules applied by the event and rule processing module, the content of the advertising banners may be modified. A return on investment module measures parameters related to access of the advertising banners by end users, and reports the ROI information back to the advertiser. A campaign management module manages the control of the advertising banners in response to the ROI information provided to the advertiser.

Description: SYSTEM FOR PROVIDING ENTERPRISE REVENUE MANAGEMENT FOR ON-LINE ADVERTISING CAMPAIGNS TECHNICAL FIELD The present invention relates generally to electronic commerce, and more specifically to enterprise revenue management for on-line advertising and marketing campaigns. BACKGROUND ART On-line advertising is a significant and increasingly critical component of electronic commerce that is conducted over the Internet. Effective on-line advertising requires the collaboration of organizations that provide complementary services, thus allowing these companies to streamline their business processes and focus on their core competencies. The extended enterprises formed by such collaborative relationships are realizing that fully automated and flexible business processes that connect their partners, customers, and employees along the value chain result in quicker responsiveness to the changing needs of the customers and, ultimately, to greater profitability. In on-line advertising and electronic commerce, it is becoming increasingly possible to manage revenue across the value chain. For example, an electronic merchant can obtain a distinct competitive advantage if it can link an on-line campaign running on a large number of web sites to inventory information in its systems or even in its suppliers' systems. From a control perspective, automating business processes can enforce consistent handling of revenue generating activities according to pre-determined business rules. In addition, by automating the process of managing and executing on-line marketing activities, the merchant enhances its ability to identify and focus on those cases that require and deserve special attention. On-line or Internet advertising typically takes the form of banner-based advertising comprising a banner message that pops up and is displayed on a vendor's web page. Banner-based advertising has become a very popular medium for advertisers wishing to reach consumers over the Internet. Management of such on-line advertising represents a significant activity that requires a certain investment in resources to ensure that the advertising is targeted to the right audiences. There are presently a number of products that attempt to manage Internet advertising. These products range from simple advertising inventory management for web sites to highly sophisticated targeting systems running across closed networks of sites. These systems are generally implemented using classic client-server architectures with large back-end databases. Many present solutions incorporate a monolithic model that embeds the data flow directly into the application. These solutions are typically built with an assumption that the underlying business processes are static and will not change. As a result, these present solutions are inherently limited, and attempts to extend these systems from a web- site centric approach to be more useful to clients attempting to manage their on-line marketing activities across web-sites often run into significant obstacles. Companies today need highly customized solutions that can provide control over their on-line revenue generation processes. These companies need solutions that not only provide the necessary infrastructure for their business-critical operations, but also can grow with the business. In order to support business-critical processes, automation solutions that are used to implement effective revenue management with regard to on-line advertising campaigns must meet several key requirements, such as: separation of application logic and business process logic; scalability and high performance with transaction management capabilities; robustness and fault tolerance; security and centralized access control for business-critical resources on the network; seamless integration with legacy resources; and overall system flexibility and manageability. Current products and systems for managing Internet advertising are generally unable to provide the flexibility, performance, and robustness required to manage truly effective advertising campaigns that provide maximized return-on-investment for the advertiser. DISCLOSURE OF INVENTION It is an object of embodiments of the present invention to provide a system that allows on-line advertising businesses to streamline their revenue management process and create new sales opportunities across the entire value chain. It is a further object of embodiments of the present invention to provide an on-line advertising management system that effectively targets banner advertisements to select groups of customers. It is yet a further object of embodiments of the present invention to provide an online advertising management system that adapts a banner-based advertising campaign to dynamic business rules and parameters, and provide accurate return-on-investment reports and analysis. A system for providing on-line marketing campaign and revenue management is described. The system includes an event generating module that generates a set of events relating to a product to be advertised on a computer network. The event generating module generally resides on a client computer managed by the product advertiser. A server computer coupled to the client computer stores rules defined by the advertiser. An event and rule processing module residing on the server computer combines the generated events and stored rules to create or modify advertising banners that are to be displayed on the web site of a vendor computer. Depending on the events generated by the event generating module and the rules applied by the event and rule processing module, the content of the advertising banners may be modified. A return on investment module measures parameters related to access of the advertising banners by end users, and reports the ROI information back to the advertiser. A campaign management module manages the control of the advertising banners in response to the ROI information provided to the advertiser. Other features and advantages of the present invention will be apparent from the accompanying drawings and from the detailed description that follows. BRIEF DESCRIPTION OF THE DRAWINGS The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements, and in which: Figure 1 illustrates a computer network that includes client computers coupled to a server computer, and that is used to implement embodiments of the present invention; Figure 2 is a block diagram of a computer that executes one or more program routines that embody aspects of the present invention; Figure 3 is block diagram illustrating the functional configuration of an on-line advertising management system, according to one embodiment of the present invention; Figure 4 is a block diagram illustrating the components within an on-line advertising management process, according to one embodiment of the present invention; Figure 5 is a block diagram that illustrates a publish and subscribe network implemented in an on-line advertising management process, according to one embodiment of the present invention; and Figure 6 is an illustration of a web page displayed by a vendor that incorporates a targeted banner advertisement, according to one embodiment of the present invention. BEST MODE OF CARRYING OUT THE INVENTION A system for deploying and managing on-line advertising campaigns and for reporting and analyzing revenue data associated with the advertising campaigns is described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide an understanding of the present invention. It will be evident, however, to one skilled in the art that the present invention may be practiced without the specific details. In other instances, well-known structures and devices are shown in block diagram form to facilitate explanation. The description of preferred embodiments is not intended to limit the scope of the claims appended hereto. Hardware Overview Aspects of the present invention may be implemented on one or more computers executing software instructions. According to one embodiment of the present invention, a server computer system transmits and receives data over a computer network or standard telephone line. The steps of accessing, downloading, and manipulating the data, as well as other aspects of the present invention are implemented by a central processing unit (CPU) in the server computer executing sequences of instructions stored in a memory. The memory may be a random access memory (RAM), read-only memory (ROM), a persistent store, such as a mass storage device, or any combination of these devices. Execution of the sequences of instructions causes the CPU to perform steps according to embodiments of the present invention. The instructions may be loaded into the memory of the server computer from a storage device, or from one or more other computer systems over a network connection. For example, a client computer may transmit a sequence of instructions to the server computer in response to a message transmitted to the client over a network by the server. As the server receives the instructions over the network connection, it stores the instructions in memory. The server may store the instructions for later execution, or it may execute the instructions as they arrive over the network connection. In some cases, the downloaded instructions may be directly supported by the CPU. In other cases, the instructions may not be directly executable by the CPU, and may instead be executed by an interpreter that interprets the instructions. In other embodiments, hardwired circuitry may be used in place of, or in combination with, software instructions to implement the present invention. Thus, the present invention is not limited to any specific combination of hardware circuitry and software, nor to any particular source for the instructions executed by the server or client computers. Figure 1 illustrates a computer network system 100 that implements one or more embodiments of the present invention. In system 100, a network server computer 104 is coupled, directly or indirectly, to one or more network client computers 102 and 103 through a network 110. The network interface between server computer 104 and client computer 102 may also include one or more routers, such as routers 106, 107, and 108. The routers serve to buffer and route the data transmitted between the server and client computers. Network 110 may be the Internet, a Wide Area Network (WAN), a Local Area Network (LAN), or any combination thereof. In one embodiment of the present invention, the server computer 104 is a World- Wide Web (WWW) server that stores data in the form o f ' web pages ' and transmits these pages as Hypertext Markup Language (HTML) files over the Internet network 110 to one or more of the client computers 102 and 103. For this embodiment, the client computers 102 and 103 typically run a "web browser" program to access the web pages served by server computer 104. In one embodiment of the present invention, server 104 in network system 100 is a server that executes an on-line advertising management process 112. On-line advertising management process 112 transmits and receives data from various other client computers, such as network clients 102 and 103, and processes the received data to process requests received over network 110. On-line advertising management process 112 may represent one or more executable program modules that are stored within network server 104 and executed locally within the server. Alternatively, however, online advertising management process 112 may be stored on a remote storage or processing device coupled to server 104 or network 110 and accessed by server 104 to be locally executed. In a further alternative embodiment of the present invention, on-line advertising management process 112 may be implemented in a plurality of different program modules, each of which may be executed by two or more distributed server computers coupled to each other, or to network 110 separately. In one embodiment of the present invention, wherein network 110 is the Internet, network server 104 also executes a web server process (not shown to avoid obscuring the illustration) to provide HTML documents to client computers coupled to network 110. To access the HTML files provided by server 104, client computer 102 and/or 103 run a web client process (typically a web browser) that accesses and provides links to web pages available on server 104 and other Internet server sites. It should be noted that a network system 100 that implements embodiments of the present invention may include a larger number of interconnected client and server computers than shown in Figure 1. Figure 2 is a block diagram of a representative networked computer, such as network server computer 104 illustrated in Figure 1. The computer system 200 includes a processor 202 coupled through a bus 201 to a random access memory (RAM) 204, a read only memory (ROM) 206, and a mass storage device 207. Mass storage device 207 could be a magnetic disk, optical compact disk, or tape drive for storing data and instructions. A display device 220 for providing visual output is also coupled to processor 202 through bus 201. Keyboard 221 and cursor control unit 222 are coupled to bus 201 for communicating user commands to processor 202. Also coupled to processor 202 through bus 201 are additional ports, such as audio output port 224, an input/output (I/O) interface 225, and a network interface device 223. Network interface device 223 provides a physical and logical connection between computer system 200 and a network. It is used by various communication applications running on computer 200 for communicating over the network medium, and may represent devices such as an Ethernet card, ISDN card, modem, or similar devices. It should be noted that the architecture of Figure 2 is provided primarily for purposes of illustration, and that a server or client computer used in conjunction with the present invention is not limited to the specific architecture shown. In one embodiment of the present invention, processor 202 within computer system 200 executes one or more software routines that comprise an on-line advertising management process 203 that is implemented by a server computer, such as server 104 in Figure 1. On-Line Advertising Management System Functionality Figure 3 is block diagram illustrating the functional configuration of an on-line advertising management system, according to one embodiment of the present invention. In one embodiment of the present invention, the on-line advertising management system comprises an on-line advertising management process 304. In general, on-line advertising management process 304 represents a network of services or components that together provide adaptive, intelligent and responsive management of on-line advertising or media campaigns. The on-line advertising management system illustrated in Figure 3 provides a significant improvement over present Internet advertising systems by tightly integrating a client's advertising campaign with his back-end inventory system, and thereby provide a dynamic link between advertising content and relevant business rules and events. The functionality of the on-line advertising management process 304 can be divided into three major categories, a targeted banner serving function 306, a media campaign reporting and return-on-investment (ROI) analysis function 308, and a system management and monitoring function 310. In one embodiment of the present invention, the on-line advertising management process 304 is maintained by an on-line advertising management service that helps a client (typically an advertiser) 312 place a banner advertisement on a website hosted and maintained by a vendor 316. Typically vendor 316 runs a web server program that displays web pages onto which banner ads can be inserted and co-displayed. Vendor 316 typically represents a web publisher that links together and displays a number of web pages and provides access to other web sites through Internet links. Vendor 316 may also represent a third party web page maintained by a company that represents products or measures Internet usage. The vendors' web page is accessible by an Internet user through the user's web browser program. The client 312 defines business rules and events that dictate the content and placement of the banner ads on the web site maintained by the vendor 316. Business events represent items that affect the product or services that are being advertised, such as inventory levels or special promotional events. Business rules are specified by the client 312, and then stored and processed or executed by on-line advertising management process 304. Events generated by the back-end process 314 may include parameters or triggers related to inventory levels, ROI values, order entries, completed transactions, and other like events related to the product or service being advertised. In general, an event can by any type of dynamic characteristic associated with the service or product being advertised. Besides inventory levels, events can include: price parameters, venue, genre of product or service, time periods of availability, and other like characteristics. Business rules specify actions to be taken with regard to the on-line advertisements in response to the business events. As stated above, business rules are generally specified by client 312 and then stored (or cached) and maintained by on-line advertising management process 304. The rules are evaluated against generated events to create or modify the advertising management campaign. The rules may be specified in a format dictated by an on-line advertising management service that maintains the online advertising management process. In one embodiment of the present invention, the software components comprising the on-line management process 304 are used by a party, such as an on-line advertising management service, to offer and create custom ad campaigns that target specific web sites, and provide real-time ROI reporting that can be used to monitor the effectiveness of the ad and dynamically modify the contents or targeting of the advertising banners. In general, an advertising campaign configuration is set up within the on-line advertising management process 304. This campaign configuration typically specifies what banner ads to use, and what weight value and clickthru web addresses are assigned to each of the banners. The weight value gives the frequency at which a banner should be displayed, relative to the rest of the banners in the insertion. The clickthru web address specifies the URL (uniform resource locator) to which a user's web browser is redirected when the user clicks on the banner. Thus, the on-line management process 304 evaluates the rules specified by the client 312 in relation to the events generated by the back-end process 314 to determine a characteristic of the advertisement produced for the campaign. In general, an advertisement characteristic can include any characteristic associated with the presentation of the advertisement such as: audio-visual content, time period of the advertising, geographical targeting of the advertising, demographical targeting of the advertising, and other such characteristics. The on-line advertising management process 304 interfaces with an image farm 320. The image farm 320 represents a data center that comprises one or more web servers that serve banner ads (typically stored as GIF, JPEG, or Java Applet files) that are referred to (pointed at) by web server 318 on a web site maintained by vendor 316. The contents of the banners, and new or modified banner definitions are passed to the image farm 320 by the on-line advertising management process 304. With reference to the on-line advertising management process 304, the targeted banner serving function 306 provides both a meta-targeting and fine-targeting capability that allows an on-line advertising banner to be served in a manner that not only reflects the internal campaign business rules of the advertiser, but also to be adjusted automatically and intelligently using the result of real-time ROI analysis of a campaign. In general, this mechanism dramatically enhances the overall effectiveness of a campaign. The meta-targeting functionality enables account managers and customers to select the vendors that are most likely to match a targeting criteria and either meet or exceed a given set of campaign goals. In one embodiment of the present invention, the on-line advertising management process 304 includes a meta-targeting engine that uses a knowledge database that contains detailed targeting information about each vendor and then maps a given campaign targeting requirement to a set of selected vendors' websites. After a campaign is launched, the on-line advertising management process ensures that the most effective websites are used by constantly monitoring and analyzing the campaign results and evolving and refining itself to ensure maximum return on campaign investment. The meta-targeting function can be performed by personnel that specialize in matching appropriate vendors to particular ad campaigns based on advertising content and vendor profile. Alternatively, the meta-targeting function can be provided automatically by a program that matches based vendors to ad campaigns based on pre- programmed information. The targeted banner serving function 306 also includes a fine-targeting function that determines which banners to show to the user that would both generate sales and incur the minimum cost for the entire campaign. In one embodiment of the present invention, the on-line advertising management process 304 includes an adaptive and intelligent banner serving rule engine that constantly evolves itself to take into account changing inventory levels, campaign ROI analysis, and other campaign-related business rules. This allows the fine-targeting process to be automated, secure, and scalable to handle a high number of campaigns simultaneously. The fine-targeting process can also generate business events that trigger automated business decision-making and processes. The campaign reporting and analysis function 308 of the on-line advertising management process 304 allows campaign analysis data to be fed back into relevant business processes for revenue management purposes reporting and ROI analysis capabilities. In one embodiment of the present invention, the on-line advertising management process _ 4 includes an interface that connects directly with a client's electronic commerce (e-commerce) extranet to provide reports regarding ROI and advertising campaign statistics. The system management function 310 implements features that provide centralized management of all system level resources. In one embodiment of the present invention, the on-line advertising management process 304 includes policy-based and fine-grained access control that gives customers high levels of security, reliability, and flexibility. Functionally, the on-line advertising management process 304 comprises a network of services that connects a client's (advertiser) back-end to the front-end image farm 320. The on-line advertising management process 304 captures client-defined back- end inventory events, analyzes the events, generates proper campaign configurations, and ultimately serves the banners to a web user based on dynamically configured targeting rules. On-Line Advertising Management Process Architecture Figure 4 is a block diagram that illustrates the components within the on-line advertising management process 304 of Figure 3, according to one embodiment of the present invention. In one embodiment of the present invention, the on-line advertising management process 400 features a federated system architecture that provides centralized management of all system level resources. The components comprising the on-line advertising management process comprise service modules that operate in a peer- to-peer, rather than strict client-server, model. These modules are synchronized and work together to perform the function of on-line advertising campaign management. The major components of the on-line advertising management process 400 communicate with each other through a reliable messaging subsystem that performs durable and guaranteed message delivery. In one embodiment of the present invention, XML (Extensible Markup Language) is used as the primary data and object encoding method for all inter- component communication. The on-line advertising management process 400 dynamically and adaptively refines an on-line ad campaign by analyzing events from various sources and using pre- defined campaign business rules to optimize campaign configurations. In general, two types of events are relevant to a campaign targeting; these are backend inventory events, and ROI events. These two types of events are constantly generated and input to the decision engines that comprise the on-line advertising management process. Based on predefined business rules provided by the client advertiser, an optimal campaign configuration is then generated and published to the ad serving objects as part of the fine targeting process. The campaign configuration normally specifies what banner ads to use and their weight values and clickthru URLs. In addition, a back-end inventory integration system provided by the on-line advertising management process 400 enables an advertiser to show inventory-related information in a banner dynamically, and thereby increases the effectiveness of an ad campaign. The on-line advertising management process 400 illustrated in Figure 4 comprises three main components, the client network 410, the campaign manager, 420, and the service objects component 430. Each of these components, in turn, comprises a number of interconnected and cooperative modules or processes. The components and subcomponents of on-line advertising management process 400 may reside on different server and/or client computers in a distributed or networked computer system. Client-Side Processes The client network component 410 represents a group of processes that reside on one or more computers maintained by a client, such as client 312 of Figure 3. In this case, client 312 desires to have one or more advertising banners displayed on a web page maintained by a vendor, such as vendor 316, and receive revenue data related to that advertising. Included in client network 410 are various event modules and campaign management processes, such as inventory event 402, order entry process 404, and campaign manager process 406. Collectively, these events and processes are referred to as "back-end" events or processes and represent client defined processes, parameters, or triggering events that control and manage advertising campaign management processes executed by the on-line advertising management process 304. Although the components and processes illustrated as comprising client network 410 may reside on one or more client computers 312, these modules constitute part of the on-line advertising management process provided by the on-line advertising management service that maintains on-line advertising management process 304. These modules function to make decisions based on events and campaign configuration data provided by the client network 410 and provide appropriate banner advertising information to the ad serving objects within the on-line advertising management process 400. Back-end inventory events 402 are objects that represent occurrences of inventory changes. The relevant inventory changes include inventory level changes, price changes, and the like. The inventory events are collected and encapsulated in a back-end event collector interface so that the implementation details of specific back-end integration tasks are hidden from the rest of the on-line advertising management process 400. Back-end order entry process 404 tracks and manages order entry and other transaction activities to provide real-time or near real-time updates of inventory levels to back-end inventory event object 402. Back-end campaign manager obj ect 406 includes processes that gather ROI events that represent results from the on-line advertising management process ROI analysis and reporting. The campaign manager object 406 allows the client 312 to specify how a campaign configuration should be changed based on results from the ROI analysis conducted for the campaign. This provides additional fine-tuning at a higher level and can help to increase the overall return on the campaign investment. The various modules and processes within the back-end may be implemented as legacy systems within the client network 410. One or more back-end adapters 408 are provided to interface these and other external applications and resources to the on-line advertising management process 304. For example, back-end adapters 408 may include a CORBA (Common Object Request Broker Architecture) adapter, or an Enterprise JavaBeans™ (EJB) adapter, JavaBeans is a trademark of Sun Microsystems, Inc. of Palo Alto, CA. The back-end adapters 408 may also include an SAP R/3 adapter for Enterprise Resource Planning (ERP) systems. It should be noted that several other adapters may also be provided in the client side to provide an open and cross-platform interface to various legacy systems that may be implemented and supported by client network 410. The back-end inventory event adapters 408 are objects that connect directly to an advertiser's back-end inventory system (e.g., a database or an ERP system) and extract inventory information related to a campaign. These adapters serve to hide the complexity and idiosyncrasy of different backend legacy systems from the rest of the on-line advertising management process. In one embodiment of the present invention, the back-end event collector interface 409 is responsible for various tasks, including: collecting any inventory changes (e.g., inventory level change, pricing changes, new items, etc), analyzing these changes and generating appropriate events with the proper format for the rest of the system, and sending the events across the Internet to the rest of the on-line advertising management process 400. When the back-end event collector 409 receives inventory changes, it creates the event objects relevant to the campaigns and sends them to the campaign manager component 420. With the advent of XML as the de facto standard for businesses to exchange business-critical data on the Internet, in one embodiment of the present invention, XML is used to encode all inventory events and rules. This allows any third party advertiser or ad agency to pass campaign data to the on-line advertising management process in a consistent and standard-based fashion. The back-end event collector also uses HTTP to pass through a client's firewall when sending these events to the back-end gateway 412. Thus, as illustrated in Figure 4, back-end event collector object 409 collects the various event and campaign management data provided by the event and management objects of client network 410 from back-end adapters 408. This data is then received by back-end gateway process 412 within campaign manager 420. The back-end gateway process 412 provides an interface for receiving and accepting messages transmitted over the Internet, or other computer network. Server-Side Processes Back-end gateway represents a gateway module for the server-side processes of on-line advertising management process 400. In one embodiment of the present invention, the back-end gateway 412 is implemented as a Java HTTP servlet that receives incoming XML objects embedded in HTTP requests from the client back-end event collector 409, and converts them into proper messages and publishes them to the on-line advertising management process network. A Java servlet is a program that runs inside a web server program and accepts web browser requests, performs additional processing based on the request, and sends back a response to the web browser via the web server. Since all incoming XML document objects are typically sent to the back-end gateway 412 through an HTTP post command, the string values of these objects are URL-encoded as parameter strings in the HTTP body, including publish subject, type and version, and so on. When the back-end gateway 412 receives a message, it extracts all relevant information from the HTTP request and publishes the message to various subscribers on the on-line advertising management process network. Since all messages used by the on-line event management process are typically in plain text encoded in XML, a high degree of flexibility is provided when transferring messages across firewalls and proxies. Campaign manager 420 represents a core portion of server-side processes of online advertising management process 400. Within campaign manager 420, the event and campaign management data is passed from back-end gateway 412 to the campaign event and rule processing layer 414. The campaign event and rule processing layer 414 includes a rule engine (or "decision engine") understands and uses incoming events to determine the advertising output data from the service objects layer 430. The rule engine accepts event information provided by the client, uses pre-defined rules to evaluate the events, and provides campaign management information in response to the events and rules to the ad serving objects 438. For example, if the inventory for product A falls below a certain level, thus representing an inventory event, the rule engine may cause an advertising banner for product A that is displayed on a vendor's website to be updated to indicate that only a certain number of items of product A remain. In one embodiment of the present invention, three main types of rules are defined by the client and processed by the campaign event and rule processing layer 414. These rule types include: inventory rules, ROI rules, and user targeting rules. In general, the online advertising management process allows an advertiser to define campaign business rules to fine-tune its campaigns. Inventory rules specify what campaign configuration to use in the event the level of an inventory item falls into certain range, or if the price falls certain range or below certain number, and so on. For instance, as described above, an inventory rule can specify that the weight of a particular banner be reduced when the inventory item for the banner represents drops below certain threshold; or the banner may simply be removed from the insertion in the vendor' s web page when the item is removed from the campaign. The inventory rules can also control what dynamic text to display in a banner to further enhance the focus of targeting. With these rules, an advertiser has a high degree of control with regard to the audience to target, and the frequency and types of advertising to provide to this audience. The ROI rules specify how a campaign configuration should be optimized based on the overall ROI analysis conducted on the campaign. This capability allows a campaign to be fine-tuned globally and adaptively, hence increasing its overall effectiveness. An example of an ROI rule would be to remove a banner from an insertion if the banner has produced too few clickthrus, or is otherwise deemed ineffective. Unlike inventory rules and ROI rules, the user-targeting rules are used directly by an ad-serving object that defines targeting rules at a "micro" level. For instance, a client can build a rule object that would result in showing a particular banner if the user (web surfer) is from a certain geographical location, or the user has entered a certain keyword search, for example. The on-line advertising management process 400 allows a client to configure any of these rules dynamically and enter them into the system graphically using the event and rule components residing on client network 410. Within campaign event and rule processing layer 414, a rule engine evaluates these rules based on incoming events. In one embodiment of the present invention, all rules are encapsulated in XML-encoded rule objects and their evaluation process is done in a fully object-oriented fashion. The entire rule evaluation process is done completely inside a rule object itself by the rule engine, making it possible to extend and enhance the rule engine easily without affecting the rest of the campaign targeting process. The campaign manager 420 performs the fundamental task of using campaign events (e.g., inventory events and ROI events) and pre-defined campaign business rules to create accurate and dynamic campaign targeting capabilities. The event processing part of the process is performed by an event processing server module within component 414. This module takes all input events and matches them with the corresponding rule objects. Based on the rules matched, it generates the proper campaign configuration updates and sends them to the distributed campaign management component 416. In general, when an inventory event arrives, the event processing server locates the corresponding rule object in its rule cache and evaluates the rule against the input event. Normally, a rule object is located by comparing the inventory item identification (ID) embedded in the event and the inventory item ID in each of the rules. Whenever a matching rule is found, the banner configuration update associated with the rule object is selected and passed along to configure the ad server. To ensure high-performance, the event processing manager caches most recently-used rule objects in its rule cache, subject to certain threshold. For a given campaign, if none of its rule objects has been used for a certain period of time, the whole campaign is discarded from the cache. If a rule object cannot be found in the cache when an event arrives, the server visits the database to retrieve all the rules for the corresponding campaign and store them back into the cache. Within campaign manager 420, a distributed campaign management layer 416 processes the event and rule data and transmits appropriate campaign information to modules within the service objects component 430 of on-line advertising management process 400. In one embodiment of the present invention, the campaign manager is responsible for taking the results obtained from event and rule processing component 414 and instructing various service modules in the service objects layer 430 to reconfigure a campaign. Whenever a new campaign configuration needs to be sent to the service objects layer 430, the campaign manager 420 ensures that different service modules in the service objects layer 430 are updated in a specific order. For example, campaign manager 420 verifies that an image overlay is performed before the information about the update is sent to the ad server. The campaign manager 420 coordinates this by contacting each service module synchronously. To ensure ultra-high performance and scalability, campaign manager 420 may use a pool of service object worker threads, each of which independently handles incoming requests for a specific set of campaigns and ensures proper orders of notification to the service object layer 430. In one embodiment of the present invention, the on-line advertising management process 400 uses a high-performance object caching and reuse technology to reduce system overhead associated with creating and garbage collecting objects. Frequently used objects such as XML message objects, banners, and the like, are cached in a locally provided pool and reused rather than re-created each time. In one embodiment of the present invention, the components within campaign manager layer 420 are interconnected using a publish and subscribe-based messaging layer. Because the on-line advertising management process consists of different service components, each communicating with the other to perform a specific set of tasks, a publish and subscribe-based messaging layer is used in order to support asynchronous messaging and service location transparency. This serves to generally hide the network topology of the service components. The publish and subscribe paradigm allows a message sender to publish messages onto a specific subject in the network object name space without having to determine whether the intended receivers are running or not. A subject here refers to a logical entity in the on-line advertising management process object name space that represents a "channel" to which relevant message subscribers can listen for messages of their interest. Subject-based naming also allows for application domain partitioning so that redundant service modules within the on-line advertising management process can be configured to provide better scalability and reliability. Further details regarding the publish and subscribe network implemented in the system of Figure 4 will be provided below. Service Objects Layer The service objects layer 430 represents the components that function to produce and display the advertising banner that is inserted into the web page provided by vendor 316. The information provided by the campaign manager 420 and other components with the on-line advertising management process 400 are used to produce, modify, and provide image data that comprises the graphical banner advertisement. A main component within service objects layer 430 is ad serving objects module 438. For the embodiment illustrated in Figure 4 it is assumed that a person on a client computer uses a web browser to access web pages served by vendor 316. The ad banners are inserted into the web pages by the service objects layer 430 of the on-line advertising management process 400. In one embodiment of the present invention, the ad serving objects 438 are self- contained programs that run independently and redirect data from campaign manager 420 to either an image farm 434 or directly to the vendor's web page. The ad serving object 438 functions to return banner ads (in the form of GIF, JPEG, Java Applets, etc.) to a web browser by redirecting it to an image farm 434. It also redirects a browser to the client advertiser's site if the banner is selected and provides a valid URL (uniform resource locator) link. Ad serving obj ects 438 may be implemented as a plug-in to web server 318 in vendor 316. Thus, when the advertising banner is selected, ad serving object 438 redirects the web browser to the image farm 434. The ad serving object 438 also captures the HTTP request. In certain instances the request may carry targeting information, such as area code, zip code, or other such information for the web browser that is extracted from the URL of the referring web browser. This information can then be matched against targeting rules provided by campaign manager 420. In certain implementations, the entire campaign configuration of an ad server is described in XML documents and can be sent to configure an ad server through HTTP, making it possible for remote configuration. For each campaign ad placement, the on- line advertising management process defines what banners are included and the weight for each of the banners and their clickthru URLs, and so on. Ad server obj ect 438 also hosts the user targeting rules instructed by the campaign manager 416. The targeting rules are used to better match an Internet user to a banner ad that he or she would be interested in. In one embodiment of the present invention, ad server object 438 contains a "decision tree" that allows the display of different banner ads based on descriptive information provided as part of an HTTP get request. The decision tree is a set of lightweight rules defined for a specific Internet site showing the banner ads. All rules of that Internet site are checked to see which rule or rules apply to the viewing user. Each rule defines a banner ad to display, or clickthru destination to redirect the user's web browser if he clicks on the banner. The banner ad or clickthru with the most matching rules wins and is used. Whereas the inventory rules processed in campaign event and rule processing unit 414 generally dictate what kind of banner, with regard to content and frequency, is displayed on the vendor website in response to inventory (or similar events), the targeting rules generally dictate what kind of banner is displayed in response to web browser location information coded in or provided by the URL of the web browser. Alternatively, if any key words or search preferences are indicated by the web browser user, the targeting rules may be used to modify the banner content and targeting rules accordingly. For example, if a user types in a particular search request in a web search engine, the key words in the search request may be used to serve certain related banners to the vendor's web page. As an example of the targeting rules processed by campaign event and rule processing unit 414, if the URL or location indicator for the web browser that is accessing the vendor's web page corresponds to or indicates a particular area code (e.g., San Francisco), this information can be used by the campaign manager 420 to serve a particular banner related to retail availability of the advertised product in San Francisco stores. Likewise, if the user performs a web search for a particular product, this information can be used to modify the banner being served to relate to or focus on that particular product. Variations of this dynamic banner serving system can be used to powerfully and flexibly manage various types of ad campaigns. For example, a ticket merchant advertising music or sports events on the Internet can use the system to effectively manage a campaign by tracking location and interest information obtained about the Internet users. If a user accesses the vendor web page from San Francisco, and indicates, by way of search requests and the like, an interest in Jazz music, the merchant can serve banners offering tickets for upcoming Jazz concerts at San Francisco Bay Area venues. In one embodiment, the ad serving components 438 also provides a feature that allows each ad server's entire configuration to be cloned by another ad server. Thus adding a new ad server or recovering a corrupted ad server requires only that it be cloned to another healthy ad server. The service objects layer 430 also may also include a GIF overlay server. As part of the fine-targeting capability of the on-line advertising management process, an inventory rule can specify that a dynamic text be overlaid onto a banner that would reflect certain inventory events. During the process of a campaign, if an inventory event matches the given rule that specifies an overlay text, the campaign manager visits the GIF overlay server to perform the overlay processing. The overlaid banner is then distributed to the image farm 434 to be served. Figure 6 illustrates the insertion of a client's banner advertisement into a vendor's web page. In Figure 6, web page 600 represents a web browser page displayed by web server 318 by vendor 316. Web browser page 600 includes several different fields such as navigation button field 602, net address field 604, and even fields for various information categories 606, and news 608. Within the web browser page 600, the client's advertising banner 610 is inserted and displayed. In one embodiment of the present invention, the banner ad 610 is an HTML or XML object that provides a graphical display or message relating to the product or service being advertised. The banner ad 610 also provides a selectable link that provides access over the web to a web site hosted by the client or other third party. In one embodiment of the present invention, ad banner 610 is produced and inserted into web page 600 by image farm 434 within the service obj ects layer 430 of Figure 4. In one embodiment of the present invention, components within the service objects layer 430 may reside on a server computer that also includes the campaign manager layer 420. Alternatively, the one or more of the components within the service objects layer 430 may reside on one or more distributed computers that are coupled via a network to the server computer that executes the campaign manager layer 420. Other components within the on-line advertising management process 400 illustrated in Figure 4 include campaign configuration graphical user interface (GUT) component 422, system management and reporting component 424, and ROI analysis and reporting component 426. These components may reside on the server computer that executes the campaign manager layer 420, or they may reside on one or more computers that are accessible to the campaign manager server computer. In one embodiment of the present invention, ROI reporting engine 426 functions to dynamically generate campaign statistics that summarize campaign results by categories such as user-targeting data (e.g., zip code, area code, etc.), inventory changes, websites, and date and time of accesses, and other like information. A client advertiser's campaign manager or other personnel can review these reports to determine how effective a particular campaign has been. In addition to generating reports, the ROI reporting engine 426 also uses the ROI rules mentioned above and generates ROI events that are fed back into the client network 410 through a fine-targeting loop for further optimization. This serves to make the entire campaign targeting process a dynamic and evolving process. The campaign configuration GUI 422 comprises an interface to client network 410 that provides an in-house management system to allows client configuration of the rules and the content and appearance of the advertising banner. Using the GUI interface, the client can alter the rules and other parameters affecting the ad campaign. System management and monitoring module 424 encapsulates various management and utility programs utilized by the on-line advertisement management process 400. A database 436 within the service objects layer 430 serves to store all of the pertinent data relating to the client and the advertising campaign. Such data includes campaign rules, event data, vendor information data, and any other relevant data that may be used to conduct an ad campaign. The ROI reporting engine 426 reads log data and statistics from the database 436 and generates the reports for the client. Network Implementation As described above, in one embodiment of the present invention, the on-line advertising management process comprises a network federation of services, each providing a specific set of functionality and the services. To provide reliability and scalability, a publish and subscribe-based messaging layer is used to connect various service components within the on-line advertising management process. The publish and subscribe paradigm allows a message sender to publish messages to a specific subject in the network object name space without having to determine whether the intended receivers are running or not. This network messaging layer also features guaranteed message delivery and fault tolerance. In a publish and subscribe network, a message sender publishes an event with a subject, and receivers who subscribe to the subject receive the asynchronous event. In publish and subscribe communication, the message sender does not explicitly specify the address of the receiver, as occurs in traditional request/response programming using stream sockets (TCP) and remote procedure calls, in which an application program synchronously waits for a return from an I/O call. In one embodiment of the present invention, the publish/subscribe network supported by the on-line advertising management process is a loosely-coupled publish/subscribe network in which the event that is published by the server has embedded data in it. Subscribers who are interested in the subject of the event receive the event and parse the embedded data. In this system, there is generally no shared data among the bus members. In an alternative embodiment of the present invention, the publish/subscribe network is a tightly-coupled publish/subscribe network in which the event contains data that is shared among bus members. For this configuration, an application dependent component, referred to as an adapter, transforms modified portions of the data into distributable events. In the system illustrated in Figure 5, client back-end process 502 is coupled to the publish and subscribe network layer 504 of the on-line advertising management process. The publish and subscribe network layer 504 interconnects the campaign event processing layer 506 and the campaign management layer 508, as well as the other components of the campaign manager component 420 illustrated in Figure 4. These components are then coupled to web farm 514 and database 512 through other network interfaces. For the embodiment illustrated in Figure 5, the on-line advertising management process uses a subject-based hierarchical name space that partition the campaign management and system management tasks into different smaller name spaces and provides a high level of system scalability and flexibility. The publish and subscribe messaging paradigm also offers location transparency for system wide resources. Subscribers that represent different parts of the system can simply register their interest to a subject in the on-line advertising management process name space without the message publisher's knowledge. They can asynchronously receive messages with guaranteed delivery, and join or leave the network anytime without affecting other parts of the network. The following discussion will describe the implementation of the on-line advertising management process in the context of a specific example of a publish and subscribe network configuration. Some of these subsystems within the process reside physically inside the on-line advertising management service data centers, while others reside at outside vendors' networks. For example, a fine-targeting banner serving object running inside an ISP's (Internet Service Provider) network may constantly listen for secured events from the on-line advertising management process about an airline company's booking inventory level changes for its campaign promotion. Upon receiving the events, the object intelligently changes banner rotations according to a redefined set of business rules. On the other side the network, an inventory listener object, acting as a publisher, constantly gathers events from the airline booking system and publishes them to the network. The distributed and asynchronous nature of the on-line advertising management process relies on a middleware messaging layer that is reliable, scaleable, and secure. This message bus should not only offer guaranteed message delivery but also enable message receiver location transparency and application domain partitioning. In one embodiment, of the present invention, the publish and subscribe network 504 hosts a name space that logically partitions the on-line campaign management and system management into different subjects of interest. This network provides services that allow the participants of the network to either publish messages onto the network with respect to a subject or subscribes to a subject and therefore receive all messages about the subject. When a subscriber registers subscription to a subject in the network, a filter can be specified that governs the way messages get delivered to the subscriber. For example, a filter can specify that messages are delivered only at a specific date and time. In one embodiment, the on-line advertising management process uses subject- based naming scheme for all subjects managed by the network. A subject is a logical entity in the network that represents a resource. Examples of subjects include clients, vendors, servers, campaigns, rotations, system logger, and so on. Each subject has a name associated with it, and can have multiple child subjects underneath it, which form a tree-like hierarchy. These child subjects can have their child subjects, and so on. The names of all subjects form the on-line advertising management process publish and subscribe name space. The root subject of the name space is implicit, and doesn't have a name. A subject can be located in the name space by it distinguished name (or absolute name). The string representation of this name is specified by concatenating the names of the subject's ancestors and its own name, separated by a dot ".". For example, "management_service.sfo.webfarm" is a distinguished name for the management service's San Francisco webfarm, where "management_service" and "sfo" are its ancestor subjects and "webfarm" is its own name. Various wildcards can also be used to refer to multiple names. The subject-based naming scheme allows the name space to be partitioned into different sub-domains and enables subscribers to selectively register interest to subjects with high level of granularity. Anytime when a participant (either a publisher or subscriber) wants to receive services from the on-line advertising management process, it has to register itself with the network. This service registration involves participant authentication using either a user name/password or digital certificates (X.509). The security information such as the participant's public key will also be used in SSL for secured data transmission. Participants that publish messages onto the network are regarded as publishers, and they always specify the subjects that the messages are related to. If there are any subscribers interested in the subject, they receive the messages. Since the subject subscriptions are totally transparent to the publishers, the on-line advertising management process enables one-to-many or many-to-many communication with the ultimate level of flexibility. Subscribers are those participants who express interests in receiving messages for certain subjects by submitting subscriptions to the network (subject to security and authentication checks). As an option, the on-line advertising management process publish and subscriber network can guarantee message delivery for a subscriber, even if the subscriber is temporarily not reachable, or the network goes down after the message is published. The on-line advertising management process is managed and controlled by a publish and subscribe server (or multiple server instances forming a server cluster for better scalability). The server manages the following activities: managing and maintaining the name space to make sure that they retain their constancy; authenticating and authorizing requests from participants; queuing of messages and making guaranteed message deliveries; and performing operations to handle the requests. The requests include: service login, add/delete subjects, subscribe/de-subscribe to subjects, publish messages, and so on. When a message is published onto the network for a particular subject, the server locates the subject on the name space and retrieves all of the subscriptions associated with it. The server then tries to deliver the message to each of the corresponding subscribers. In general, the on-line advertising management process' publish and subscribe network can provide guaranteed message delivery when a subscriber requests it. In this service mode, the message published to the network are considered durable since they survive system crashes and network failures. Messages are also delivered exactly once. It should be noted however, that guaranteed message delivery may incur some level of performance penalty since the server needs to log every message it receives into persistent storage to make them durable. For services that do not require guaranteed message delivery, faster message delivery typically results. Although the embodiments of the present invention illustrated in Figures 3 and 4 were described in relation to an implementation that utilizes an Internet network and various Internet-specific technologies, it should be noted that alternative embodiments of the present invention may utilize other types of network technologies. For example, the networks coupling on-line advertising management process 304 to client 312 and vendor 316 in the on-line advertising management system of Figure 3 may be implemented as any type of computer network, such as a private LAN (local area network), WAN (wide area network), intranet, or any combination thereof that connects two or more computers together. Likewise, for the embodiment of the present invention in which the network utilized in Figure 3 is the Internet, the client processes are typically implemented as web server or web browser programs. Alternatively, however, these client processes can be implemented as proprietary or dedicated software programs that communicate over a public or private computer network that couples the on-line advertising management process 304 to the client 312 and vendor 316. In the foregoing, a system has been described for deploying and managing on- line advertising campaigns. Although the present invention has been described with reference to specific exemplary embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention as set forth in the claims. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.

Claims: CLAIMS What is claimed is: 1. A system for managing an on-line advertising campaign, the system comprising: an event generating module residing on a first client computer; a rule storage module residing on a server computer coupled to the first client computer; an event and rule processing module residing on the server computer and coupled to the event generating module and rule storage module; and a banner serving module coupled to the event and rule processing module, and configured to display an advertising banner on a second client computer. 2. The system of claim 2 wherein the banner serving module is configured to create or modify contents of the advertising banner in response to output provided by the event and rule processing module. 3. The system of claim 3 further comprising a return on investment reporting module coupled to the event and rule processing module and configured to compile information related to display and access information of the banner by a user and to return this information to the first client computer. 4. The system of claim 3 further comprising an image server coupled to the server computer for storing one or more graphic images comprising the advertising banner, and operable to transmit the one or more graphic images to a vendor computer in response to instructions provided by the server computer. 5. A method for managing an on-line advertising campaign, the method comprising the steps of: generating a set of events relating to a product to be advertised on a computer network; defining a set of business rules relating a characteristic of the advertisement to one or more events of the set of events; processing the set of events with the set of rules to modify the characteristic of the advertisement in response to a change in one or more events of the set of events. 6. The method of claim 5 wherein the characteristic of the advertisement comprises a graphical content of the advertisement. 7. The method of claim 5 wherein the characteristic of the advertisement comprises a frequency of display of the advertisement. 8. The method of claim 5 wherein the characteristic of the advertisement comprises a geographical targeting for the display of the advertisement. 9. The method of claim 8 wherein the business rules include an inventory level associated with the product 10. The method of claim 8 wherein the business rules include a targeting rule associated with the location of a user viewing the advertisement.

Inventors: HAEFEKER WALTER, JIANG BARCLAY RUIQING, JOSEPH MARK K, REKOUTS GEORGE, HAEFEKER, WALTER, JIANG, BARCLAY, RUIQING, JOSEPH, MARK, K., REKOUTS, GEORGE
Applicants: MEDIAPLEX INC, MEDIAPLEX, INC.
Application year: 2000
Main classification: G06F17
IPC codes: G06Q10, G06Q30, G06Q50