Frequently Asked Questions

What makes this a Beta?

We know reliability and usability are going to be fundamental to delivering a good product. To ensure we deliver on that, we are releasing Engine before all features of the product are complete. In this release, you’ll find stable code to run on your device, but not all the bells and whistles. Our goal is to give early adopters a chance to kick the tires and significantly impact the feature set.

How will Beta differ from the official release?

In the beta release, you have access to circumstance detection and current location. You also have access to a small set of remote configuration features. The production version of Engine will add remote configuration of the circumstance rules themselves, analytics, Android support, and a nice web UI for authoring circumstances. This will give you the full makings of a system for optimizing your app’s user experience based on circumstance.

How long is the Beta period?

The Engine Beta period is slated to run through March, 2017.

What happens to my app at the end of the Beta period?

A General Availability release will be made available at the end of March. Beta versions will be supported, but new features will only be available to users with the GA build of Engine compiled into their apps. Further, web-configurations pushed to live clients will only be compatible with GA builds.

When it is officially released, what will it cost to use the Engine SDK?

There will be a free (as in beer) version of Engine available at launch. It won’t be limited by volume.

What happened to previous (“V3”) Factual APIs?

We are in the process of sunsetting Factual’s V3 APIs. Read more about the V3 API sunset in our developer documentation.

Can I accomplish the same things with Engine as the V3 APIs?

Not yet. Our plan is to port our existing search features to Engine before the production launch.

Can I do local searches with Engine?

Not yet. As noted above, the plan is to port our existing search for production.

Does Engine support autocomplete?

It does not. This request is popular, and we’ll do our best to implement it.

Does Engine support checkins?

Yes it does! You can get a list of places near you using the genPlaceCandidatesWithDelegate method.

How large is the Engine SDK?

Under 1.5 MB when compiled. You’ll find more technical specifications here.

Is the Engine SDK source code available?

Currently it is not.

How do Engine API keys work?

Your Engine API key identifies your app to Factual. There are not unique keys per user or any kind of token dance required. You can get your API key from the Garage. You’ll use your API key when initializing engine.

Can I use my V3 API key with Engine?

No. Engine requires a separate Engine API key. To receive an Engine API key, sign up for the beta here.

How much extra battery drain does Engine cause?

Engine relies on Apple’s core location services to get basic location signals, and therefore power consumption is primarily a factor of which service your app has requested (standard, significant changes) as well as what other apps on a device are doing. In our testing, the additional drain from running Engine on top of your location services is low to negligible.

What location permissions does Engine require to operate?

If you configure Engine to use circumstance notifiers, you have the option of requesting location permissions when the user is in your app, or always (in your app and when your app is in the background). You should select always if you are delivering a use case where your app may potentially awaken from an background state to provide a useful service to your users. Otherwise, you should stick with the in-app permissions.

If you are only using circumstances on-demand, then you should only require in-app permissions (assuming that you aren’t directly calling Engine from a background state).

Do I need to request location permissions from my users for Engine, or does Engine make the permission request?

iOS will only open the dialog asking your users to authorize access to permissions once in the lifespan of your app on the device. Per best practices, you should be requesting permission at a point closest to delivering to your users the service that requires location.

Engine has an option to open this dialog for you, in the event that your app isn’t already asking for permission at some other point. This is simply to provide a turnkey experience.

What if my app already has location permissions?

You should verify that Engine isn’t asking for greater permissions than your app already has been granted. Otherwise, you may pop up a new permission dialog.

How does Engine treat opt-in/opt-outs?

If your users opt out of location permissions, Engine will not operate.

Does Engine access IDFAs?

The Engine Beta does not access IDFAs.

How does Engine access Factual Global Places data?

Engine keeps a small cache of Factual Global Places data onboard, in order to service circumstance checks without constantly making network connections back to Factual. When user circumstances are evaluated against places, it is against the local cache.

How do push configurations in Engine work?

Any configuration you make in the Garage is committed when you click the push changes button. Over the next 24 hours, individual instances of your app will call back to Factual to see if there are any updates. Having pushed your changes, these apps will be notified that there is an update and that they should pull it immediately.

How often are Engine configurations updated?

Instances of Engine in the field are configured to call back to Factual when your app is started, provided that it has been at least 24 hours since the last time the app started. This call simply checks to see if any configuration changes need to be pushed. It’s possible individual devices may not receive the latest update within 24 hours, but generally most of your active devices should be updated within that period.

I found a bug/issue with Engine Beta, how do I report it?

You can report bugs and ask questions in the Engine support form.

What do I do if I run into problems installing Engine?

You can read through our developer documentation on installing Engine. If you are still having problems, you can post a topic in the Engine support form.