IP Library Granted Patent US 9,654,577
Granted Patent B2
US 9,654,577 · App. 15/136,781 · Granted May 16, 2017

Techniques to generate mass push notifications

Inventors: Bryan Jay Klimt, Jr. (Menlo Park, CA); Kevin David Lacker (Berkeley, CA); Michael Brian Jacokes (Menlo Park, CA); Thomas Alan Bouldin (San Francisco, CA); David Eitan Poll (Mountain View, CA); Ilya Sukhar (San Francisco, CA)
Assignee: FACEBOOK, INC.
H04L67/26G06F17/30424H04L51/20
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,654,577
App. No.
15/136,781
Granted
May 16, 2017
Kind
B2
Abstract

Techniques to generate mass push notifications are described. In one embodiment, for example, an apparatus may comprise a submission component, a query component, a delivery component, and a record update component. The submission component may be operative to receive a message bundle, the message bundle comprising a message and a query. The query component may be operative to compare the query to a plurality of recipient records to determine a plurality of recipient records matching the query, each of the plurality of recipient records corresponding to a particular installation of a particular application onto a particular device. The delivery component may be operative to broadcast the message to a plurality of installed applications corresponding to the plurality of recipients records matching the query. Other embodiments are described and claimed.

Claims (43)

1. A computer-implemented method, comprising:

receiving a message bundle, the message bundle comprising a message and a query, the query comprising an application version and an application identifier;

searching fields in a plurality of recipient records according to the query to determine a plurality of recipients associated with recipient records that are associated with the application identifier and the application version; and

pushing the message to the plurality of recipients.

2. The method of claim 1 , wherein the message comprises a notification of a new version of the application, the method further comprising:

searching fields in the plurality of recipient records according to the query to determine a plurality of recipients associated with recipient records that are associated with the application identifier and with an application version that does not match the application version in the query.

3. The method of claim 1 , wherein the message comprises a tag, the method comprising:

extracting information from a recipient record in the determined plurality of recipients; and

replacing the tag in the message with the extracted information.

4. The method of claim 1 , the message bundle received using a developer user-notification interface.

5. The method of claim 1 , wherein pushing the message to the plurality of recipients comprises submitting a plurality of notifications to one or more notification services, each of the plurality of notifications corresponding to one of the plurality of recipients.

6. The method of claim 1 , wherein comparing the query to the plurality of recipient records comprises:

dividing the plurality of recipient records into a plurality of record groups; and

examining each of the plurality of record groups in parallel to determine the plurality of recipients.

7. The method of claim 6 , the plurality of recipients comprising a plurality of installations of a particular application, the plurality of recipient records divided into a particular number of record groups based one of a pre-defined constant or a dynamically calculated variable based on a current load on a system performing the examining.

8. The method of claim 6 , the plurality of recipients assigned a parallelization constant, the plurality of recipient records divided into a particular number of record groups based on the parallelization constants.

9. An apparatus, comprising:

a processor circuit on a device;

a submission component operative on the processor circuit to receive a message bundle, the message bundle comprising a message and a query, the query comprising an application version and an application identifier;

a query component operative on the processor circuit to search fields in a plurality of recipient records according to the query to determine a plurality of recipients, each of the plurality of recipient records corresponding to a particular installation of a particular application and application version onto a particular device; and

a delivery component operative on the processor circuit to push the message to a plurality of installed applications corresponding to the determined plurality of recipients.

10. The apparatus of claim 9 , wherein the message comprises a notification of a new version of the application, the query component further to search fields in the plurality of recipient records according to the query to determine a plurality of recipients associated with recipient records that are associated with the application identifier and with an application version that does not match the application version in the query.

11. The apparatus of claim 9 , wherein the message comprises a tag, the search component further to extract information from a recipient record in the determined plurality of recipients; and the submission component further to replace the tag in the message with the extracted information.

12. The apparatus of claim 9 , the delivery component operative to push the message to the plurality of installed applications by submitting a plurality of notifications to one or more notification services, each of the plurality of notifications corresponding to one of the plurality of installed applications.

13. The apparatus of claim 9 , the query component operative to divide the plurality of recipient records into a plurality of record groups and to examine each of the plurality of record groups in parallel to determine the plurality of recipients.

14. The apparatus of claim 13 , the query component operative to divide the plurality of recipient records into a particular number of record groups based one of a pre-defined constant or a dynamically calculated variable based on a current load on a system performing the examining.

15. At least one computer-readable storage medium comprising instructions that, when executed, cause a system to:

receive a message bundle, the message bundle comprising a message and a query, the query comprising an application version and an application identifier;

search fields in a plurality of recipient records according to the query to determine a plurality of recipients associated with recipient records that are associated with the application identifier and the application version; and

submit a plurality of notifications to one or more notification services, each of the plurality of notifications corresponding to one of the plurality of recipients and comprising the message.

16. The computer-readable storage medium of claim 15 , wherein the message comprises a notification of a new version of the application, comprising further instructions that, when executed, cause the system to:

search fields in the plurality of recipient records according to the query to determine a plurality of recipients associated with recipient records that are associated with the application identifier and with an application version that does not match the application version in the query.

17. The computer-readable storage medium of claim 15 , wherein the message comprises a tag, comprising further instructions that, when executed, cause the system to:

extract information from a recipient record in the determined plurality of recipients; and

replace the tag in the message with the extracted information.

18. The computer-readable storage medium of claim 15 , comprising further instructions that, when executed, cause the system to:

divide the plurality of recipient records into a plurality of record groups; and

examine each of the plurality of record groups in parallel to determine the plurality of recipients.

19. The computer-readable storage medium of claim 18 , the plurality of recipients comprising a plurality of installations of a particular application, comprising further instructions that, when executed, cause the system to:

divide the plurality of recipient records into a particular number of record groups based one of a pre-defined constant or a dynamically calculated variable based on a current load on a system performing the examining.

20. The computer-readable storage medium of claim 18 , comprising further instructions that, when executed, cause the system to:

assign a parallelization constant to each of a plurality of recipient records; and

divide the plurality of recipient records into a particular number of record groups based on the parallelization constants.

Assignments (1)
CHANGE OF NAME Recorded May 5, 2022
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 059858/0387 →
Continuity (2)
Continuation 13935878 · Jul 5, 2013
Related Publication 20160241661A1 · Aug 18, 2016