Overspend control in a messaging platform
First Claim
1. A method comprising:
- receiving, at a messaging platform that publishes message streams, including a message stream of a first account holder of the messaging platform, a request, from a computing device associated with a second account holder of the messaging platform, for the message stream of the first account holder;
selecting two or more ad campaigns resident on the messaging platform, each selected ad campaign having a budget and at least one candidate message;
calculating a current spend for each of the selected ad campaigns, the current spend representing a portion of the budget already spent by the respective ad campaign;
determining an engagement time distribution by at least applying a first smoothing distribution to a first tunable parameter to generate a first product, applying a second smoothing distribution to a second tunable parameter to generate a second product, and combining the first product and the second product;
calculating an outstanding spend for each of the selected ad campaigns based on a time at which the messaging platform received the request, the engagement time distribution, account holders that received but did not yet engage with one or more candidate messages from the respective ad campaign and a predicted clickthrough rate, wherein the predicted clickthrough rate is calculated based on a features vector and a weights vector, wherein the features vector comprises values of one or more of a message feature or an account feature, and wherein the weights vector comprises weight values for each of the features in the features vector;
calculating a total outstanding spend for each of the selected ad campaigns by adding the outstanding spend of the respective ad campaign to the current spend of the respective ad campaign;
identifying, as potential candidate messages, candidate messages from the selected ad campaigns with total outstanding spends that are less than the budget of their respective ad campaigns;
calculating, for only each potential candidate message, a likelihood value representing a likelihood of future engagement with the respective potential candidate message by one or more of the account holders if the respective potential candidate message was published in the requested message stream;
ranking the potential candidate messages based on the calculated likelihood values;
selecting, based on the ranking of the potential candidate messages, at least one candidate message for inclusion in the requested message stream; and
sending the requested message stream to the second account holder via the computing device, wherein the requested message stream includes the selected at least one candidate message.
4 Assignments
0 Petitions
Accused Products
Abstract
A real-time messaging platform allows advertiser accounts to pay to insert candidate messages into the message streams requested by account holders. To accommodate multiple advertisers, the messaging platform controls an auction process that determines which candidate messages are selected for inclusion in a requested account holder'"'"'s message stream. Selection is based on a bid for the candidate message, the message stream that is requested, and a variety of other factors that vary depending upon the implementation. The process for selection of candidate messages generally includes the following steps, though any given step may be omitted or combined into another step in a different implementation: targeting, filtering, prediction, ranking, and selection.
75 Citations
36 Claims
-
1. A method comprising:
-
receiving, at a messaging platform that publishes message streams, including a message stream of a first account holder of the messaging platform, a request, from a computing device associated with a second account holder of the messaging platform, for the message stream of the first account holder; selecting two or more ad campaigns resident on the messaging platform, each selected ad campaign having a budget and at least one candidate message; calculating a current spend for each of the selected ad campaigns, the current spend representing a portion of the budget already spent by the respective ad campaign; determining an engagement time distribution by at least applying a first smoothing distribution to a first tunable parameter to generate a first product, applying a second smoothing distribution to a second tunable parameter to generate a second product, and combining the first product and the second product; calculating an outstanding spend for each of the selected ad campaigns based on a time at which the messaging platform received the request, the engagement time distribution, account holders that received but did not yet engage with one or more candidate messages from the respective ad campaign and a predicted clickthrough rate, wherein the predicted clickthrough rate is calculated based on a features vector and a weights vector, wherein the features vector comprises values of one or more of a message feature or an account feature, and wherein the weights vector comprises weight values for each of the features in the features vector; calculating a total outstanding spend for each of the selected ad campaigns by adding the outstanding spend of the respective ad campaign to the current spend of the respective ad campaign; identifying, as potential candidate messages, candidate messages from the selected ad campaigns with total outstanding spends that are less than the budget of their respective ad campaigns; calculating, for only each potential candidate message, a likelihood value representing a likelihood of future engagement with the respective potential candidate message by one or more of the account holders if the respective potential candidate message was published in the requested message stream; ranking the potential candidate messages based on the calculated likelihood values; selecting, based on the ranking of the potential candidate messages, at least one candidate message for inclusion in the requested message stream; and sending the requested message stream to the second account holder via the computing device, wherein the requested message stream includes the selected at least one candidate message. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A non-transitory computer-readable storage medium comprising instructions executable by a processor, the instructions for:
-
receiving, at a messaging platform that publishes message streams, including a message stream of a first account holder of the messaging platform, a request, from a computing device associated with a second account holder of the messaging platform, for the message stream of the first account holder; selecting two or more ad campaigns resident on the messaging platform, each selected ad campaign having a budget and at least one candidate message; calculating a current spend for each of the selected ad campaigns, the current spend representing a portion of the budget already spent by the respective ad campaign; determining an engagement time distribution by at least applying a first smoothing distribution to a first tunable parameter to generate a first product, applying a second smoothing distribution to a second tunable parameter to generate a second product, and combining the first product and the second product; calculating an outstanding spend for each of the selected ad campaigns based on a time at which the messaging platform received the request, the engagement time distribution, account holders that received but did not yet engage with one or more candidate messages from the respective ad campaign and a predicted clickthrough rate, wherein the predicted clickthrough rate is calculated based on a features vector and a weights vector, wherein the features vector comprises values of one or more of a message feature or an account feature, and wherein the weights vector comprises weight values for each of the features in the features vector; calculating a total outstanding spend for each of the selected ad campaigns by adding the outstanding spend of the respective ad campaign to the current spend of the respective ad campaign; identifying, as potential candidate messages, candidate messages from the selected ad campaigns with total outstanding spends that are less than the budget of their respective ad campaigns; calculating, for only each potential candidate message, a likelihood value representing a likelihood of future engagement with the respective potential candidate message by one or more of the account holders if the respective potential candidate message was published in the requested message stream; ranking the potential candidate messages based on the calculated likelihood values; selecting, based on the ranking of the potential candidate messages, at least one candidate message for inclusion in the requested message stream; and sending the requested message stream to the second account holder via the computing device, wherein the requested message stream includes the selected at least one candidate message. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A messaging platform that publishes a plurality of account holder message streams, including a message stream of a first account holder, the messaging platform comprising:
-
a network interface; a processor connected to the network interface; and a memory, wherein the memory includes program instructions that, when executed by the processor, cause the processor to; receive a request, from a computing device associated with a second account holder of the messaging platform, for the message stream of the first account holder; select two or more ad campaigns resident on the messaging platform, each selected ad campaign having a budget and at least one candidate message; calculate a current spend for each of the selected ad campaigns, the current spend representing a portion of the budget already spent by the respective ad campaign; determine an engagement time distribution by at least applying a first smoothing distribution to a first tunable parameter to generate a first product, applying a second smoothing distribution to a second tunable parameter to generate a second product, and combining the first product and the second product; calculate an outstanding spend for each of the selected ad campaigns based on a time at which the messaging platform received the request, the engagement time distribution, account holders that received but did not yet engage with one or more candidate messages from the respective ad campaign and a predicted clickthrough rate, wherein the predicted clickthrough rate is calculated based on a features vector and a weights vector, wherein the features vector comprises values of one or more of a message feature or an account feature, and wherein the weights vector comprises weight values for each of the features in the features vector; calculate a total outstanding spend for each of the selected ad campaigns by adding the outstanding spend of the respective ad campaign to the current spend of the respective ad campaign; identify, as potential candidate messages, candidate messages from the selected ad campaigns with total outstanding spends that are less than the budget of their respective ad campaigns; calculate, for only each potential candidate message, a likelihood value representing a likelihood of future engagement with the respective potential candidate message by one or more of the account holders if the respective potential candidate message was published in the requested message stream; rank the potential candidate messages based on the calculated likelihood values; select, based on the ranking of the potential candidate messages, at least one candidate message for inclusion in the requested message stream; and send the requested message stream to the second account holder via the computing device, wherein the requested message stream includes the selected at least one candidate message. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
Specification