LogoLogo
DocsUse CasesCreator GuideIntegration Guide
  • Introduction
  • Why Monterosa?
  • Platform Buyer FAQ
  • Engagement Use Cases
    • Event Centres
    • Prediction Games
    • Voting
    • Trivia Challenges
    • Competitions & Sweepstakes
    • Sports Data Visualisation
    • Native Apps
    • Global Replication
  • Core Platform Concepts
    • Platform Components
    • App Settings
    • Schedule & Events
    • Timeline
    • Elements
    • Extensions
    • EnMasse Mesh
  • 🎨Creator Guide
    • Welcome
      • Getting an Account
    • Spaces
      • Projects
        • Events
          • Event Templates
          • Event Settings
          • Timeline
            • Elements
            • OpenAI Integration
            • Live Stats
            • Preview
            • Embedding
              • Embedding an Element
          • Analytics
        • Project Settings
          • Localisation
          • Experience URL
          • Content Creation Limits
        • App Settings
        • Activity Log
      • Content
        • Asset Library
        • Automation
          • 🔃Bulk Content Uploader
          • ⚡Live Data Connector
      • Setup
        • Space Settings
        • Apps
        • Integrations
          • Opta Graphics
          • Tagboard
        • Extensions
          • Identify
          • Gamify
          • Forms
          • Geo-Verify
          • Content Bridge
          • Vote Verification
    • Experiences
      • Experience Creator
        • Customising your UI
        • Retrieving Event URLs
    • Team
      • Two-Factor Authentication
      • Setting Up SSO to log in the Monterosa platform
      • User Roles
    • Scaling & Capacity
    • Creator FAQs
  • 🚀Integration Guide
    • Overview
    • Standalone Pages
    • Web Page Embedding
      • Hosting an Experience on your domain
      • Auto-resizing embedded Experiences
    • Native App Embedding
    • Embed using the SDK
    • Discovering Events Programmatically
    • Audience Profiles
      • Audience Profiles Dataset Reference
        • Users dataset
        • Projects dataset
        • Events dataset
        • Elements dataset
        • Interactions dataset
        • Leaderboard (Event) dataset
        • Leagues dataset
        • Form entries dataset
      • Monterosa Identifiers
    • Integrating IAM & SSO
      • Simple integration with SDK & JWT
        • Advanced SDK integration
      • JWT based SSO integration
      • Ad-hoc SSO integration
      • SSO Integration guidelines
    • Consent Management integration
      • Client-Side Data Storage Explained
    • Analytics integration
    • Integration FAQs
  • 📱FanKit
    • Overview
    • How it works
    • Elements
      • Polls & Voting
        • Brand Survey
        • Poll
        • Reaction Rater
        • Ladder Poll
        • Swing Poll
        • Smash Rater
        • Category Wrapper
        • Category Vote
        • Standalone Vote
        • Team Selector
      • Predictors
        • Predictor
        • Sweepstake
        • Number Predictor
        • Podium Predictor
        • Score Predictor
        • Score Predictor (High)
        • Player Predictor
      • Trivia
        • Trivia
        • Free Type Trivia
        • Ladder Trivia
        • Sorting Trivia
        • Word Trivia
        • Video Trivia
        • Number Trivia
      • Editorial & Media
        • Article
        • External Article
        • Commentary
        • Gallery
        • Image
        • Video
        • Video Carousel
        • Shareable URL
        • Social Embed
        • Form
        • Element Carousel
        • Match Event
        • Substitution
        • Goal
        • Time Event
      • Quiz
        • Quiz Wrapper
        • Quiz Question
      • Series Prediction
        • Series Wrapper
        • Series Score Predictor
        • Series Predictor
        • Series Number Predictor
        • Series Player Predictor
      • Multi Rater
        • Ratings Wrapper
        • Ratings Slider
      • Sports Statistics
        • Opta Widget
        • Stat Callout
        • Stat Comparison
      • Gamification
        • Scoreboard (Event)
        • Scoreboard (Round)
        • Leaderboard (Project)
        • Leaderboard (Event)
        • Leaderboard (Round)
        • Leaderboard (Group)
    • Tips, tricks, tutorials & guides
      • Advanced CSS Overrides
      • Using points and leaderboards
      • Content containers
    • Display Modes
    • Converters
      • Access Gate
      • Form
      • Cards
      • Share Image
      • Featured Links
      • Sponsors
      • Promo Banner
      • Google Ads
    • Localisation
    • Supported Browsers
    • Release Notes
  • 👣DEVELOPER GUIDE
    • Overview
    • Platform Terminology
    • Interaction SDK
      • Download & Initialise the SDK
      • Supported Devices & Operating Systems
      • Roadmap
      • Release Notes
        • React Native
          • v0.2.2
        • JavaScript
          • v0.16.16
          • v0.16.15
          • v0.16.14
          • v0.16.13
          • v0.16.12
          • v0.16.11
        • iOS
          • v0.16.12
          • v0.16.11
        • Android
          • v0.16.13
      • SDK FAQs
    • Embedding Apps
      • Static Embedding
      • Dynamic Embedding
        • Web Behaviours
        • iOS Behaviours
        • Android Behaviours
        • Preloading
        • Caching Content
        • Shared Storage
      • Configure your app
      • Communicate with embedded apps
      • Video Stream Sync
      • React Native
        • Events in React Native SDK
      • Integrate with Flutter
    • Building Apps
      • Quick Start Guide
      • How to build your first app
        • Getting started
        • Get your app running locally
        • Install the Interaction SDK
        • Define your App
        • Set up Studio
        • Develop your App
        • Enable Dynamic Configuration
      • Core SDK Functions
        • Getting and displaying Events
        • Managing Elements
        • Reacting to live updates
        • Dynamic runtime configuration
        • Time
        • Localisation
    • Content Automation
      • Discovering Events
      • Connecting to Google Sheets
      • Connecting to Zapier
      • Connecting to Sports Feeds
    • App Specs
      • App Spec Reference
        • Root Spec
        • Elements Spec
        • Project Settings Spec
        • Event Settings Spec
        • Expressions (beta)
        • Data Sources (beta)
        • External data source
        • Field Types
          • Boolean
          • Collection
          • Colour
          • Datetime
          • External
          • File
          • Freetext
          • Image
          • List
          • Number
          • WYSIWYG
        • Field, Field set, Field section
      • Customising App Specs
    • Available APIs
    • Integrating TV Graphics
    • Advanced Topics
      • Listings
      • Accesssing user concurrency values from your app
      • Custom analytics Extension
      • Front-end app communication protocols
      • Multi Vote
      • Reveal answer on vote
  • ⚙️CONTROL API
    • Overview
    • Objects Definitions
    • Element Reference
    • Organisations
      • Get Organisations
      • Get Organisation
      • Create Organisation
      • Update Organisation
      • Delete Organisation
    • Spaces
      • Get Spaces
      • Get Space
      • Create Space
      • Update Space
      • Delete Space
    • Apps
      • Get Apps
      • Get App
      • Create App
      • Reload App
    • App Settings
    • Projects
      • Get Projects
      • Get Project
      • Create Project
      • Update Project
      • Delete Project
    • Events
      • Get Events
      • Get Event
      • Get Event Service Feeds
      • Create Event
      • Create Event From Template
      • Update Event
      • Delete Event
    • Event Templates
      • Get Event Templates
      • Get Event Template
      • Create Event Template
      • Update Event Template
      • Delete Event Template
    • Elements
      • Get Elements
      • Get Element
      • Get Event Template Elements
      • Create Element
      • Update Element
      • Delete Element
    • Assets
      • Get Assets
      • Upload Assets
      • Update Asset
      • Delete Asset
      • Get Asset Media Types
      • Get Asset Uploaders
      • Asset Tags
        • Add Tag to Asset
        • Remove Tag from Asset
    • Tags
      • Get Tags
      • Get Tag
      • Create Tag
      • Update Tag
      • Delete Tag
  • ⚙️REFERENCE
    • Public Feeds
      • Graphics Feed
    • Listings
    • Elements
    • Event History
    • Demographics
    • Identify
    • Gamify
      • Gamification Mechanics
      • Public API
      • Private API
    • Geo-Verify
    • Browser Support
    • Audience API (Preview)
      • Authentication
        • Monterosa Access Token
        • Public client authentication
      • Batched operations
      • Loyalty API
      • Connections API
    • Image Resizing API
  • ⛓️Extensions
    • Overview
    • Instance handshake
    • Project handshake
    • Project delete
    • Tabs
    • Event Tabs
    • Setup
    • Listings notification
    • Elements notification
    • Analytics
    • Assets
    • Event-level feed
    • Webhooks
  • ⚖️COMPLIANCE
    • Data Requests
    • Data Sub-processors
    • Hosting Locations
    • Third party software
    • ISO27001
  • 🗒️RELEASE NOTES
    • Studio
      • v29.0
      • v28.0
      • v27.0
      • v26.0
      • v25.0
    • FanKit
      • v24.41.0
      • 24.42.0 Preview
    • Archive
      • v24 releases 2022-23
Powered by GitBook
On this page
  • SDK Integration and Compatibility
  • Which platforms and operating system versions does the SDK support?
  • Does the SDK have any third-party dependencies, and how are they managed?
  • Performance and Stability
  • What is the impact on my app binary size?
  • What is the JavaScript bundle size?
  • Does the web load async or is it blocking?
  • How much traffic does the SDK exchange with the server?
  • What is the historical crash rate?
  • Security and Privacy
  • Does the SDK support data encryption, and how is data secured in transit and at rest?
  • What data does the SDK send to the back end?
  • What app permissions does the SDK require?
  • How does the SDK prevent tracking if the user rejects it?
  • List of data saved by the JavaScript SDK in localstorage
  • Maintenance and updates
  • How often is the SDK updated, and how are updates communicated?
  • Are new SDK versions backwards compatible with older versions?

Was this helpful?

  1. DEVELOPER GUIDE
  2. Interaction SDK

SDK FAQs

Frequently Asked Questions about the Interaction SDK

Last updated 5 months ago

Was this helpful?

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 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 , and . SwiftyJSON is slated to be removed in the next version of the SDK.

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

  • SDK for Web depends on for event management and 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):

Module
Size (KB)

analytics-kit

4 KB

connect-kit

15 KB

core

9 KB

enmasse

52 KB

identify-kit

33 KB

interact-kit

75 KB

launcher-kit

59 KB

util

24 KB

  • 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.

How does the SDK prevent tracking if the user rejects it?

Our SDK does not track any identifiable user data. We do not perform any tracking on the SDK side, so there is no information related to privacy settings that needs to be passed. Since no tracking occurs, the user's decision to reject tracking does not affect the SDK's functionality.


List of data saved by the JavaScript SDK in localstorage

The JavaScript SDK stores various types of data in localstorage. Below is a detailed description of the data saved by the SDK:

SDK Version

Module

Key

Description

>=0.16.12 && <1.0.0

core

monterosa_sdk_device_id

Used to uniquely identify the user's device

>=1.0.0

identify-kit

client_id

Stores the client_id returned by the Identify service

all

connect-kit

enmasse_session_id

Enmasse server user session identifier. This value is stored indefinitely for the domain and is used to restore the Enmasse session for returning users. It also enables accurate user statistics to be provided in the Studio.

all

interact-kit

element_<elementId>_vote

Stores user votes associated with specific elements

Currently, there is no option to prevent the JavaScript SDK from storing these values in localStorage. If localStorage is available, the SDK will use it as the primary storage mechanism.

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.

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.

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.

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

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 , alongside any required migration instructions.

👣
this page
PromiseKit
Starscream
SwiftyJSON
Netty
Gson
mitt
uuid
release notes page below
please contact us
release notes