Messaging aggregator selection based on message priority
In one embodiment, a method includes determining a reliability score for multiple message aggregators and calculating a rank score for each of the message aggregators. The rank score may be based on a price and the reliability score of the corresponding message aggregator. The method further includes identifying a message type for a queued message. Upon identifying the message type as corresponding to a first message type, the method further includes selecting a first message aggregator of the plurality of message aggregators based on the reliability scores, and upon identifying the message type as corresponding to a second message type, selecting a second message aggregator of the plurality of message aggregators based on the rank scores. Finally, the method includes sending the queued message through the selected message aggregator.
1. A computer-implemented method comprising:
by a social-networking system, identifying a particular geographic location and a particular service provider network of a client device of a user;
by the social-networking system, accessing a messaging-service aggregator table corresponding to the particular geographic location and the particular service provider network of the client device of the user, the messaging-service aggregator table comprising a plurality of message aggregators that are configured for sending messages to users connecting through the particular service provider network in the particular geographic location;
by the social-networking system, determining a reliability score for each of the plurality of message aggregators, the reliability score for each respective message aggregator being based on a conversion rate for a plurality of messages transmitted using the message aggregator;
by the social-networking system, calculating a rank score for each of the plurality of the message aggregators, the rank score based on a price and the reliability score of the corresponding message aggregator;
by the social-networking system, comparing an expected response rate of a queued message with a designated threshold response rate;
by the social-networking system, categorizing a priority of the queued message into a particular message type based on comparison of the expected response rate of the queued message with the designated threshold response rate;
by the social-networking system, grouping the reliability scores and rank scores for the plurality of message aggregators based on the particular geographic location of a recipient of the queued message;
by the social-networking system, selecting a message aggregator from the messaging-service aggregator table to send the queued message of the particular message type, wherein the message aggregator is selected from the messaging-service aggregator table corresponding to the particular geographic location of the recipient of the queued message; and
by the social-networking system, sending the queued message through the selected message aggregator to the client device of the user.
2. The computer-implemented method of claim 1 , wherein each of the rank scores comprises a ratio of the respective reliability score for the message aggregator and the price.
3. The computer-implemented method of claim 1 , wherein the particular message type comprises a type of message having a response rate typically exceeding the designated threshold response rate.
4. The computer-implemented method of claim 1 , wherein the particular message type comprises any type of message having a response rate that typically does not exceed the designated threshold response rate.
5. The computer-implemented method of claim 1 , wherein the plurality of message aggregators comprise short message service (SMS) aggregators.
6. The computer-implemented method of claim 1 , further comprising:
grouping the reliability scores and rank scores for the plurality of message aggregators further based on the particular service provider network of the recipient of the queued message; and
wherein the message aggregator is further selected from the messaging-service aggregator table corresponding to the particular service provider network of the recipient of the queued message.
7. The computer-implemented method of claim 1 , further comprising:
grouping the reliability scores and rank scores for the plurality of message aggregators further based on a quality-of-service level assigned to the recipient of the queued message; and
wherein the message aggregator is further selected from the messaging-service aggregator table corresponding to the quality-of-service level assigned to the recipient of the queued message.
8. The computer-implemented method of claim 1 , wherein the conversion rate is based on:
a reply rate for the messages transmitted using the message aggregator;
a click-through rate for the messages transmitted using the message aggregator; or
a view rate for the messages transmitted using the message aggregator.
9. The computer-implemented method of claim 1 , wherein:
if the particular message type of the queued message is of a relatively high priority, then the message aggregator is selected from the messaging-service aggregator table based on the reliability score associated with the message aggregator.
10. The computer-implemented method of claim 1 , wherein:
if the particular message type of the queued message is of a relatively low priority, then the message aggregator is selected from the messaging-service aggregator table based on the rank score associated with the message aggregator.
11. One or more computer-readable non-transitory storage media embodying software that when executed by one or more processors, causes the one or more processors to:
identify a particular geographic location and a particular service provider network of a client device of a user;
access a messaging-service aggregator table corresponding to the particular geographic location and the particular service provider network of the client device of the user, the messaging-service aggregator table comprising a plurality of message aggregators that are configured for sending messages to users connecting through the particular service provider network in the particular geographic location;
determine a reliability score for each of the plurality of message aggregators, the reliability score for each respective message aggregator being based on a conversion rate for a plurality of messages transmitted using the message aggregator;
calculate a rank score for each of the plurality of the message aggregators, the rank score based on a price and the reliability score of the corresponding message aggregator;
compare an expected response rate of a queued message with a designated threshold response rate;
categorize a priority of the queued message into a particular message type based on comparison of the expected response rate of the queued message with the designated threshold response rate;
group the reliability scores and rank scores for the plurality of message aggregators based on the particular geographic location of a recipient of the queued message;
select a message aggregator from the messaging-service aggregator table to send the queued message of the particular message type, wherein the message aggregator is selected from the messaging-service aggregator table corresponding to the particular geographic location of the recipient of the queued message; and
send the queued message through the selected message aggregator to the client device of the user.
12. The one or more computer-readable non-transitory storage media of claim 11 , wherein each of the rank scores comprises a ratio of the respective reliability score for the message aggregator and the price.
13. The one or more computer-readable non-transitory storage media of claim 11 , wherein the particular message type comprises a type of message having a response rate typically exceeding the designated threshold response rate.
14. The one or more computer-readable non-transitory storage media of claim 11 , wherein the particular message type comprises any type of message having a response rate that typically does not exceed the designated threshold response rate.
15. The one or more computer-readable non-transitory storage media of claim 11 , wherein the plurality of message aggregators comprise short message service (SMS) aggregators.
16. The one or more computer-readable non-transitory storage media of claim 11 , wherein the software when executed by the one or more processors, further causes the one or more processors to:
group the reliability scores and rank scores for the plurality of message aggregators further based on the particular service provider network of the recipient of the queued message; and
wherein the message aggregator is further selected from the messaging-service aggregator table corresponding to the particular service provider network of the recipient of the queued message.
17. The one or more computer-readable non-transitory storage media of claim 11 , wherein the software when executed by the one or more processors, further causes the one or more processors to:
group the reliability scores and rank scores for the plurality of message aggregators further based on a quality-of-service level assigned to the recipient of the queued message; and
wherein the message aggregator is further selected from the messaging-service aggregator table corresponding to the quality-of-service level assigned to the recipient of the queued message.
18. A system comprising one or more processors and a memory coupled to the processors comprising instructions that when executed by the processors, cause the processors to:
identify a particular geographic location and a particular service provider network of a client device of a user;
access a messaging-service aggregator table corresponding to the particular geographic location and the particular service provider network of the client device of the user, the messaging-service aggregator table comprising a plurality of message aggregators that are configured for sending messages to users connecting through the particular service provider network in the particular geographic location;
determine a reliability score for each of the plurality of message aggregators, the reliability score for each respective message aggregator being based on a conversion rate for a plurality of messages transmitted using the message aggregator;
calculate a rank score for each of the plurality of the message aggregators, the rank score based on a price and the reliability score of the corresponding message aggregator;
compare an expected response rate of a queued message with a designated threshold response rate;
categorize a priority of the queued message into a particular message type based on comparison of the expected response rate of the queued message with the designated threshold response rate;
group the reliability scores and rank scores for the plurality of message aggregators based on the particular geographic location of a recipient of the queued message;
select a message aggregator from the messaging-service aggregator table to send the queued message of the particular message type, wherein the message aggregator is selected from the messaging-service aggregator table corresponding to the particular geographic location of the recipient of the queued message; and
send the queued message through the selected message aggregator to the client device of the user.