The present disclosure relates to a system and method for generating an effective bid per impression. In some embodiments, the present disclosure relates to a system and method for generating an effective bid per impression based on multiple attribution of pay-per-conversion advertising.
The Internet is a ubiquitous medium of communication in most parts of the world. The emergence of the Internet has opened a new forum for the creation and placement of advertisements promoting products, services, and brands. Internet content providers rely on advertising revenue to drive the production of free or low cost content. Advertisers, in turn, increasingly view Internet content portals and online publications as a critically important medium for the placement of advertisements.
The interactive nature of Internet communication enables advertisers and content providers to target advertising campaigns to viewers. Advertisers may pay for the display of an advertisement to a viewer. For example, an advertiser may pay for each advertisement impression on a web page, a user clicking on an advertisement, or for a conversion of a product or service associated with the advertisement. In the context of an advertiser paying for a conversion associated with an advertisement, traditional user models may be used to convert the advertiser's price per conversion to a value per impression of the advertisement. However, such traditional user models assume that each impression of the advertisement leads to a conversion independent of other impressions of the same advertisement.
As such, it is desirable to develop systems and methods of generating an effective bid per impression for an advertiser. The effective bid per impression may address multiple attribution scenarios where a sequence of advertisement impressions may contribute towards a conversion of the advertisement.
The present disclosure introduces systems and methods for generating an effective bid per impression based on multiple attribution of pay-per-conversion advertising.
The system or method may calculate a bid price for an advertiser to display an advertisement to a user on a website. The system or method may receive an advertising bid from the advertiser. In some embodiments, the advertising bid may comprise a price per conversion bid for displaying the advertisement on a website. A user state of a user may be received. In some embodiments, the user state may comprise a number of times that the user has previously viewed the advertisement. At least one predictive value of the user may be determined by using a user behavior model with the user state as an input. The predictive value may comprise at least one probability of how the user will respond to the advertisement if the advertisement is displayed. An effective bid per impression may then be calculated based on the predictive value of the user and the price per conversion bid for the advertisement from the advertiser.
In some embodiments, user state further comprises an identification of the publisher of the website and a weighted value assigned to the publisher of the website such that a higher weighted value results in a higher predictive value than a lower weighted value. In the same or alternative embodiments, the user state may further comprise demographic information of the user and geographical information of the user.
In some embodiments, the probability of how the user will respond to the advertisement comprises a likelihood of the user transitioning to a state comprising at least one of a quit state and a conversion state, the quit state comprising a terminal state where the user will not convert with regard to the advertisement and the conversion state comprising a terminal state where the user will convert with regard to the advertisement. In the same or alternative embodiments, likelihood of the user transitioning to a state further comprises an intermediary state of displaying the advertisement to the user at another time and determining a probability of the user transitioning from the intermediary state to the conversion state.
In some embodiments, the user state further comprises a path of the user where the path may comprise online behavior of the user. In the same or alternative embodiments, the system or method may further submit the calculated effective bid per impression on behalf of the advertiser to a publisher of the website.
The novel features of the disclosure are set forth in the appended claims. However, for purpose of explanation, several embodiments of the disclosure are set forth in the following figures.
The systems and methods disclosed herein relate to generating an effective bid per impression based on multiple attribution of pay-per-conversion advertising
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. However, it will become obvious to those skilled in the art that the present disclosure may be practiced without these specific details. The description and representation herein are the common means used by those experienced or skilled in the art to most effectively convey the substance of their work to others skilled in the art. In other instances, well known methods, procedures, and systems have not been described in detail to avoid unnecessarily obscuring aspects of the present disclosure.
The disclosure that follows is divided into four sections. Section I contains terms used herein. Section II describes an online advertisement delivery system environment. Section III describes systems and methods for calculating an effective bid per impression. Section IV describes pricing and publisher fairness.
I. Terms
Some of the terms used in the disclosure are defined below in alphabetical order. These terms are not rigidly restricted to these definitions. A term may be further defined by the term's use in other sections of the disclosure.
“Ad” (e.g., advertisement, item and/or message) may refer to a paid announcement, as of goods or services for sale, preferably on a network (e.g., the Internet). An ad may also be referred to as an ad, advertisement, an item and/or a message.
“Ad call” may refer to a message sent by a computer to an ad server for requesting an ad to be displayed. An “ad call” may be referred to as an “advertisement call.”
“Ad click-through rate” (e.g. click-through rate or “CTR”) may refer to the ratio of advertisement clicks over advertisement impressions.
“Ad code” may refer to the HyperText Markup Language (HTML) or other markup language description that describes an advertisement or message in such a manner as can be parsed by a browser. Ad code may include references to another ad code(s). Ad code may mean any subset, or portion or segment of ad code that describes an advertisement or message in such a manner as can be parsed by a browser.
“Ad server” may refer to a server that is configured for serving one or more ads to user devices. An ad server may be controlled by a publisher of a website and/or an advertiser of online ads. A server is defined below.
“Advertiser” (e.g. messenger and/or messaging customer, etc.) may refer to an entity that is in the business of marketing a product and/or a service to users. An advertiser may include, without limitation, a seller and/or a third-party agent for the seller. An advertiser may also be referred to as a messenger and/or a messaging customer. Advertising may also be referred to as messaging.
“Advertising” may refer to marketing a product and/or service to one or more potential consumers by using an advertisement. An example of advertising may comprise publishing a sponsored search ad on a website.
“Application server” may refer to a server that is configured for running one or more devices loaded on the application server. For example, an application server may run a device configured for deducing shadow profiles.
“Click” (e.g. ad click) may refer to a selection of an ad impression by using a selection device such as, for example, a computer mouse or a touch-sensitive display.
“Client” may refer to the client part of client-server architecture. A client may comprise a user device and/or an application that runs on a user device. A client may rely on a server to perform operations. For example, an email client is an application that enables a user to send and receive email via an email server. As such, the computer running such an email client may also be referred to as a client.
“Conversion” (e.g. ad conversion) may refer to a purchase of a product and/or service that occurs as a result of a user responding to an advertisement and/or a coupon.
“Database” (e.g. database system, etc.) may refer to a collection of data organized in such a way that a computer program may quickly select desired pieces of the data. A database may be an electronic filing system. In some instances, the term “database” may be used as shorthand for a “database management system.” A database may be implemented as any type of data storage structure capable of providing for the retrieval and storage of a variety of data types. For example, a database may comprise one or more accessible memory structures such as a CD-ROM, tape, digital storage library, flash drive, floppy disk, optical disk, magnetic-optical disk, erasable programmable read-only memory (EPROM), random access memory (RAM), magnetic or optical cards, etc.
“Device” may refer to hardware, software or a combination thereof. A device may sometimes be referred to as an apparatus. Examples of a device include, without limitation, a software application such as Microsoft Word™ or a database, or hardware such as a laptop computer, a server, a display, or a computer mouse and/or a hard disk.
“Impression” (e.g. ad impression) may refer to a delivery of an advertisement to a user device for viewing by a user.
“Item” may refer to an ad, which is defined above.
“Marketplace” may refer to a world of commercial activity where products and/or services are browsed, bought and/or sold, etc. A marketplace may be located over a network, such as the Internet. A marketplace may also be located in a physical environment, such as a shopping mall.
“Message” may refer to an ad, which is defined above.
“Messaging” may refer to advertising, which is defined above.
“Messenger” may refer to an advertiser, which is defined above.
“Network” may refer to a connection, between any two or more computers, that permits the transmission of data. A network may be any combination of networks including, without limitation, the Internet, a local area network, a wide area network, a wireless network, and/or a cellular network.
“Publisher” may refer to an entity that publishes, on a network, a web page having content and/or ads, etc.
“Server” may refer to a software application that provides services to other computer programs (and their users), on the same computer or on another computer or computers. A server may also refer to the physical computer that has been set aside to run a specific server application. For example, when the software Apache HTTP Server is used as the web server for a company's website, the computer running Apache may also be called the web server. Server applications may be divided among server computers over an extreme range, depending upon the workload.
“Slate” (e.g., ad slate) may refer to the ordered list of ads returned by a server in response to a query.
“Software” may refer to a computer program that is written in a programming language that may be used by one of ordinary skill in the art. The programming language chosen should be compatible with the computer on which the software application is to be executed and, in particular, with the operating system of that computer. Examples of suitable programming languages include, without limitation, Object Pascal, C, C++ and/or Java. Further, the functions of some embodiments, when described as a series of steps for a method, could be implemented as a series of software instructions for being operated by a processor such that the embodiments could be implemented as software, hardware, or a combination thereof. Computer-readable media are discussed in more detail in a separate section below.
“System” may refer to a device or multiple coupled devices. A device is defined above.
“User” (e.g. consumer, etc.) may refer to an operator of a user device. A user may be a person who seeks to acquire a product and/or service. For example, a user may be a woman who is browsing Yahoo!™ Shopping for a new cell phone to replace her current cell phone. The term “user” may also refer to a user device, depending on the context.
“User device” (e.g. computer, user computer, client and/or server, etc.) may refer to a single computer or a network of interacting computers. A user device is a computer that a user may use to communicate with other devices over a network, such as the Internet. A user device may comprise a combination of a hardware system, a software operating system, and one or more software application programs. Examples of a user device include, without limitation, a laptop computer, a palmtop computer, a smart phone, a cell phone, a mobile phone, an IBM-type personal computer (PC) having an operating system such as Microsoft Windows™, an Apple™computer having an operating system such as MAC-OS, hardware having a JAVA-OS operating system, and/or a Sun Microsystems™ workstation having a UNIX operating system.
“Web browser” may refer to a software program that may display text or graphics or both, from web pages on websites. Examples of a web browser include, without limitation, Mozilla Firefox™ and Microsoft Internet Explorer™.
“Web page” may refer to documents written in a mark-up language including, without limitation, HTML (hypertext mark-up language), VRML (virtual reality modeling language), dynamic HTML, XML (extensible mark-up language), and/or other related computer languages. A web page may also refer to a collection of such documents reachable through one specific Internet address and/or through one specific website. A web page may also refer to any document obtainable through a particular URL (uniform resource locator).
“Web portal” (e.g. public portal) may refer to a website or service that offers a broad array of resources and services such as, for example, email, forums, search engines, and online shopping malls.
“Web server” may refer to a server configured for serving at least one web page to a web browser. An example of a web server is a Yahoo!™ web server. A server is defined above.
“Website” may refer to one or more web pages. A website preferably includes a plurality of web pages virtually connected to form a coherent group.
II. Online Advertisement Delivery System Environment
As seen in
As seen in
Such characteristics (i.e., one or more characteristics) and/or features can be used in the statistical modeling of users, even to the extent that a forecasting module 211, possibly in conjunction with a data gathering and statistics module 212 can forecast future supply accurately—at least to a statistically known degree.
In some embodiments, the online advertising system 200 might host a variety of modules to serve management and control operations (e.g., an objective optimization module 210, a forecasting module 211, a data gathering and statistics module 212, an advertisement serving module 213, an automated bidding management module 214, an admission control and pricing module 215, etc.) pertinent to aiding advertisers in defining effective sponsored search advertising campaigns and for serving advertisements to users. In particular, the modules, network links, algorithms, forecasting techniques, serving policies, and data structures embodied within the online advertising system 200 might be specialized so as to perform a particular function or group of functions reliably while observing capacity and performance requirements. For example, a campaign generation module 219 and/or an automated user intent discerner module 217 can operate partly in an offline (or batch) mode and partly in an online (or interactive) mode. Further, a database for storing the historical dataset 220 (which can also store historical click data and/or forecasted data) can operate in an online mode or in an offline mode, or both. As shown, and without regard to allocation of any particular operation to any particular mode, an auction server 207, and an automated user intent discerner module 217.
An integrator network entity may define a participant of the advertising exchange system that represents or integrates one or more entities on the advertising exchange system (e.g., advertisers, publishers, advertising networks, etc.). For example, an integrator network may represent advertisers on the advertising exchange system in order to deliver advertisements to publishers, advertising networks and other integrator networks. In some embodiments, the integrator networks are referred to as the “users” of the advertising exchange system. The integrated networks may comprise third party agents that operate on behalf of or are part of the integrator network. The term “third party agent” may be used to generally describe an agent or customer that participates in transactions on the advertising exchange system. Similarly, the term “third party recipient” may be used to describe a user or participant of the advertising exchange system that receives information from the system, such as bid requests. However, the terms integrator networks, third party agents and third party recipients may be intended to represent a broad class of entities, including publishers, advertisers and networks, as well as the agents that represent them, that operate on the advertising exchange system.
As shown in
The user 303 may access information and/or content provided by the publisher 304. For example, a user accessing information and/or content may comprise a browser 305 displaying a web page comprising inventory location(s) 307 for the presentation of advertisement(s). In some embodiments, an advertisement call is generated that requests an advertisement, from advertisements or advertisers 312, 320 and 321, for placement with the inventory location 307. The corresponding advertisement may be delivered to publisher 304 by one or more networks. In some embodiments, the network 306 may be coupled to the publisher 304 and the network 308 may be coupled to the advertiser 310. As such, the networks 306 and 308 are coupled to each other. The advertiser 310 may have one or more advertisement campaigns such that each advertisement campaign comprises one or more advertisements 312 that the advertiser 310 wishes to place with the inventory of publishers such as, for example, the inventory location 307 of the publisher 304 that may be presented to the user 303 via the browser application 305.
As seen in
In the same or alternative embodiments, an advertisement call for the inventory 307 may be directed to an integrator network 318. For example, the advertisement call may passed from the network 306 to the integrator network 318 with additional information. In some embodiments, the additional information may comprise a geographic location for the destination of the advertisement. For example, an advertisement call may have a destination of San Francisco (SF), while a second advertisement call may have a destination of Los Angeles (LA). Based on the advertisement call and/or information, the integrator network 318 may selectively respond to advertisement calls for, or on behalf of, one or more of its integrated entities 320 and/or 322. The integrated entities 320 and 322 may include third party entities, such as advertisers, that transact on the exchange by using an intermediary, such as the integrator network 318.
III. Calculating an Effective Bid Per Impression
As seen in
As seen in
At block 620 of
As seen in
In some embodiments, a user behavior model may be formalized to capture a user going through a purchase funnel before purchasing a product. In some embodiments, a purchase funnel may refer to a path of a user before the user performs a conversion (e.g., purchasing a product corresponding to the advertisement) or the user quits as described in further detail below. As such, the conversion probability of an advertisement may depend upon the number of times the advertisement is shown to a particular user. The user behavior model may be used to predict a user's behavior from the perspective of a pay per conversion advertiser A. In some embodiments, there may be T opportunities to show an advertisement to a user, where T may comprise a random variable. For example, T may be assumed to be exponentially distributed such that there may be a fixed drop-out probability (e.g., the user quitting) qε(0,1), and every time a user visits a web page on which an advertisement may be shown, there is a probability q that the user will drop out (e.g., quit) after that and will not come back to another web page. Every time an opportunity to show an ad to this user is presented, a decision may be made whether to show A's advertisement or a competitor's advertisement. For example, in some embodiments, the decision may be made based on the bids of the advertisers. In some embodiments, the value per impression of the competitor's advertisement may be R. In the same or alternative embodiments, R may be the opportunity cost of showing A's advertisement on a web page. R may be assumed to be a random variable and may be independently and identically distributed each time.
In some embodiments, the probability that the user converts (e.g., buys a product from A) may be an arbitrary function of the number of times that the user has seen A's advertisement. Such probability may be denoted by lambda λj, where j is the number of times that the user has seen A's advertisement. In some embodiments, λj may be unimodal, e.g., it increases at the beginning to reach a peak and then decreases.
Advertiser A's value per conversion may be denoted by v. The following section of the disclosure relates to an optimal allocation of advertisement space (to A or the competitor advertiser). For example, the optimal allocation may refer to a bidding agent submitting a per-impression bid on advertiser A's behalf.
Given the values of the parameters of the user behavior model as previously discussed, the goal of the advertisement allocation problem may be to decide when to show A's advertisement to maximize the expected social welfare. In some embodiments, social welfare may be the sum of the values that A and its competitor advertiser derive. In some embodiments, it may be assumed that advertisement space is allocated through a second-price pay-per-impression auction and conversion seeking advertisers like A may participate in the auction through a bidding agent that bids a per-impression value for each auction. The objective of such a bidding agent may be the value to A minus its cost, which is equal to R if A wins. The difference between such objective and the objective of social-welfare maximizing auctioneer may be an additive term equal to the expectation of the sum of the R values.
The total social welfare obtained from the user starting from the state 740 bj of
The value of Vj of the expected total value starting from the state 740 bj may satisfy the following equation:
In some embodiments, r=E[R]. The value V1 may indicate the maximum expected welfare in a model.
The previously described equation may be simplified to a recurrence relation that may be used to compute Vj. This recurrence may comprise a simple form, but may involve a function that may be non-linear (e.g., depending on distribution of R), and therefore its solution may not be written in a closed form. However, this may be done in the case where R is a constant.
The Bellman equation (for Vj) described above may be simplified in each step and written in terms of a particular function that captures the effect of q and the distribution of R.
First, the Bellman equation may be written in terms of new variables Wj:=(1−q)(Vj−r/q). In some embodiments, Wj may comprise the maximum value starting from the state aj, minus the value starting from this state without the presence of advertiser A. By replacing Vj's by Wj's in Bellman equation (for Vj) described above, the following equation may be obtained:
In some embodiments, the above equation may specify that in the optimal allocation, the advertiser A wins if and only if R+Wj≦λjv+(1−λj)Wj+1. Thus, in the optimal allocation, at a point where the user has already seen A's advertisement j−1 times, the next impression will be allocated to A if and only if the cost of this impression R is at most the following equation:
λjv+(1−λj)Wj+1−Wj
The above equation may be rewritten by defining h(x):=E[max(R, x)]. As such, h(x) is a function that only depends on the distribution of R. After subtracting Wj from both sides of the equation for
the equation may be rewritten as follows:
The above equation may be referred to as equation (3). Note that h is by definition a continuous non-decreasing function. For a value β is ≧0, consider the following equation in terms of the variable x:
qx(1−q)=h(β−x)−r.
At x=0, the right-hand side of the equation is h(β)−r=h(β)−h(0)≧0 and the left-hand side of the equation is zero. At x=β, the right-hand side is h(0)−r=0 and the left-hand side is non-negative. Therefore, since the right-hand side of the equation is non-increasing in x, the left-hand side is strictly increasing, and both sides are continuous functions of x, this equation has a unique solution in [0, β]. The value of this solution may be denoted by u(β).
As such, for any value of q and any distribution of R, the function u(.) may be well-defined, non-decreasing, and continuous. It also satisfies the equation u(β)ε[0, β] for every β.
Note that u(.) may be defined purely in terms of the distribution of R and the value of q, and in fact, it may capture all the information about these parameters that is relevant for the allocation problem. Using this function, equation (3) may be rewritten as follows:
W
j
=u(λjv+(1−λj)Wj+1)
The above equation may be referred to as equation (4). Obtaining an explicit formula for Vj may be possible if u(.) has a simple form. In some embodiments, this function may be complex and non-linear. However, the above equation gives a straightforward way to compute Wj's numerically: start with a large enough j* so that Wj*=0, and then move backward to compute Wj for j=j*−1, . . . , 1. Such a value of j* may exists in most scenarios; for example, any j* such that for all j>j*, λjv is less than the minimum of R (say, the value of the reserve price) suffices.
To summarize, the above calculations and Proposition 2 imply the following: Let Wj's be the values computed using the recurrence of equation (4). Then the optimal allocation may be obtained by submitting a per-impression bid of:
bidj:=λjv+(1−λj)Wj+1−Wj
On behalf of A in a state where the user has already seen the advertisement j−1 times. The social welfare achieved by this mechanism may be r/q+W1/(1−q).
In the case that R is a constant r, the recurrence of equation (4) may be simplified. First, note that by definition, h(x)=max(r, x). Therefore, u(β) may be the solution of the equation qx/(1−q)=max(β−x−r, 0). As such, when β≧r, the solution of the above equation is (1−q)(β−r) and when β<r the solution is zero. Therefore, u(β)=(1−q)max(β−r, 0) This gives the following equation:
W
j=(1−q)max(λjv−r+(1−λj)Wj+1,0)
The above equation may be referred to as equation (5). To solve this recurrence, Wj+1 may be expanded in equation (5), and iterative. This may result in the following explicit expression, which can be easily verified by induction using the above recurrence equation (referred to as equation (6)):
W
j=(1−q)maxl≧j-1{Σ⊥(s=j)†(λ)sv−r)ψs/ψj}
where
The above equation may be referred to as equation (7). Equation (7) may represent the probability that the user visits at least i times and each time (except possibly the last time) does not convert on A's advertisement.
In equation (7), any empty sum may be defined as zero and an empty product may be defined as one. As such, the final solution may be written as follows:
V
l=(r/q)+maxl≧0{Σ⊥(s=1)†(λ)sv−r)ψs}
The above equation may be referred to as equation (8). As such, let l* be the value of l that achieves the maximum in equation (8). In some embodiments, for the optimal allocation, A's advertisement may be shown until the user converts or the user sees the advertisement l* times. After a conversion happens or this number of advertisement views is reached, the competitor's advertisement may be shown.
IV. Pricing and Publisher Fairness
As described with relation to Section III, an effective bid per impression may be calculated such that a bidding agent may translate the advertiser's A's values into an effective bid per impression every time there is an advertising opportunity. If the advertiser could pay per impression (e.g., a pay-per-impression scenario), this may result that on each auction, the bidding agent may use the pay per impression to bid, and if A wins based on this bid, then A will pay the value of the competitor's bid R. This value would be disbursed to the publisher responsible for that impression. In some embodiments, such a scheme is equivalent to the VCG mechanism from A's perspective (e.g., it allocates the good optimally and charges A the externality she imposes on others), and therefore A has incentive to truthfully report her value per conversion v. Also, the mechanism seems intuitively ‘fair’ for publishers.
However, some advertisers may be strict pay-per-conversion advertisers. For these advertisers, the payment scheme may satisfy the following an Ex-Post Individual Rationality (Ex-Post IR) property. As such, at any outcome where a conversion has not happened, A does not pay anything. At an outcome where a conversion has happened, A pays at most her value per conversion v.
Furthermore, an Efficiency (getting the optimal allocation characterized in the last section) and Incentive Compatibility (IC) may be required. These two properties may imply that in expectation, the amount the advertiser must be charged is the externality it imposes on the others. This is equal to the sum of R on impressions where A's advertisement is shown. In other words, in expectation, the mechanism should charge the same amount as in the pay-per-impression scenario. The challenge is to implement this while respect Ex-Post IR.
As will be further described, this may be achieved with a simple uniform pricing. A natural notion of fairness may be defined in embodiments where there are multiple publishers. There may be instances where the uniform pricing method may not result in a fair distribution of payments to publishers. However, in the case of constant R, the problem may be formulated as a network flow program and a maximum-flow minimum-cut theorem may be used to prove that a fair, ex-post IR and incentive compatible payment rule may exist. As this is a special case of the max-flow min-cut problem, a simpler and faster algorithm for computing the payments may also be generated.
The idea of the uniform pricing method may be to charge the same amount for all conversions, regardless of how many advertisement impressions A gets prior to the conversion. This uniform cost may set at a level to get the advertiser to pay the right amount in expectation. Using the optimality of the allocation, it may be shown that this scheme satisfies Ex-Post IR. This may first be illustrated in the case of the constant R as follows.
First, note that W1≧0. This may be seen directly from the definition of W1 and V1 as the optimal solution of the MDP or from equation (6). Let l be the value that maximizes equation (8). Thus, following equation may be derived:
Σ⊥(s=1)†(λ)sv−r)ψs≧0
Or, equivalently
The above equation may be referred to as equation (9). Now consider the expected externality imposed by the advertiser on others. The probability that the advertisement may be shown exactly l times is λiψi. For some s<l, the probability that it is shown exactly s times is ψs−ψs+l. Therefore, the total expected externality is imposed on others by the advertiser may be defined by the following equation:
On the other hand, the probability that the user converts after the i-th view is λiψi. Thus, the total probability of conversion is the following equation:
Therefore, for each conversion, the advertiser may be charged an amount equal to the following equation:
The expected payment of the advertiser will be equal to the externality it imposes on others (e.g., the IC payment). Also, by equation (9), the payment per conversion may be at most v, and hence Ex-Post IR is also satisfied.
This method may be applied in the general case when R is not a constant. As such, on any conversion, independent of the history of impressions that lead to this conversion, the advertiser may be charged an amount equal to the following equation:
price:=E/Pconv
The above equation may be referred to as equation (10). In some embodiments, E is the expected total externality that A imposes on the competitors and Pconv is the overall probability of conversion for A. As such, with this charging scheme, in expectation, A pays price×Pconv=E, which is the incentive compatible payment. To show that the above price satisfies Ex-Post IR, compare this scenario with the pay-per-impression scenario defined earlier. The outcome in both cases may be the same and A's payment may also be the same in both scenarios in expectation. Therefore, since A's utility in the pay-per-impression scenario is non-negative, it is non-negative here, too, implying that price≦v.
There may be two main motivations for studying the multiple attribution problem: the first is to ensure the efficiency of the market outcome and the second is to ensure that each advertisement publisher who has contributed in the purchase funnel that has led to a conversion gets a fair share of the conversion price. The following portion of the disclosure discusses fairness among publishers.
First, the notion of fairness for publishers may be defined as each publisher who displays A's advertisement, receives a payment equal to the opportunity cost of this impression. In some embodiments, fairness may be defined in a setting by requiring the same payments in expectation.
For each i, the expected value the i'th impression the publisher receives from A may be equal to the expected opportunity cost R of this publisher conditioned on A winning.
Note that this may be a natural property to require, since it is natural for the publisher to request to be paid an amount at least equal to the opportunity cost of the impressions it provides. If this is not satisfied, then the publisher may refuse to accept pay-per-conversion advertisers. And since the advertiser's payment is the total externality is imposes on the competitors, no publisher may hope to get more than its expected opportunity cost without hurting another publisher.
As will be further described, Publisher Fairness imposes a non-trivial constraint on the payments. In fact, for some payment rules like the uniform scheme defined above, it may not be possible to distribute the payment among the publishers in a way that satisfies Publisher Fairness. To illustrate this and to prepare for the result of the next discussion, consider the case of constant R.
First, number the publishers in the order the user visits advertisement-bearing pages. Let xij be the payout to publisher j if the conversion occurs after i views. This quantity may be defined for i≧j, since for i<j, the user will either never visit publisher j or may visit the publisher after she is already converted. Also, define the variables xij for i, j≦l where l is the index that maximizes the value in equation (8), since after this index, A's advertisement will not be displayed.
The desired properties may be rewritten in terms of the xi,j variables. First, formulate the Publisher Fairness property. For every publisher j=1, . . . l, conditioned the user visiting j, the probability that the user visits exactly i publishers (i≧j) and then it converts may be defined by ψiλi/ψj. Thus, the total expected payment to j, conditioned on the user visiting j may be written as the following equation:
Therefore the Publisher Fairness property may be written as follows:
The above equation may be referred to as equation (11). This property may also implies that the payments are incentive compatible: since for each publisher the total payments of A is equal to the externality A imposes on its competitors on this publisher, the total expected payment of A may also equal to the total expected externality it imposes on the competitors. Therefore, all that remains is to formulate the Ex-Post IR property. The total payment of A in case of a conversion happens after precisely i impressions is
Therefore, Ex-Post IR is equivalent to the following equation:
The above equation may be referred to as equation (12). Consider the optimal allocation with the uniform pricing rule defined as earlier discussed. There are instances in this mechanism where there is no way to distribute the advertiser's payment among the publishers in a way that satisfies the Publisher Fairness.
For example, consider a situation where λ1=½, λ2=¼, and λi=0 for i>2. Also, let q=0, r=1, and v=10. Using equation (8), at these values, the optimal allocation is to display the advertisement l=2 times or until a conversion happens. In expectation, the advertisement will be shown 1+(1−q)(1−λ1)λ2=3/2 times, so the expected externality that this advertisement imposes on other advertisements is E=3/2. The probability that a conversion happens in Pconv=λ1+(1−q)(1−λ1)λ2=5/8. Therefore, the uniform pricing rule of equation (10) charges a price of E/Pconv=2.4 for each conversion. On the other hand, consider the publisher condition of equation (11) for j=2. This condition specifies that x22λ2=r, and therefore x22=4. This is impossible since x21≧0 and x22+x21 must be equal to the amount the advertiser is charged, i.e., 2.4.
This section of the disclosure discusses how to show that in the case of constant R, a fair payment rule exists. For example, when R is a constant, the optimal allocation rule can be supplemented with a payment scheme that satisfies the Incentive Compatibility, Ex-Post IR, and Publisher Fairness. For example, the statement may be equivalent to proving that there exists a non-negative matrix [xij] satisfying equation (11) and equation (12). As such, equation (11) may be equivalent to:
The above equation may be referred to as equation (13). And equation (12) may be equivalent to:
The above equation may be referred to as equation (14). Now, define another matrix [yij] as yij:=xijψiλi. The statement may be written in terms of this matrix as follows: There is always a non-negative matrix [yij] satisfying:
The above equations may be referred to as equation (15) and equation (16) respectively. In other words, it may be shown that there is a lower triangular matrix [yij] with prescribed column sums and prescribed upper bounds on the row sums. This may be viewed as a network flow problem in a graph defined as follows: the graph has a source node, a sink node, l nodes corresponding to rows of the matrix and/nodes corresponding to the rows of the matrix. For each 1, there is an infinity-capacity edge from the i'th row vertex to the j'th column vertex for every j≦i. The amount of flow on this edge corresponds to the value of yij. There is an edge from the source to the i'th row vertex with capacity vψiλi (indicating the maximum row sum) and a vertex from the j'th column vertex to the sink with capacity rψj (indicating maximum column sum. As such, the existence of the matrix yij corresponds to the existence of a low of value
in this network. Therefore, by the max-flow min-cut theorem, it may be shown that the capacity of the minimum cut in this network is at least
Consider a cut in this network and let S (T, correspondingly) denote the set of row (column, correspondingly) vertices that are on the source side of the cut. Since the cut should not contain any infinity-capacity edges, for every j≦max(S), jεT. In other words, it may be denoted {1, . . . , max(S)} by S′, there is S′⊂T and also by definition S⊂S′. The capacity of this cut may be written as the following:
Therefore, to prove the theorem, it is enough to show that for every i,
The above equation may be referred to as equation (17). Now, recall that by equation (8), l is a value that maximizes the following formula:
Σ⊥(s=1)†(λ)sv−r)ψs
In particular, the value of the above expression at l is at least its value at i−1. This proves the inequality of equation (17), thereby completing the proof of the theorem.
The above theorem shows the existence of a payment scheme that satisfies all the properties. It also shows that these payments can be calculated by solving a maximum flow problem. Algorithms for solving the maximum flow problem while having a polynomial running time are relatively complicated and slow. Fortunately, in the case of instant problem, the network is special (corresponding to a lower triangular matrix) and this allows a computation of the optimal flow (and therefore the payments) using a greedy algorithm. The idea of the algorithm is described below.
First, fix the value of y11. This value may be at most min(vψ1,rψ1). Without loss of granularity, fix y11 at this maximum. Then, remove this entry, combine the first and the second column (for a total sum of rψ1+rψ2−y11) and solve the remaining (l−1)×(l−1) problem. This may work because any solution for the residual problem may be easily transformed into a solution for the l×l problem, since in each row the first and the second entry may be split in any way to get the desired column sums.
Any node of the network 800 may comprise a general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof capable to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices (e.g. a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration, etc.).
In alternative embodiments, a node may comprise a machine in the form of a virtual machine (VM), a virtual server, a virtual client, a virtual desktop, a virtual volume, a network router, a network switch, a network bridge, a personal digital assistant (PDA), a cellular telephone, a web appliance, or any machine capable of executing a sequence of instructions that specify actions to be taken by that machine. Any node of the network may communicate cooperatively with another node on the network. In some embodiments, any node of the network may communicate cooperatively with every other node of the network. Further, any node or group of nodes on the network may comprise one or more computer systems (e.g. a client computer system, a server computer system) and/or may comprise one or more embedded computer systems, a massively parallel computer system, and/or a cloud computer system.
The computer system 850 includes a processor 808 (e.g. a processor core, a microprocessor, a computing device, etc.), a main memory 810 and a static memory 812, which communicate with each other via a bus 814. The machine 850 may further include a display unit 816 that may comprise a touch-screen, or a liquid crystal display (LCD), or a light emitting diode (LED) display, or a cathode ray tube (CRT). As shown, the computer system 850 also includes a human input/output (I/O) device 818 (e.g., a keyboard, an alphanumeric keypad, etc.), a pointing device 820 (e.g., a mouse, a touch screen, etc.), a drive unit 822 (e.g. a disk drive unit, a CD/DVD drive, a tangible computer readable removable media drive, an SSD storage device, etc.), a signal generation device 828 (e.g. a speaker, an audio output, etc.), and a network interface device 1230 (e.g. an Ethernet interface, a wired network interface, a wireless network interface, a propagated signal interface, etc.).
The drive unit 822 includes a machine-readable medium 824 on which is stored a set of instructions (i.e. software, firmware, middleware, etc.) 826 embodying any one, or all, of the methodologies described above. The set of instructions 826 is also shown to reside, completely or at least partially, within the main memory 810 and/or within the processor 808. The set of instructions 826 may further be transmitted or received via the network interface device 830 over the network bus 814.
It is to be understood that embodiments of this disclosure may be used as, or to support, a set of instructions executed upon some form of processing core (such as the CPU of a computer) or otherwise implemented or realized upon or within a machine- or computer-readable medium. A machine-readable medium includes any mechanism for storing information in a form readable by a machine (e.g. a computer). For example, a machine-readable medium includes read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical or acoustical or any other type of media suitable for storing information.