IP Library Granted Patent US 9,319,359
Granted Patent B1
US 9,319,359 · App. 14/213,367 · Granted Apr 19, 2016

Promoting content in a real-time messaging platform

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 9,319,359
App. No.
14/213,367
Filed
Mar 14, 2014
Granted
Apr 19, 2016
Kind
B1
Examiner
LU, KUEN S
Art Unit
2165
USPC
707/732
Abstract

A real-time messaging platform and method are disclosed which can be used to promote content in the messaging platform. In one embodiment, the promotion system is disclosed which performs initial candidate selection so as to narrow down the set of candidate promotions before applying more expensive processing. The candidate selection takes advantage of the connection graph information associated with accounts in the messaging platform to identify targeted accounts. In another embodiment, the promotion system uses a prediction model to predict a user's engagement with the promotion and utilizes the prediction to assist in ranking the candidate promotions. Promotions can be assigned metrics based, for example, on a weighted combination of user engagement rates, decayed with time to reflect an intuition that recent interactions by one or more users with the promotion will have a greater impact than older interactions with the promotion.

Claims (81)

1. A computer-implemented method comprising:

receiving a request for promoted content to be presented to a user of a real-time messaging platform that publicly broadcasts streams of messages authored by the users of the platform;

selecting from a set of available promotion items a set of candidate promotion items based on the request and one or more targeted attributes of the user;

for each of the set of candidate promotion items,

providing the candidate promotion item for inclusion in one or more of the streams;

identifying in each of the streams one or more user engagement events for the candidate promotion item, each user engagement event indicating (1) an interaction between an engaging user of the real-time messaging platform and the candidate promotion item appearing in one of the streams and (2) a time when the interaction occurred,

processing the user engagement events to compute a resonance rating for the candidate promotion item, the resonance rating based on a level of engagement by the engaging users of the real-time messaging platform with the candidate promotion item, and

selecting at least one of the set of candidate promotion items for presentation to at least one other of the user in at least one other of the message streams, based on the decayed resonance ratings.

2. The method of claim 1 , wherein the request includes one or more search keywords, and selecting from the set of available promotion items a set of candidate promotion items comprises identifying the set of candidate promotion items based on a candidate map that stores relationships between the one or more search keywords and the set of available promotion items.

3. The method of claim 1 , wherein selecting from the set of available promotion items a set of candidate promotion items comprises:

for each of the set of available promotion items,

identifying a promotion account associated with the available promotion item,

determining, based on a connection graph that stores relationships between different users of the real-time messaging platform, whether the promotion account and the user share at least one connection, and

selecting the available promotion item as a candidate promotion item only when the user shares at least one connection with the promotion account.

4. The method of claim 1 , wherein selecting at least one of the set of candidate promotion items for presentation comprises determining a number of the set of candidate promotion items to be selected for presentation based on how many promotion items have previously been presented to the user.

5. The method of claim 1 , wherein selecting at least one of the set of candidate promotion items for presentation comprises:

identifying an owner of a first candidate promotion item;

determining a number of promoted items that have been previously presented to the user and are associated with the owner; and

selecting the first candidate promotion item for presentation only when the determined number is below a threshold.

6. The method of claim 1 , wherein selecting at least one of the set of candidate promotion items for presentation comprises:

computing for each of the set of candidate promotion items a rank score based on the decayed resonance rating computed for the candidate promotion item and a bid amount provided for the candidate promotion item; and

selecting the at least one of the set of candidate promotion items based on relative rank scores computed for the set of candidate promotion items.

7. The method of claim 1 , wherein, for a first candidate promotion item, decaying comprises decaying the resonance rating exponentially based on a difference between a first time indicated by a user engagement event and a current time.

8. The method of claim 1 , wherein, for a first candidate promotion item, processing the user engagement events comprises:

analyzing the user engagement events to compute an impressions rating and a positive interactions rating associated with the first candidate promotion item; and

combining the impressions rating and the positive interactions rating to generate the resonance rating for the candidate promotion item.

9. A non-transitory computer readable storage medium storing instructions, the instructions when executed by a processor configured to cause the processor to:

receive a request for promoted content to be presented to a user of a real-time messaging platform that publicly broadcasts streams of messages authored by the users of the platform;

select from a set of available promotion items a set of candidate promotion items based on the request and one or more targeted attributes of the user;

for each of the set of candidate promotion items,

provide the candidate promotion item for inclusion in one or more of the streams;

identify in each of the streams one or more user engagement events for the candidate promotion item, each user engagement event indicating (1) an interaction between an engaging user of the real-time messaging platform and the candidate promotion item appearing in one of the streams and (2) a time when the interaction occurred,

process the user engagement events to compute a resonance rating for the candidate promotion item, the resonance rating based on a level of engagement by the engaging users of the real-time messaging platform with the candidate promotion item, and

decay the resonance rating based on the times indicated by the user engagement events; and

select at least one of the set of candidate promotion items for presentation to at least one other of the user §in at least one other of the message streams based on the decayed resonance ratings.

10. The computer readable storage medium of claim 9 , wherein the request includes one or more search keywords, and selecting from the set of available promotion items a set of candidate promotion items comprises identifying the set of candidate promotion items based on a candidate map that stores relationships between the one or more search keywords and the set of available promotion items.

11. The computer readable storage medium of claim 9 , wherein the instructions are further configured to cause the processor to select from the set of available promotion items a set of candidate promotion items by:

for each of the set of available promotion items,

identifying a promotion account associated with the available promotion item,

determining, based on a connection graph that stores relationships between different users of the real-time messaging platform, whether the promotion account and the user share at least one connection, and

selecting the available promotion item as a candidate promotion item only when the user shares at least one connection with the promotion account.

12. The computer readable storage medium of claim 9 , wherein the instructions are further configured to cause the processor to select at least one of the set of candidate promotion items for presentation by determining a number of the set of candidate promotion items to be selected for presentation based on how many promotion items have previously been presented to the user.

13. The computer readable storage medium of claim 9 , wherein the instructions are further configured to cause the processor to select at least one of the set of candidate promotion items for presentation by:

identifying an owner of a first candidate promotion item;

determining a number of promoted items that have been previously presented to the user and are associated with the owner; and

selecting the first candidate promotion item for presentation only when the determined number is below a threshold.

14. The computer readable storage medium of claim 9 , wherein the instructions are further configured to cause the processor to select at least one of the set of candidate promotion items for presentation by:

computing for each of the set of candidate promotion items a rank score based on the decayed resonance rating computed for the candidate promotion item and a bid amount provided by an owner of the candidate promotion item; and

selecting the at least one of the set of candidate promotion items based on relative rank scores computed for the set of candidate promotion items.

15. The computer readable storage medium of claim 9 , wherein the instructions are further configured to cause the processor to, for a first candidate promotion item, decay by decaying the resonance rating exponentially based on a difference between a first time indicated by a user engagement event and a current time.

16. The computer readable storage medium of claim 9 , wherein the instructions are further configured to cause the processor to, for a first candidate promotion item, process the user engagement events comprises:

analyzing the user engagement events to compute an impressions rating and a positive interactions rating associated with the first candidate promotion item; and

combining the impressions rating and the positive interactions rating to generate the resonance rating for the candidate promotion item.

17. A computer system, comprising:

a computer processor;

a promotion module configured to execute on the computer processor and to:

receive a request for promoted content to be presented to a user of the real-time messaging platform that publicly broadcasts messages authored by users of the platform,

select from a set of available promotion items a set of candidate promotion items based on the request and one or more targeted attributes of the user,

for each of the set of candidate promotion items,

provide the candidate promotion item for inclusion in one or more of the streams;

identify in each of the streams one or more user engagement events for the candidate promotion item, each user engagement event indicating (1) an interaction between an engaging user of the real-time messaging platform and the candidate promotion item appearing in one of the streams and (2) a time when the interaction occurred,

process the user engagement events to compute a resonance rating for the candidate promotion item, the resonance rating based on a level of engagement by the engaging users of the real-time messaging platform with the candidate promotion item, and

decay the resonance rating based on the times indicated by the user engagement events, and

select at least one of the set of candidate promotion items for presentation to the user based on the decayed resonance ratings.

18. The computer system of claim 17 , wherein the promotion module is further configured to select from the set of available promotion items a set of candidate promotion items by:

for each of the set of available promotion items,

identifying a promotion account associated with the available promotion item, determining, based on a connection graph that stores relationships between different users of the real-time messaging platform, whether the promotion account and the user share at least one connection, and

selecting the available promotion item as a candidate promotion item only when the user shares at least one connection with the promotion account.

19. The computer system of claim 17 , wherein the promotion module is further configured to select at least one of the set of candidate promotion items for presentation by determining a number of the set of candidate promotion items to be selected for presentation based on how many promotion items have previously been presented to the user.

20. The computer system of claim 17 , wherein the promotion module is further configured to select at least one of the set of candidate promotion items for presentation by:

identifying an owner of a first candidate promotion item;

determining a number of promoted items that have been previously presented to the user and are associated with the owner; and

selecting the first candidate promotion item for presentation only when the determined number is below a threshold.

21. The computer system of claim 17 , wherein the request includes one or more search keywords, and selecting from the set of available promotion items a set of candidate promotion items comprises identifying the set of candidate promotion items based on a candidate map that stores relationships between the one or more search keywords and the set of available promotion items.

22. The computer system of claim 17 , wherein the instructions are further configured to cause the processor to select at least one of the set of candidate promotion items for presentation by:

computing for each of the set of candidate promotion items a rank score based on the decayed resonance rating computed for the candidate promotion item and a bid amount provided by an owner of the candidate promotion item; and

selecting the at least one of the set of candidate promotion items based on relative rank scores computed for the set of candidate promotion items.

23. The computer system of claim 17 , wherein the instructions are further configured to cause the processor to, for a first candidate promotion item, decay by decaying the resonance rating exponentially based on a difference between a first time indicated by a user engagement event and a current time.

24. The computer system of claim 17 , wherein, for a first candidate promotion item, processing the user engagement events comprises:

analyzing the user engagement events to compute an impressions rating and a positive interactions rating associated with the first candidate promotion item; and

combining the impressions rating and the positive interactions rating to generate the resonance rating for the candidate promotion item.

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 062079/0677 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2015
From: SRIVASTAVA, UTKARSH; GOEL, ASHISH; RAJGOPAL, SRINIVASAN; BANERJI, ANAMITRA
To: TWITTER, INC.
Reel/Frame 037170/0723 →