Exploration in a real time messaging platform
First Claim
1. A method comprising:
- receiving, by a system of one or more computing devices and from a client device of an account holder of a social media platform, a request for a message stream of messages published on the social media platform;
identifying a set of candidate messages each associated with a respective bid value;
for each candidate message in the set of candidate messages;
predicting, by the system, a respective likelihood of engagement of the account holder with the candidate message based on a number of engagements with the candidate massage, wherein the number of engagements comprises a number of times the candidate message received an engagement from other account holders of the social media platform when published in respective message stream of the other account holders, andcalculating, by the system, a rank value for the candidate message, the rank value being calculated as a function of the likelihood of engagement and the bid value of the candidate message;
determining, by the system and for each candidate message in the set of candidate messages, a respective rank of the candidate message relative to other candidate messages in the set of candidate messages, the respective rank being determined based on the calculated rank values of each candidate message;
determining, by the system, whether a rank for a particular candidate message is lower than a threshold rank;
in response to determining that the rank of the particular candidate message is lower than the threshold rank, determining, by the system, whether a number of impressions of the particular candidate message is fewer than a threshold number of impressions, wherein the number of impressions comprises a number of times the particular candidate message was published in message streams of other account holders of the social media platform, and wherein the threshold number of impressions represents a number of impressions at which the predicted likelihood of engagement is deemed to be accurate;
responsive to determining that the number of impressions for the particular candidate message is less than the threshold number of impressions;
increasing the rank value of the particular candidate message, andreplacing the rank of the particular candidate message with a new rank calculated for the particular candidate message based on the increased rank value;
selecting at least one candidate message from candidate messages in the set of candidate messages that have respective ranks greater than the threshold rank; and
sending the message stream to the client device for display, wherein the 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.
77 Citations
28 Claims
-
1. A method comprising:
-
receiving, by a system of one or more computing devices and from a client device of an account holder of a social media platform, a request for a message stream of messages published on the social media platform; identifying a set of candidate messages each associated with a respective bid value; for each candidate message in the set of candidate messages; predicting, by the system, a respective likelihood of engagement of the account holder with the candidate message based on a number of engagements with the candidate massage, wherein the number of engagements comprises a number of times the candidate message received an engagement from other account holders of the social media platform when published in respective message stream of the other account holders, and calculating, by the system, a rank value for the candidate message, the rank value being calculated as a function of the likelihood of engagement and the bid value of the candidate message; determining, by the system and for each candidate message in the set of candidate messages, a respective rank of the candidate message relative to other candidate messages in the set of candidate messages, the respective rank being determined based on the calculated rank values of each candidate message; determining, by the system, whether a rank for a particular candidate message is lower than a threshold rank; in response to determining that the rank of the particular candidate message is lower than the threshold rank, determining, by the system, whether a number of impressions of the particular candidate message is fewer than a threshold number of impressions, wherein the number of impressions comprises a number of times the particular candidate message was published in message streams of other account holders of the social media platform, and wherein the threshold number of impressions represents a number of impressions at which the predicted likelihood of engagement is deemed to be accurate; responsive to determining that the number of impressions for the particular candidate message is less than the threshold number of impressions; increasing the rank value of the particular candidate message, and replacing the rank of the particular candidate message with a new rank calculated for the particular candidate message based on the increased rank value; selecting at least one candidate message from candidate messages in the set of candidate messages that have respective ranks greater than the threshold rank; and sending the message stream to the client device for display, wherein the message stream includes the selected at least one candidate message. - View Dependent Claims (2, 3, 4, 5, 6, 14, 15)
-
-
7. A non-transitory computer-readable storage medium comprising instructions that, when executed, cause at least one processor of a computing system to:
-
receive, from a client device of an account holder of a social media platform, a request for a message stream messages published on the social media platform; identify a set of candidate messages each associated with one or more message respective features and a respective bid value; for each candidate message in the set of candidate messages; predict a respective likelihood of engagement of the account holder with the candidate message based on a number of engagements with the candidate massage, wherein the number of engagements comprises a number of times the candidate message received an engagement from other account holders of the social media platform when published in respective message stream of the other account holders, and calculate a rank value for the candidate message, the rank value being calculated as a function of the likelihood of engagement and the bid value of the candidate message; determine, for each candidate message in the set of candidate messages, a respective rank of the candidate message relative to other candidate messages in the set of candidate messages, the respective rank being determined based on the calculated rank values of each candidate message; determine whether a rank for a particular candidate message is lower than a threshold rank; in response to determining that the rank of the particular candidate message is lower than the threshold rank, determine whether a number of impressions of the particular candidate message is fewer than a threshold number of impressions, wherein the number of impressions comprises a number of times the particular candidate message was published in message streams of other account holders of the social media platform, and wherein the threshold number of impressions represents a number of impressions at which predicted likelihood of engagement is deemed to be accurate; responsive to determining that the number of impressions for the particular candidate message is less than the threshold number of impressions; increase the rank value of the particular candidate message, and replace the rank of the particular candidate message with a new rank calculated for the particular candidate message based on the increased rank value; select at least one candidate message from candidate messages in the set of candidate messages that have respective ranks greater than the threshold rank; and send the message stream to the client device for display, wherein the message stream includes the selected at least one candidate message. - View Dependent Claims (8, 9, 10, 16, 17)
-
-
11. A system comprising:
-
at least one processor; and a memory configured to store instructions that, when executed by the at least one processor, cause the at least one processor to; receive, from a client device of an account holder of a social media platform, a request for a message stream of messages published on the social media platform; identify a set of candidate messages each associated with a respective bid value; for each candidate message in the set of candidate messages; predict a respective likelihood of engagement of the account holder with the candidate message based on a number of engagements with the candidate massage, wherein the number of engagements comprises a number of times the candidate message received an engagement from other account holders of the social media platform when published in respective message stream of the other account holders, and calculate a rank value for the candidate message, the rank value being calculated as a function of the likelihood of engagement and the bid value of the candidate message; determine, for each candidate message in the set of candidate messages, a respective rank of the candidate message relative to other candidate messages in the set of candidate messages, the respective rank being determined based on the calculated rank values of each candidate message; determine whether a rank for a particular candidate message is lower than a threshold rank; in response to determining that the rank of the particular candidate message is lower than the threshold rank, determine whether a number of impressions of the particular candidate message is fewer than a threshold number of impressions, wherein the number of impressions comprises a number of times the particular candidate message was published in message streams of other account holders of the social media platform, and wherein the threshold number of impressions represents a number of impressions at which the predicted likelihood of engagement is deemed to be accurate; responsive to determining that the number of impressions for the particular candidate message is less than the threshold number of impressions; increase the rank value of the particular candidate message, and replace the rank of the particular candidate message with a new rank calculated for the particular candidate message based on the increased rank value; select at least one candidate message from candidate messages in the set of candidate messages that have respective ranks greater than the threshold rank; and send the message stream to the client device for display, wherein the message stream includes the selected at least one candidate message. - View Dependent Claims (12, 13, 18, 19)
-
-
20. A method comprising:
-
receiving, from a client device of an account holder of a social media platform, a request for a message stream of messages published on the social media platform; identifying a set of candidate messages each associated with a respective bid value; for each candidate message in the set of candidate messages; predicting a clickthough rate for the candidate message, the clickthrough rate representing a likelihood of engagement of the account holder with the candidate message; determining whether the candidate message has a number of impressions fewer than a threshold number of impressions, wherein the number of impressions comprises a number of times the candidate message was published in message streams of other account holders of the social media platform, responsive to determining that the number of impressions for the candidate message is fewer than the threshold number of impressions, including the candidate message in a first group of candidate messages, and responsive to determining that the number of impressions for the candidate message is not fewer than the threshold number of impressions, including the candidate message in a second group of candidate messages; for each candidate message in the first group of candidate messages, determining, based on the clickthrough rate predicted for the candidate message, the bid value of the candidate message, and the number of impressions determined for the candidate message, an inflated rank value for the candidate message; for each candidate message in the second group of candidate messages, determining, based on the clickthrough rate predicted for the candidate message and the bid value, and independent of the number of impressions determined for the candidate message, a rank value for the candidate message; determining, by the system and for each candidate message in the set of candidate messages, a rank of the candidate message relative to other candidate messages in the set of candidate messages, the rank being determined based on the determined rank values or the determined inflated rank values of each candidate message; selecting at least one candidate message that has a rank value greater than a threshold rank, from the first group of candidate messages or the second group of candidate messages and based on the respective inflated rank value of each candidate message in the first group of candidate messages and the rank value of each candidate message in the second group of candidate messages; and sending the message stream to the client device for display, wherein the message stream includes the selected at least one candidate message. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28)
-
Specification