IP Library Granted Patent US 11,379,436
Granted Patent B1
US 11,379,436 · App. 16/827,630 · Granted Jul 5, 2022

Overspend control in a messaging platform

Inventors: Reid Andersen (San Francisco, CA); Parag Agrawal (San Francisco, CA); Utkarsh Srivastava (Menlo Park, CA); Hyun Duk Kim (San Francisco, CA)
Assignee: Twitter, Inc.
G06F16/21G06F16/335G06F16/435G06Q30/00G06Q30/0247G06Q30/0249
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,379,436
App. No.
16/827,630
Granted
Jul 5, 2022
Kind
B1
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.

Claims (64)

1. A method comprising:

selecting two or more ad campaigns resident on a messaging platform, wherein each selected ad campaign has a budget and at least one servable candidate message;

calculating an outstanding spend for each of the selected ad campaigns based on an engagement time distribution determined using historical data indicating how many engagements are received over time for candidate messages served on the messaging platform, wherein the outstanding spend represents a predicted amount that will be spent on candidate messages that have been included in message streams of accounts of the messaging platform but have not yet received engagements;

receiving, at the messaging platform and from a computing device associated with an account of the messaging platform, a request for a message stream;

selecting one or more candidate messages for inclusion in the message stream, comprising:

for each ad campaign:

calculating an updated outstanding spend for the ad campaign, wherein the updated outstanding spend for an ad campaign is calculated according to the outstanding spend for the ad campaign and an engagement rate representing a percentage of served candidate messages of the ad campaign that received monetizable engagements; and

determining whether the updated outstanding spend for the ad campaign exceeds a remaining budget amount for the ad campaign;

filtering the two or more ad campaigns to remove those ad campaigns that have updated outstanding spends that exceed their remaining budget;

predicting a respective likelihood of engagement of a user of the account with each candidate message in the remaining ad campaigns, wherein a likelihood of engagement is predicted based on one or more features of the associated candidate message and one or more features of the account;

filtering to remove candidate messages that have respective predicted likelihood of engagements less than a specific threshold value;

determining a scoring value for each remaining candidate message of one or more remaining ad campaigns;

ranking the remaining candidate messages based on the determined scoring values; and

selecting one or more of the remaining candidate messages for inclusion in the message stream based on the ranking; and

providing the message stream to the computing device associated with the account.

2. The method of claim 1 , wherein the updated outstanding spend is further calculated according to an impression callback rate that corresponds to a percentage of served candidate messages included in message streams that have received an impression by accounts that requested those message streams.

3. The method of claim 1 , wherein the updated outstanding spend is further calculated according to a cost per engagement specified by the ad campaign.

4. The method of claim 1 , wherein the updated outstanding spend is further calculated according to an amount of time elapsed from the calculation of the outstanding spend.

5. The method of claim 1 , wherein the engagement rate is determined based on a calculated likelihood of engagement with candidate messages by recipient accounts.

6. The method of claim 1 , wherein the scoring value of a candidate message is determined based on the predicted likelihood of engagement of the user of the account with the candidate message.

7. The method of claim 1 , wherein the updated outstanding spend is further calculated according to an engagement time distribution, which is a distribution describing how long, after serving a candidate message, an engagement will be received from a corresponding account.

8. One or more non-transitory computer-readable storage media comprising instructions that when executed by one or more processors, cause the one or more processors to perform operations comprising:

selecting two or more ad campaigns resident on a messaging platform, wherein each selected ad campaign has a budget and at least one servable candidate message;

calculating an outstanding spend for each of the selected ad campaigns based on an engagement time distribution determined using historical data indicating how many engagements are received over time for candidate messages served on the messaging platform, wherein the outstanding spend represents a predicted amount that will be spent on candidate messages that have been included in message streams of accounts of the messaging platform but have not yet received engagements;

receiving, at the messaging platform and from a computing device associated with an account of the messaging platform, a request for a message stream;

selecting one or more candidate messages for inclusion in the message stream, comprising:

for each ad campaign:

calculating an updated outstanding spend for the ad campaign, wherein the updated outstanding spend for an ad campaign is calculated according to the outstanding spend for the ad campaign and an engagement rate representing a percentage of served candidate messages of the ad campaign that received monetizable engagements; and

determining whether the updated outstanding spend for the ad campaign exceeds a remaining budget amount for the ad campaign;

filtering the two or more ad campaigns to remove those ad campaigns that have updated outstanding spends that exceed their remaining budget;

predicting a respective likelihood of engagement of a user of the account with each candidate message in the remaining ad campaigns, wherein a likelihood of engagement is predicted based on one or more features of the associated candidate message and one or more features of the account;

filtering to remove candidate messages that have respective predicted likelihood of engagements less than a specific threshold value;

determining a scoring value for each remaining candidate message of one or more remaining ad campaigns;

ranking the remaining candidate messages based on the determined scoring values; and

selecting one or more of the remaining candidate messages for inclusion in the message stream based on the ranking; and

providing the message stream to the computing device associated with the account.

9. The non-transitory computer-readable storage media of claim 8 , wherein the updated outstanding spend is further calculated according to an impression callback rate that corresponds to a percentage of served candidate messages included in message streams that have received an impression by accounts that requested those message streams.

10. The non-transitory computer-readable storage media of claim 8 , wherein the updated outstanding spend is further calculated according to a cost per engagement specified by the ad campaign.

11. The non-transitory computer-readable storage media of claim 8 , wherein the updated outstanding spend is further calculated according to an amount of time elapsed from the calculation of the outstanding spend.

12. The non-transitory computer-readable storage media of claim 8 , wherein the engagement rate is determined based on a calculated likelihood of engagement with candidate messages by recipient accounts.

13. The non-transitory computer-readable storage media of claim 8 , wherein the scoring value of a candidate message is determined based on the predicted likelihood of engagement of the user of the account with the candidate message.

14. The non-transitory computer-readable storage media of claim 8 , wherein the updated outstanding spend is further calculated according to an engagement time distribution, which is a distribution describing how long, after serving a candidate message, an engagement will be received from a corresponding account.

15. A system comprising:

one or more processors and one or more computer-readable storage media comprising instructions that when executed by the one or more processors, cause the one or more processors to perform operations comprising:

selecting two or more ad campaigns resident on a messaging platform, wherein each selected ad campaign has a budget and at least one servable candidate message;

calculating an outstanding spend for each of the selected ad campaigns based on an engagement time distribution determined using historical data indicating how many engagements are received over time for candidate messages served on the messaging platform, wherein the outstanding spend represents a predicted amount that will be spent on candidate messages that have been included in message streams of accounts of the messaging platform but have not yet received engagements;

receiving, at the messaging platform and from a computing device associated with an account of the messaging platform, a request for a message stream;

selecting one or more candidate messages for inclusion in the message stream, comprising:

for each ad campaign:

calculating an updated outstanding spend for the ad campaign, wherein the updated outstanding spend for an ad campaign is calculated according to the outstanding spend for the ad campaign and an engagement rate representing a percentage of served candidate messages of the ad campaign that received monetizable engagements; and

determining whether the updated outstanding spend for the ad campaign exceeds a remaining budget amount for the ad campaign;

filtering the two or more ad campaigns to remove those ad campaigns that have updated outstanding spends that exceed their remaining budget;

predicting a respective likelihood of engagement of a user of the account with each candidate message in the remaining ad campaigns, wherein a likelihood of engagement is predicted based on one or more features of the associated candidate message and one or more features of the account;

filtering to remove candidate messages that have respective predicted likelihood of engagements less than a specific threshold value;

determining a scoring value for each remaining candidate message of one or more remaining ad campaigns;

ranking the remaining candidate messages based on the determined scoring values; and

selecting one or more of the remaining candidate messages for inclusion in the message stream based on the ranking; and

providing the message stream to the computing device associated with the account.

16. The system of claim 15 , wherein the updated outstanding spend is further calculated according to an impression callback rate that corresponds to a percentage of served candidate messages included in message streams that have received an impression by accounts that requested those message streams.

17. The system of claim 15 , wherein the updated outstanding spend is further calculated according to a cost per engagement specified by the ad campaign.

18. The system of claim 15 , wherein the updated outstanding spend is further calculated according to an amount of time elapsed from the calculation of the outstanding spend.

19. The system of claim 15 , wherein the engagement rate is determined based on a calculated likelihood of engagement with candidate messages by recipient accounts.

20. The system of claim 15 , wherein the scoring value of a candidate message is determined based on the predicted likelihood of engagement of the user of the account with the candidate message.

21. The system of claim 15 , wherein the updated outstanding spend is further calculated according to an engagement time distribution, which is a distribution describing how long, after serving a candidate message, an engagement will be received from a corresponding account.

Assignments (7)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (REEL 062079, FRAME 0677) Recorded Mar 3, 2026
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 075015/0574 →
RELEASE OF SECURITY INTEREST Recorded Apr 30, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 071127/0240 →
RELEASE OF SECURITY INTEREST Recorded Mar 27, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 070670/0857 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0001 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0086 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 062079/0677 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2021
From: ANDERSEN, REID; AGRAWAL, PARAG; SRIVASTAVA, UTKARSH; KIM, HYUN DUK
To: TWITTER, INC.
Reel/Frame 056090/0358 →
Continuity (2)
Continuation 14214466 · Mar 14, 2014
Provisional Application 61800546 · Mar 15, 2013