the PACE platform rules engine
At its core, PACE is an efficient rules engine that mediates campaign display to the user.
The job of the rules engine in order to determine the order in which campaigns are shown to the user. It has to evaluate campaign rules quickly and efficiently regardless of whether there one or fifty campaigns installed on the handset.
many independent campaigns
The PACE client can manage many campaigns simultaneously. Campaigns can be conveniently grouped into related types called campaign channels. Every different campaign might have different purpose, be it advertising, providing a voicemail alert, or assisting roaming subscribers.
The job of a the rules engine is to determine which of these campaign channels and campaign items are displayed to the user and in what order they are displayed.
Campaign display priority
PACE uses a priority based system to determine which items are displayed: a content item with a priority of greater than zero is ‘displayable’ to the user and the highest priority item is always shown first.
The rules engine has the job of determining the display priority for each campaign. It does this in three steps:
- It examines meta rules in the content channel to determine whether any campaigns in that channel are displayable.
- It examines rules in each campaign to determine individual campaign display priorities.
- It dispatches handset events to campaign rules so that they can dynamically change their priority as required.
The rules themselves are specified in XML and include one of more conditions that are evaluated using standard boolean operators. A rule that evaluates to true sets the display priority for its associated campaign.
The rules engine evaluates the complete rule set at system startup, when all of the items in the display carousel have been shown or three hours have passed, whichever comes sooner.
the campaign display carousel
Displayable idle screen and screensaver campaigns are are placed in the display ‘carousel’ and are shown sequentially to the user in order of their display priority.
This is the normal mode of operation for the client. Every screensaver campaign view is matched with a home screen view and these are always kept synchronised. Thus, if the user dismisses the screensaver, then a home-screen representation of the last screensaver campaign will always be shown, giving a clear context for interaction.
rules and event subscriptions
rules can subscribe to system events. For example, a rule can subscribe to notifications for when a new SMS message is delivered to the handset.
The rules engine keeps track of which campaigns subscribe to which events and runs only these rules in response to the event. In this way, campaigns can dynamically change their display priority without having to re-run the rules engine over every possible rule.
rules and Overlay campaigns
Overlay campaigns extend the idea of event subscriptions further. The rules engine only evaluates rules when the application bound to the Overlay is in the foreground.
technical benefits
The PACE rules engine works to prioritise which campaigns are displayed to the user. A simple system of display priorities coupled with event subscriptions makes it easy to build either static or active campaigns. The multi-layered approach employed by the rules engine ensures that the system is very efficient. For example, the overhead of having a campaign. that activates only when the handset is roaming is tiny.
