Skip to content


What about iPad?

ContextSDK works for both iPhones, and iPads.

Does ContextSDK require any additional iOS permissions?

No, ContextSDK was built to work without any iOS permissions: all data that is used to determine the users real world context is accessible to any app, and only uses official Apple APIs (no private APIs). No ATT is needed.

Does ContextSDK use any type of PII?

No, ContextSDK was designed from the ground up to operate without the use of any PII (Personally Identifiable Information). The SDK does not process or store any PII. Also, as per our agreement, you must not send any PII to Context Insights, as part of any of the parameters or events you send to via the SDK.

Objective-C Support

Right now, due to limited demand, we don't currently support all features. You can still use the basic Context Insight dashboard like this:

#import <ContextSDK/ContextSDK-umbrella.h>

[ContextManager setup:@"YOUR_LICENSE_KEY"];

Please let us know if you're interested in using any other of the ContextSDK features in Objective-C.

How does the model training work?

  • There is no on-device model training. No CPU or battery will be used for model training on your user's phones
  • All model training happens on our servers, and only after you've logged enough data
  • Once the training of your custom-model is ready, we can deploy your model over-the-air (OTA), or alternatively provide you with your own ContextSDK binary.

How do OTA model deployments work?

When ContextSDK collects the context data, the response of those network requests include the info about the latest available model. Unless you don't want to enable Over-the-air updates (OTA) for your custom model, you don't need to do anything, and we will notify you once a new model is about be released.

Long-term, deploying new models will be self-serve on our dashboard, which will allow you to rollout new models, monitor their performance, and more. Currently, we're coordinating this process manually with you.

Is there support for Swift Async Await?

ContextSDK does not support async/await. ContextSDK leverages the block-based syntax so it can decide if it should invoke the block based on the current user's context, once the calibration phase is complete. If this were to be an async function, this means your calling function would never return in those cases.

  • If your concern is that blocks make your code more complicated, use the instantContext method instead
  • If your concern is how much of a delay your block is called at, use the maxDelay: 0 parameter


Head over to the changelog to see what has changed with each ContextSDK release.