High-Speed Delivery Setup
Deliver time-sensitive push messages with no delay
Overview
In Pushwoosh, audience segments can be defined with Filters or Conditions. For regular targeted push campaigns, segments are compiled after the /createMessage
request is received. Therefore, depending on the segmentโs complexity, it may take a while before the segment is compiled and the push is sent.
With the High-Speed Delivery setup, Filters are pre-compiled every X minutes, which allows keeping audience segments updated and sending messages instantly. Therefore, time-sensitive push messages can be delivered with no delay due to compiling Filters.
High-Speed Delivery proved itself to be highly efficient for various verticals where marketing success is a matter of seconds. For example, for sports organizations such as UEFA (Champions League, Europa League, European Qualifiers apps), and FIBA.
This guide refers to the High-Speed Delivery setup via the example of sports vertical. Letโs take a look at segmentation of a sports appโs user base to notify them about the upcoming match and its course.
Why High-Speed Delivery
The prerequisites for using the High-Speed Delivery by sports organizations are as follows:
all matches are scheduled in advance, so you know when to create respective Filters and can pre-compile audience segments;
every match is associated with a unique ID. For example, match ID for Champions League Final is 0123;
every team is associated with a unique ID. For example, Juventus ID is 111, Real Madrid ID is 222, etc.;
thereโs a set of live events youโd like to notify users about (goals, lineups, kickoff, etc.).
Setup
All Filters for High-Speed Delivery should be created in advance, in the example given โ before the match starts. Pushwoosh applies Filter conditions to the appโs user base and pre-compiles segments every 10 minutes (adjustable). When you submit a /createMessage
API request containing push content and the Filter name, Pushwoosh already has a pre-compiled list of recipients ready to instantly send the push to.
Filter compilation is resource-consuming, and its speed depends on:
the complexity of Filter conditions (the number of Tags used, a high cardinality of Tag values);
the number of unique Filters pre-compiled simultaneously;
the number of users subscribed to the app.
Therefore, all Filters for a game must be created via API prior to game start and deleted afterwards to keep the number of active pre-compiled Filters to a minimum and save computing resources.
Create Tags
First, create a set of Tags to apply, and set Tag values for users' devices. Create Tags of the LIST type corresponding to live match events such as kickoff, goal, red card, etc. For example: MATCH-KICKOFF, MATCH-GOAL, MATCH-RED_CARD
Create the same set of Tags describing live match events for teams. For example: TEAM-KICKOFF, TEAM-GOAL, TEAM-RED_CARD
To create Tags via the API, call/addTag
.
By subscribing to these Tags, app users can choose which notifications theyโd like to receive:
notifications about the specific match (e.g., Juventus - Real Madrid match);
notifications about favorite teamโs matches (e.g., Juventus matches only);
notifications about events occurring during the match (e.g., goals in Juventus - Real Madrid match only);
notifications about specific events from the favorite team (e.g., goals and lineups of Juventus matches).
Set Tags
Now you can populate previously specified Tag values via the /setTags
API request, and subscribe users to specific categories of push notifications. For example:
When a user subscribes to receive Champions League Final kickoff and goal updates, call the /setTags
with the match ID contained:{
The user will receive notifications about Champions League Final kickoff and goals scored.
When a user subscribes to receive goal and red cards updates of Real Madrid matches, call the /setTags
as follows:
This user will receive notifications about kickoffs and goals whenever Real Madrid is playing.
Create Filters
Now you can create Filters for match events based on Tags and their values (match IDs and team IDs). Filters should be created via the /createFilter
API request 30 minutes before the match starts.
To notify users about goals scored in Champions League Final from the example given above, call the /createFilter
with following parameters:
Filter name: 0123_GOAL
Filter conditions: #TEAM-GOAL(111, 222) OR #MATCH-GOAL(0123)
This request will compile the segment of users subscribed for goal updates of Champions League Final (match ID=0123) OR users who follow either Juventus or Real Madrid (team ID=111,222).
To set up a High-Speed Delivery in your Pushwoosh Control Panel, create a new Filter with corresponding Tag values and associate it to the app you're going to send pushes to. App-specific Filters are pre-compiled every 10 minutes to keep audience segments always updated.
When the match event occurs (goal scored, match kickoff, red card, etc.), call the /createMessage
with the push notification content and the Filter name contained:
Once we receive the /createMessage
call, we already have a pre-compiled list of devices that match the Filter criteria, and we immediately send the notification towards APNs and FCM gateways.
Delete Filters
After the match is over, all corresponding Filters should be deleted so that computing resources are not spent on further re-compilation of Filters that are no longer relevant, especially at the expense of Filters for matches that are scheduled next. Delete Filters via the /deleteFilter
API request, for example:
To avoid manual Filters deletion, set the Filter expiration date via the /createFilter
request so that the Filter will be deleted automatically on the date specified:
That's it!
Last updated