The Internet has emerged as a powerful advertising tool. It is commonplace to see advertisements on many web sites. For example, advertisements may be displayed on search web sites and may be targeted to individuals based upon search terms provided by the individuals. Other web sites, such as news and sports web sites, may provide space for advertisements. The owners of these web sites may sell advertising space to advertisers to offset the costs associated with operating the web sites as well as to turn a profit.
To place an advertisement, an advertiser may enter into a contract with a publisher that operates an ad serving system to serve a number of advertisement impressions. An impression corresponds to the display of an advertisement to a user. For example, the advertiser may purchase 10,000 impressions for $100 and may specify a particular target audience, such as users that like sports. The easiest way for the publisher to satisfy this contract is to serve the advertisements to webpages more likely to be visited by the target audience, which for this example might include sports webpages. Publishers sometimes refer to the supply of users visiting such webpages as a premium inventory of opportunities. Each opportunity represents a user visiting the webpage. The opportunities are premium because they correspond to users visiting a webpage with a defined target audience. The contract will not be satisfied until the publisher serves the 10,000 impressions. Thus, this type of contract is considered a guaranteed contract because the advertiser is guaranteed that his advertisement will be shown 10,000 times.
In other instances, an advertiser may enter into a contract with a publisher whereby the advertiser specifies a performance objective, such as payment of a money amount each time a user clicks on an advertisement, or each time a click of the advertisement results in a conversion. However, a publisher cannot guarantee that a user will ever click or that a click will result into an eventual conversion. Thus, this type of contract is considered a non-guaranteed contract.
Each of the contracting methods described above requires a different ad serving system that is configured to serve advertisements according to the contract specifications. One problem with these systems is that neither allows an advertiser to specify both a desired number of impressions and performance objectives. The reason for this is that the systems compete against each other for the same opportunities. Another problem is that the supply of premium inventory tends to be consumed by guaranteed contracts as the impressions contracted for in the contracts must be delivered. Therefore, the non-guaranteed contracts may, more often than not, be served to webpages where it is less likely a user may click.
The embodiments below describe an exemplary embodiment of a system for booking and serving advertisements. The system enables advertisers to specify a desired number of impressions and objective information associated with an advertisement, which results in a contract with a guaranteed component and a non-guaranteed component. In other words, the system enables advertisers to book a guaranteed contract to ensure access to premium inventory, and the advertiser may additionally specify a performance premium for the specific performance objective in which the advertiser is interested.
The system includes an optimizer that generates a plan for matching opportunities to advertiser contracts. The plan is communicated to an ad server that is configured to match contracts to opportunities according to the plan. The optimizer generates the plan based on a forecasted supply of opportunities, a forecasted supply of guaranteed contracts, a forecasted supply of non-guaranteed contracts, and an objective function that balances a group of parameters that define the representativeness of contracts, a cost associated with not serving non-guaranteed contracts, and performance objectives associated with contracts.
The AAS 105, ad server 115, and optimizer 120 may correspond to an Intel®, AMD®, or PowerPC® based computer or a different computer. The AAS 105, ad server 115, and optimizer 120 may include an operating system, such as a Microsoft Windows®, Linux, or other Unix® based operating system. The AAS 105, ad server 115, and optimizer 120 may be configured to communicate with other computers via an interface, such as a network interface.
The advertisement admission system (AAS) 105 includes code, logic, and/or other circuitry that enables advertisers 170 to enter into a contract with an advertisement network operator that operates the system 100 for the delivery of web-based advertisements. In some instances, the advertisement network operator may also correspond to a web site publisher that publishes webpages upon which advertisements are shown. The AAS 105 may communicate a webpage to the advertiser 170 that enables the advertiser 170 to open an account with the publisher and provide information for setting up an advertisement campaign. The webpage may enable the advertiser 170 to upload an advertisement creative, such as the graphics of an advertisement. The webpage may also enable the advertiser 170 to specify advertisement information that defines the circumstances under which an advertisement is to be communicated to an opportunity (i.e., a user). The information above is stored to a contract database 110.
The webpage 200 may include fields 208 for specifying a desired number of impressions to be delivered to opportunities that match a specified target audience, and a total advertisement budget the advertiser 170 is willing to spend.
The webpage may include a seed user list field 210 that enables an advertiser 170 to upload a list of users that typify the type of audience the advertiser 170 is interested in. In some instances, information about each user in the seed user list 210 may have been previously stored in the system. The previously stored information may include behavioral, demographic, geographic, or other information that defines the user. The information may include statistical information about the frequency with which the user clicks on advertisements and the type of advertisements clicked. Other information about the user may be stored.
The webpage 200 may include objective fields 215 that enable an advertiser 170 to specify a money amount the advertiser 170 will pay for a user event, such as a user-click associate with an advertisement or an acquisition/conversion, which occurs when a user click results in a purchase or other action associated with the advertisement.
The information specified by the advertiser 170 is utilized to generate a contract between the advertiser 170 and the publisher operating the system 100. The contract has both a guaranteed component and a non guaranteed component. The guaranteed component corresponds to the number of impressions to be delivered to the target audience. The non-guaranteed component corresponds to the performance objectives for clicks and/or conversions of the advertisement. Thus, the webpage 200 enables the advertiser 170 to book a guaranteed contract to ensure access to premium inventory, and the advertiser 170 may additionally specify a performance premium for the specific performance objective in which the advertiser 170 is interested.
Returning to
The ad serving plan 165 defines statistical information that controls the way in which the ad server 175 matches contracts to opportunities. For example, the ad serving plan 165 may instruct the ad server 115 to match contracts that specify a user similarity list to similar opportunities 20% of the time. The ad serving plan 165 may instruct the ad server 115 to match contracts specifying performance objectives to high-clicker opportunities (opportunities likely to produce a click) 10% of the time. The ad serving plan 165 may instruct the ad server 115 to increase the representativeness of the matches. The ad serving plan 165 may specify additional instructions and/or various combinations of the instructions described above.
The admission plan 160 provides instructions to the AAS 105 regarding available inventory and an amount to charge for the inventory. For example, the admission plan 165 may specify an amount of impression inventory available that targets a particular target audience. The admission plan 165 may also specify an amount to charge for impressions purchased from the available inventory. The AAS 105 may communicate the number of available impressions and the purchase price for the impressions to an advertiser 170 during ad submission.
At block 305, the optimizer 120 analyzes guaranteed demand forecast data 150 that predicts the demand for available impression inventory from guaranteed contracts. The guaranteed demand forecast data 150 may define guaranteed contracts that were booked at some previous time, such as contracts booked on a particular day and at a particular time. Targeting information for each contract may also be defined by the guaranteed demand forecast data 150. The guaranteed demand forecast data 150 may be thought of as pools or sets of contracts where each pool represents contracts that share certain targeting characteristics. A given contract may belong to more than one pool.
At block 310, the optimizer 120 analyzes non-guaranteed demand forecast data 155 that predicts the demand associated with non-guaranteed contracts. The non-guaranteed demand forecast data 155 may define non-guaranteed contracts that were booked at some previous time, such as contracts booked on a particular day and at a particular time. Targeting information for each contract and a cost-per-click or conversion specified in the contract may also be defined by the non-guaranteed demand forecast data 155. The non-guaranteed demand forecast data 155 may be thought of as pools or sets of contracts where each pool represents contracts that share certain targeting characteristics. A given contract may belong to more than one pool.
At block 315, the optimizer 120 generates an ad serving plan 165 with instructions for matching contracts to opportunities. The optimizer 120 matches the supply to the demand using an objective function that balances several factors to produces an optimal ad serving plan 165. In one implementation, the objective function may be expressed as:
Objective function=alpha*(Representative allocation of GD delivery)+beta*(Opportunity cost of NGD)+gamma*(Performance)+delta*(User-similarity metric)
where alpha 125 (
The first factor, alpha 125, operates to control the representativeness of guaranteed contract allocation in the ad serving plan 165. For a given contract, an increased representativeness results in that contract being matched to a broader spectrum of opportunities. For example, a guaranteed contract may indicate that an advertisement is to be shown 10,000 times to a target audience consisting of males. No other targeting information may be provided. In a non-representative allocation, the advertisement may, for example, be shown to males that live in the same city or that share the same hobby and/or other defining characteristics. In a highly representative allocation, the advertisement may be shown to any male opportunities. The allocation is more representative because the defining characteristics of these males may vary significantly. For example, the geographic locations, hobbies, ages, and other characteristics, to name a few, may vary.
The second factor, beta 130, operates to control the cost associated with not serving a non-guaranteed contract to an opportunity that has an expected return in the ad serving plan. In some instances, a publisher may be able to identify users likely to click on an advertisement. Serving an advertisement from a guaranteed contract to such an opportunity rather than an advertisement associated with a non-guaranteed contract represents a lost opportunity to satisfy the non-guaranteed contract because, potentially, the advertisement from the guaranteed contract could have been served to a different opportunity not as likely to produce a click or conversion. In other words, serving the advertisement from the non-guaranteed contract may have resulted in a click and, therefore, a money amount being paid to the publisher for providing the click. The second term represents this tradeoff in the objective function. Increasing the second factor may result in a plan that matches more non-guaranteed contracts to opportunities determined to be more likely to produce a click or a conversion.
The third factor, gamma 135, operates to control the probability that a contract with performance objectives is matched to an opportunity likely to produce a click or a conversion rather than a different opportunity that otherwise meets the targeting requirements associated with the contract. The objectives correspond to money amounts specified in contracts for user events, such as clicks or conversions.
The fourth factor, delta 140, operates to control the probability of matching contracts that specify a seed user list to opportunities that match the users in the seed user list rather than a different opportunity that otherwise meets the targeting requirements associated with the contract. Opportunities match users in the seed user list when characteristics associated with the opportunity (e.g., gender, geographic location, hobbies) match characteristics associated with users in the in the seed user list. The characteristics associated with the users in the seed user list may have been previously determined by the system.
The weights described above enable tuning the objective function to emphasize different factors in the ad serving plan 165. The publisher may periodically adjust the weights to change the ad serving plan 165. For example, the publisher may find that performance objectives of the contracts are not being met with sufficient frequency. To rectify this, the publisher may adjust the weight associated with the third factor to generate an ad serving plan 165 that places more emphasis on meeting the objectives specified in the contracts.
At block 320, the ad serving plan 165 is communicated to the ad server 115. The ad server 115 then matches advertisements to opportunities according to the ad serving plan 165.
Returning to
The ad server 115 may include a prediction module 115a that provides estimates of the probability of a user event of interest, such as a click or a conversion, using as much information as is available during the ad serving time. For example, the information may include attributes associated with the user, such as the web browsing history of the user, the demographics of the user, and the geographic location of the user. In addition, the information may include the context in which the ad serving is to occur. For example, the information may include data that defines the content of the page, the time of day and day of week of ad serving, meta-data about the ad itself, including, for example, the category of the ad, the text and image attributes of the ad, attributes of the advertiser, and of the advertisement campaign.
In one implementation, the prediction module 115a is configured to implement machine learning models trained on historical information that define user behaviors related to viewing certain types of advertisements, and also clicks and conversions associated with users. These machine learning models may be represented by different model structures, such as decision trees including ordinary and boosted trees, different types of regressions (linear, logistic, Poisson etc.) trained with or without constraints on the magnitude and sign of the weights, support vector machines, online learning models configured to learn the parameters of the models in real time using explore/exploit schemes, or a different model structure.
At block 405, non-guaranteed demand information for the opportunity 180 may be determined. The non-guaranteed demand information may be communicated from the advertisement exchange 175 and may include information such as the current bid amount for the opportunity 180 and the number of bids being placed on the opportunity 180.
At block 410, the prediction module 115a of the ad server 115 predicts a user response to advertisements associated with contracts in the contract database 110. For example, the prediction module 115a may generate a score for each contract in the contract database 110. The score may represent the likelihood that a user associated with the opportunity 180 will click on the advertisement associated with the contract.
At block 415, the ad server 115 determines whether the opportunity 180 matches any users specified in a seed user list provided in the contracts stored in the contract database 110. A score may be generated for each contract in the contract database 110. The score may represent how close of a match the opportunity 180 is to users in the seed user list.
At block 420, the ad server 115 matches an advertisement to an opportunity 180 communicated from the advertisement exchange 175. The ad server 115 also determines a bid to be associated with the advertisement. Determination of an advertisement to select is based on information in the ad serving plan 165 communicated from the optimizer 120. For example, the ad serving plan 165 may define a more representative allocation of contracts to opportunities. In this case, the ad server 115 may select a contract related to the opportunity 180 that has not been previously served to the same opportunity 180. In other words, the ad server 115 may select contracts so that the impressions requested in the contracts are distributed among a more diverse set of opportunities, such as opportunities that match the target information of the contract, but are from different geographic regions.
Where the ad serving plan 165 defines an allocation for minimizing the lost opportunity cost associated with not serving a non-guaranteed contract, the ad server may select a related advertisement, but specify a lower bid amount to increase the chances of a non-guaranteed contract being matched to an opportunity 180.
Where the ad serving plan 165 defines an allocation for maximizing the performance objectives of the guaranteed contracts, the ad server 115 may attempt to increase the bid amount to increase the chances that the advertisement associated with the contract wins the bid at the advertisement exchange 175.
Where the ad serving plan 165 defines an allocation for maximizing the chances of serving an advertisement to an opportunity similar to a user in a seed user list, the ad server 115 may place more emphasis on matching contracts that specify a seed user list with opportunities 180 with characteristics similar to those of the users in the seed user list.
At block 420, the ad server 115 may communicate the advertisement associated with the selected contract and a bid amount to the advertisement exchange 175.
In a networked deployment, the computer system 500 may operate in the capacity of a server or as a client-user computer in a server-client user network environment, or as a peer computer system in a peer-to-peer (or distributed) network environment. The computer system 500 may also be implemented as or incorporated into various devices, such as a personal computer or a mobile device, capable of executing a set of instructions 545 (sequential or otherwise) that specify actions to be taken by that machine. Further, each of the systems described may include any collection of sub-systems that individually or jointly execute a set, or multiple sets, of instructions to perform one or more computer functions.
The computer system 500 may include one or more memory devices 510 on a bus for communicating information, such as the contract database 110 (
The computer system 500 may include a display 530, such as a liquid crystal display (LCD), a cathode ray tube (CRT), or any other display suitable for conveying information. The display 530 may act as an interface for the user to see the functioning of the processor 505, or specifically as an interface with the software stored in the memory 510 or in the drive unit 515.
Additionally, the computer system 500 may include an input device 525, such as a keyboard or mouse, configured to allow a user to interact with any of the components of system 500.
The computer system 500 may also include a disk or optical drive unit 515, such as the high-latency storage 110 (
The computer system 500 may include a communication interface 535 that enables communications via a network 550. The network 550 may include wired networks, wireless networks, or combinations thereof. The communication interface 535 network may enable communications via any number of communication standards, such as 802.11, 802.12, 802.20, WiMax, cellular telephone standards, or other communication standards.
Accordingly, the method and system may be realized in hardware, software, or a combination of hardware and software. The method and system may be realized in a centralized fashion in at least one computer system or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general-purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
The method and system may also be embedded in a computer program product, which includes all the features enabling the implementation of the operations described herein and which, when loaded in a computer system, is able to carry out these operations. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function, either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.
As shown above, the system for serving advertisements overcomes the problems described above by enabling an advertiser to enter into a contract with a publisher for a) the delivery of a number of impressions to opportunities that match targeting information in the contract, and b) delivering clicks and/or conversions for a money amount specified in the contract. The system includes an optimizer configured to receive a forecast of a supply of opportunities, a forecast of a supply of guaranteed contracts, and a forecast of a supply of non-guaranteed contracts, wherein each opportunity represents a user visiting a webpage, each guaranteed contract guarantees the matching of an advertisement to a number of opportunities, and wherein each non-guaranteed contract guarantees a user event associated with an advertisement. The optimizer then generates a plan for matching contracts to opportunities based on the forecasted supply of opportunities, the forecasted supply of guaranteed contracts, the forecasted supply of non-guaranteed contracts, and an objective function that balances a group of parameters that define the representativeness of contracts, a cost associated with not serving non-guaranteed contracts, and performance objectives associated with contracts
While the method and system has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope. In addition, many modifications may be made to adapt a particular situation or material to the teachings without departing from its scope. Therefore, it is intended that the present method and system not be limited to the particular embodiment disclosed, but that the method and system include all embodiments falling within the scope of the appended claims.