SDK FAQs

Frequently Asked Questions about the Interaction SDK

SDK Integration and Compatibility

Which platforms and operating system versions does the SDK support?

Monterosa / Interaction SDK supports iOS 13+, Android 6+ and most modern web browsers. It also supports support React Native with a limited feature set.

Please see this page for more in-depth information.

Does the SDK have any third-party dependencies, and how are they managed?

We take the stability of the SDK very seriously and use a minimum of third party code.

  • iOS depends on PromiseKit, Starscream and SwiftyJSON. SwiftyJSON is slated to be removed in the next version of the SDK.

  • Android depends on Netty for network stack management and Google's Gson for JSON parsing.

  • SDK for Web depends on mitt for event management and uuid for UUID generation.

Performance and Stability

What is the impact on my app binary size?

  • iOS adds around 2MB to the app's binary size, resulting in only a minimal increase in the app's initial download time.

  • Android increases the final binary size by around 700KB, without a noticeable impact on performance or download time.

What is the JavaScript bundle size?

We distribute our JS SDK as a set of npm modules with the following characteristics:

  • Readable Code: The distributed code is not obfuscated.

  • Non-Compressed: Modules are provided without compression.

  • Bundled as a Single File: Each module is bundled into a single JavaScript file.

  • Transpiled to ES2017: The code is transpiled to ES2017 for better compatibility with modern JavaScript environments.

This distribution method results in larger file sizes. However it also allows developers to further optimise the codebase during the final build of their application. This includes additional bundling, tree-shaking, transpilation, obfuscation, and compression, enabling customised optimisations based on specific use cases.

Below are the current file sizes for each module bundle (as of 1.0.0-rc.1):

  • All Modules Combined: 268 KB

  • Minimum Required to embed an experience (core + util + launcher-kit): 91 KB

Note: These sizes are pre-compression and pre-optimisation. When bundled by third-party developers, additional optimisations can greatly reduce the overall size. For example, compressing the interact-kit module alone can reduce its size from 75 KB to 16 KB (a reduction of approximately 4.5 times).

Does the web load async or is it blocking?

The SDK’s load behaviour — whether it is asynchronous or blocking — depends on how it is integrated by third-party developers. While the SDK includes some internal fetch operations, the initial loading is primarily controlled by the developer's implementation strategy.

How much traffic does the SDK exchange with the server?

The volume of traffic exchanged between the SDK and the backend varies based on the complexity of the user experience. Communication is also spread between CDN, WebSockets and APIs.

Typically, the application will download several megabytes of code and graphical assets upon initialisation. Following this, it will consume only a minimal amount of data, generally measured in single kilobytes per minute, during real-time interactions.

Media files that are content managed on a per-event and per-experience basis tend to be the primary contributors to overall traffic volume. To address this, Monterosa / Interaction Cloud offers specialised tools and workflows designed to optimise media asset management and minimise unnecessary data consumption, such a limiting headshot filesizes.

What is the historical crash rate?

Monterosa / Interaction SDK does not collect its own crash information for compliance reasons.

Instead, we request our customers to supply us with any evidence of crash behaviour that might be related to the SDK and we're proud to say that there have been no crashes reported in the current version of production applications.

Security and Privacy

Does the SDK support data encryption, and how is data secured in transit and at rest?

The SDK uses TLS-encrypted network protocols such as HTTPS and WSS when communicating with back-end APIs.

SDKs for iOS and Android store data in the app-scoped storage, which is not available to any other application or the users of the device.

SDK for Web stores data in the domain-scoped local storage. All new deployments use customer-scoped domains and content security policies to minimise vulnerability to CSRF/XSS attacks.

What data does the SDK send to the back end?

Transactional data depends on your use case. This may include user responses to interactive games, data form submissions and any other data points explicitly tied to the user experience.

If your application includes user identity integration, the SDK will send the user's proof of identity such as an access token to the back-end for authentication.

By making direct network calls to Monterosa back-end APIs, the SDK implicitly exposes the user's IP address and metadata, such as the browser's User-Agent string.

The SDK does not send data to any third party services.

What app permissions does the SDK require?

The SDK does not require any user-obtained app permissions.

Maintenance and updates

How often is the SDK updated, and how are updates communicated?

The team runs a regular cadence of sprints and releases, with selected updates being made available publicly.

Once a new version becomes publicly available, it is added to the platform-specific release notes page below. New releases are also communicated via internal support channels and a dedicated SDK mailing list — please contact us to be added.

Are new SDK versions backwards compatible with older versions?

Every effort is made to ensure the SDK remains backwards-compatible within a major version — i.e. version 0.3.x will be backwards-compatible with 0.2.x.

A new major version release of the SDK such as the migration from 0.x.x to 1.x.x, may introduce breaking changes that will be highlighted in the release notes, alongside any required migration instructions.

Monterosa takes responsibility for maintaining a superseded major version of the SDK for at least a year after a new major version has been released.

Last updated