The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, and so forth, which perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in local and/or remote computer storage media including memory storage devices.
With reference to
The computer system 100 may include a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by the computer system 100 and includes both volatile and nonvolatile media. For example, computer-readable media may include volatile and nonvolatile computer storage media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by the computer system 100. Communication media may include computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. For instance, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
The system memory 104 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 106 and random access memory (RAM) 110. A basic input/output system 108 (BIOS), containing the basic routines that help to transfer information between elements within computer system 100, such as during start-up, is typically stored in ROM 106. Additionally, RAM 110 may contain operating system 112, application programs 114, other executable code 116 and program data 118. RAM 110 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by CPU 102.
The computer system 100 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media, discussed above and illustrated in
The computer system 100 may operate in a networked environment using a network 136 to one or more remote computers, such as a remote computer 146. The remote computer 146 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer system 100. The network 136 depicted in
The present invention is generally directed towards a system and method for optimizing online advertisement auctions by applying linear programming using special ordered sets. A linear programming model using special ordered sets of bid levels for web page placements of advertisements may be created offline for advertising campaigns. The model may include the estimated cost and revenue of an expected number of impressions occurring for a period in order to optimize bids in online advertising auctions. An expected number of impressions of advertisements for alternative bid levels may be used to generate special ordered sets of bid levels for web page placements of advertising campaigns. As used herein, a web page placement may mean a location on a web page designated for placing an advertisement for display. A web page placement may also include additional information such as a target group of visitors to be shown the advertisement.
Linear programming may then be applied to determine optimal bid values. Branching and cutting techniques may also be applied to the special ordered sets of bid values to rapidly obtain an optimal bid value for each special ordered set. As will be seen, advertising campaigns may be updated with the optimal bid values for bidding in an online advertising auction. As will be understood, the various block diagrams, flow charts and scenarios described herein are only examples, and there are many other scenarios to which the present invention will apply.
Turning to
In various embodiments, a client computer 202 may be operably coupled to one or more servers 208 by a network 206. The client computer 202 may be a computer such as computer system 100 of
The server 208 may be any type of computer system or computing device such as computer system 100 of
The server 208 may be operably coupled to a database of information about advertising campaigns such as storage 216 that may include a campaign ID 218 that may be associated with a bid amount 220 for an advertisement referenced by advertisement ID 222 to be displayed according to the web page placement 224. The web page placement 224 may include a Uniform Resource Locator (URL) 226 for a web page, a position 228 for displaying an advertisement on the web page, and a target ID 230 for referencing a target or group of visitors that may be defined by a profile of characteristics that may match a visitor of the web page. In various embodiments, a target may be defined by demographic information including gender, age, or surfing behavior. Any type of advertisements 232 may be associated with an advertisement ID 222. Each campaign may have multiple campaign IDs 218 representing several bid amounts for various web page placements and the bid amounts for a campaign may be optimized using the linear programming model.
There may be many applications which may use the present invention for optimizing online advertisement auctions using special ordered sets. For example, online advertising applications may use the present invention to optimize bids for auctioning advertisement placement subject to bidders' budget constraints. Or online advertising applications may use the present invention to optimize bids for classes of advertisements to be shown to classes of users. For any of these applications, advertisement auctions may be optimized using special ordered sets to increase revenue of the auctioneer.
There may be a bid amount associated with each web page placement i for a given campaign. In an embodiment, consider j=1, . . . , Ni to define bid levels where each bid level may represent a bid amount for each web page placement for a campaign. A linear programming model may be created for determining bid amounts as further described below.
At step 402, an expected number of impressions of advertisements may be obtained for each web page placement of an advertisement for each campaign for a specific time period. For example, the number of impressions of advertisements for each web page placement for each campaign shown during a previously occurring day may be obtained and the cost and revenue for those impressions may be obtained. The number of impression may be defined as Pij, representing the number of impressions of a web page placement i and bid level j. At step 404, the cost and revenue of the impressions of advertisements may be obtained for each web page placement for each campaign for the specific time period. For instance, the cost and revenue of the impressions of advertisements for each web page placement for each campaign shown during a previously occurring day may be obtained. The cost may be defined as CPCk representing the cost per click for advertising campaign k. The revenue may be defined as AVij representing the advertisement value for web page placement i and bid level j.
Once the cost and revenue of the impressions of advertisements may be obtained for each web page placement for each campaign for a time period, the remaining budget of each campaign for web page placements of advertisements may be calculated for the time period at step 406. In an embodiment, a proportional budget may be calculated for each campaign by scaling a known budget over a period of time, such as scaling a monthly budget over a period of 24 hours. Furthermore, calculating a proportional budget may include adjusting a scaled amount by subtracting accrued spending for a given time period.
At step 408, an estimated click-through-rate may be determined for web page placements of advertisements. For a web page placement i of an advertising campaign k, consider CTRik to denote the expected click-through-rate (“CTR”). At step 410, an expected number of impressions of advertisements for alternate bid levels may be estimated for web page placements for each campaign. At step 412, special order sets of web page placements of advertisements, defined as δij, may be determined for a web page placement i and a bid level j.
In general, the data collected in steps 402 through 412 may be stored for use by the linear programming analysis engine to apply linear programming using special ordered sets to determine a bid level for web page placement of advertisements to provide optimal revenue for each campaign. At step 414, linear programming using special ordered sets may be applied to determine the bid level for web page placements of advertisements for each campaign to provide optimal revenue to an auctioneer for a time period. In various embodiments, the data collected for the linear programming model may be for any length of period including fifteen minutes, thirty minutes, a period of a day and so forth.
and the number of impressions may be defined as
Linear programming using special order sets may be used to determine the bid level for web page placements of advertisements for each campaign so that advertisement values may be maximized to provide optimal revenue. For special order
sets defined as a budget defined as
and the cost per click for a advertising
campaign defined as the bid level for web page placements of advertisements for each
campaign may be determined by maximizing
In one embodiment, using conventional special ordered sets of type 1 (See J. J. H. Forrest and J. A. Tomlin, “Branch and Bound, Integer and Non-integer Programming”, IBM Research Report RC 22890, Sep. 2, 2003), ordered sets of bid levels for advertisements may be generated for web page placements for each campaign at step 502, and the corresponding linear program may be solved at step 504. At step 506 branching and cutting may be applied to the special ordered sets. Since the special ordered set variables may have a value of zero or one, integer cutting plane techniques together with branch and bound may be applied for the special ordered sets, and solutions may be rapidly obtained. After applying branching and cutting techniques, optimal bid values may be chosen at step 508 for each web page placement for each campaign. In another embodiment, special ordered sets of type 2 (see above reference) may be used. Special ordered sets of type 2 may allow as many as two members of the set to be non-zero, but if there are two such non-zeros, they must be adjacent. In the present context, this may allow the advertisement values and number of impressions to take on values interpolated between the bid values. This may not require any changes to the model formulation, but may allow greater flexibility in the solution. Branching and cutting techniques may also be applied in this embodiment to reach a valid solution. Accordingly, the term “special ordered sets” as used herein may mean either type 1 or type 2 special ordered sets.
Thus, the present invention may use advertising campaign information for auctioned web page placements to optimize bids for online advertising auctions. Forecast data including expected number of impressions, expected cost, expected revenue, estimated click-through rates, and estimated campaign budget remaining, may be used with a predicted number of impressions of advertisements for alternative bid levels to generate special ordered sets of bid levels for web page placements of advertising campaigns. By applying linear programming using special ordered sets to optimize bid levels for web page placements of advertisements for an advertising campaign, an auctioneer's revenue may be optimized. The present invention may also be used to maximize other objectives of an auctioneer, including maximizing the number of impressions for a particular web property, maximize the number of impressions for particular campaigns, and so forth.
As can be seen from the foregoing detailed description, the present invention provides an improved system and method for optimizing online advertising auctions provided by applying linear programming using special ordered sets. Such a system and method may efficiently determine optimal bids in online advertising auctions to optimize revenue of an auctioneer. The system and method may also apply broadly to online advertising applications, for example, to optimize bids for classes of advertisements to be shown to classes of users. As a result, the system and method provide significant advantages and benefits needed in contemporary computing and in online applications.
While the invention is susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof are shown in the drawings and have been described above in detail. It should be understood, however, that there is no intention to limit the invention to the specific forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the invention.