Introducing Engine

The Engine SDK enables your app to respond to user circumstance in order to deliver a better user experience. This means you have control over using place, time, and other location and user specific cues to directly impact user engagement.

A circumstance in Engine is the unique combination of time, place, activity, behavior, and history that differentiates the ideal interaction between each individual user and your mobile app.

Consider three users at the same coffee shop:

  • One user is seen at the coffee shop most weekdays for a quick visit around 8:50-9:00 a.m.
  • A second user is there once or twice a week, typically staying for a couple of hours straight during the evening, when musical performances are occurring at the shop.
  • A third user is there during virtually all open hours.

It should be apparent that each of these users represents different challenges/opportunities to your app in regards to delivering a contextually relevant user experience. For example:

  • The first user likely works very close to this coffee shop; perhaps your productivity app should be doing something to prep them for the workday.
  • If you are developing a music app, you might incorporate which styles of music are playing at the coffee shop while the second user is there, in order to generate smarter playlists during their ride home.
  • Perhaps you are developing a deal-finding app that offers coupons on coffee drinks. The likelihood is that the third user is actually an employee of the location, and is not a good target for your offer.


On-Device Smarts

The Engine SDK is designed to detect users’ circumstances with minimal network access and efficient use of device battery. Most of the heavy lifting is performed on the device itself, rather than by making costly API calls over wireless networks. Specifically, Engine runs a lightweight machine-learning stack and signal processing pipeline that can be configured to access various sensors on mobile devices. Engine also manages a small cache of Factual’s Global Places data. These tools can be remotely configured to monitor for circumstances that your app has been prepared to handle.

Performing circumstance detection with few network dependencies has a number of advantages:

  • Higher battery efficiency.
  • Low sensitivity to network outages.
  • Easy support for privacy sensitive use cases.


Remote configuration

Engine is empowered to think for itself, but it takes directives from you. Engine has a powerful remote configuration system. The configuration system enables you to:

  • Push updates to the circumstances you want Engine to monitor.
  • Reconfigure how you want your app to handle those circumstances.
  • Change how often and when you want Engine to engage monitoring.
  • Determine how telemetry data is collected.
  • Generally push basic configuration changes without having to push new code through the app store.

Engine’s configuration system also enables improved detection algorithms and machine learning models to be made available to devices in the field, without recompiling your app and pushing the new build through the app store.


Factual Data

Engine has access to Factual’s Global Places Data, giving you highly accurate data on venues anywhere your users go. Additionally, you have access to attributes like operating hours, business categories, retail chain affiliations, and local events (available in our General Availability release) that make it easier to construct small, simple circumstance rules resulting in vast scale.


Current Status

Engine is in Beta. That means it is available to you to use for free. It isn’t feature complete, but new features will be rolling out early and often.