The present invention relates to the field of online advertising, and in particular to techniques for identifying a bidding price for an online advertisement.
Advertising technology companies connect brand advertisers with their audiences through high quality, targeted, and brand safe campaigns at scale. Advertisements are typically handled using a bidding process, but determining an appropriate bidding price has been difficult and depended upon heuristics. A better bidding price determination technique would be desirable.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate an implementation of apparatus and methods consistent with the present invention and, together with the detailed description, serve to explain advantages and principles consistent with the invention. In the drawings,
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention may be practiced without these specific details. In other instances, structure and devices are shown in block diagram form in order to avoid obscuring the invention. References to numbers without subscripts or suffixes are understood to reference all instance of subscripts and suffixes corresponding to the referenced number. Moreover, the language used in this disclosure has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter, resort to the claims being necessary to determine such inventive subject matter. Reference in the specification to “one embodiment” or to “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least one embodiment of the invention, and multiple references to “one embodiment” or “an embodiment” should not be understood as necessarily all referring to the same embodiment.
The terms “a,” “an,” and “the” are not intended to refer to a singular entity unless explicitly so defined, but include the general class of which a specific example may be used for illustration. The use of the terms “a” or “an” may therefore mean any number that is at least one, including “one,” “one or more,” “at least one,” and “one or more than one.”
The term “or” means any of the alternatives and any combination of the alternatives, including all of the alternatives, unless the alternatives are explicitly indicated as mutually exclusive.
The phrase “at least one of” when combined with a list of items, means a single item from the list or any combination of items in the list. The phrase does not require all of the listed items unless explicitly so defined.
As used herein, the term “a computer system” can refer to a single computer or a plurality of computers working together to perform the function described as being performed on or by a computer system.
As used herein, the term “processing element” can refer to a single hardware processing element or a plurality of hardware processing elements that together may be programmed to perform the indicated actions. The hardware processing elements may be implemented as virtual hardware processing elements of a virtual programmable device hosted on a physical hardware device. Instructions that when executed program the processing element to perform an action may program any or all of the processing elements to perform the indicated action. Where the processing element is one or more multi-core processors, instructions that when executed program the processing element to perform an action may program any or all of the multiple cores to perform the indicated action.
As used herein, the term “medium” can refer to a single physical medium or a plurality of media that together store the information described as being stored on the medium.
As used herein, the term “memory” can refer to a single memory device or a plurality of memory devices that together store the information described as being stored on the medium. The memory may be any type of storage device, including random access memory, read-only memory, optical and electromechanical disk drives, etc.
As described below, dynamic Markovian techniques are used to determine an appropriate bidding price for an online advertisement.
The scheme is based on Markov decision process, where it is assumed that all the processes involved are Markovian. The bidding strategy serves for a single costumer with a single conversion, it could start at any time but end at a conversion. So after a conversion happens, the whole process should be relaunched, but all the parameters can be updated by the history of conversions. The strategy lets us adjust bidding to try to space advertisements correctly, to provide a desired time between one advertisement for a customer and the next advertisement for that customer. In general, the bid price is dropped if an advertisement for the customer has just shown. Unlike heuristic-based techniques, the disclosed technique generates an expected value and computes a precise price to use as the bid price. Implementation on a computer is computationally intensive.
In general, the strategy is to divide an ad period into intervals. Determine the proper price for the ad in the last interval, then use dynamic programming techniques to work backwards.
Assuming the remaining value for conversion after the final period is negligible, we are only making money out of the bidding operations. The more bidding opportunity, usually, the higher probability of an attributed conversion, thus the higher price we can bid and the more premium we are able to earn.
The optimal bid price thus becomes how much an impression now will boost the current and following periods' revenue.
The optimal revenue thus becomes the expected bidding premium plus the expected attributed conversion revenue given on impression delivered in the current period and following periods' revenue without an impression or conversion now.
In the disclosure of this dynamic bidding strategy, the following function are defined:
w(b, t) is the win rate function that gives the wining rate for an arbitrary bidding price at a particular time.
cost(b, t) is the cost function that gives the conditional expectation of bidding cost given winning.
p(b, t) is the premium function that gives the expectation of bidding profit.
The cost function is a conditional expectation while the premium function is an expectation. The three functions follow the equation below:
p(b, t)=w(b, t)*(b−cost(b, t))
We also use a conditional conversion probability f with state variable {right arrow over (C)}. The state variable {right arrow over (C)} has its own Markovian evolving process
{right arrow over (C)}(t)=h(t0, t, {right arrow over (c)})
where t0 denotes the starting time and e denotes the starting state.
The formula for {right arrow over (C)} satisfies h(t0, t0, {right arrow over (c)})={right arrow over (c)}. To make the Markov process time-invariant, the functional form can be written as h(t−t0, {right arrow over (c)}), which satisfies h(0, {right arrow over (c)})={right arrow over (c)}. Furthermore, h can be made to be a random variable.
Next, the variable TC denotes the random variable of conversion time. f may then be expressed as:
f(t0, t, {right arrow over (c)})=P(TC=t|TC>t0, {right arrow over (c)}) (conditional probability density)
{right arrow over (C)} in one embodiment contains two parts, as indicated below:
The first part is a parameter for a rate function and the second part is used to record probability for the conditional event. Then let:
Therefore, h1may solely depend on α, and the second part has to follow the law of total probability.
Finally, the conditional probability density can be defined by a rate function ι divided by the probability of the conditional event.
To make the scheme well defined, in one embodiment,
An attribution model function k may be defined with state variable {right arrow over (A)}, as indicated below:
Again, we need an evolving process for {right arrow over (A)}:
{right arrow over (A)}(t)=k(t0, t, {right arrow over (α)})
where t0 denotes the starting time and {right arrow over (α)} denotes the starting state. k can be made to be a random variable as well.
Next, since there is no history-related conditional probability involved, we can simply let g({right arrow over (α)}) denote the attribution rate at time t0 given that {right arrow over (A)}(t0)=α.
Although these functions are continuous in time, resulting in a lot of integrations in the following discussion, in some embodiments, if the function is flat within given period, we can substitute constants for the functions.
Impact of impression
An impression is assumed to be able to change the state variable of both conversion and attribution. In one embodiment, the resulting state variables are {right arrow over (c0)}(t, {right arrow over (c)}) and {right arrow over (α0)}(t, {right arrow over (α)}). In other embodiments, the state variables can be random variables. In one embodiment, c[2] should not be changed while c[1] can be changed based on users' specification.
Dynamic Programming:
In one embodiment, first assume the horizon to be finite, i.e., that there are a finite number of time points N for sending out a bidding request. Our control is achieved by adjusting the bid price. Let's then give one more parameter “M” for a unit CPA payment.
Final period
In the final period TN, to make the profit calculation more intuitive, in one embodiment we may pretend that we know how much we have spent (X) in the prior time periods. The calculation described below shows that the amount spent would not have any influence on the optimal bid price in the final period. Let ACt denote the event that an attributed conversion happened after time t, given no conversion happened before time t. Then the expectation of profit given bid price b may be expressed as:
By the well-known conclusion of second-price auctions, the optimal price b* equals:
b*=M*(P(ACT
where
In embodiments where {right arrow over (c0)}(t) and {right arrow over (a0)}(t) are random variables, the term
P
T
(ACT
may be substituted by E{right arrow over (c
P(ACT
In sum:
b*=M*(P(ACT
E
T
[Profit|{right arrow over (c)}, {right arrow over (α)}, X]*=p(b*, TN)+M*P(ACT
Let's then define the value function VT({right arrow over (c)}, {right arrow over (α)}, X) for the final period as:
V
T
({right arrow over (c)}, {right arrow over (α)}, X)=p(b*, TN)+M*P(ACT
In one embodiment, the revenue function is also defined as:
R
T
({right arrow over (c)}, {right arrow over (α)})=p(b*, TN)+M*P(ACT
Period TN−1
Again, let's assume that we know the cost spent in the prior time periods as X. Then, define event Ct
Part one: win the bid and get a conversion between TN−1 and TN:
(1)=w(b, TN−1)*P(CT
Part two: win the bid but no conversion happened between TN−1 and TN: Let
{right arrow over (c0′)}=h(TN−1, TN, {right arrow over (c0)}(TN−1, {right arrow over (c)}))
{right arrow over (α0′)}=k(TN−1, TN, {right arrow over (α0)}(TN−1, {right arrow over (α)}))
Then:
Part three: lose the bid but get a conversion between TN−1 and TN:
(3)=(1−w(b, TN−1))*P(CT
Part four: lose the bid and no conversion happened between TN−1 and TN: Let
{right arrow over (c′)}=h(TN−1, TN, {right arrow over (c)})
{right arrow over (α′)}=k(TN−1, TN, {right arrow over (α)})
Then:
(4)=(1−w(b, TN−1))*[1−P(CT
Next, since the attribution rate state variable {right arrow over (α)} does not influence the evolution of conversion rate, we have:
P(ACT
where
Then define a function:
Thus, the expected profit for period TN−1 is:
Again, since it's a second price auction, the optimal bidding price is:
Based on the calculation above, we see that the cost spent X never gets involved in the optimization scheme for any period. Because we start with X=0, by induction, X can be made to disappear in all the following periods. Hence, X may be eliminated from the dynamic programming, leaving only the revenue function.
Summary:
Final period TN:
Period TN−1:
Expected Attribution Conversion Probability:
Under this optimal bidding strategy, embodiments may calculate an expected attribution conversion probability.
In the following, Pt({right arrow over (c)}, {right arrow over (α)}) denotes the probability that an attributed conversion happened after time t given that the conversion did not occur before time t and the state variables start at {right arrow over (c)} and {right arrow over (α)} before the bidding. The expressions P(·|{right arrow over (c)}, {right arrow over (α)}) represent probabilities conditioned on the states after the bidding.
For final period TN:
By induction, for period TN−1:
Thus, we are able to calculate PT
Expected Cost
We are also able to calculate the expected cost under this bidding scheme.
Let Costt({right arrow over (c)}, {right arrow over (α)}) denote the expected cost conditioned on the event that no conversion happened before time t, where before a bidding at time t the state variables are {right arrow over (c)} and {right arrow over (α)}.
For final period TN:
CostT
By induction, for period TN−1:
Observations:
Bidding is usually done based on how much an impression can boost the current and following periods' revenue. And the total revenue we earn by bidding contains three parts
1. Expected bidding premium
2. Profit of attributed conversion within current period given no impression happened
3. Revenue for the following periods given conversion does not happen within the current period and no impression is delivered.
We can always earn part 2 and 3 without any operation. Therefore, the money we earn are effectively all from the premium of bidding. And a higher probability of attributed conversion usually gives us more money to bid on, hence endue us with more premium.
One equality that can be used to check the correctness of the calculation is:
R
t({right arrow over (c)}, {right arrow over (α)})=M*Pt({right arrow over (c)}, {right arrow over (α)})−Costt({right arrow over (c)}, {right arrow over (α)})
It means we can also interpret our profit as the intuitive expected revenue minus expected cost.
In one example,
w(b)=exp(0.5*log(bid)+1.5)/(exp(0.5*log(bid)+1.5)+1)
The cost function is calculated based on the assumption that the winning threshold is independent of our evaluation.
M=20
The conversion probability=0.0001
A(t)=0.75−0.066*log(t) and k(α)=α
Ti=seq(0, 400000, 400000/i), where i is the number of impression opportunity.
Given these conditions,
In block 1310, the period for the advertisement is divided into a plurality of time periods, where the final time period is designated time period TN.
In block 1320, an optimal bid price b* and an expectation of profit ET
Similarly in blocks 1340-1350, the expected attribution conversion probability may be calculated at times TN, . . . , T1 as described above.
Similarly in block 1360-1370, the expected cost based on the optimal price may be calculated at times TN, . . . , T1 as described above.
Some embodiments may only calculate the optimal bid price. Other embodiments may calculate any one or more of the other values calculated above.
Finally, in block 1380, a bid may be made using the optimal bid price calculated previously.
Importantly, the calculations described above cannot be performed usefully by a human being, because of the quantity of calculations that must be performed within the time allowed for making the bid, which is typically on the order of milliseconds. Thus a computational solution to the technical problem of determining the optimal bid price is necessary.
Embodiments may be implemented in one or a combination of hardware, firmware, and software. Embodiments may also be implemented as instructions stored on a computer-readable storage medium, which may be read and executed by at least one processing element to perform the operations described herein. A computer-readable storage medium may include any non-transitory mechanism for storing information in a form readable by a machine (e.g., a computer). For example, a computer-readable storage device may include read-only memory (ROM), random-access memory (RAM), magnetic disk storage media, optical storage media, flash-memory devices, and other storage devices and media.
Embodiments, as described herein, may include, or may operate on, logic or a number of components, modules, or mechanisms. Modules may be hardware, software, or firmware communicatively coupled to one or more processing elements in order to carry out the operations described herein. Modules may be hardware modules, and as such, modules may be considered tangible entities capable of performing specified operations and may be configured or arranged in a certain manner. Circuits may be arranged (e.g., internally or with respect to external entities such as other circuits) in a specified manner as a module. The whole or part of one or more programmable devices (e.g., a standalone client or server computer system) or one or more hardware processing elements may be configured by firmware or software (e.g., instructions, an application portion, or an application) as a module that operates to perform specified operations. The software may reside on a computer readable medium. The software, when executed by the underlying hardware of the module, causes the hardware to perform the specified operations. Accordingly, the term hardware module is understood to encompass a tangible entity, be that an entity that is physically constructed, specifically configured (e.g., hardwired), or temporarily (e.g., transitorily) configured (e.g., programmed) to operate in a specified manner or to perform part or all of any operation described herein. Where modules are temporarily configured, each of the modules need not be instantiated at any one moment in time. For example, where the modules comprise a general-purpose hardware processing element configured using software; the general-purpose hardware processing element may be configured as respective different modules at different times. Software may accordingly program a hardware processor, for example, to constitute a particular module at one instance of time and to constitute a different module at a different instance of time. Modules may also be software or firmware modules, which operate to perform the methodologies described herein.
It is to be understood that the above description is intended to be illustrative, and not restrictive. For example, the above-described embodiments may be used in combination with each other. Many other embodiments will be apparent to those of skill in the art upon reviewing the above description. The scope of the invention therefore should be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.
Number | Date | Country | |
---|---|---|---|
62205495 | Aug 2015 | US |